The webglcontextrestored event of the WebGL API is fired if the user agent restores the drawing buffer for a WebGLRenderingContext object.
Once the context is restored, WebGL resources such as textures and buffers that were created before the context was lost are no longer valid. You need to reinitialize the state of your WebGL application and recreate resources.
| Bubbles | Yes |
| Cancelable | Yes |
| Target objects | HTMLCanvasElement |
| Interface | WebGLContextEvent |
Example
With the help of the WEBGL_lose_context extension, you can simulate the webglcontextrestored event:
var canvas = document.getElementById('canvas');
var gl = canvas.getContext('webgl');
canvas.addEventListener('webglcontextrestored', function(e) {
console.log(e);
}, false);
gl.getExtension('WEBGL_lose_context').restoreContext();
// "webglcontextrestored" event is logged.
Inheritance
The webglcontextrestored event implements the WebGLContextEvent interface, which inherits from Event. You can use the properties and methods defined on these interfaces.
<div id="interfaceDiagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveAspectRatio="xMinYMin meet"><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/Event" target="_top"><rect x="1" y="1" width="75" height="50" fill="#fff" stroke="#D4DDE4" stroke-width="2px" /><text x="38.5" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">Event</text></a><polyline points="76,25 86,20 86,30 76,25" stroke="#D4DDE4" fill="none"/><line x1="86" y1="25" x2="116" y2="25" stroke="#D4DDE4"/><a xlink:href="https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent" target="_top"><rect x="116" y="1" width="170" height="50" fill="#F4F7F8" stroke="#D4DDE4" stroke-width="2px" /><text x="201" y="30" font-size="12px" font-family="Consolas,Monaco,Andale Mono,monospace" fill="#4D4E53" text-anchor="middle" alignment-baseline="middle">WebGLContextEvent</text></a></svg></div>
a:hover text { fill: #0095DD; pointer-events: all;}
Specifications
| Specification | Status | Comment |
|---|---|---|
| WebGL 1.0 The definition of 'webglcontextrestored' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | 9 | (Yes) | 4.0 (2.0) | 11 | 12 | 5.1 |
| Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | ? | 25 | (Yes) | 4.0 (2.0) | ? | 12 | 8.0 |