mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
a392b3f339
This was filed upstream at: http://www.khronos.org/bugzilla/show_bug.cgi?id=472 This just moves around the canvas in the html so it's visible, so it actually gets composited. Otherwise the test fails.
87 lines
2.3 KiB
HTML
87 lines
2.3 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>WebGL required buffer clear behaviour test</title>
|
|
<link rel="stylesheet" href="../resources/js-test-style.css"/>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
<script src="resources/webgl-test.js"> </script>
|
|
<script src="resources/webgl-test-utils.js"> </script>
|
|
<style type="text/css">
|
|
body {
|
|
height: 3000px;
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
|
|
var iter = 0;
|
|
var gl;
|
|
|
|
var wtu = WebGLTestUtils;
|
|
|
|
function checkPixel(gl, x, y, c) {
|
|
var buf = new Uint8Array(4);
|
|
gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf);
|
|
|
|
return buf[0] == c[0] &&
|
|
buf[1] == c[1] &&
|
|
buf[2] == c[2] &&
|
|
buf[3] == c[3];
|
|
}
|
|
|
|
function timer() {
|
|
if (iter == 0) {
|
|
// some random hacky stuff to make sure that we get a compositing step
|
|
window.scrollBy(0, 10);
|
|
window.scrollBy(0, -10);
|
|
iter++;
|
|
|
|
setTimeout(timer, 500);
|
|
} else if (iter == 1) {
|
|
// scissor was set earlier
|
|
gl.clearColor(0, 0, 1, 1);
|
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
|
|
wtu.checkCanvasRect(gl, 0, 10, 10, 10, [0, 0, 255, 255], "cleared corner should be blue, stencil should be preserved");
|
|
wtu.checkCanvasRect(gl, 0, 0, 10, 10, [0, 0, 0, 0], "remainder of buffer should be cleared");
|
|
|
|
finishTest();
|
|
}
|
|
}
|
|
|
|
function go() {
|
|
description("This test ensures WebGL implementations correctly clear the drawing buffer on composite if preserveDrawingBuffer is false.");
|
|
|
|
debug("");
|
|
|
|
gl = create3DContext(document.getElementById("c"));
|
|
if (!gl) {
|
|
finishTest();
|
|
return;
|
|
}
|
|
|
|
shouldBeTrue('gl.getContextAttributes().preserveDrawingBuffer == false');
|
|
|
|
gl.clearColor(1, 0, 0, 1);
|
|
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
|
|
|
|
// enable scissor here, before compositing, to make sure it's correctly
|
|
// ignored and restored
|
|
gl.scissor(0, 10, 10, 10);
|
|
gl.enable(gl.SCISSOR_TEST);
|
|
|
|
setTimeout(timer, 500);
|
|
}
|
|
|
|
window.addEventListener("load", go, false);
|
|
|
|
successfullyParsed = true;
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<!-- Important to put the canvas at the top so that it's always visible even in the test suite runner.
|
|
Otherwise it just doesn't get composited in Firefox. -->
|
|
<canvas width="20" height="20" style="border: 1px solid blue;" id="c"></canvas>
|
|
<div id="description"></div>
|
|
<div id="console"></div>
|
|
</body>
|
|
</html> |