mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Merge pull request #2041 from Azaezel/clearTextureStateImmediate
method to make sure we're not getting pixel shader inputs mixed with …
This commit is contained in:
commit
8a0074eb1d
|
|
@ -1159,10 +1159,9 @@ void VolumetricFog::render(ObjectRenderInst *ri, SceneRenderState *state, BaseMa
|
|||
|
||||
GFX->drawPrimitive(0);
|
||||
|
||||
// Ensure these two textures are bound to the pixel shader input on the second run as they are used as pixel shader outputs (render targets).
|
||||
GFX->setTexture(1, NULL); //mDepthBuffer
|
||||
GFX->setTexture(2, NULL); //mFrontBuffer
|
||||
GFX->updateStates(); //update the dirty texture state we set above
|
||||
// Ensure these two textures are NOT bound to the pixel shader input on the second run as they are used as pixel shader outputs (render targets).
|
||||
GFX->clearTextureStateImmediate(1); //mDepthBuffer
|
||||
GFX->clearTextureStateImmediate(2); //mFrontBuffer
|
||||
}
|
||||
|
||||
void VolumetricFog::reflect_render(ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance *overrideMat)
|
||||
|
|
|
|||
|
|
@ -572,6 +572,13 @@ void GFXDevice::updateStates(bool forceSetAll /*=false*/)
|
|||
#endif
|
||||
}
|
||||
|
||||
void GFXDevice::clearTextureStateImmediate(U32 stage)
|
||||
{
|
||||
mCurrentTexture[stage] = NULL;
|
||||
mCurrentCubemap[stage] = NULL;
|
||||
setTextureInternal(stage, NULL);
|
||||
}
|
||||
|
||||
void GFXDevice::setPrimitiveBuffer( GFXPrimitiveBuffer *buffer )
|
||||
{
|
||||
if( buffer == mCurrentPrimitiveBuffer )
|
||||
|
|
|
|||
|
|
@ -967,6 +967,7 @@ public:
|
|||
/// @{
|
||||
/// Sets the dirty Render/Texture/Sampler states from the caching system
|
||||
void updateStates(bool forceSetAll = false);
|
||||
void clearTextureStateImmediate(U32 stage);
|
||||
|
||||
/// Returns the forced global wireframe state.
|
||||
static bool getWireframe() { return smWireframe; }
|
||||
|
|
|
|||
|
|
@ -406,7 +406,7 @@ void CubeReflector::updateFace( const ReflectParams ¶ms, U32 faceidx )
|
|||
matView.inverse();
|
||||
|
||||
GFX->setWorldMatrix(matView);
|
||||
|
||||
GFX->clearTextureStateImmediate(0);
|
||||
renderTarget->attachTexture( GFXTextureTarget::Color0, cubemap, faceidx );
|
||||
GFX->setActiveRenderTarget( renderTarget );
|
||||
GFX->clear( GFXClearStencil | GFXClearTarget | GFXClearZBuffer, gCanvasClearColor, 1.0f, 0 );
|
||||
|
|
|
|||
Loading…
Reference in a new issue