haikuwebkit/LayoutTests/fast/canvas/webgl/webglcontextchangedevent.html

56 lines
1.3 KiB
HTML

<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function log(msg)
{
let p = document.createElement("p");
p.textContent = msg;
document.body.appendChild(p);
}
function runTest()
{
log("We should see three changed events.");
let changedEventsSeen = 0;
let handleChangedEvent = (event) => {
log("Saw webglcontextchanged event.");
let gl = event.target.getContext("webgl");
gl.clearColor(0, 1, 0, 1);
gl.clear(gl.COLOR_BUFFER_BIT);
changedEventsSeen++;
if (changedEventsSeen == 3) {
if (window.testRunner)
testRunner.notifyDone();
else
log("Test done.");
}
}
document.querySelectorAll("canvas").forEach((c) =>
{
c.addEventListener("webglcontextchanged", handleChangedEvent, false);
let gl = c.getContext("webgl");
gl.clearColor(1, 0, 0, 1);
gl.clear(gl.COLOR_BUFFER_BIT);
});
let gl = document.querySelector("canvas").getContext("webgl");
if (window.internals)
window.internals.simulateEventForWebGLContext("ContextChange", gl);
else
log("To run the test, trigger a GPU change manually.");
}
window.addEventListener("load", runTest, false);
</script>
<canvas></canvas>
<canvas></canvas>
<canvas></canvas>