Browse Source

Use GFXDevice::setupGenericShaders for support non Fixed Fuction Pipelines.

OpenGL and DirectX11 not support FFP, and GFDevice::disableShaders has not the necessary information to decide the shader to be used.

GFDevice::SetupGenericShaders is used instead of GFDevice::disableShaders.

GFDevice::disableShaders will be deprecated on T3D 4.0
LuisAntonRebollo 11 years ago
parent
commit
33742599b3

+ 1 - 1
Engine/source/T3D/cameraSpline.cpp

@@ -214,7 +214,7 @@ void CameraSpline::renderTimeMap()
 
 
    // Render the buffer
    // Render the buffer
    GFX->pushWorldMatrix();
    GFX->pushWorldMatrix();
-   GFX->disableShaders();
+   GFX->setupGenericShaders();
    GFX->setVertexBuffer(vb);
    GFX->setVertexBuffer(vb);
    GFX->drawPrimitive(GFXLineStrip,0,index);
    GFX->drawPrimitive(GFXLineStrip,0,index);
    GFX->popWorldMatrix();
    GFX->popWorldMatrix();

+ 2 - 2
Engine/source/T3D/fx/precipitation.cpp

@@ -1668,7 +1668,7 @@ void Precipitation::renderObject(ObjectRenderInst *ri, SceneRenderState *state,
    }
    }
    else
    else
    {
    {
-      GFX->disableShaders();
+      GFX->setupGenericShaders(GFXDevice::GSTexture);
 
 
       // We don't support distance fade or lighting without shaders.
       // We don't support distance fade or lighting without shaders.
       GFX->setStateBlock(mDistantSB);
       GFX->setStateBlock(mDistantSB);
@@ -1801,7 +1801,7 @@ void Precipitation::renderObject(ObjectRenderInst *ri, SceneRenderState *state,
       GFX->setShaderConstBuffer(mSplashShaderConsts);
       GFX->setShaderConstBuffer(mSplashShaderConsts);
    }
    }
    else
    else
-      GFX->disableShaders();
+      GFX->setupGenericShaders(GFXDevice::GSTexture);
 
 
    while (curr)
    while (curr)
    {
    {

+ 1 - 1
Engine/source/environment/waterObject.cpp

@@ -775,7 +775,7 @@ void WaterObject::drawUnderwaterFilter( SceneRenderState *state )
    GFX->setWorldMatrix( newMat );   
    GFX->setWorldMatrix( newMat );   
 
 
    // set up render states
    // set up render states
-   GFX->disableShaders();
+   GFX->setupGenericShaders();
    GFX->setStateBlock( mUnderwaterSB );
    GFX->setStateBlock( mUnderwaterSB );
 
 
    /*
    /*

+ 1 - 1
Engine/source/gfx/gfxDevice.h

@@ -720,7 +720,7 @@ public:
    virtual U32 getNumRenderTargets() const = 0;
    virtual U32 getNumRenderTargets() const = 0;
 
 
    virtual void setShader( GFXShader *shader ) {}
    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)
    /// Set the buffer! (Actual set happens on the next draw call, just like textures, state blocks, etc)
    void setShaderConstBuffer(GFXShaderConstBuffer* buffer);
    void setShaderConstBuffer(GFXShaderConstBuffer* buffer);

+ 2 - 3
Engine/source/gfx/gfxFontRenderBatcher.cpp

@@ -60,7 +60,6 @@ void FontRenderBatcher::render( F32 rot, const Point2F &offset )
       return;
       return;
 
 
    GFX->setStateBlock(mFontSB);
    GFX->setStateBlock(mFontSB);
-   GFX->disableShaders();
    for(U32 i = 0; i < GFX->getNumSamplers(); i++)
    for(U32 i = 0; i < GFX->getNumSamplers(); i++)
       GFX->setTexture(i, NULL);
       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!");
    AssertFatal(currentPt <= mLength * 6, "FontRenderBatcher::render - too many verts for length of string!");
 
 
    GFX->setVertexBuffer(verts);
    GFX->setVertexBuffer(verts);
+   GFX->setupGenericShaders( GFXDevice::GSAddColorTexture );
 
 
    // Now do an optimal render!
    // Now do an optimal render!
    for( S32 i = 0; i < mSheets.size(); i++ )
    for( S32 i = 0; i < mSheets.size(); i++ )
@@ -186,8 +186,7 @@ void FontRenderBatcher::render( F32 rot, const Point2F &offset )
 
 
       if(!mSheets[i]->numChars )
       if(!mSheets[i]->numChars )
          continue;
          continue;
-
-      GFX->setupGenericShaders( GFXDevice::GSAddColorTexture );
+      
       GFX->setTexture( 0, mFont->getTextureHandle(i) );
       GFX->setTexture( 0, mFont->getTextureHandle(i) );
       GFX->drawPrimitive(GFXTriangleList, mSheets[i]->startVertex, mSheets[i]->numChars * 2);
       GFX->drawPrimitive(GFXTriangleList, mSheets[i]->startVertex, mSheets[i]->numChars * 2);
    }
    }

+ 1 - 2
Engine/source/gfx/sim/debugDraw.cpp

@@ -150,11 +150,10 @@ void DebugDrawer::render()
    }
    }
 
 
    SimTime curTime = Sim::getCurrentTime();
    SimTime curTime = Sim::getCurrentTime();
-  
-   GFX->disableShaders();   
    
    
    for(DebugPrim **walk = &mHead; *walk; )
    for(DebugPrim **walk = &mHead; *walk; )
    {
    {
+      GFX->setupGenericShaders();   
       DebugPrim *p = *walk;
       DebugPrim *p = *walk;
 
 
       // Set up the state block...
       // Set up the state block...

+ 1 - 1
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++)
    for(U32 i = 0; i < GFX->getNumSamplers(); i++)
       GFX->setTexture(i, NULL);
       GFX->setTexture(i, NULL);
    
    
-   GFX->disableShaders();
+   GFX->setupGenericShaders(GFXDevice::GSModColorTexture);
    
    
    Point2F terrPos(terrBlock->getPosition().x, terrBlock->getPosition().y);
    Point2F terrPos(terrBlock->getPosition().x, terrBlock->getPosition().y);
 
 

+ 1 - 1
Engine/source/lighting/common/blobShadow.cpp

@@ -331,7 +331,7 @@ void BlobShadow::render( F32 camDist, const TSRenderState &rdata )
    world.mul(mLightToWorld);
    world.mul(mLightToWorld);
    GFX->setWorldMatrix(world);
    GFX->setWorldMatrix(world);
 
 
-   GFX->disableShaders();
+   GFX->setupGenericShaders(GFXDevice::GSModColorTexture);
 
 
    GFX->setStateBlock(mShadowSB);
    GFX->setStateBlock(mShadowSB);
    GFX->setTexture(0, smGenericShadowTexture);
    GFX->setTexture(0, smGenericShadowTexture);

+ 1 - 1
Engine/source/materials/processedCustomMaterial.cpp

@@ -273,7 +273,7 @@ bool ProcessedCustomMaterial::setupPass( SceneRenderState *state, const SceneDat
    if ( rpd->shader )
    if ( rpd->shader )
       GFX->setShader( rpd->shader );
       GFX->setShader( rpd->shader );
    else
    else
-      GFX->disableShaders();
+      GFX->setupGenericShaders();
 
 
    // Set our textures   
    // Set our textures   
    setTextureStages( state, sgData, pass );   
    setTextureStages( state, sgData, pass );   

+ 1 - 1
Engine/source/materials/processedShaderMaterial.cpp

@@ -688,7 +688,7 @@ bool ProcessedShaderMaterial::setupPass( SceneRenderState *state, const SceneDat
    }
    }
    else
    else
    {
    {
-      GFX->disableShaders();
+      GFX->setupGenericShaders();
       GFX->setShaderConstBuffer(NULL);
       GFX->setShaderConstBuffer(NULL);
    } 
    } 
 
 

+ 1 - 1
Engine/source/postFx/postEffect.cpp

@@ -1215,7 +1215,7 @@ void PostEffect::process(  const SceneRenderState *state,
       GFX->setShaderConstBuffer( mShaderConsts );
       GFX->setShaderConstBuffer( mShaderConsts );
    }
    }
    else
    else
-      GFX->disableShaders();
+      GFX->setupGenericShaders();
 
 
    Frustum frustum;
    Frustum frustum;
    if ( state )
    if ( state )

+ 1 - 1
Engine/source/renderInstance/renderPassManager.cpp

@@ -255,7 +255,7 @@ void RenderPassManager::render(SceneRenderState * state)
    GFX->setProjectionMatrix( proj );
    GFX->setProjectionMatrix( proj );
       
       
    // Restore a clean state for subsequent rendering.
    // Restore a clean state for subsequent rendering.
-   GFX->disableShaders();
+   GFX->setupGenericShaders();
    for(S32 i = 0; i < GFX->getNumSamplers(); ++i)
    for(S32 i = 0; i < GFX->getNumSamplers(); ++i)
       GFX->setTexture(i, NULL);
       GFX->setTexture(i, NULL);
 }
 }