diff --git a/content/canvas/test/webgl/non-conf-tests/mochitest.ini b/content/canvas/test/webgl/non-conf-tests/mochitest.ini index 22642249b07..fbe9d6c4035 100644 --- a/content/canvas/test/webgl/non-conf-tests/mochitest.ini +++ b/content/canvas/test/webgl/non-conf-tests/mochitest.ini @@ -3,6 +3,7 @@ support-files = driver-info.js webgl-util.js +[test_highp_fs.html] [test_webgl_available.html] [test_webgl_conformance.html] [test_webgl_request_mismatch.html] diff --git a/content/canvas/test/webgl/non-conf-tests/test_highp_fs.html b/content/canvas/test/webgl/non-conf-tests/test_highp_fs.html new file mode 100644 index 00000000000..165767da538 --- /dev/null +++ b/content/canvas/test/webgl/non-conf-tests/test_highp_fs.html @@ -0,0 +1,62 @@ + +WebGL test: `highp` support + + + + + + + + + + + diff --git a/content/canvas/test/webgl/non-conf-tests/webgl-util.js b/content/canvas/test/webgl/non-conf-tests/webgl-util.js index 9936f8e0c20..da29327048b 100644 --- a/content/canvas/test/webgl/non-conf-tests/webgl-util.js +++ b/content/canvas/test/webgl/non-conf-tests/webgl-util.js @@ -1,6 +1,6 @@ WebGLUtil = (function() { // --------------------------------------------------------------------------- - // Error handling + // Error handling (for obvious failures, such as invalid element ids) function defaultErrorFunc(str) { console.log('Error: ' + str); @@ -15,6 +15,22 @@ WebGLUtil = (function() { gErrorFunc(str); } + // --------------------------------------------------------------------------- + // Warning handling (for failures that may be intentional) + + function defaultWarningFunc(str) { + console.log('Warning: ' + str); + } + + var gWarningFunc = defaultWarningFunc; + function setWarningFunc(func) { + gWarningFunc = func; + } + + function warning(str) { + gWarningFunc(str); + } + // --------------------------------------------------------------------------- // WebGL helpers @@ -63,19 +79,19 @@ WebGLUtil = (function() { return null; } - var src = getContentById(id); + var src = getContentFromElem(elem); var shader; if (elem.type == "x-shader/x-fragment") { shader = gl.createShader(gl.FRAGMENT_SHADER); - } else if (shaderScript.type == "x-shader/x-vertex") { + } else if (elem.type == "x-shader/x-vertex") { shader = gl.createShader(gl.VERTEX_SHADER); } else { error('Bad MIME type for shader \'' + id + '\': ' + elem.type + '.'); return null; } - gl.shaderSource(shader, str); + gl.shaderSource(shader, src); gl.compileShader(shader); return shader; @@ -93,11 +109,11 @@ WebGLUtil = (function() { gl.linkProgram(prog); if (!gl.getProgramParameter(prog, gl.LINK_STATUS)) { - var str = "Shader program linking failed:\n"; - str += "Shader program info log:\n" + gl.getProgramInfoLog(prog) + "\n\n"; - str += "Vert shader log:\n" + gl.getShaderInfoLog(vs) + "\n\n"; - str += "Frag shader log:\n" + gl.getShaderInfoLog(fs); - error(str); + var str = "Shader program linking failed:"; + str += "\nShader program info log:\n" + gl.getProgramInfoLog(prog); + str += "\n\nVert shader log:\n" + gl.getShaderInfoLog(vs); + str += "\n\nFrag shader log:\n" + gl.getShaderInfoLog(fs); + warning(str); return null; } @@ -106,6 +122,7 @@ WebGLUtil = (function() { return { setErrorFunc: setErrorFunc, + setWarningFunc: setWarningFunc, getWebGL: getWebGL, createShaderById: createShaderById,