summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-mochitest/test_texsubimage_float.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_texsubimage_float.html
parentInitial commit. (diff)
downloadfirefox-esr-upstream.tar.xz
firefox-esr-upstream.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_texsubimage_float.html')
-rw-r--r--dom/canvas/test/webgl-mochitest/test_texsubimage_float.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-mochitest/test_texsubimage_float.html b/dom/canvas/test/webgl-mochitest/test_texsubimage_float.html
new file mode 100644
index 0000000000..991066e41b
--- /dev/null
+++ b/dom/canvas/test/webgl-mochitest/test_texsubimage_float.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML>
+<title>WebGL test: bug 1003607</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>
+<body>
+<canvas id="c"></canvas>
+<script>
+
+// Give ourselves a scope to return early from:
+(function() {
+ var gl = c.getContext('webgl');
+ if (!gl) {
+ todo(false, 'WebGL is unavailable.');
+ return;
+ }
+
+ function checkGLError(func, info, reference) {
+ var error = gl.getError();
+ var prefix = info ? ('[' + info + '] ') : '';
+ var text = 'gl.getError should be 0x' + reference.toString(16) +
+ ', was 0x' + error.toString(16) + '.';
+ func(error == reference, prefix + text);
+ }
+
+ // Begin test:
+ if (!gl.getExtension('OES_texture_float')) {
+ todo(false, 'Not having this extension is fine.');
+ return;
+ }
+ var tex = gl.createTexture();
+ gl.bindTexture(gl.TEXTURE_2D, tex);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
+ checkGLError(ok, 'texture parameter setup should succeed', gl.NO_ERROR);
+
+ // Generate data
+ var width = 2;
+ var height = 2;
+ var numChannels = 4;
+ var data = new Float32Array(width * height * numChannels);
+ for (var ii = 0; ii < data.length; ++ii) {
+ data[ii] = 10000;
+ }
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.FLOAT, data);
+ checkGLError(ok, 'floating-point texture allocation should succeed', gl.NO_ERROR);
+
+ // Try respecifying data
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, gl.RGBA, gl.FLOAT, data);
+ checkGLError(ok, 'floating-point texture sub image should succeed', gl.NO_ERROR);
+})();
+
+</script>