summaryrefslogtreecommitdiffstats
path: root/RenderScript/src
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-12-04 05:05:58 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-12-04 05:05:58 +0000
commit30e8825f6f1fefa29673d525b928990721f39d55 (patch)
tree29c4e3a31356d2eb48de58e5831256d5bf36b6c8 /RenderScript/src
parentUpdated lua bindings for SetVertexBuffers and SetIndexBuffer plus other updat... (diff)
downloadDiligentTools-30e8825f6f1fefa29673d525b928990721f39d55.tar.gz
DiligentTools-30e8825f6f1fefa29673d525b928990721f39d55.zip
Updated bindings for ClearDepthStencil and ClearRenderTarget
Diffstat (limited to 'RenderScript/src')
-rw-r--r--RenderScript/src/DeviceContextFuncBindings.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/RenderScript/src/DeviceContextFuncBindings.cpp b/RenderScript/src/DeviceContextFuncBindings.cpp
index 6f265b5..99ad18d 100644
--- a/RenderScript/src/DeviceContextFuncBindings.cpp
+++ b/RenderScript/src/DeviceContextFuncBindings.cpp
@@ -46,17 +46,9 @@ namespace Diligent
m_ShaderResBindingMetatableName( pSRBParser->GetMetatableName() ),
m_PSOMetatableName(pPSOParser->GetMetatableName())
{
- DEFINE_ENUM_ELEMENT_MAPPING( m_SetRenderTargetsFlagsEnumMapping, SET_RENDER_TARGETS_FLAG_NONE );
- DEFINE_ENUM_ELEMENT_MAPPING( m_SetRenderTargetsFlagsEnumMapping, SET_RENDER_TARGETS_FLAG_TRANSITION_COLOR );
- DEFINE_ENUM_ELEMENT_MAPPING( m_SetRenderTargetsFlagsEnumMapping, SET_RENDER_TARGETS_FLAG_TRANSITION_DEPTH );
- DEFINE_ENUM_ELEMENT_MAPPING( m_SetRenderTargetsFlagsEnumMapping, SET_RENDER_TARGETS_FLAG_TRANSITION_ALL );
- DEFINE_ENUM_ELEMENT_MAPPING( m_SetRenderTargetsFlagsEnumMapping, SET_RENDER_TARGETS_FLAG_VERIFY_STATES );
-
DEFINE_ENUM_ELEMENT_MAPPING( m_ClearDepthStencilFlagsEnumMapping, CLEAR_DEPTH_FLAG_NONE );
DEFINE_ENUM_ELEMENT_MAPPING( m_ClearDepthStencilFlagsEnumMapping, CLEAR_DEPTH_FLAG );
DEFINE_ENUM_ELEMENT_MAPPING( m_ClearDepthStencilFlagsEnumMapping, CLEAR_STENCIL_FLAG );
- DEFINE_ENUM_ELEMENT_MAPPING( m_ClearDepthStencilFlagsEnumMapping, CLEAR_DEPTH_STENCIL_TRANSITION_STATE_FLAG );
- DEFINE_ENUM_ELEMENT_MAPPING( m_ClearDepthStencilFlagsEnumMapping, CLEAR_DEPTH_STENCIL_VERIFY_STATE_FLAG );
};
int DeviceContextFuncBindings::SetRenderTargets( lua_State *L )
@@ -65,7 +57,7 @@ namespace Diligent
ITextureView *pRTVs[MaxRenderTargets] = {};
ITextureView *pDSV = nullptr;
Uint32 NumRTs = 0;
- SET_RENDER_TARGETS_FLAGS Flags = SET_RENDER_TARGETS_FLAG_NONE;
+ RESOURCE_STATE_TRANSITION_MODE TransitionMode = RESOURCE_STATE_TRANSITION_MODE_TRANSITION;
for( int CurrArg = 1; CurrArg <= NumArgs; ++CurrArg )
{
if( lua_type( L, CurrArg ) == LUA_TUSERDATA )
@@ -97,13 +89,13 @@ namespace Diligent
}
else
{
- FlagsLoader<SET_RENDER_TARGETS_FLAGS> RTFlagsLoader(0, "SetRenderTargetsFlags", m_SetRenderTargetsFlagsEnumMapping);
- RTFlagsLoader.SetValue( L, CurrArg, &Flags );
+ EnumMemberBinder<RESOURCE_STATE_TRANSITION_MODE> StateTransitionModeLoader(0, "StateTransitionMode", m_StateTransitionModeMapping);
+ StateTransitionModeLoader.SetValue( L, CurrArg, &TransitionMode );
}
}
auto *pContext = EngineObjectParserBase::LoadDeviceContextFromRegistry( L );
- pContext->SetRenderTargets( NumRTs, pRTVs, pDSV, Flags );
+ pContext->SetRenderTargets( NumRTs, pRTVs, pDSV, TransitionMode );
// Return no values to Lua
return 0;
@@ -173,22 +165,30 @@ namespace Diligent
++CurrArg;
}
- if( CurrArg <= NumArgs )
+ if( CurrArg <= NumArgs && (ClearFlags == CLEAR_DEPTH_FLAG_NONE || (ClearFlags & CLEAR_DEPTH_FLAG)!=0) )
{
fDepth = ReadValueFromLua<Float32>( L, CurrArg );
ClearFlags |= CLEAR_DEPTH_FLAG;
++CurrArg;
}
- if( CurrArg <= NumArgs )
+ if( CurrArg <= NumArgs && lua_isnumber( L, CurrArg ) )
{
Stencil = ReadValueFromLua<Uint8>( L, CurrArg );
ClearFlags |= CLEAR_STENCIL_FLAG;
++CurrArg;
}
+ RESOURCE_STATE_TRANSITION_MODE StateTransitionMode = RESOURCE_STATE_TRANSITION_MODE_NONE;
+ if( CurrArg <= NumArgs && lua_type( L, CurrArg ) == LUA_TSTRING )
+ {
+ EnumMemberBinder<RESOURCE_STATE_TRANSITION_MODE> StateTransitionModeLoader(0, "StateTransitionMode", m_StateTransitionModeMapping);
+ StateTransitionModeLoader.SetValue( L, CurrArg, &StateTransitionMode );
+ ++CurrArg;
+ }
+
auto *pContext = EngineObjectParserBase::LoadDeviceContextFromRegistry( L );
- pContext->ClearDepthStencil( pView, ClearFlags, fDepth, Stencil );
+ pContext->ClearDepthStencil( pView, ClearFlags, fDepth, Stencil, StateTransitionMode );
return 0;
}