1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/webgl-mochitest/test_noprog_draw.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,80 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 1.6 + 1.7 +<title>WebGL test: Drawing with a null program</title> 1.8 + 1.9 +<script src="/tests/SimpleTest/SimpleTest.js"></script> 1.10 +<link rel="stylesheet" href="/tests/SimpleTest/test.css"> 1.11 +<script src="driver-info.js"></script> 1.12 +<script src="webgl-util.js"></script> 1.13 + 1.14 + 1.15 +<script id="vs" type="x-shader/x-vertex"> 1.16 + 1.17 +void main(void) { 1.18 + gl_PointSize = 16.0; 1.19 + gl_Position = vec4(0.0, 0.0, 0.0, 1.0); 1.20 +} 1.21 + 1.22 +</script> 1.23 +<script id="fs" type="x-shader/x-fragment"> 1.24 + 1.25 +precision mediump float; 1.26 + 1.27 +void main(void) { 1.28 + gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); 1.29 +} 1.30 + 1.31 +</script> 1.32 +<body> 1.33 +<canvas id="c" width="64" height="64"></canvas> 1.34 +<script> 1.35 + 1.36 +// Give ourselves a scope to return early from: 1.37 +(function() { 1.38 + var gl = WebGLUtil.getWebGL('c'); 1.39 + if (!gl) { 1.40 + todo(false, 'WebGL is unavailable.'); 1.41 + return; 1.42 + } 1.43 + 1.44 + function errorFunc(str) { 1.45 + ok(false, 'Error: ' + str); 1.46 + } 1.47 + WebGLUtil.setErrorFunc(errorFunc); 1.48 + WebGLUtil.setWarningFunc(errorFunc); 1.49 + 1.50 + gl.disable(gl.DEPTH_TEST); 1.51 + 1.52 + var prog = WebGLUtil.createProgramByIds(gl, 'vs', 'fs'); 1.53 + if (!prog) { 1.54 + ok(false, 'Program linking should succeed.'); 1.55 + return; 1.56 + } 1.57 + 1.58 + function checkGLError(func, info, refValue) { 1.59 + if (!refValue) 1.60 + refValue = 0; 1.61 + 1.62 + var error = gl.getError(); 1.63 + func(error == refValue, 1.64 + '[' + info + '] gl.getError should be 0x' + refValue.toString(16) + 1.65 + ', was 0x' + error.toString(16) + '.'); 1.66 + } 1.67 + 1.68 + // Start drawing 1.69 + checkGLError(ok, 'after setup'); 1.70 + 1.71 + gl.useProgram(prog); 1.72 + gl.drawArrays(gl.POINTS, 0, 1); 1.73 + checkGLError(ok, 'after non-null-program DrawArrays'); 1.74 + 1.75 + gl.useProgram(null); 1.76 + gl.drawArrays(gl.POINTS, 0, 1); 1.77 + checkGLError(ok, 'after null-program DrawArrays', gl.INVALID_OPERATION); 1.78 + 1.79 + ok(true, 'Test complete.'); 1.80 +})(); 1.81 + 1.82 +</script> 1.83 +