From 79c14c8fd0f01a123306fac15742871636305124 Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Tue, 18 Jul 2017 16:10:04 -0700 Subject: [PATCH] WebGLShadowMap context lost support and clean up. --- src/renderers/WebGLRenderer.js | 4 ++-- src/renderers/webgl/WebGLShadowMap.js | 15 +++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index d2b2f7d78b..4f48042100 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -309,7 +309,7 @@ function WebGLRenderer( parameters ) { // shadow map - var shadowMap = new WebGLShadowMap( _this, shadowsArray, objects, capabilities.maxTextureSize ); + var shadowMap = new WebGLShadowMap( _this, objects, capabilities.maxTextureSize ); this.shadowMap = shadowMap; @@ -1131,7 +1131,7 @@ function WebGLRenderer( parameters ) { if ( _clippingEnabled ) _clipping.beginShadows(); - shadowMap.render( scene, camera ); + shadowMap.render( shadowsArray, scene, camera ); lights.setup( lightsArray, shadowsArray, camera ); diff --git a/src/renderers/webgl/WebGLShadowMap.js b/src/renderers/webgl/WebGLShadowMap.js index 93300ce870..d4f1ea95f8 100644 --- a/src/renderers/webgl/WebGLShadowMap.js +++ b/src/renderers/webgl/WebGLShadowMap.js @@ -16,7 +16,7 @@ import { Vector2 } from '../../math/Vector2'; import { Matrix4 } from '../../math/Matrix4'; import { Frustum } from '../../math/Frustum'; -function WebGLShadowMap( _renderer, _shadows, _objects, maxTextureSize ) { +function WebGLShadowMap( _renderer, _objects, maxTextureSize ) { var _gl = _renderer.context, _state = _renderer.state, @@ -99,12 +99,12 @@ function WebGLShadowMap( _renderer, _shadows, _objects, maxTextureSize ) { this.renderReverseSided = true; this.renderSingleSided = true; - this.render = function ( scene, camera ) { + this.render = function ( lights, scene, camera ) { if ( scope.enabled === false ) return; if ( scope.autoUpdate === false && scope.needsUpdate === false ) return; - if ( _shadows.length === 0 ) return; + if ( lights.length === 0 ) return; // Set GL state for depth map. _state.disable( _gl.BLEND ); @@ -116,9 +116,9 @@ function WebGLShadowMap( _renderer, _shadows, _objects, maxTextureSize ) { var faceCount; - for ( var i = 0, il = _shadows.length; i < il; i ++ ) { + for ( var i = 0, il = lights.length; i < il; i ++ ) { - var light = _shadows[ i ]; + var light = lights[ i ]; var shadow = light.shadow; var isPointLight = light && light.isPointLight; @@ -258,11 +258,6 @@ function WebGLShadowMap( _renderer, _shadows, _objects, maxTextureSize ) { } - // Restore GL state. - var clearColor = _renderer.getClearColor(); - var clearAlpha = _renderer.getClearAlpha(); - _renderer.setClearColor( clearColor, clearAlpha ); - scope.needsUpdate = false; }; -- GitLab