<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="resources/webgl-test.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>

<script>

description('Tests passing a vec4 to a uniform and a canvas to texImage2D');

var gl = create3DContext();
var floatProgram = loadProgram(gl, "resources/floatUniformShader.vert", "resources/noopUniformShader.frag");
shouldBeUndefined("gl.useProgram(floatProgram)");
var fval4Loc = gl.getUniformLocation(floatProgram, "fval4");
shouldBe("gl.getError()", "gl.NO_ERROR");
shouldBeUndefined("gl.uniform4fv(fval4Loc, new Float32Array([0.1, 0.2, 0.4, 1.0]));");

var tmpcanvas = document.createElement("canvas");
tmpcanvas.width = 2;
tmpcanvas.height = 2;
var texture = gl.createTexture();
shouldBeUndefined("gl.bindTexture(gl.TEXTURE_2D, texture)");
shouldBeUndefined("gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, tmpcanvas)");

</script>
</body>
</html>
