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

Side by Side Diff: third_party/webgl/conformance-suites/1.0.0/conformance/context-lost.html

Issue 9360034: Remove everthing except conformance tests in the deps/third_party/webgl (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/
Patch Set: Created 8 years, 10 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 <html>
2 <head>
3 <link rel="stylesheet" href="../resources/js-test-style.css"/>
4 <script src="../resources/js-test-pre.js"></script>
5 <script src="resources/webgl-test.js"></script>
6 <script src="resources/webgl-test-utils.js"></script>
7 <script>
8 var wtu;
9 var canvas;
10 var gl;
11 var shouldGenerateGLError;
12 var extension_name = "WEBKIT_lose_context";
13 var extension;
14
15 var buffer;
16 var framebuffer;
17 var program;
18 var renderbuffer;
19 var shader;
20 var texture;
21 var uniformLocation;
22 var arrayBuffer;
23 var arrayBufferView
24 var image;
25 var video;
26 var canvas2d;
27 var ctx2d;
28 var imageData;
29 var float32array;
30 var int32array;
31
32 function init()
33 {
34 wtu = WebGLTestUtils;
35 canvas = document.getElementById("canvas");
36 gl = wtu.create3DContext(canvas);
37 shouldGenerateGLError = wtu.shouldGenerateGLError;
38
39 description("Tests behavior under a lost context");
40
41 if (window.initNonKhronosFramework) {
42 window.initNonKhronosFramework(true);
43 }
44
45 // call testValidContext() before checking for the extension, because this i s where we check
46 // for the isContextLost() method, which we want to do regardless of the ext ension's presence.
47 testValidContext();
48
49 extension = gl.getExtension(extension_name);
50 if (!extension) {
51 debug(extension_name + " extension not found.");
52 finish();
53 return;
54 }
55
56 canvas.addEventListener("webglcontextlost", testLostContext, false);
57
58 loseContext();
59 }
60
61 function loseContext()
62 {
63 debug("");
64 debug("Lose context");
65 shouldGenerateGLError(gl, gl.NO_ERROR, "extension.loseContext()");
66 debug("");
67 }
68
69 function testValidContext()
70 {
71 debug("Test valid context");
72
73 shouldBeFalse("gl.isContextLost()");
74
75 arrayBuffer = new ArrayBuffer(4);
76 arrayBufferView = new Int8Array(arrayBuffer);
77
78 // Generate resources for testing.
79 buffer = gl.createBuffer();
80 gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
81 framebuffer = gl.createFramebuffer();
82 gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
83 program = wtu.setupSimpleTextureProgram(gl);
84 renderbuffer = gl.createRenderbuffer();
85 gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);
86 shader = gl.createShader(gl.VERTEX_SHADER);
87 texture = gl.createTexture();
88 gl.bindTexture(gl.TEXTURE_2D, texture);
89 shouldBe("gl.getError()", "gl.NO_ERROR");
90
91 // Test is queries that will later be false
92 shouldGenerateGLError(gl, gl.NO_ERROR, "gl.enable(gl.BLEND)");
93 shouldBeTrue("gl.isBuffer(buffer)");
94 shouldBeTrue("gl.isEnabled(gl.BLEND)");
95 shouldBeTrue("gl.isFramebuffer(framebuffer)");
96 shouldBeTrue("gl.isProgram(program)");
97 shouldBeTrue("gl.isRenderbuffer(renderbuffer)");
98 shouldBeTrue("gl.isShader(shader)");
99 shouldBeTrue("gl.isTexture(texture)");
100 }
101
102 function testLostContext()
103 {
104 debug("Test lost context");
105
106 // Functions with special return values.
107 shouldBeTrue("gl.isContextLost()");
108 shouldBe("gl.getError()", "gl.CONTEXT_LOST_WEBGL");
109 shouldBe("gl.getError()", "gl.NO_ERROR");
110 shouldBe("gl.checkFramebufferStatus(gl.FRAMEBUFFER)", "gl.FRAMEBUFFER_UNSUPP ORTED");
111 shouldBe("gl.getAttribLocation(program, 'u_modelViewProjMatrix')", "-1");
112 shouldBe("gl.getVertexAttribOffset(0, gl.VERTEX_ATTRIB_ARRAY_POINTER)", "0") ;
113
114 // Test the extension itself.
115 shouldGenerateGLError(gl, gl.INVALID_OPERATION, "extension.loseContext()");
116
117 image = document.createElement("image");
118 video = document.createElement("video");
119 canvas2d = document.createElement("canvas");
120 ctx2d = canvas2d.getContext("2d");
121 imageData = ctx2d.createImageData(1, 1);
122 float32array = new Float32Array(1);
123 int32array = new Int32Array(1);
124
125 // Functions returning void should return immediately.
126 // This is untestable, but we can at least be sure they cause no errors
127 // and the codepaths are exercised.
128 var voidTests = [
129 "gl.activeTexture(gl.TEXTURE0)",
130 "gl.attachShader(program, shader)",
131 "gl.bindBuffer(gl.ARRAY_BUFFER, buffer)",
132 "gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer)",
133 "gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer)",
134 "gl.bindTexture(gl.TEXTURE_2D, texture)",
135 "gl.blendColor(1.0, 1.0, 1.0, 1.0)",
136 "gl.blendEquation(gl.FUNC_ADD)",
137 "gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD)",
138 "gl.blendFunc(gl.ONE)",
139 "gl.blendFuncSeparate(gl.ONE, gl.ONE)",
140 "gl.bufferData(gl.ARRAY_BUFFER, 0, gl.STATIC_DRAW)",
141 "gl.bufferData(gl.ARRAY_BUFFER, arrayBufferView, gl.STATIC_DRAW)",
142 "gl.bufferData(gl.ARRAY_BUFFER, arrayBuffer, gl.STATIC_DRAW)",
143 "gl.bufferSubData(gl.ARRAY_BUFFRE, 0, arrayBufferView)",
144 "gl.bufferSubData(gl.ARRAY_BUFFRE, 0, arrayBuffer)",
145 "gl.clear(gl.COLOR_BUFFER_BIT)",
146 "gl.clearColor(1, 1, 1, 1)",
147 "gl.clearDepth(1)",
148 "gl.clearStencil(0)",
149 "gl.colorMask(1, 1, 1, 1)",
150 "gl.compileShader(shader)",
151 "gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, 0, 0)",
152 "gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, 0, 0)",
153 "gl.cullFace(gl.FRONT)",
154 "gl.deleteBuffer(buffer)",
155 "gl.deleteFramebuffer(framebuffer)",
156 "gl.deleteProgram(program)",
157 "gl.deleteRenderbuffer(renderbuffer)",
158 "gl.deleteShader(shader)",
159 "gl.deleteTexture(texture)",
160 "gl.depthFunc(gl.NEVER)",
161 "gl.depthMask(0)",
162 "gl.depthRange(0, 1)",
163 "gl.detachShader(program, shader)",
164 "gl.disable(gl.BLEND)",
165 "gl.disableVertexAttribArray(0)",
166 "gl.drawArrays(gl.POINTS, 0, 0)",
167 "gl.drawElements(gl.POINTS, 0, gl.UNSIGNED_SHORT, 0)",
168 "gl.enable(gl.BLEND)",
169 "gl.enableVertexAttribArray(0)",
170 "gl.finish()",
171 "gl.flush()",
172 "gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.REN DERBUFFER, renderbuffer)",
173 "gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTUR E_2D, texture, 0)",
174 "gl.frontFace(gl.CW)",
175 "gl.generateMipmap(gl.TEXTURE_2D)",
176 "gl.hint(gl.GENERATE_MIPMAP_HINT, gl.FASTEST)",
177 "gl.lineWidth(0)",
178 "gl.linkProgram(program)",
179 "gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 0)",
180 "gl.polygonOffset(0, 0)",
181 "gl.readPixels(0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView)",
182 "gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 0, 0)",
183 "gl.sampleCoverage(0, 0)",
184 "gl.scissor(0, 0, 0, 0)",
185 "gl.shaderSource(shader, '')",
186 "gl.stencilFunc(gl.NEVER, 0, 0)",
187 "gl.stencilFuncSeparate(gl.FRONT, gl.NEVER, 0, 0)",
188 "gl.stencilMask(0)",
189 "gl.stencilMaskSeparate(gl.FRONT, 0)",
190 "gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP)",
191 "gl.stencilOpSeparate(gl.FRONT, gl.KEEP, gl.KEEP, gl.KEEP)",
192 "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 0, gl.RGBA, gl.UNSIGNED_ BYTE, arrayBufferView)",
193 "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, ima geData)",
194 "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, ima ge)",
195 "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, can vas)",
196 "gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, vid eo)",
197 "gl.texParameterf(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)",
198 "gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)",
199 "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYT E, arrayBufferView)",
200 "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, ima geData)",
201 "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, ima ge)",
202 "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, can vas)",
203 "gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, vid eo)",
204 "gl.uniform1f(uniformLocation, 0)",
205 "gl.uniform1fv(uniformLocation, float32array)",
206 "gl.uniform1fv(uniformLocation, [0])",
207 "gl.uniform1i(uniformLocation, 0)",
208 "gl.uniform1iv(uniformLocation, int32array)",
209 "gl.uniform1iv(uniformLocation, [0])",
210 "gl.uniform2f(uniformLocation, 0, 0)",
211 "gl.uniform2fv(uniformLocation, float32array)",
212 "gl.uniform2fv(uniformLocation, [0, 0])",
213 "gl.uniform2i(uniformLocation, 0, 0)",
214 "gl.uniform2iv(uniformLocation, int32array)",
215 "gl.uniform2iv(uniformLocation, [0, 0])",
216 "gl.uniform3f(uniformLocation, 0, 0, 0)",
217 "gl.uniform3fv(uniformLocation, float32array)",
218 "gl.uniform3fv(uniformLocation, [0, 0, 0])",
219 "gl.uniform3i(uniformLocation, 0, 0, 0)",
220 "gl.uniform3iv(uniformLocation, int32array)",
221 "gl.uniform3iv(uniformLocation, [0, 0, 0])",
222 "gl.uniform4f(uniformLocation, 0, 0, 0, 0)",
223 "gl.uniform4fv(uniformLocation, float32array)",
224 "gl.uniform4fv(uniformLocation, [0, 0, 0, 0])",
225 "gl.uniform4i(uniformLocation, 0, 0, 0, 0)",
226 "gl.uniform4iv(uniformLocation, int32array)",
227 "gl.uniform4iv(uniformLocation, [0, 0, 0, 0])",
228 "gl.uniformMatrix2fv(uniformLocation, false, float32array)",
229 "gl.uniformMatrix2fv(uniformLocation, false, [0, 0, 0, 0])",
230 "gl.uniformMatrix3fv(uniformLocation, false, float32array)",
231 "gl.uniformMatrix3fv(uniformLocation, false, [0, 0, 0, 0, 0, 0, 0, 0, 0] )",
232 "gl.uniformMatrix4fv(uniformLocation, false, float32array)",
233 "gl.uniformMatrix4fv(uniformLocation, false, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])",
234 "gl.useProgram(program)",
235 "gl.validateProgram(program)",
236 "gl.vertexAttrib1f(0, 0)",
237 "gl.vertexAttrib1fv(0, float32array)",
238 "gl.vertexAttrib1fv(0, [0])",
239 "gl.vertexAttrib2f(0, 0, 0)",
240 "gl.vertexAttrib2fv(0, float32array)",
241 "gl.vertexAttrib2fv(0, [0, 0])",
242 "gl.vertexAttrib3f(0, 0, 0, 0)",
243 "gl.vertexAttrib3fv(0, float32array)",
244 "gl.vertexAttrib3fv(0, [0, 0, 0])",
245 "gl.vertexAttrib4f(0, 0, 0, 0, 0)",
246 "gl.vertexAttrib4fv(0, float32array)",
247 "gl.vertexAttrib4fv(0, [0, 0, 0, 0])",
248 "gl.vertexAttribPointer(0, 0, gl.FLOAT, false, 0, 0)",
249 "gl.viewport(0, 0, 0, 0)",
250 ];
251 for (var i = 0; i < voidTests.length; ++i) {
252 shouldGenerateGLError(gl, gl.NO_ERROR, voidTests[i]);
253 }
254
255 // Functions return nullable values should all return null.
256 var nullTests = [
257 "gl.createBuffer()",
258 "gl.createFramebuffer()",
259 "gl.createProgram()",
260 "gl.createRenderbuffer()",
261 "gl.createShader(gl.GL_VERTEX_SHADER)",
262 "gl.createTexture()",
263 "gl.getActiveAttrib(program, 0)",
264 "gl.getActiveUniform(program, 0)",
265 "gl.getAttachedShaders(program)",
266 "gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE)",
267 "gl.getContextAttributes()",
268 "gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMEN T0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)",
269 "gl.getParameter(gl.CURRENT_PROGRAM)",
270 "gl.getProgramInfoLog(program)",
271 "gl.getProgramParameter(program, gl.LINK_STATUS)",
272 "gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_WIDTH)",
273 "gl.getShaderInfoLog(shader)",
274 "gl.getShaderParameter(shader, gl.SHADER_TYPE)",
275 "gl.getShaderSource(shader)",
276 "gl.getTexParameter(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S)",
277 "gl.getUniform(program, uniformLocation)",
278 "gl.getUniformLocation(program, 'vPosition')",
279 "gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING)",
280 "gl.getSupportedExtensions()",
281 "gl.getExtension('" + extension_name + "')",
282 ];
283 for (var i = 0; i < nullTests.length; ++i) {
284 shouldBeNull(nullTests[i]);
285 }
286
287 // "Is" queries should all return false.
288 shouldBeFalse("gl.isBuffer(buffer)");
289 shouldBeFalse("gl.isEnabled(gl.BLEND)");
290 shouldBeFalse("gl.isFramebuffer(framebuffer)");
291 shouldBeFalse("gl.isProgram(program)");
292 shouldBeFalse("gl.isRenderbuffer(renderbuffer)");
293 shouldBeFalse("gl.isShader(shader)");
294 shouldBeFalse("gl.isTexture(texture)");
295
296 shouldBe("gl.getError()", "gl.NO_ERROR");
297
298 finish();
299 }
300
301 function finish() {
302 successfullyParsed = true;
303 var epilogue = document.createElement("script");
304 epilogue.onload = function() {
305 if (window.nonKhronosFrameworkNotifyDone)
306 window.nonKhronosFrameworkNotifyDone();
307 };
308 epilogue.src = "../resources/js-test-post.js";
309 document.body.appendChild(epilogue);
310 }
311 </script>
312 </head>
313 <body onload="init()">
314 <div id="description"></div>
315 <div id="console"></div>
316 <canvas id="canvas">
317 </body>
318 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698