Index: third_party/WebKit/LayoutTests/fast/canvas/webgl/offscreenCanvas-APIs-NOT-alter-webgl-states.html |
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/offscreenCanvas-APIs-NOT-alter-webgl-states.html b/third_party/WebKit/LayoutTests/fast/canvas/webgl/offscreenCanvas-APIs-NOT-alter-webgl-states.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dffe0802e8616ba65343189648f1ac4024a9e83d |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/offscreenCanvas-APIs-NOT-alter-webgl-states.html |
@@ -0,0 +1,54 @@ |
+<!DOCTYPE html> |
+<html> |
+<script src="../../../resources/testharness.js"></script> |
+<script src="../../../resources/testharnessreport.js"></script> |
+<script> |
+function enableStates(gl) |
+{ |
+ gl.enable(gl.CULL_FACE); |
+ gl.enable(gl.BLEND); |
+ gl.enable(gl.DITHER); |
+ gl.enable(gl.STENCIL_TEST); |
+ gl.enable(gl.DEPTH_TEST); |
+ gl.enable(gl.SCISSOR_TEST); |
+} |
+ |
+function testStates(gl) |
+{ |
+ assert_true(gl.isEnabled(gl.CULL_FACE), 'CULL_FACE should be enabled'); |
+ assert_true(gl.isEnabled(gl.BLEND), 'BLEND should be enabled'); |
+ assert_true(gl.isEnabled(gl.DITHER), 'DITHER should be enabled'); |
+ assert_true(gl.isEnabled(gl.STENCIL_TEST), 'STENCIL_TEST should be enabled'); |
+ assert_true(gl.isEnabled(gl.DEPTH_TEST), 'DEPTH_TEST should be enabled'); |
+ assert_true(gl.isEnabled(gl.SCISSOR_TEST), 'SCISSOR_TEST should be enabled'); |
+} |
+ |
+test(function() { |
+ var canvas = new OffscreenCanvas(100, 100); |
+ var gl = canvas.getContext('webgl'); |
+ enableStates(gl); |
+ |
+ gl.clearColor(0.0, 1.0, 0.0, 1.0); |
+ gl.clear(gl.COLOR_BUFFER_BIT); |
+ testStates(gl); |
+ |
+ var image = canvas.transferToImageBitmap(); |
+ testStates(gl); |
+}, 'offscreenCanvas.transferToImageBitmap should not alter WebGL states'); |
+ |
+test(function() { |
+ var canvas = document.createElement('canvas'); |
+ canvas.width = canvas.height = 100; |
+ var offscreenCanvas = canvas.transferControlToOffscreen(); |
+ var gl = offscreenCanvas.getContext('webgl'); |
+ enableStates(gl); |
+ |
+ gl.clearColor(0.0, 1.0, 0.0, 1.0); |
+ gl.clear(gl.COLOR_BUFFER_BIT); |
+ testStates(gl); |
+ |
+ gl.commit(); |
+ testStates(gl); |
+}, 'offscreenCanvas.commit should not alter WebGL states'); |
+</script> |
+</html> |