diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-11-21 16:10:14 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-11-21 16:10:14 +0000 |
| commit | 9f9b923d9c090058f821f28801112cae2da296e1 (patch) | |
| tree | 5db30d378a53ca190e20437b1779b231af0cbbfa /RenderScript/src/DrawAttribsParser.cpp | |
| parent | Update README.md (diff) | |
| download | DiligentTools-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.cpp | 16 |
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 { |
