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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/webgl/premultiplyalpha-test.html

Issue 1601093008: Remove duplicated WebGL layout tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 <meta charset="utf-8">
5 <title>Test the WebGL premultipledAlpha context creation flag.</title>
6 <script src="../../../resources/js-test.js"></script>
7 <script src="resources/webgl-test.js"> </script>
8 <script src="resources/webgl-test-utils.js"> </script>
9 </head>
10 <body>
11 <div id="description"></div><div id="console"></div>
12 <script>
13 var wtu = WebGLTestUtils;
14
15 var tests = [
16 // If premultipledAlpha is true then
17 // [texture] [canvas] [dataURL]
18 // 32, 64, 128, 128 -> 64, 128, 255, 128 -> 64, 128, 255, 128
19 { creationAttributes: {},
20 sentColor: [32, 64, 128, 128],
21 expectedColor: [64, 128, 255, 128],
22 errorRange: 2,
23 imageFormat: "image/png"
24 },
25 // If premultipledAlpha is true then
26 // [texture] [canvas] [texture]
27 // 32, 64, 128, 128 -> 64, 128, 255, 128 -> 64, 128, 255, 128
28 { creationAttributes: {},
29 sentColor: [32, 64, 128, 128],
30 expectedColor: [64, 128, 255, 128],
31 errorRange: 2,
32 },
33 // If premultipledAlpha is false then
34 // [texture] [canvas] [dataURL]
35 // 255, 192, 128, 1 -> 255, 192, 128, 1 -> 255, 192, 128, 1
36 { creationAttributes: {premultipliedAlpha: false},
37 sentColor: [255, 192, 128, 1],
38 expectedColor: [255, 192, 128, 1],
39 errorRange: 0,
40 imageFormat: "image/png"
41 },
42 // If premultipledAlpha is false then
43 // [texture] [canvas] [texture]
44 // 255, 192, 128, 1 -> 255, 192, 128, 1 -> 255, 192, 128, 1
45 { creationAttributes: {premultipliedAlpha: false},
46 sentColor: [255, 192, 128, 1],
47 expectedColor: [255, 192, 128, 1],
48 errorRange: 0,
49 },
50 // If premultipledAlpha is false then
51 // [texture] [canvas] [dataURL]
52 // 255, 255, 255, 128 -> 255, 255, 255, 128 -> 128, 128, 128, 255
53 { creationAttributes: {premultipliedAlpha: false},
54 sentColor: [255, 255, 255, 128],
55 expectedColor: [128, 128, 128, 255],
56 errorRange: 2,
57 imageFormat: "image/jpeg"
58 },
59 // If premultipledAlpha is true then
60 // [texture] [canvas] [dataURL]
61 // 128, 128, 128, 128 -> 255, 255, 255, 128 -> 128, 128, 128, 255
62 { creationAttributes: {},
63 sentColor: [128, 128, 128, 128],
64 expectedColor: [128, 128, 128, 255],
65 errorRange: 2,
66 imageFormat: "image/jpeg"
67 }
68 ];
69
70 var g_count = 0;
71 var gl;
72 var canvas;
73 var premultipledAlpha;
74
75 window.jsTestIsAsync = true;
76
77 if (window.testRunner)
78 testRunner.overridePreference("WebKitWebGLEnabled", "1");
79
80 description("Test the WebGL premultipledAlpha context creation flag.");
81 doNextTest();
82 function doNextTest() {
83 if (g_count < tests.length) {
84 var test = tests[g_count++];
85 canvas = document.createElement("canvas");
86 // Need to preserve drawing buffer to load it in a callback
87 test.creationAttributes.preserveDrawingBuffer = true;
88 gl = wtu.create3DContext(canvas, test.creationAttributes);
89 var premultipliedAlpha = test.creationAttributes.premultipliedAlpha != fals e;
90 debug("")
91 debug("testing: premultipliedAlpha: " + premultipliedAlpha + " imageFormat: " + test.imageFormat);
92
93 shouldBe('gl.getContextAttributes().premultipledAlpha', 'premultipledAlpha' );
94 shouldBeTrue('gl.getContextAttributes().preserveDrawingBuffer');
95
96 var program = wtu.setupTexturedQuad(gl);
97
98 glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from setup.");
99 var tex = gl.createTexture();
100 wtu.fillTexture(gl, tex, 2, 2, test.sentColor, 0);
101 var loc = gl.getUniformLocation(program, "tex");
102 gl.uniform1i(loc, 0);
103 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
104 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
105 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
106 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
107
108 wtu.drawQuad(gl);
109 glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from drawing.");
110
111 function loadTexture() {
112 var pngTex = gl.createTexture();
113 // not needed as it's the default
114 // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
115 gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, false);
116 gl.bindTexture(gl.TEXTURE_2D, pngTex);
117 if (test.imageFormat) {
118 // create texture from image
119 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, th is);
120 } else {
121 // create texture from canvas
122 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, ca nvas);
123 }
124 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
125 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
126 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
127 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
128 glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from creating copy. ");
129 wtu.drawQuad(gl);
130 glErrorShouldBe(gl, gl.NO_ERROR, "Should be no errors from 2nd drawing.") ;
131 wtu.checkCanvas(
132 gl, test.expectedColor,
133 "should draw with " + test.expectedColor, test.errorRange);
134
135 doNextTest();
136 }
137
138 if (test.imageFormat) {
139 // Load canvas into string using toDataURL
140 var imageUrl = canvas.toDataURL(test.imageFormat);
141 if (test.imageFormat != "image/png" &&
142 (imageUrl.indexOf("data:image/png,") == 0 ||
143 imageUrl.indexOf("data:image/png;") == 0)) {
144 debug("Image format " + test.imageFormat + " not supported; skipping") ;
145 setTimeout(doNextTest, 0);
146 } else {
147 // Load string into the texture
148 var input = document.createElement("img");
149 input.onload = loadTexture;
150 input.src = imageUrl;
151 }
152 } else {
153 // Load canvas into the texture asynchronously (to prevent unbounded sta ck consumption)
154 setTimeout(loadTexture, 0);
155 }
156 } else {
157 finishTest();
158 }
159 }
160
161 </script>
162
163 </body>
164 </html>
165
166
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698