summaryrefslogtreecommitdiffstats
path: root/RenderScript
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-04-05 15:52:31 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-04-05 15:52:31 +0000
commitd6d73dd8e7f98f6591f93b7ecda08b34cce518ec (patch)
tree59ae736203e824b6bbc9fcfa93d720e93037a5f8 /RenderScript
parentAdded options to capture RGB vs RGBA when encoding image as png plus some for... (diff)
downloadDiligentTools-d6d73dd8e7f98f6591f93b7ecda08b34cce518ec.tar.gz
DiligentTools-d6d73dd8e7f98f6591f93b7ecda08b34cce518ec.zip
Changes to comply with the updated API
Diffstat (limited to 'RenderScript')
-rw-r--r--RenderScript/include/ShaderResourceBindingParser.h3
-rw-r--r--RenderScript/include/ShaderVariableParser.h7
-rw-r--r--RenderScript/src/ShaderResourceBindingParser.cpp20
-rw-r--r--RenderScript/src/ShaderVariableParser.cpp27
4 files changed, 43 insertions, 14 deletions
diff --git a/RenderScript/include/ShaderResourceBindingParser.h b/RenderScript/include/ShaderResourceBindingParser.h
index f5c8fe8..ac7bcd6 100644
--- a/RenderScript/include/ShaderResourceBindingParser.h
+++ b/RenderScript/include/ShaderResourceBindingParser.h
@@ -61,7 +61,8 @@ namespace Diligent
ClassMethodCaller < ShaderResourceBindingParser > m_BindResourcesBinding;
int GetVariable( lua_State *L );
- ClassMethodCaller < ShaderResourceBindingParser > m_GetVariableBinding;
+ ClassMethodCaller < ShaderResourceBindingParser > m_GetVariableByNameBinding;
+ ClassMethodCaller < ShaderResourceBindingParser > m_GetVariableByIndexBinding;
int CreateShaderResourceBinding( lua_State *L );
ClassMethodCaller<ShaderResourceBindingParser> m_CreateShaderResourceBinding;
diff --git a/RenderScript/include/ShaderVariableParser.h b/RenderScript/include/ShaderVariableParser.h
index 6b97e89..4287018 100644
--- a/RenderScript/include/ShaderVariableParser.h
+++ b/RenderScript/include/ShaderVariableParser.h
@@ -61,7 +61,10 @@ namespace Diligent
int Set( lua_State *L );
ClassMethodCaller < ShaderVariableParser > m_SetBinding;
- ClassMethodCaller<ShaderVariableParser> m_GetStaticShaderVariableBinding;
- int GetStaticShaderVariable( lua_State *L );
+ ClassMethodCaller<ShaderVariableParser> m_GetStaticVariableByNameBinding;
+ int GetStaticVariableByName( lua_State *L );
+
+ ClassMethodCaller<ShaderVariableParser> m_GetStaticVariableByIndexBinding;
+ int GetStaticVariableByIndex( lua_State *L );
};
}
diff --git a/RenderScript/src/ShaderResourceBindingParser.cpp b/RenderScript/src/ShaderResourceBindingParser.cpp
index 32c8176..ed24c0d 100644
--- a/RenderScript/src/ShaderResourceBindingParser.cpp
+++ b/RenderScript/src/ShaderResourceBindingParser.cpp
@@ -37,7 +37,8 @@ namespace Diligent
m_ResMappingMetatableName(ResMappingMetatableName),
m_ShaderVarMetatableRegistryName(ShaderVarMetatableRegistryName),
m_BindResourcesBinding( this, L, m_MetatableRegistryName.c_str(), "BindResources", &ShaderResourceBindingParser::BindResources ),
- m_GetVariableBinding( this, L, m_MetatableRegistryName.c_str(), "GetVariable", &ShaderResourceBindingParser::GetVariable ),
+ m_GetVariableByNameBinding( this, L, m_MetatableRegistryName.c_str(), "GetVariableByName", &ShaderResourceBindingParser::GetVariable ),
+ m_GetVariableByIndexBinding( this, L, m_MetatableRegistryName.c_str(), "GetVariableByIndex", &ShaderResourceBindingParser::GetVariable ),
m_CreateShaderResourceBinding( this, L, PSOLibMetatableName.c_str(), "CreateShaderResourceBinding", &ShaderResourceBindingParser::CreateShaderResourceBinding ),
m_InitializeStaticResourcesBinding( this, L, m_MetatableRegistryName.c_str(), "InitializeStaticResources", &ShaderResourceBindingParser::InitializeStaticResources )
{
@@ -171,10 +172,19 @@ namespace Diligent
ShaderTypeParser.SetValue(L, ArgStackInd, &ShaderType);
++ArgStackInd;
- // Variable name should be the second argument
- auto VarName = ReadValueFromLua<String>( L, ArgStackInd );
-
- auto pVar = pShaderResBinding->GetVariable(ShaderType, VarName.c_str());
+ IShaderResourceVariable* pVar = nullptr;
+ if (lua_type(L,ArgStackInd) == LUA_TSTRING)
+ {
+ // Variable name should be the second argument
+ auto VarName = ReadValueFromLua<String>( L, ArgStackInd );
+ pVar = pShaderResBinding->GetVariableByName(ShaderType, VarName.c_str());
+ }
+ else
+ {
+ // Variable name should be the second argument
+ auto VarIndex = ReadValueFromLua<int>( L, ArgStackInd );
+ pVar = pShaderResBinding->GetVariableByIndex(ShaderType, VarIndex);
+ }
auto pNewShaderVarLuaObj = reinterpret_cast<IShaderResourceVariable**>(lua_newuserdata( L, sizeof( IShaderResourceVariable* ) ));
*pNewShaderVarLuaObj = pVar;
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);
}