diff --git a/Engine/source/T3D/cameraSpline.cpp b/Engine/source/T3D/cameraSpline.cpp index 03eff64ef..214d305c3 100644 --- a/Engine/source/T3D/cameraSpline.cpp +++ b/Engine/source/T3D/cameraSpline.cpp @@ -214,7 +214,7 @@ void CameraSpline::renderTimeMap() // Render the buffer GFX->pushWorldMatrix(); - GFX->disableShaders(); + GFX->setupGenericShaders(); GFX->setVertexBuffer(vb); GFX->drawPrimitive(GFXLineStrip,0,index); GFX->popWorldMatrix(); diff --git a/Engine/source/T3D/fx/precipitation.cpp b/Engine/source/T3D/fx/precipitation.cpp index 6f7b7ac0a..5b1743d02 100644 --- a/Engine/source/T3D/fx/precipitation.cpp +++ b/Engine/source/T3D/fx/precipitation.cpp @@ -1666,7 +1666,7 @@ void Precipitation::renderObject(ObjectRenderInst *ri, SceneRenderState *state, } else { - GFX->disableShaders(); + GFX->setupGenericShaders(GFXDevice::GSTexture); // We don't support distance fade or lighting without shaders. GFX->setStateBlock(mDistantSB); @@ -1799,7 +1799,7 @@ void Precipitation::renderObject(ObjectRenderInst *ri, SceneRenderState *state, GFX->setShaderConstBuffer(mSplashShaderConsts); } else - GFX->disableShaders(); + GFX->setupGenericShaders(GFXDevice::GSTexture); while (curr) { diff --git a/Engine/source/environment/waterObject.cpp b/Engine/source/environment/waterObject.cpp index a6196bf57..c10da11fc 100644 --- a/Engine/source/environment/waterObject.cpp +++ b/Engine/source/environment/waterObject.cpp @@ -780,7 +780,7 @@ void WaterObject::drawUnderwaterFilter( SceneRenderState *state ) GFX->setWorldMatrix( newMat ); // set up render states - GFX->disableShaders(); + GFX->setupGenericShaders(); GFX->setStateBlock( mUnderwaterSB ); /* diff --git a/Engine/source/gfx/gfxDevice.h b/Engine/source/gfx/gfxDevice.h index 13620755e..a46ddbd98 100644 --- a/Engine/source/gfx/gfxDevice.h +++ b/Engine/source/gfx/gfxDevice.h @@ -723,7 +723,7 @@ public: virtual U32 getNumRenderTargets() const = 0; virtual void setShader( GFXShader *shader ) {} - virtual void disableShaders() {} + virtual void disableShaders() {} // TODO Remove when T3D 4.0 /// Set the buffer! (Actual set happens on the next draw call, just like textures, state blocks, etc) void setShaderConstBuffer(GFXShaderConstBuffer* buffer); diff --git a/Engine/source/gfx/gfxFontRenderBatcher.cpp b/Engine/source/gfx/gfxFontRenderBatcher.cpp index e782268d0..a9761e7fc 100644 --- a/Engine/source/gfx/gfxFontRenderBatcher.cpp +++ b/Engine/source/gfx/gfxFontRenderBatcher.cpp @@ -60,7 +60,6 @@ void FontRenderBatcher::render( F32 rot, const Point2F &offset ) return; GFX->setStateBlock(mFontSB); - GFX->disableShaders(); for(U32 i = 0; i < GFX->getNumSamplers(); i++) GFX->setTexture(i, NULL); @@ -177,6 +176,7 @@ void FontRenderBatcher::render( F32 rot, const Point2F &offset ) AssertFatal(currentPt <= mLength * 6, "FontRenderBatcher::render - too many verts for length of string!"); GFX->setVertexBuffer(verts); + GFX->setupGenericShaders( GFXDevice::GSAddColorTexture ); // Now do an optimal render! for( S32 i = 0; i < mSheets.size(); i++ ) @@ -186,8 +186,7 @@ void FontRenderBatcher::render( F32 rot, const Point2F &offset ) if(!mSheets[i]->numChars ) continue; - - GFX->setupGenericShaders( GFXDevice::GSAddColorTexture ); + GFX->setTexture( 0, mFont->getTextureHandle(i) ); GFX->drawPrimitive(GFXTriangleList, mSheets[i]->startVertex, mSheets[i]->numChars * 2); } diff --git a/Engine/source/gfx/sim/debugDraw.cpp b/Engine/source/gfx/sim/debugDraw.cpp index 2dfe00141..68b8c835d 100644 --- a/Engine/source/gfx/sim/debugDraw.cpp +++ b/Engine/source/gfx/sim/debugDraw.cpp @@ -150,11 +150,10 @@ void DebugDrawer::render() } SimTime curTime = Sim::getCurrentTime(); - - GFX->disableShaders(); for(DebugPrim **walk = &mHead; *walk; ) { + GFX->setupGenericShaders(); DebugPrim *p = *walk; // Set up the state block... diff --git a/Engine/source/gui/worldEditor/guiTerrPreviewCtrl.cpp b/Engine/source/gui/worldEditor/guiTerrPreviewCtrl.cpp index 3477d974e..28462fec6 100644 --- a/Engine/source/gui/worldEditor/guiTerrPreviewCtrl.cpp +++ b/Engine/source/gui/worldEditor/guiTerrPreviewCtrl.cpp @@ -245,7 +245,7 @@ void GuiTerrPreviewCtrl::onRender(Point2I offset, const RectI &updateRect) for(U32 i = 0; i < GFX->getNumSamplers(); i++) GFX->setTexture(i, NULL); - GFX->disableShaders(); + GFX->setupGenericShaders(GFXDevice::GSModColorTexture); Point2F terrPos(terrBlock->getPosition().x, terrBlock->getPosition().y); diff --git a/Engine/source/lighting/common/blobShadow.cpp b/Engine/source/lighting/common/blobShadow.cpp index 0dfce8b15..9756757e9 100644 --- a/Engine/source/lighting/common/blobShadow.cpp +++ b/Engine/source/lighting/common/blobShadow.cpp @@ -331,7 +331,7 @@ void BlobShadow::render( F32 camDist, const TSRenderState &rdata ) world.mul(mLightToWorld); GFX->setWorldMatrix(world); - GFX->disableShaders(); + GFX->setupGenericShaders(GFXDevice::GSModColorTexture); GFX->setStateBlock(mShadowSB); GFX->setTexture(0, smGenericShadowTexture); diff --git a/Engine/source/materials/processedCustomMaterial.cpp b/Engine/source/materials/processedCustomMaterial.cpp index 513ead314..2c26b14da 100644 --- a/Engine/source/materials/processedCustomMaterial.cpp +++ b/Engine/source/materials/processedCustomMaterial.cpp @@ -273,7 +273,7 @@ bool ProcessedCustomMaterial::setupPass( SceneRenderState *state, const SceneDat if ( rpd->shader ) GFX->setShader( rpd->shader ); else - GFX->disableShaders(); + GFX->setupGenericShaders(); // Set our textures setTextureStages( state, sgData, pass ); diff --git a/Engine/source/materials/processedShaderMaterial.cpp b/Engine/source/materials/processedShaderMaterial.cpp index 1b17c17ce..03b8172d1 100644 --- a/Engine/source/materials/processedShaderMaterial.cpp +++ b/Engine/source/materials/processedShaderMaterial.cpp @@ -689,7 +689,7 @@ bool ProcessedShaderMaterial::setupPass( SceneRenderState *state, const SceneDat } else { - GFX->disableShaders(); + GFX->setupGenericShaders(); GFX->setShaderConstBuffer(NULL); } diff --git a/Engine/source/postFx/postEffect.cpp b/Engine/source/postFx/postEffect.cpp index 0638a5fe4..ae0857c83 100644 --- a/Engine/source/postFx/postEffect.cpp +++ b/Engine/source/postFx/postEffect.cpp @@ -1215,7 +1215,7 @@ void PostEffect::process( const SceneRenderState *state, GFX->setShaderConstBuffer( mShaderConsts ); } else - GFX->disableShaders(); + GFX->setupGenericShaders(); Frustum frustum; if ( state ) diff --git a/Engine/source/renderInstance/renderPassManager.cpp b/Engine/source/renderInstance/renderPassManager.cpp index 33e74839e..236cccd9b 100644 --- a/Engine/source/renderInstance/renderPassManager.cpp +++ b/Engine/source/renderInstance/renderPassManager.cpp @@ -255,7 +255,7 @@ void RenderPassManager::render(SceneRenderState * state) GFX->setProjectionMatrix( proj ); // Restore a clean state for subsequent rendering. - GFX->disableShaders(); + GFX->setupGenericShaders(); for(S32 i = 0; i < GFX->getNumSamplers(); ++i) GFX->setTexture(i, NULL); }