Я пишу приложение webgl и пытаюсь восстановить контекст webgl после его потери, но событие, восстановленное в контексте, похоже, не срабатывает.webglcontextrestored event not firing after context lost
Я запускаю следующий код и ожидаю, что оба «контекста потеряли» и «восстановленный контекст» будут зарегистрированы на основе WebGL specification и документации по WebGL wiki. Когда я запускаю код ниже в jsfiddle как в Chrome (50.0.2661.102 м), так и в Firefox (46.0.1), я вижу «потерянный контекст», но не «восстановленный контекст», и я наблюдаю то же поведение в своем электронном приложении ,
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?
Примечание стороны: вызов 'getExtension («WEBGL_lose_context»)' больше не работает после потери контекста, так что вам нужно кэшировать расширение где-то. – Thomas