diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-04-05 15:52:31 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-04-05 15:52:31 +0000 |
| commit | d6d73dd8e7f98f6591f93b7ecda08b34cce518ec (patch) | |
| tree | 59ae736203e824b6bbc9fcfa93d720e93037a5f8 /RenderScript/src/ShaderVariableParser.cpp | |
| parent | Added options to capture RGB vs RGBA when encoding image as png plus some for... (diff) | |
| download | DiligentTools-d6d73dd8e7f98f6591f93b7ecda08b34cce518ec.tar.gz DiligentTools-d6d73dd8e7f98f6591f93b7ecda08b34cce518ec.zip | |
Changes to comply with the updated API
Diffstat (limited to 'RenderScript/src/ShaderVariableParser.cpp')
| -rw-r--r-- | RenderScript/src/ShaderVariableParser.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/RenderScript/src/ShaderVariableParser.cpp b/RenderScript/src/ShaderVariableParser.cpp index 0bfac71..e382650 100644 --- a/RenderScript/src/ShaderVariableParser.cpp +++ b/RenderScript/src/ShaderVariableParser.cpp @@ -39,7 +39,8 @@ namespace Diligent m_BufferViewLibMetatableName(BufferViewLibMetatableName), m_TexViewMetatableName(TexViewMetatableName), m_SetBinding( this, L, m_MetatableRegistryName.c_str(), "Set", &ShaderVariableParser::Set ), - m_GetStaticShaderVariableBinding( this, L, m_PSOLibMetatableName.c_str(), "GetStaticShaderVariable", &ShaderVariableParser::GetStaticShaderVariable ) + m_GetStaticVariableByNameBinding( this, L, m_PSOLibMetatableName.c_str(), "GetStaticVariableByName", &ShaderVariableParser::GetStaticVariableByName ), + m_GetStaticVariableByIndexBinding( this, L, m_PSOLibMetatableName.c_str(), "GetStaticVariableByIndex", &ShaderVariableParser::GetStaticVariableByIndex ) { }; @@ -60,10 +61,19 @@ namespace Diligent EnumMemberBinder<SHADER_TYPE> ShaderTypeParser(0, "ShaderType", m_ShaderTypeEnumMapping); ShaderTypeParser.SetValue(L, 2, &ShaderType); - // Variable name should be the second argument - auto VarName = ReadValueFromLua<String>( L, 3 ); - - auto pVar = pPSO->GetStaticShaderVariable(ShaderType, VarName.c_str() ); + IShaderResourceVariable *pVar = nullptr; + if (lua_type(L,3) == LUA_TSTRING) + { + // Variable name should be the second argument + auto VarName = ReadValueFromLua<String>( L, 3 ); + pVar = pPSO->GetStaticVariableByName(ShaderType, VarName.c_str() ); + } + else + { + // Variable name should be the second argument + auto VarIndex = ReadValueFromLua<int>( L, 3 ); + pVar = pPSO->GetStaticVariableByIndex(ShaderType, VarIndex ); + } auto pNewShaderVarLuaObj = reinterpret_cast<IShaderResourceVariable**>(lua_newuserdata( L, sizeof( IShaderResourceVariable* ) )); *pNewShaderVarLuaObj = pVar; @@ -136,7 +146,12 @@ namespace Diligent return 0; } - int ShaderVariableParser::GetStaticShaderVariable( lua_State *L ) + int ShaderVariableParser::GetStaticVariableByName( lua_State *L ) + { + return LuaCreate(L); + } + + int ShaderVariableParser::GetStaticVariableByIndex( lua_State *L ) { return LuaCreate(L); } |
