diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index ef40d08aab250b5cde91314bfce58c33e3c93997..d81acadb1bfa823fa1a9ec68d23cfcfa80bb3209 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -270,7 +270,7 @@ function WebGLRenderer( parameters ) { attributes = new WebGLAttributes( _gl ); geometries = new WebGLGeometries( _gl, attributes, _infoMemory ); objects = new WebGLObjects( _gl, geometries, _infoRender ); - programCache = new WebGLPrograms( _this, capabilities ); + programCache = new WebGLPrograms( _this, extensions, capabilities ); lights = new WebGLLights(); renderLists = new WebGLRenderLists(); diff --git a/src/renderers/webgl/WebGLProgram.js b/src/renderers/webgl/WebGLProgram.js index 89268e0af60c9430082b2b2b0b74d971b1b31266..ea17d5069b892f8a6cac59b4c08ccfad70cd70dc 100644 --- a/src/renderers/webgl/WebGLProgram.js +++ b/src/renderers/webgl/WebGLProgram.js @@ -194,11 +194,10 @@ function unrollLoops( string ) { } -function WebGLProgram( renderer, code, material, shader, parameters ) { +function WebGLProgram( renderer, extensions, code, material, shader, parameters ) { var gl = renderer.context; - var extensions = material.extensions; var defines = material.defines; var vertexShader = shader.vertexShader; @@ -278,7 +277,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) { // - var customExtensions = generateExtensions( extensions, parameters, renderer.extensions ); + var customExtensions = generateExtensions( material.extensions, parameters, extensions ); var customDefines = generateDefines( defines ); @@ -359,7 +358,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) { parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', - parameters.logarithmicDepthBuffer && renderer.extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '', + parameters.logarithmicDepthBuffer && extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 modelMatrix;', 'uniform mat4 modelViewMatrix;', @@ -466,9 +465,9 @@ function WebGLProgram( renderer, code, material, shader, parameters ) { parameters.physicallyCorrectLights ? "#define PHYSICALLY_CORRECT_LIGHTS" : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', - parameters.logarithmicDepthBuffer && renderer.extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '', + parameters.logarithmicDepthBuffer && extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '', - parameters.envMap && renderer.extensions.get( 'EXT_shader_texture_lod' ) ? '#define TEXTURE_LOD_EXT' : '', + parameters.envMap && extensions.get( 'EXT_shader_texture_lod' ) ? '#define TEXTURE_LOD_EXT' : '', 'uniform mat4 viewMatrix;', 'uniform vec3 cameraPosition;', @@ -595,12 +594,11 @@ function WebGLProgram( renderer, code, material, shader, parameters ) { var cachedUniforms; - this.getUniforms = function() { + this.getUniforms = function () { if ( cachedUniforms === undefined ) { - cachedUniforms = - new WebGLUniforms( gl, program, renderer ); + cachedUniforms = new WebGLUniforms( gl, program, renderer ); } @@ -612,7 +610,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) { var cachedAttributes; - this.getAttributes = function() { + this.getAttributes = function () { if ( cachedAttributes === undefined ) { diff --git a/src/renderers/webgl/WebGLPrograms.js b/src/renderers/webgl/WebGLPrograms.js index ab24bc063719340f0ad084f11759df428795db19..eccc95aab3a1ac5f2fb258efc193586ddb4cf5f2 100644 --- a/src/renderers/webgl/WebGLPrograms.js +++ b/src/renderers/webgl/WebGLPrograms.js @@ -5,7 +5,7 @@ import { BackSide, DoubleSide, CubeUVRefractionMapping, CubeUVReflectionMapping, GammaEncoding, LinearEncoding } from '../../constants'; import { WebGLProgram } from './WebGLProgram'; -function WebGLPrograms( renderer, capabilities ) { +function WebGLPrograms( renderer, extensions, capabilities ) { var programs = []; @@ -269,7 +269,7 @@ function WebGLPrograms( renderer, capabilities ) { if ( program === undefined ) { - program = new WebGLProgram( renderer, code, material, shader, parameters ); + program = new WebGLProgram( renderer, extensions, code, material, shader, parameters ); programs.push( program ); }