| Index: LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d.html
|
| diff --git a/LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d.html b/LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d.html
|
| index 72aa06fedf1cf7e3cd2ad576f9e8545abba09c93..3b90d53d0df71fb3f9d35600819568fadadd0fb1 100644
|
| --- a/LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d.html
|
| +++ b/LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d.html
|
| @@ -27,20 +27,8 @@ can lead to undefined behavior.".
|
| <canvas id="nonpreserve-canvas3d" width="100" height="100"></canvas>
|
| <canvas id="nonpreserve-canvas2d" width="100" height="100"></canvas>
|
| <script src="../../../resources/js-test.js"></script>
|
| +<script src="resources/draw-webgl-to-canvas-2d.js"></script>
|
| <script>
|
| -if (window.testRunner) {
|
| - testRunner.dumpAsText();
|
| - testRunner.waitUntilDone();
|
| -}
|
| -
|
| -var preserve_ctx2D;
|
| -var preserve_canvas3D;
|
| -var preserve_gl;
|
| -var nonpreserve_ctx2D;
|
| -var nonpreserve_canvas3D;
|
| -var nonpreserve_gl;
|
| -var imgdata;
|
| -
|
| function createContexts() {
|
| preserve_ctx2D = document.getElementById("preserve-canvas2d").getContext("2d");
|
| preserve_canvas3D = document.getElementById('preserve-canvas3d');
|
| @@ -49,76 +37,6 @@ function createContexts() {
|
| nonpreserve_canvas3D = document.getElementById('nonpreserve-canvas3d');
|
| nonpreserve_gl = nonpreserve_canvas3D.getContext('webgl', {'preserveDrawingBuffer': false});
|
| }
|
| -
|
| -function renderWebGL(gl) {
|
| - gl.clearColor(0, 1, 0, 1);
|
| - gl.clear(gl.COLOR_BUFFER_BIT);
|
| -}
|
| -
|
| -function drawWebGLToCanvas2D(ctx2D, canvas3D, isDrawingBufferUndefined) {
|
| - // draw red rect on canvas 2d.
|
| - ctx2D.fillStyle = 'red';
|
| - ctx2D.fillRect(0, 0, 100, 100);
|
| - var imageData = ctx2D.getImageData(0, 0, 1, 1);
|
| - imgdata = imageData.data;
|
| - shouldBe("imgdata[0]", "255");
|
| - shouldBe("imgdata[1]", "0");
|
| - shouldBe("imgdata[2]", "0");
|
| -
|
| - // draw the webgl contents (green rect) on the canvas 2d context.
|
| - ctx2D.drawImage(canvas3D, 0, 0);
|
| - ctx2D.getImageData(0, 0, 1, 1);
|
| - imageData = ctx2D.getImageData(0, 0, 1, 1);
|
| - imgdata = imageData.data;
|
| - if (isDrawingBufferUndefined) {
|
| - // Current implementation draws transparent texture on the canvas 2d context,
|
| - // although the spec said it leads to undefined behavior.
|
| - shouldBe("imgdata[0]", "255");
|
| - shouldBe("imgdata[1]", "0");
|
| - shouldBe("imgdata[2]", "0");
|
| - } else {
|
| - shouldBe("imgdata[0]", "0");
|
| - shouldBe("imgdata[1]", "255");
|
| - shouldBe("imgdata[2]", "0");
|
| - }
|
| -
|
| - if (isDrawingBufferUndefined && window.testRunner)
|
| - testRunner.notifyDone();
|
| -}
|
| -
|
| -function asyncTest() {
|
| - debug("Check for drawing webgl to canvas 2d several frames after drawing webgl contents.")
|
| - debug("1) when drawingBuffer is preserved.")
|
| - drawWebGLToCanvas2D(preserve_ctx2D, preserve_canvas3D, false);
|
| - debug("2) when drawingBuffer is not preserved. It leads to undefined behavior.")
|
| - drawWebGLToCanvas2D(nonpreserve_ctx2D, nonpreserve_canvas3D, true);
|
| -}
|
| -
|
| -function startTestAfterFirstPaint() {
|
| - // create both canvas 2d and webgl contexts.
|
| - createContexts();
|
| - // prepare webgl contents.
|
| - renderWebGL(preserve_gl);
|
| - renderWebGL(nonpreserve_gl);
|
| -
|
| - debug("Check for drawing webgl to canvas 2d on the same frame.")
|
| - debug("1) when drawingBuffer is preserved.")
|
| - drawWebGLToCanvas2D(preserve_ctx2D, preserve_canvas3D, false);
|
| - debug("2) when drawingBuffer is not preserved.")
|
| - drawWebGLToCanvas2D(nonpreserve_ctx2D, nonpreserve_canvas3D, false);
|
| -
|
| - if (window.testRunner) {
|
| - testRunner.waitUntilDone();
|
| - testRunner.displayAsyncThen(asyncTest);
|
| - } else {
|
| - window.requestAnimationFrame(asyncTest);
|
| - }
|
| -}
|
| -
|
| -window.onload = function () {
|
| - window.requestAnimationFrame(startTestAfterFirstPaint);
|
| -}
|
| -
|
| </script>
|
| </body>
|
| </html>
|
|
|