| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>WebGL Scissor with context of preserveDrawingBuffer=true</title> |
| <style type="text/css"> |
| .nomargin { |
| margin: 0px auto; |
| } |
| </style> |
| |
| <script> |
| |
| function run() { |
| var canvas = document.getElementById("c"); |
| gl = initGL(canvas); |
| if (!gl) { |
| domAutomationController.send("FAILURE"); |
| return; |
| } |
| gl.clearColor(1, 0, 0, 1); |
| gl.clear(gl.COLOR_BUFFER_BIT); |
| window.requestAnimationFrame(scissorAndClear); |
| } |
| |
| function initGL(canvas) { |
| var gl = null; |
| try { |
| gl = canvas.getContext( |
| "webgl", {preserveDrawingBuffer: true, alpha: false}); |
| } catch (e) {} |
| return gl; |
| } |
| |
| function scissorAndClear() { |
| gl.scissor(0, 0, 10, 10); |
| gl.enable(gl.SCISSOR_TEST); |
| gl.clearColor(0, 1, 0, 1); |
| gl.clear(gl.COLOR_BUFFER_BIT); |
| |
| deferredAck(); |
| } |
| |
| var swapsBeforeAck = 15; |
| function deferredAck() |
| { |
| if (swapsBeforeAck == 0) { |
| domAutomationController.send("SUCCESS"); |
| } else { |
| --swapsBeforeAck; |
| window.requestAnimationFrame(deferredAck); |
| } |
| } |
| |
| </script> |
| </head> |
| <body onload="run()"> |
| <div style="position:absolute; top:0px; left:0px"> |
| <canvas id="c" width="200" height="200" class="nomargin"></canvas> |
| </div> |
| </body> |
| </html> |