summaryrefslogtreecommitdiffstats
path: root/RenderScript/src/DrawAttribsParser.cpp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-11-21 16:10:14 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-11-21 16:10:14 +0000
commit9f9b923d9c090058f821f28801112cae2da296e1 (patch)
tree5db30d378a53ca190e20437b1779b231af0cbbfa /RenderScript/src/DrawAttribsParser.cpp
parentUpdate README.md (diff)
downloadDiligentTools-9f9b923d9c090058f821f28801112cae2da296e1.tar.gz
DiligentTools-9f9b923d9c090058f821f28801112cae2da296e1.zip
Added draw flags and dispatch flags parsing
Diffstat (limited to 'RenderScript/src/DrawAttribsParser.cpp')
-rw-r--r--RenderScript/src/DrawAttribsParser.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/RenderScript/src/DrawAttribsParser.cpp b/RenderScript/src/DrawAttribsParser.cpp
index 21f0fb3..9e6e3dd 100644
--- a/RenderScript/src/DrawAttribsParser.cpp
+++ b/RenderScript/src/DrawAttribsParser.cpp
@@ -39,6 +39,12 @@ namespace Diligent
DEFINE_BINDER( m_Bindings, DrawAttribs, NumVertices );
DEFINE_BINDER( m_Bindings, DrawAttribs, NumIndices );
+ DEFINE_ENUM_ELEMENT_MAPPING( m_DrawFlagsEnumMapping, DRAW_FLAG_NONE );
+ DEFINE_ENUM_ELEMENT_MAPPING( m_DrawFlagsEnumMapping, DRAW_FLAG_TRANSITION_INDEX_BUFFER );
+ DEFINE_ENUM_ELEMENT_MAPPING( m_DrawFlagsEnumMapping, DRAW_FLAG_TRANSITION_VERTEX_BUFFERS );
+ DEFINE_ENUM_ELEMENT_MAPPING( m_DrawFlagsEnumMapping, DRAW_FLAG_TRANSITION_INDIRECT_ARGS_BUFFER );
+ DEFINE_FLAGS_BINDER( m_Bindings, DrawAttribs, Flags, DRAW_FLAGS, m_DrawFlagsEnumMapping );
+
DEFINE_ENUM_ELEMENT_MAPPING( m_ValueTypeEnumMapping, VT_UINT16 );
DEFINE_ENUM_ELEMENT_MAPPING( m_ValueTypeEnumMapping, VT_UINT32 );
DEFINE_ENUM_BINDER( m_Bindings, DrawAttribs, IndexType, m_ValueTypeEnumMapping );
@@ -57,6 +63,9 @@ namespace Diligent
std::vector<String> AllowedMetatable = { "Metatables.Buffer" };
DEFINE_BINDER_EX( m_Bindings, DrawAttribs, pIndirectDrawAttribs, EngineObjectPtrLoader<IBuffer>, AllowedMetatable );
+
+ DEFINE_ENUM_ELEMENT_MAPPING(m_DispatchFlagsEnumMapping, DISPATCH_FLAG_FLAG_NONE);
+ DEFINE_ENUM_ELEMENT_MAPPING(m_DispatchFlagsEnumMapping, DISPATCH_FLAG_TRANSITION_INDIRECT_ARGS_BUFFER);
};
void DrawAttribsParser::CreateObj( lua_State *L )
@@ -113,10 +122,15 @@ namespace Diligent
if( lua_type( L, 1 ) == LUA_TUSERDATA )
{
DispatchAttrs.pIndirectDispatchAttribs = *GetUserData<IBuffer**>( L, 1, m_BufferMetatableName.c_str() );
- if( lua_gettop( L ) > 1 )
+ if( lua_gettop( L ) >= 2 )
{
DispatchAttrs.DispatchArgsByteOffset = ReadValueFromLua<Uint32>( L, 2 );
}
+ if (lua_gettop( L ) >= 3 )
+ {
+ FlagsLoader<DISPATCH_FLAGS> FlagsLoader(0, "DispatchFlags", m_DispatchFlagsEnumMapping);
+ FlagsLoader.SetValue( L, 3, &DispatchAttrs.Flags);
+ }
}
else
{