From cb8b8b7316dc52099dbead412b7c07c9ad35ffb9 Mon Sep 17 00:00:00 2001 From: LuisAntonRebollo Date: Thu, 17 Apr 2014 14:18:58 +0200 Subject: [PATCH] Use shader data for get sampler register in CloudLayer and BasicClouds. --- Engine/source/environment/basicClouds.cpp | 3 ++- Engine/source/environment/basicClouds.h | 1 + Engine/source/environment/cloudLayer.cpp | 3 ++- Engine/source/environment/cloudLayer.h | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Engine/source/environment/basicClouds.cpp b/Engine/source/environment/basicClouds.cpp index 6f9b28653..737458093 100644 --- a/Engine/source/environment/basicClouds.cpp +++ b/Engine/source/environment/basicClouds.cpp @@ -129,6 +129,7 @@ bool BasicClouds::onAdd() mTexScaleSC = mShader->getShaderConstHandle( "$texScale" ); mTexDirectionSC = mShader->getShaderConstHandle( "$texDirection" ); mTexOffsetSC = mShader->getShaderConstHandle( "$texOffset" ); + mDiffuseMapSC = mShader->getShaderConstHandle( "$diffuseMap" ); // Create StateBlocks GFXStateBlockDesc desc; @@ -312,7 +313,7 @@ void BasicClouds::renderObject( ObjectRenderInst *ri, SceneRenderState *state, B mShaderConsts->setSafe( mTexDirectionSC, mTexDirection[i] * mTexSpeed[i] ); mShaderConsts->setSafe( mTexOffsetSC, mTexOffset[i] ); - GFX->setTexture( 0, mTexture[i] ); + GFX->setTexture( mDiffuseMapSC->getSamplerRegister(), mTexture[i] ); GFX->setVertexBuffer( mVB[i] ); GFX->drawIndexedPrimitive( GFXTriangleList, 0, 0, smVertCount, 0, smTriangleCount ); diff --git a/Engine/source/environment/basicClouds.h b/Engine/source/environment/basicClouds.h index 997ef57b8..adb15139c 100644 --- a/Engine/source/environment/basicClouds.h +++ b/Engine/source/environment/basicClouds.h @@ -103,6 +103,7 @@ protected: GFXShaderConstHandle *mTexScaleSC; GFXShaderConstHandle *mTexDirectionSC; GFXShaderConstHandle *mTexOffsetSC; + GFXShaderConstHandle *mDiffuseMapSC; GFXVertexBufferHandle mVB[TEX_COUNT]; GFXPrimitiveBufferHandle mPB; diff --git a/Engine/source/environment/cloudLayer.cpp b/Engine/source/environment/cloudLayer.cpp index 3901df5ac..ca7ae4ebc 100644 --- a/Engine/source/environment/cloudLayer.cpp +++ b/Engine/source/environment/cloudLayer.cpp @@ -143,6 +143,7 @@ bool CloudLayer::onAdd() mCoverageSC = mShader->getShaderConstHandle( "$cloudCoverage" ); mExposureSC = mShader->getShaderConstHandle( "$cloudExposure" ); mBaseColorSC = mShader->getShaderConstHandle( "$cloudBaseColor" ); + mNormalHeightMapSC = mShader->getShaderConstHandle( "$normalHeightMap" ); // Create StateBlocks GFXStateBlockDesc desc; @@ -365,7 +366,7 @@ void CloudLayer::renderObject( ObjectRenderInst *ri, SceneRenderState *state, Ba mShaderConsts->setSafe( mExposureSC, mExposure ); - GFX->setTexture( 0, mTexture ); + GFX->setTexture( mNormalHeightMapSC->getSamplerRegister(), mTexture ); GFX->setVertexBuffer( mVB ); GFX->setPrimitiveBuffer( mPB ); diff --git a/Engine/source/environment/cloudLayer.h b/Engine/source/environment/cloudLayer.h index 10e9f20af..076c3a631 100644 --- a/Engine/source/environment/cloudLayer.h +++ b/Engine/source/environment/cloudLayer.h @@ -110,6 +110,7 @@ protected: GFXShaderConstHandle *mCoverageSC; GFXShaderConstHandle *mExposureSC; GFXShaderConstHandle *mEyePosWorldSC; + GFXShaderConstHandle *mNormalHeightMapSC; GFXVertexBufferHandle mVB; GFXPrimitiveBufferHandle mPB;