Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d.html

Issue 750273003: canvas: calling toDataURL without context doesn't create a buffer of canvas 2d. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fix typo Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698