How to listen for this event to end?
.restoreContext
If there is a .then
method is the best , I can know when the event is end,and do my work
How to listen for this event to end?
.restoreContext
If there is a .then
method is the best , I can know when the event is end,and do my work
You can listen for webglcontextrestored
: WebGL Specification
I do this
const gl = this.renderer.getContext();
if (gl && gl.getExtension('WEBGL_lose_context')) {
gl.canvas.addEventListener(
'webglcontextlost',
this.boundOnWebGLContextLost,
false
);
gl.canvas.addEventListener(
'webglcontextrestored',
this.boundOnWebGLContextRestored,
false
);
}
I can then run some setup on boundOnWebGLContextRestored
which is bound to my webglapp class.
Thank you for your answer.restoredContext It will take some time, which seems impossible to capture, and the screen will be white for a period of time.
It will block the process of the JavaScript
What’s your use case?
It’s not something that should happen in the normal execution of your app.
The process involves ‘awaiting a restorable render buffer’ so yes it will take some time.
In a single page application I leave the current route and execute the forceContextLoss method and in returning to this route I execute forceContextRestored to recover the rendering of webgl.
In the process of forceContextRestored, because the volume of the model is a little large, there will be a 3s white screen, but this is better than 10s for reloading those models.
The current problem is that the 3s white screen, which will block the JavaScript process, causing the web page not to appear until the end of the white screen.