@@ -115,15 +115,13 @@ function getToneMappingFunction( functionName, toneMapping ) {
115115
116116}
117117
118- function generateExtensions ( extensions , parameters , rendererExtensions ) {
119-
120- extensions = extensions || { } ;
118+ function generateExtensions ( parameters ) {
121119
122120 var chunks = [
123- ( extensions . derivatives || parameters . envMapCubeUV || parameters . bumpMap || parameters . tangentSpaceNormalMap || parameters . clearcoatNormalMap || parameters . flatShading || parameters . shaderID === 'physical' ) ? '#extension GL_OES_standard_derivatives : enable' : '' ,
124- ( extensions . fragDepth || parameters . logarithmicDepthBuffer ) && rendererExtensions . get ( 'EXT_frag_depth' ) ? '#extension GL_EXT_frag_depth : enable' : '' ,
125- ( extensions . drawBuffers ) && rendererExtensions . get ( 'WEBGL_draw_buffers' ) ? '#extension GL_EXT_draw_buffers : require' : '' ,
126- ( extensions . shaderTextureLOD || parameters . envMap ) && rendererExtensions . get ( 'EXT_shader_texture_lod' ) ? '#extension GL_EXT_shader_texture_lod : enable' : ''
121+ ( parameters . extensionDerivatives || parameters . envMapCubeUV || parameters . bumpMap || parameters . tangentSpaceNormalMap || parameters . clearcoatNormalMap || parameters . flatShading || parameters . shaderID === 'physical' ) ? '#extension GL_OES_standard_derivatives : enable' : '' ,
122+ ( parameters . extensionFragDepth || parameters . logarithmicDepthBuffer ) && parameters . rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '' ,
123+ ( parameters . extensionDrawBuffers && parameters . rendererExtensionDrawBuffers ) ? '#extension GL_EXT_draw_buffers : require' : '' ,
124+ ( parameters . extensionShaderTextureLOD || parameters . envMap ) && parameters . rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : ''
127125 ] ;
128126
129127 return chunks . filter ( filterEmptyLine ) . join ( '\n' ) ;
@@ -377,14 +375,14 @@ function generateEnvMapBlendingDefine( parameters ) {
377375
378376}
379377
380- function WebGLProgram ( renderer , extensions , cacheKey , material , shader , parameters ) {
378+ function WebGLProgram ( renderer , cacheKey , parameters ) {
381379
382380 var gl = renderer . getContext ( ) ;
383381
384- var defines = material . defines ;
382+ var defines = parameters . defines ;
385383
386- var vertexShader = shader . vertexShader ;
387- var fragmentShader = shader . fragmentShader ;
384+ var vertexShader = parameters . vertexShader ;
385+ var fragmentShader = parameters . fragmentShader ;
388386 var shadowMapTypeDefine = generateShadowMapTypeDefine ( parameters ) ;
389387 var envMapTypeDefine = generateEnvMapTypeDefine ( parameters ) ;
390388 var envMapModeDefine = generateEnvMapModeDefine ( parameters ) ;
@@ -393,7 +391,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
393391
394392 var gammaFactorDefine = ( renderer . gammaFactor > 0 ) ? renderer . gammaFactor : 1.0 ;
395393
396- var customExtensions = parameters . isWebGL2 ? '' : generateExtensions ( material . extensions , parameters , extensions ) ;
394+ var customExtensions = parameters . isWebGL2 ? '' : generateExtensions ( parameters ) ;
397395
398396 var customDefines = generateDefines ( defines ) ;
399397
@@ -403,7 +401,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
403401
404402 var numMultiviewViews = parameters . numMultiviewViews ;
405403
406- if ( material . isRawShaderMaterial ) {
404+ if ( parameters . isRawShaderMaterial ) {
407405
408406 prefixVertex = [
409407
@@ -436,7 +434,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
436434
437435 generatePrecision ( parameters ) ,
438436
439- '#define SHADER_NAME ' + shader . name ,
437+ '#define SHADER_NAME ' + parameters . shaderName ,
440438
441439 customDefines ,
442440
@@ -488,7 +486,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
488486 parameters . sizeAttenuation ? '#define USE_SIZEATTENUATION' : '' ,
489487
490488 parameters . logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '' ,
491- parameters . logarithmicDepthBuffer && ( parameters . isWebGL2 || extensions . get ( 'EXT_frag_depth' ) ) ? '#define USE_LOGDEPTHBUF_EXT' : '' ,
489+ parameters . logarithmicDepthBuffer && ( parameters . isWebGL2 || parameters . rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '' ,
492490
493491 'uniform mat4 modelMatrix;' ,
494492 'uniform mat4 modelViewMatrix;' ,
@@ -562,7 +560,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
562560
563561 generatePrecision ( parameters ) ,
564562
565- '#define SHADER_NAME ' + shader . name ,
563+ '#define SHADER_NAME ' + parameters . name ,
566564
567565 customDefines ,
568566
@@ -614,9 +612,9 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
614612 parameters . physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '' ,
615613
616614 parameters . logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '' ,
617- parameters . logarithmicDepthBuffer && ( parameters . isWebGL2 || extensions . get ( 'EXT_frag_depth' ) ) ? '#define USE_LOGDEPTHBUF_EXT' : '' ,
615+ parameters . logarithmicDepthBuffer && ( parameters . isWebGL2 || parameters . rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '' ,
618616
619- ( ( material . extensions ? material . extensions . shaderTextureLOD : false ) || parameters . envMap ) && ( parameters . isWebGL2 || extensions . get ( 'EXT_shader_texture_lod' ) ) ? '#define TEXTURE_LOD_EXT' : '' ,
617+ ( parameters . extensionShaderTextureLOD || parameters . envMap ) && ( parameters . isWebGL2 || parameters . rendererExtensionShaderTextureLod ) ? '#define TEXTURE_LOD_EXT' : '' ,
620618
621619 'uniform mat4 viewMatrix;' ,
622620 'uniform vec3 cameraPosition;' ,
@@ -637,7 +635,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
637635 parameters . lightMapEncoding ? getTexelDecodingFunction ( 'lightMapTexelToLinear' , parameters . lightMapEncoding ) : '' ,
638636 parameters . outputEncoding ? getTexelEncodingFunction ( 'linearToOutputTexel' , parameters . outputEncoding ) : '' ,
639637
640- parameters . depthPacking ? '#define DEPTH_PACKING ' + material . depthPacking : '' ,
638+ parameters . depthPacking ? '#define DEPTH_PACKING ' + parameters . depthPacking : '' ,
641639
642640 '\n'
643641
@@ -656,13 +654,13 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
656654 vertexShader = unrollLoops ( vertexShader ) ;
657655 fragmentShader = unrollLoops ( fragmentShader ) ;
658656
659- if ( parameters . isWebGL2 && ! material . isRawShaderMaterial ) {
657+ if ( parameters . isWebGL2 && ! parameters . isRawShaderMaterial ) {
660658
661659 var isGLSL3ShaderMaterial = false ;
662660
663661 var versionRegex = / ^ \s * # v e r s i o n \s + 3 0 0 \s + e s \s * \n / ;
664662
665- if ( material . isShaderMaterial &&
663+ if ( parameters . isShaderMaterial &&
666664 vertexShader . match ( versionRegex ) !== null &&
667665 fragmentShader . match ( versionRegex ) !== null ) {
668666
@@ -768,9 +766,9 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
768766
769767 // Force a particular attribute to index 0.
770768
771- if ( material . index0AttributeName !== undefined ) {
769+ if ( parameters . index0AttributeName !== undefined ) {
772770
773- gl . bindAttribLocation ( program , 0 , material . index0AttributeName ) ;
771+ gl . bindAttribLocation ( program , 0 , parameters . index0AttributeName ) ;
774772
775773 } else if ( parameters . morphTargets === true ) {
776774
@@ -815,7 +813,6 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
815813 this . diagnostics = {
816814
817815 runnable : runnable ,
818- material : material ,
819816
820817 programLog : programLog ,
821818
@@ -887,7 +884,7 @@ function WebGLProgram( renderer, extensions, cacheKey, material, shader, paramet
887884
888885 //
889886
890- this . name = shader . name ;
887+ this . name = parameters . shaderName ;
891888 this . id = programIdCount ++ ;
892889 this . cacheKey = cacheKey ;
893890 this . usedTimes = 1 ;
0 commit comments