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

Unified Diff: LayoutTests/fast/canvas/webgl/canvas-to-data-url.html

Issue 749653002: WebGL: clarify which Front or Back buffer is used by each API. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Address nits 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/canvas-to-data-url.html
diff --git a/LayoutTests/fast/canvas/webgl/canvas-to-data-url.html b/LayoutTests/fast/canvas/webgl/canvas-to-data-url.html
new file mode 100644
index 0000000000000000000000000000000000000000..20ab459ad34296635efdb664fc9f319f347225f9
--- /dev/null
+++ b/LayoutTests/fast/canvas/webgl/canvas-to-data-url.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<body>
+<canvas id="preserve-canvas3d" width="10" height="10"></canvas>
+<canvas id="nonpreserve-canvas3d" width="10" height="10"></canvas>
+<script src="../../../resources/js-test.js"></script>
+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+}
+
+var preserve_canvas3D;
+var nonpreserve_canvas3D;
+
+function renderWebGL(gl) {
+ gl.clearColor(0.5, 1, 0.3, 0.1);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+}
+
+function asyncTest() {
+ debug("Check if back buffer (toDataURL) is equal to front buffer (getImageSourceURL) one frame after drawing webgl contents.")
+ debug("1) when drawingBuffer is preserved.")
+ shouldBeTrue("preserve_canvas3D.toDataURL('image/png') == window.internals.getImageSourceURL(preserve_canvas3D)");
+ debug("2) when drawingBuffer is not preserved. They must be different.")
+ shouldBeTrue("nonpreserve_canvas3D.toDataURL('image/png') != window.internals.getImageSourceURL(nonpreserve_canvas3D)");
+ if (window.testRunner)
+ testRunner.notifyDone();
+}
+
+function startTestAfterFirstPaint() {
+ preserve_canvas3D = document.getElementById('preserve-canvas3d');
+ var preserve_gl = preserve_canvas3D.getContext('webgl', {preserveDrawingBuffer: true, premultipliedAlpha: false});
+ nonpreserve_canvas3D = document.getElementById('nonpreserve-canvas3d');
+ var nonpreserve_gl = nonpreserve_canvas3D.getContext('webgl', {preserveDrawingBuffer: false, premultipliedAlpha: false});
+
+ // prepare webgl contents.
+ renderWebGL(preserve_gl);
+ renderWebGL(nonpreserve_gl);
+
+ debug("Check if back buffer (toDataURL) is equal to front buffer (getImageSourceURL)")
+ debug("1) when drawingBuffer is preserved.")
+ shouldBeTrue("preserve_canvas3D.toDataURL('image/png') == window.internals.getImageSourceURL(preserve_canvas3D)");
+ debug("2) when drawingBuffer is not preserved.")
+ shouldBeTrue("nonpreserve_canvas3D.toDataURL('image/png') == window.internals.getImageSourceURL(nonpreserve_canvas3D)");
+
+ 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