blob: 8caaf6600e2386318b159b3c8a16f36db312ebf9 [file] [log] [blame]
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="resources/webgl-test.js"></script>
<script src="resources/webgl-test-utils.js"> </script>
</head>
<script>
description("Checks that copying canvas results to a WebGL texture functions without error.");
var wtu = WebGLTestUtils;
var canvas;
var gl;
var ctx;
function draw()
{
ctx.fillStyle = "rgb(200, 0, 0)";
ctx.fillRect(0, 0, 256, 256);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d);
wtu.drawQuad(gl);
wtu.checkCanvasRect(gl, 0, 0, 1, 1, [200, 0, 0, 255], "Should have rendered red.", 1);
ctx.fillStyle = "rgb(0, 0, 200)";
ctx.fillRect(0, 0, 256, 256);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas2d);
ctx.fillStyle = "rgb(200, 0, 0)";
ctx.fillRect(0, 0, 256, 256);
wtu.drawQuad(gl);
wtu.checkCanvasRect(gl, 0, 0, 1, 1, [0, 0, 200, 255], "Should have rendered blue.", 1);
finishTest();
}
window.onload = function()
{
if (window.initNonKhronosFramework)
window.initNonKhronosFramework(true);
canvas = document.getElementById("webgl-canvas");
gl = create3DContext(canvas);
canvas2d = document.getElementById("canvas-2d");
// Set a size that ensures a hardware-accelerated canvas.
canvas2d.width = 256;
canvas2d.height = 256;
ctx = canvas2d.getContext("2d");
var program = wtu.setupTexturedQuad(gl);
var bufferObjects = wtu.setupUnitQuad(gl);
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
gl.uniform1i(gl.getUniformLocation(program, "tex"), 0);
gl.viewport(0, 0, canvas.width, canvas.height);
// Ensure that the compositor has become active.
setTimeout(draw, 0);
}
</script>
<body>
<div id="description"></div>
<div id="console"></div>
<canvas id="webgl-canvas" width="32px" height="32px"></canvas>
<canvas id="canvas-2d" style="-webkit-transform: translateZ(0);"></canvas>
</body>
</html>