diff --git a/Engine/source/gfx/gl/gfxGLDevice.cpp b/Engine/source/gfx/gl/gfxGLDevice.cpp index 5f690a14d..9cec609d1 100644 --- a/Engine/source/gfx/gl/gfxGLDevice.cpp +++ b/Engine/source/gfx/gl/gfxGLDevice.cpp @@ -811,9 +811,9 @@ GFXShader* GFXGLDevice::createShader() return shader; } -void GFXGLDevice::setShader( GFXShader *shader ) +void GFXGLDevice::setShader(GFXShader *shader, bool force) { - if(mCurrentShader == shader) + if(mCurrentShader == shader && !force) return; if ( shader ) diff --git a/Engine/source/gfx/gl/gfxGLDevice.h b/Engine/source/gfx/gl/gfxGLDevice.h index c7f167647..72193835d 100644 --- a/Engine/source/gfx/gl/gfxGLDevice.h +++ b/Engine/source/gfx/gl/gfxGLDevice.h @@ -90,7 +90,7 @@ public: virtual F32 getPixelShaderVersion() const { return mPixelShaderVersion; } virtual void setPixelShaderVersion( F32 version ) { mPixelShaderVersion = version; } - virtual void setShader(GFXShader* shd); + virtual void setShader(GFXShader *shader, bool force = false); /// @attention GL cannot check if the given format supports blending or filtering! virtual GFXFormat selectSupportedFormat(GFXTextureProfile *profile,