| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>WebGL Canvas to Context2D Canvas Memory Test</title> |
| <link rel="stylesheet" href="resources/webgl_test_files/resources/js-test-style.css"/> |
| <script src="resources/webgl_test_files//js/js-test-pre.js"></script> |
| <script src="resources/webgl_test_files//js/webgl-test-utils.js"></script> |
| </head> |
| <body> |
| <div id="description"></div> |
| <div id="console"></div> |
| <canvas id="canvas2d" width="40" height="40"></canvas> |
| <script> |
| "use strict"; |
| description("This test checking that drawing WebGL canvas to Context2D canvas with drawImage does not use unbounded amount of memory."); |
| var wtu = WebGLTestUtils; |
| var canvas2d = document.getElementById("canvas2d"); |
| var ctx2d = canvas2d.getContext("2d"); |
| var canvasWebGL = document.createElement("canvas"); |
| canvasWebGL.width = 4000; |
| canvasWebGL.height = 4000; |
| var gl = wtu.create3DContext(canvasWebGL); |
| if (!gl) { |
| testFailed("context does not exist"); |
| } else { |
| gl.clearColor(0.25, 0.5, 0.75, 1); |
| for (var count = 0; count < 25; count++) { |
| ctx2d.clearRect(0, 0, canvas2d.width, canvas2d.height); |
| gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); |
| ctx2d.drawImage(canvasWebGL, 0, 0, canvas2d.width, canvas2d.height); |
| wtu.checkCanvasRect(ctx2d, 0, 0, canvas2d.width, canvas2d.height, [64, 128, 192, 255], "drawImage: Should be [64, 128, 192, 255]", 2); |
| } |
| wtu.glErrorShouldBe(gl, gl.NO_ERROR); |
| debug(""); |
| finishTest(); |
| } |
| </script> |
| </body> |
| </html> |