mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
Merge pull request #934 from BeamNG/postfx_opengl
Changes on PostFX for OpenGL.
This commit is contained in:
commit
a4c8e1d881
2 changed files with 32 additions and 4 deletions
|
|
@ -178,7 +178,13 @@ void PostEffect::EffectConst::setToBuffer( GFXShaderConstBufferRef buff )
|
||||||
|
|
||||||
const char *strVal = mStringVal.c_str();
|
const char *strVal = mStringVal.c_str();
|
||||||
|
|
||||||
if ( type == GFXSCT_Float )
|
if ( type == GFXSCT_Int )
|
||||||
|
{
|
||||||
|
S32 val;
|
||||||
|
Con::setData( TypeS32, &val, 0, 1, &strVal );
|
||||||
|
buff->set( mHandle, val );
|
||||||
|
}
|
||||||
|
else if ( type == GFXSCT_Float )
|
||||||
{
|
{
|
||||||
F32 val;
|
F32 val;
|
||||||
Con::setData( TypeF32, &val, 0, 1, &strVal );
|
Con::setData( TypeF32, &val, 0, 1, &strVal );
|
||||||
|
|
@ -196,7 +202,7 @@ void PostEffect::EffectConst::setToBuffer( GFXShaderConstBufferRef buff )
|
||||||
Con::setData( TypePoint3F, &val, 0, 1, &strVal );
|
Con::setData( TypePoint3F, &val, 0, 1, &strVal );
|
||||||
buff->set( mHandle, val );
|
buff->set( mHandle, val );
|
||||||
}
|
}
|
||||||
else
|
else if ( type == GFXSCT_Float4 )
|
||||||
{
|
{
|
||||||
Point4F val;
|
Point4F val;
|
||||||
|
|
||||||
|
|
@ -228,6 +234,14 @@ void PostEffect::EffectConst::setToBuffer( GFXShaderConstBufferRef buff )
|
||||||
buff->set( mHandle, val );
|
buff->set( mHandle, val );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#if TORQUE_DEBUG
|
||||||
|
const char* err = avar("PostEffect::EffectConst::setToBuffer $s type is not implemented", mName.c_str());
|
||||||
|
Con::errorf(err);
|
||||||
|
GFXAssertFatal(0,err);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -533,6 +547,8 @@ void PostEffect::_setupConstants( const SceneRenderState *state )
|
||||||
mTexSizeSC[3] = mShader->getShaderConstHandle( "$texSize3" );
|
mTexSizeSC[3] = mShader->getShaderConstHandle( "$texSize3" );
|
||||||
mTexSizeSC[4] = mShader->getShaderConstHandle( "$texSize4" );
|
mTexSizeSC[4] = mShader->getShaderConstHandle( "$texSize4" );
|
||||||
mTexSizeSC[5] = mShader->getShaderConstHandle( "$texSize5" );
|
mTexSizeSC[5] = mShader->getShaderConstHandle( "$texSize5" );
|
||||||
|
mTexSizeSC[6] = mShader->getShaderConstHandle( "$texSize6" );
|
||||||
|
mTexSizeSC[7] = mShader->getShaderConstHandle( "$texSize7" );
|
||||||
|
|
||||||
mRenderTargetParamsSC[0] = mShader->getShaderConstHandle( "$rtParams0" );
|
mRenderTargetParamsSC[0] = mShader->getShaderConstHandle( "$rtParams0" );
|
||||||
mRenderTargetParamsSC[1] = mShader->getShaderConstHandle( "$rtParams1" );
|
mRenderTargetParamsSC[1] = mShader->getShaderConstHandle( "$rtParams1" );
|
||||||
|
|
@ -540,6 +556,8 @@ void PostEffect::_setupConstants( const SceneRenderState *state )
|
||||||
mRenderTargetParamsSC[3] = mShader->getShaderConstHandle( "$rtParams3" );
|
mRenderTargetParamsSC[3] = mShader->getShaderConstHandle( "$rtParams3" );
|
||||||
mRenderTargetParamsSC[4] = mShader->getShaderConstHandle( "$rtParams4" );
|
mRenderTargetParamsSC[4] = mShader->getShaderConstHandle( "$rtParams4" );
|
||||||
mRenderTargetParamsSC[5] = mShader->getShaderConstHandle( "$rtParams5" );
|
mRenderTargetParamsSC[5] = mShader->getShaderConstHandle( "$rtParams5" );
|
||||||
|
mRenderTargetParamsSC[6] = mShader->getShaderConstHandle( "$rtParams6" );
|
||||||
|
mRenderTargetParamsSC[7] = mShader->getShaderConstHandle( "$rtParams7" );
|
||||||
|
|
||||||
//mViewportSC = shader->getShaderConstHandle( "$viewport" );
|
//mViewportSC = shader->getShaderConstHandle( "$viewport" );
|
||||||
|
|
||||||
|
|
@ -826,7 +844,10 @@ void PostEffect::_setupConstants( const SceneRenderState *state )
|
||||||
|
|
||||||
EffectConstTable::Iterator iter = mEffectConsts.begin();
|
EffectConstTable::Iterator iter = mEffectConsts.begin();
|
||||||
for ( ; iter != mEffectConsts.end(); iter++ )
|
for ( ; iter != mEffectConsts.end(); iter++ )
|
||||||
|
{
|
||||||
iter->value->mDirty = true;
|
iter->value->mDirty = true;
|
||||||
|
iter->value->mHandle = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Doesn't look like anyone is using this anymore.
|
// Doesn't look like anyone is using this anymore.
|
||||||
|
|
@ -1211,9 +1232,9 @@ void PostEffect::process( const SceneRenderState *state,
|
||||||
// Setup the shader and constants.
|
// Setup the shader and constants.
|
||||||
if ( mShader )
|
if ( mShader )
|
||||||
{
|
{
|
||||||
|
GFX->setShader( mShader );
|
||||||
_setupConstants( state );
|
_setupConstants( state );
|
||||||
|
|
||||||
GFX->setShader( mShader );
|
|
||||||
GFX->setShaderConstBuffer( mShaderConsts );
|
GFX->setShaderConstBuffer( mShaderConsts );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -1397,6 +1418,13 @@ void PostEffect::_checkRequirements()
|
||||||
mIsValid = false;
|
mIsValid = false;
|
||||||
mUpdateShader = false;
|
mUpdateShader = false;
|
||||||
mShader = NULL;
|
mShader = NULL;
|
||||||
|
mShaderConsts = NULL;
|
||||||
|
EffectConstTable::Iterator iter = mEffectConsts.begin();
|
||||||
|
for ( ; iter != mEffectConsts.end(); iter++ )
|
||||||
|
{
|
||||||
|
iter->value->mDirty = true;
|
||||||
|
iter->value->mHandle = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// First make sure the target format is supported.
|
// First make sure the target format is supported.
|
||||||
if ( mNamedTarget.isRegistered() )
|
if ( mNamedTarget.isRegistered() )
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ public:
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
NumTextures = 6,
|
NumTextures = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue