blob: d37115b28a39a97a47bf727d8a4c57a0a50d496c [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="resources/webgl-test.js"></script>
</head>
<body>
<canvas id="c" width="40" height="40"></canvas>
<script>
description("Checks for proper getActiveUniforms() behavior on a simple WebGL 2 program.");
if (window.internals)
internals.settings.setWebGL2Enabled(true);
var canvas = document.getElementById("c");
var gl = canvas.getContext("webgl2");
shouldBe("gl.getError()", "gl.NO_ERROR");
var program = loadStandardProgram(gl);
var mvpLocation = gl.getUniformLocation(program, "u_modelViewProjMatrix");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_TYPE)", "[gl.FLOAT_MAT4]");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_SIZE)", "[1]");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_BLOCK_INDEX)", "[-1]");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_OFFSET)", "[-1]");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_ARRAY_STRIDE)", "[-1]");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_MATRIX_STRIDE)", "[-1]");
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_IS_ROW_MAJOR)", "[0]");
shouldBe("gl.getError()", "gl.NO_ERROR");
// Invalid parameter for getActiveUniforms() in WebGL2.
shouldBe("gl.getActiveUniforms(program, [mvpLocation], gl.UNIFORM_NAME_LENGTH)", "null");
shouldBe("gl.getError()", "gl.INVALID_ENUM");
</script>
</body>
</html>