summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-mochitest/test_noprog_draw.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/canvas/test/webgl-mochitest/test_noprog_draw.html
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/canvas/test/webgl-mochitest/test_noprog_draw.html')
-rw-r--r--dom/canvas/test/webgl-mochitest/test_noprog_draw.html74
1 files changed, 74 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-mochitest/test_noprog_draw.html b/dom/canvas/test/webgl-mochitest/test_noprog_draw.html
new file mode 100644
index 0000000000..37def57fca
--- /dev/null
+++ b/dom/canvas/test/webgl-mochitest/test_noprog_draw.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+
+<title>WebGL test: Drawing with a null program</title>
+
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css">
+<script src="driver-info.js"></script>
+<script src="webgl-util.js"></script>
+
+
+<script id="vs" type="x-shader/x-vertex">
+
+void main(void) {
+ gl_PointSize = 16.0;
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
+}
+
+</script>
+<script id="fs" type="x-shader/x-fragment">
+
+precision mediump float;
+
+void main(void) {
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+</script>
+<body>
+<canvas id="c" width="64" height="64"></canvas>
+<script>
+
+// Give ourselves a scope to return early from:
+(function() {
+ var gl = c.getContext('webgl');
+ if (!gl) {
+ todo(false, 'WebGL is unavailable.');
+ return;
+ }
+
+ gl.disable(gl.DEPTH_TEST);
+
+ var prog = WebGLUtil.createProgramByIds(gl, 'vs', 'fs');
+ if (!prog) {
+ ok(false, 'Program linking should succeed.');
+ return;
+ }
+
+ function checkGLError(func, info, refValue) {
+ if (!refValue)
+ refValue = 0;
+
+ var error = gl.getError();
+ func(error == refValue,
+ '[' + info + '] gl.getError should be 0x' + refValue.toString(16) +
+ ', was 0x' + error.toString(16) + '.');
+ }
+
+ // Start drawing
+ checkGLError(ok, 'after setup');
+
+ gl.useProgram(prog);
+ gl.drawArrays(gl.POINTS, 0, 1);
+ checkGLError(ok, 'after non-null-program DrawArrays');
+
+ gl.useProgram(null);
+ gl.drawArrays(gl.POINTS, 0, 1);
+ checkGLError(ok, 'after null-program DrawArrays', gl.INVALID_OPERATION);
+
+ ok(true, 'Test complete.');
+})();
+
+</script>
+