Si dovrebbe essere in grado di fare qualcosa del genere sul renderer è stato inizializzato e presupponendo naturalmente che la variabile in cui è stato salvato il renderer sia denominata 'renderer'.
renderer.context.canvas.addEventListener("webglcontextlost", function(event) {
event.preventDefault();
// animationID would have been set by your call to requestAnimationFrame
cancelAnimationFrame(animationID);
}, false);
renderer.context.canvas.addEventListener("webglcontextrestored", function(event) {
// Do something
}, false);
proposito - loseContext non è definita da Three.js e non è un metodo standard di questo tempo. Puoi simularlo facendo quanto segue.
caricare questo script prima Three.js
https://github.com/vorg/webgl-debug
Poi, dopo aver iniziato la tua renderer è possibile agganciare il loseContext alla tela.
renderer.context.canvas = WebGLDebugUtils.makeLostContextSimulatingCanvas(renderer.context.canvas);
Per attivare il comando loseContext lo si farebbe.
renderer.context.canvas.loseContext();
E si può anche avere un errore dopo un numero impostato di chiamate facendo questo.
renderer.context.canvas.loseContextInNCalls(5);
fonte
2013-01-28 19:00:38
Potresti dirmi come faresti se non stai usando Three.js. In altre parole, se si utilizza l'API WebGL non elaborata. Grazie. – HartleySan
metodo non threejs https://www.khronos.org/webgl/wiki/HandlingContextLost – mattdlockyer
Durante l'utilizzo di 'webgl-debug.js' con ThreeJS, ho scoperto che dovevo chiamare manualmente' renderer.context.canvas.getContext (" webgl ");' prima di usare 'renderer.context.canvas.loseContext();' – sweeds