From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../webgl-conf/checkout/conformance/more/util.js | 1287 ++++++++++++++++++++ 1 file changed, 1287 insertions(+) create mode 100644 dom/canvas/test/webgl-conf/checkout/conformance/more/util.js (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/more/util.js') diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/more/util.js b/dom/canvas/test/webgl-conf/checkout/conformance/more/util.js new file mode 100644 index 0000000000..78cc08a652 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/more/util.js @@ -0,0 +1,1287 @@ +/* +Utilities for the OpenGL ES 2.0 HTML Canvas context +*/ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + +function loadTexture(gl, elem, mipmaps) { + var tex = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, tex); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, elem); + if (mipmaps != false) + gl.generateMipmap(gl.TEXTURE_2D); + 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); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + if (mipmaps) + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR); + else + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); + return tex; +} + +function getShader(gl, id) { + var shaderScript = document.getElementById(id); + if (!shaderScript) { + throw(new Error("No shader element with id: "+id)); + } + + var str = ""; + var k = shaderScript.firstChild; + while (k) { + if (k.nodeType == 3) + str += k.textContent; + k = k.nextSibling; + } + + var shader; + if (shaderScript.type == "x-shader/x-fragment") { + shader = gl.createShader(gl.FRAGMENT_SHADER); + } else if (shaderScript.type == "x-shader/x-vertex") { + shader = gl.createShader(gl.VERTEX_SHADER); + } else { + throw(new Error("Unknown shader type "+shaderScript.type)); + } + + gl.shaderSource(shader, str); + gl.compileShader(shader); + + if (gl.getShaderParameter(shader, gl.COMPILE_STATUS) != 1) { + var ilog = gl.getShaderInfoLog(shader); + gl.deleteShader(shader); + throw(new Error("Failed to compile shader "+shaderScript.id + ", Shader info log: " + ilog)); + } + return shader; +} + +function loadShaderArray(gl, shaders) { + var id = gl.createProgram(); + var shaderObjs = []; + for (var i=0; i