| Index: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-webgl-preserveDrawingBuffer.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-webgl-preserveDrawingBuffer.html b/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-webgl-preserveDrawingBuffer.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cef39a7b73a0d03d9558164116eba634f4347e88
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-webgl-preserveDrawingBuffer.html
|
| @@ -0,0 +1,35 @@
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script>
|
| +
|
| +function getPixelsFromOffscreenWebgl(preserveFlag) {
|
| + var canvas = document.createElement("canvas");
|
| + var offscreenCanvas = canvas.transferControlToOffscreen();
|
| + var gl = offscreenCanvas.getContext("webgl", {preserveDrawingBuffer: preserveFlag});
|
| +
|
| + // Draw some color on gl and commit
|
| + gl.clearColor(1, 0, 1, 1);
|
| + gl.clear(gl.COLOR_BUFFER_BIT);
|
| + gl.commit();
|
| +
|
| + var pixels = new Uint8Array(50 * 50 * 4);
|
| + gl.readPixels(0, 0, 50, 50, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
|
| + return pixels;
|
| +}
|
| +
|
| +test(function() {
|
| + var pixelsPreserve = getPixelsFromOffscreenWebgl(true);
|
| + assert_equals(pixelsPreserve[0], 255);
|
| + assert_equals(pixelsPreserve[1], 0);
|
| + assert_equals(pixelsPreserve[2], 255);
|
| + assert_equals(pixelsPreserve[3], 255);
|
| +}, "test if OffscreenCanvas.webgl retains context if preserveDrawingBuffer is true.");
|
| +
|
| +test(function() {
|
| + var pixelsNoPreserve = getPixelsFromOffscreenWebgl(false);
|
| + assert_equals(pixelsNoPreserve[0], 0);
|
| + assert_equals(pixelsNoPreserve[1], 0);
|
| + assert_equals(pixelsNoPreserve[2], 0);
|
| + assert_equals(pixelsNoPreserve[3], 0);
|
| +}, "test if OffscreenCanvas.webgl loses context if presereDrawingbuffer is false.");
|
| +</script>
|
|
|