<!DOCTYPE HTML>
<html>
<head>
<title>Low Latency WebGL Canvas Test: Should render diagonal green and blue boxes over red background</title>
<style type="text/css">
.nomargin {
  margin: 0px auto;
}
</style>
<script>
let g_swapsBeforeAck = 15;
let g_canvas;
let g_gl;

function main()
{
  g_canvas = document.getElementById("c");
  g_gl = g_canvas.getContext("webgl", {desynchronized: true, alpha: true});
  requestAnimationFrame(draw);
}

function draw()
{
  g_gl.clearColor(0, 0, 0, 0);
  g_gl.clear(g_gl.COLOR_BUFFER_BIT);
  g_gl.enable(g_gl.SCISSOR_TEST);
  g_gl.scissor(0, 0, 50, 50);
  g_gl.clearColor(0, 1, 0, 1);
  g_gl.clear(g_gl.COLOR_BUFFER_BIT);
  waitForFinish();
}

function waitForFinish()
{
  if (g_swapsBeforeAck == 0) {
    domAutomationController.send("SUCCESS");
  } else {
    g_swapsBeforeAck--;
    window.requestAnimationFrame(waitForFinish);
  }
}
</script>
</head>
<body onload="main()">
<div class="nomargin" style="position: absolute; top: 0px; left: 0px; height: 100px; width: 100px; background-color: red"></div>
<div id="container" style="position:absolute; top:0px; left:0px">
<canvas id="c" width="100" height="100" class="nomargin"></canvas>
</div>
<div class="nomargin" style="position: absolute; top: 0px; left: 50px; height: 50px; width: 50px; background-color: blue"></div>
</body>
</html>
