| 505 | } |
| 506 | |
| 507 | void LightingShaderConstants::init(GFXShader* shader) |
| 508 | { |
| 509 | if (mShader.getPointer() != shader) |
| 510 | { |
| 511 | if (mShader.isValid()) |
| 512 | mShader->getReloadSignal().remove( this, &LightingShaderConstants::_onShaderReload ); |
| 513 | |
| 514 | mShader = shader; |
| 515 | mShader->getReloadSignal().notify( this, &LightingShaderConstants::_onShaderReload ); |
| 516 | } |
| 517 | |
| 518 | mLightParamsSC = shader->getShaderConstHandle("$lightParams"); |
| 519 | mLightSpotParamsSC = shader->getShaderConstHandle("$lightSpotParams"); |
| 520 | |
| 521 | // NOTE: These are the shader constants used for doing lighting |
| 522 | // during the forward pass. Do not confuse these for the prepass |
| 523 | // lighting constants which are used from AdvancedLightBinManager. |
| 524 | mLightPositionSC = shader->getShaderConstHandle( ShaderGenVars::lightPosition ); |
| 525 | mLightDiffuseSC = shader->getShaderConstHandle( ShaderGenVars::lightDiffuse ); |
| 526 | mLightAmbientSC = shader->getShaderConstHandle( ShaderGenVars::lightAmbient ); |
| 527 | mLightInvRadiusSqSC = shader->getShaderConstHandle( ShaderGenVars::lightInvRadiusSq ); |
| 528 | mLightSpotDirSC = shader->getShaderConstHandle( ShaderGenVars::lightSpotDir ); |
| 529 | mLightSpotAngleSC = shader->getShaderConstHandle( ShaderGenVars::lightSpotAngle ); |
| 530 | mLightSpotFalloffSC = shader->getShaderConstHandle( ShaderGenVars::lightSpotFalloff ); |
| 531 | |
| 532 | mShadowMapSC = shader->getShaderConstHandle("$shadowMap"); |
| 533 | mDynamicShadowMapSC = shader->getShaderConstHandle("$dynamicShadowMap"); |
| 534 | mShadowMapSizeSC = shader->getShaderConstHandle("$shadowMapSize"); |
| 535 | |
| 536 | mCookieMapSC = shader->getShaderConstHandle("$cookieMap"); |
| 537 | |
| 538 | mShadowSoftnessConst = shader->getShaderConstHandle("$shadowSoftness"); |
| 539 | mAtlasXOffsetSC = shader->getShaderConstHandle("$atlasXOffset"); |
| 540 | mAtlasYOffsetSC = shader->getShaderConstHandle("$atlasYOffset"); |
| 541 | mAtlasScaleSC = shader->getShaderConstHandle("$atlasScale"); |
| 542 | |
| 543 | mFadeStartLength = shader->getShaderConstHandle("$fadeStartLength"); |
| 544 | mOverDarkFactorPSSM = shader->getShaderConstHandle("$overDarkPSSM"); |
| 545 | mTapRotationTexSC = shader->getShaderConstHandle( "$gTapRotationTex" ); |
| 546 | |
| 547 | mWorldToLightProjSC = shader->getShaderConstHandle("$worldToLightProj"); |
| 548 | mViewToLightProjSC = shader->getShaderConstHandle("$viewToLightProj"); |
| 549 | mScaleXSC = shader->getShaderConstHandle("$scaleX"); |
| 550 | mScaleYSC = shader->getShaderConstHandle("$scaleY"); |
| 551 | mOffsetXSC = shader->getShaderConstHandle("$offsetX"); |
| 552 | mOffsetYSC = shader->getShaderConstHandle("$offsetY"); |
| 553 | mFarPlaneScalePSSM = shader->getShaderConstHandle("$farPlaneScalePSSM"); |
| 554 | |
| 555 | mDynamicWorldToLightProjSC = shader->getShaderConstHandle("$dynamicWorldToLightProj"); |
| 556 | mDynamicViewToLightProjSC = shader->getShaderConstHandle("$dynamicViewToLightProj"); |
| 557 | mDynamicScaleXSC = shader->getShaderConstHandle("$dynamicScaleX"); |
| 558 | mDynamicScaleYSC = shader->getShaderConstHandle("$dynamicScaleY"); |
| 559 | mDynamicOffsetXSC = shader->getShaderConstHandle("$dynamicOffsetX"); |
| 560 | mDynamicOffsetYSC = shader->getShaderConstHandle("$dynamicOffsetY"); |
| 561 | mDynamicFarPlaneScalePSSM = shader->getShaderConstHandle("$dynamicFarPlaneScalePSSM"); |
| 562 | |
| 563 | mInit = true; |
| 564 | } |
no test coverage detected