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> |