Merge pull request #926 from BeamNG/primbuild_for_non_ffp

Fix PrimBuild with non Fixed Function Pipeline.
This commit is contained in:
LuisAntonRebollo 2014-11-30 02:21:36 +01:00
commit 60f4d4f282
2 changed files with 15 additions and 2 deletions

View file

@ -868,6 +868,8 @@ public:
/// Sets the current stateblock (actually activated in ::updateStates)
virtual void setStateBlock( GFXStateBlock *block );
GFXStateBlock* getStateBlock() { return mNewStateBlock; }
/// This sets a stateblock directly from the description
/// structure. Its acceptable to use this for debug rendering
/// and other low frequency rendering tasks.

View file

@ -179,8 +179,19 @@ void end( bool useGenericShaders )
}
}
if ( useGenericShaders )
GFX->setupGenericShaders( GFXDevice::GSModColorTexture );
if ( useGenericShaders )
{
GFXStateBlock *currentBlock = GFX->getStateBlock();
if (currentBlock && currentBlock->getDesc().samplersDefined)
{
if (currentBlock->getDesc().vertexColorEnable)
GFX->setupGenericShaders( GFXDevice::GSModColorTexture );
else
GFX->setupGenericShaders( GFXDevice::GSTexture );
}
else
GFX->setupGenericShaders( GFXDevice::GSColor );
}
const GFXVertexPCT *srcVerts = mTempVertBuff.address();
U32 numVerts = mCurVertIndex;