diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index f15b558f5dea54a2378a6e32469bf80d10c3f2d8..f4fcb1cc992f62893783226690437e4de9574152 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -183,17 +183,7 @@ THREE.WebGLRenderer = function ( parameters ) { } - _canvas.addEventListener( 'webglcontextlost', function ( event ) { - - event.preventDefault(); - - resetGLState(); - setDefaultGLState(); - - objects.clear(); - properties.clear(); - - }, false ); + _canvas.addEventListener( 'webglcontextlost', onContextLost, false ); } catch ( error ) { @@ -617,8 +607,26 @@ THREE.WebGLRenderer = function ( parameters ) { this.resetGLState = resetGLState; + this.dispose = function() { + + _canvas.removeEventListener( 'webglcontextlost', onContextLost, false ); + + }; + // Events + function onContextLost( event ) { + + event.preventDefault(); + + resetGLState(); + setDefaultGLState(); + + objects.clear(); + properties.clear(); + + }; + function onTextureDispose( event ) { var texture = event.target;