Thu, 15 Jan 2015 21:03:48 +0100
Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)
1 <!DOCTYPE HTML>
2 <title>WebGL test: `highp` support</title>
3 <script src="/tests/SimpleTest/SimpleTest.js"></script>
4 <link rel="stylesheet" href="/tests/SimpleTest/test.css">
5 <script src="driver-info.js"></script>
6 <script src="webgl-util.js"></script>
7 <script id="shader-vs" type="x-shader/x-vertex">
9 void main(void) {
10 gl_Position = vec4(vec3(0.0), 1.0);
11 }
13 </script>
14 <script id="shader-fs" type="x-shader/x-fragment">
16 precision highp float;
18 void main(void) {
19 gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
20 }
22 </script>
23 <body>
24 <canvas id="c"></canvas>
25 <script>
27 // Give ourselves a scope to return early from:
28 (function() {
29 var gl = WebGLUtil.getWebGL('c');
30 if (!gl) {
31 todo(false, 'WebGL is unavailable.');
32 return;
33 }
35 // Catch actual WebGLUtil errors, not GL errors.
36 function errorFunc(str) {
37 ok(false, 'Error: ' + str);
38 }
39 WebGLUtil.setErrorFunc(errorFunc);
41 function checkGLError(func, info) {
42 var error = gl.getError();
43 var prefix = info ? ('[' + info + '] ') : ''
44 func(!error, prefix + 'gl.getError should be 0x0, was 0x' + error.toString(16) + '.');
45 }
47 var format = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);
48 var prog = WebGLUtil.createProgramByIds(gl, 'shader-vs', 'shader-fs');
49 checkGLError(ok);
51 if (format) {
52 ok(prog, 'Frag shader with unconditional `precision highp float` should ' +
53 'link if `getShaderPrecisionFormat` gives a format for it.');
54 } else {
55 ok(!prog, 'Frag shader with unconditional `precision highp float` should ' +
56 'NOT link if `getShaderPrecisionFormat` gives NO format for it.');
57 }
58 })();
60 </script>