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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-image-bitmap-transferable.html

Issue 1797313002: Make ImageBitmap transferable work with ImageBitmapOptions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add comments Created 4 years, 8 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="./resources/webgl-test-utils-full.js"></script>
5 <script src="./resources/tex-image-and-sub-image-utils.js"></script>
6 <script src="./resources/tex-image-and-sub-image-image-bitmap-utils.js"></script >
7 <script src="../../../resources/js-test.js"></script>
8 <script>
9
10 window.jsTestIsAsync = true;
11 var worker = new Worker('./resources/imageBitmap-transferable.js');
12
13 var wtu = WebGLTestUtils;
14 var tiu = TexImageUtils;
15 var gl = null;
16 var internalFormat = "RGBA";
17 var pixelFormat = "RGBA";
18 var pixelType = "UNSIGNED_BYTE";
19 var redColor = [255, 0, 0];
20 var greenColor = [0, 255, 0];
21 var blackColor = [0, 0, 0];
22 var halfRed = [128, 0, 0];
23 var halfGreen = [0, 128, 0];
24
25 var image = new Image();
26
27 function promiseRejected()
28 {
29 document.getElementById("results").innerHTML = "Promise <span style='color:r ed'>REJECTED</span>";
30 }
31
32 function pass()
33 {
34 document.getElementById("results").innerHTML = "Test <span style='color:gree n'>PASSED</span>";
35 }
36
37 function postToWorker(message, transferable) {
38 return new Promise((resolve, reject) => {
39 function onMessage(e) {
40 resolve(e.data);
41 worker.removeEventListener("message", onMessage);
42 }
43 worker.postMessage(message, transferable);
44 worker.addEventListener("message", onMessage);
45 });
46 }
47
48 function generateTest()
49 {
50 var bitmaps = [];
51
52 var canvas = document.getElementById("example");
53 gl = canvas.getContext("webgl");
54
55 gl.clearColor(0,0,0,1);
56 gl.clearDepth(1);
57
58 // There is an existing layout test fast/canvas/canvas-ImageBitmap-transfera ble.html
59 // which tests the transferable logic for ImageBitmap with default options.
60 // To test ImageBitmap with non-default options such as premultiplyAlpha=non e,
61 // we need to use WebGL for testing because normal 2D canvas cannot tell the difference
62 // between a premultiplied/unpremultiplied ImageBitmap.
63 createImageBitmap(image, {imageOrientation: "flipY", premultiplyAlpha: "none "}).then(function(imageBitmap) {
64 var replyPromise = postToWorker(imageBitmap, [imageBitmap]);
65 replyPromise.then(reply => {
66 var retVal = {testPassed: true, alpha: 0.5};
67 var program = tiu.setupTexturedQuad(gl, internalFormat);
68 runOneIteration(false, gl.TEXTURE_2D, program, reply, true, false, r etVal);
69 runOneIteration(true, gl.TEXTURE_2D, program, reply, true, false, re tVal);
70 program = tiu.setupTexturedQuadWithCubeMap(gl, internalFormat);
71 runOneIteration(false, gl.TEXTURE_CUBE_MAP, program, reply, true, fa lse, retVal);
72 runOneIteration(true, gl.TEXTURE_CUBE_MAP, program, reply, true, fal se, retVal);
73 if (retVal.testPassed)
74 pass();
75 finishJSTest();
76 });
77 }, function() {
78 promiseRejected();
79 finishJSTest();
80 });
81 }
82
83 function init()
84 {
85 if (window.testRunner) {
86 testRunner.overridePreference("WebKitWebGLEnabled", "1");
87 testRunner.dumpAsText();
88 }
89 image.onload = function() {
90 generateTest();
91 }
92 image.src = "resources/red-green-semi-transparent.png";
93 }
94 </script>
95 </head>
96 <body onload="init()">
97 <canvas id="texcanvas" width="2" height="2"></canvas>
98 <canvas id="example" width="32" height="32"></canvas>
99 <div id="results">Test <span style="color:red">FAILED</span></div>
100 </body>
101 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698