gpt4 book ai didi

上下文丢失后 webglcontextrestored 事件未触发

转载 作者:行者123 更新时间:2023-12-04 17:59:37 24 4
gpt4 key购买 nike

我正在编写一个 webgl 应用程序,并试图在它丢失后恢复 webgl 上下文,但似乎没有触发上下文恢复事件。

我正在运行以下代码,并期望根据 WebGL specification 记录“上下文丢失”和“上下文恢复”和关于 WebGL wiki 的文档.当我在 Chrome (50.0.2661.102 m) 和 Firefox (46.0.1) 的 jsfiddle 中运行下面的代码时,我看到记录了“上下文丢失”但没有记录“上下文恢复”,并且我在我的电子应用程序中看到了相同的行为.

var canvas = document.createElement( 'canvas' )
var gl = canvas.getContext("webgl");
var WEBGL_lose_context = gl.getExtension('WEBGL_lose_context');

canvas.addEventListener("webglcontextlost", function(e) {
log("context lost");
e.preventDefault();
}, false);

canvas.addEventListener("webglcontextrestored", function() {
log("context restored");
}, false);

WEBGL_lose_context.loseContext();

function log(msg) {
var div = document.createElement("pre");
div.appendChild(document.createTextNode(msg));
document.body.appendChild(div);
}

我是否需要做任何额外的事情来触发上下文恢复事件?我是否误解了 WebGL 规范?

最佳答案

在使用 WEBGL_lose_context 的情况下,您必须调用 WEBGL_lose_context.restoreContext()WEBGL_lose_context 仅用于测试。在正常情况下,由浏览器决定何时恢复上下文。例如,如果您的选项卡不是前面的选项卡,而另一个选项卡需要所有 WebGL 内存,您的选项卡可能会丢失上下文事件。稍后当您的选项卡成为事件选项卡时,您最终将获得恢复上下文事件。

See conformance test here

关于上下文丢失后 webglcontextrestored 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37186897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com