diff options
Diffstat (limited to 'RenderScript/src')
| -rw-r--r-- | RenderScript/src/ScriptParser.cpp | 5 | ||||
| -rw-r--r-- | RenderScript/src/ShaderResourceBindingParser.cpp | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/RenderScript/src/ScriptParser.cpp b/RenderScript/src/ScriptParser.cpp index a31f308..5cb13b5 100644 --- a/RenderScript/src/ScriptParser.cpp +++ b/RenderScript/src/ScriptParser.cpp @@ -244,6 +244,11 @@ namespace Diligent m_pShaderVariableParser->GetObjectByName( m_LuaState, ShaderVarName, ppShaderVar ); } + void ScriptParser::GetShaderResourceBindingByName( const Char *SRBName, IShaderResourceBinding** ppSRB ) + { + m_pShaderResBindingParser->GetObjectByName( m_LuaState, SRBName, ppSRB ); + } + void ScriptParser::QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ) { UNSUPPORTED( "Not implemented" ); diff --git a/RenderScript/src/ShaderResourceBindingParser.cpp b/RenderScript/src/ShaderResourceBindingParser.cpp index 0613f59..80a5092 100644 --- a/RenderScript/src/ShaderResourceBindingParser.cpp +++ b/RenderScript/src/ShaderResourceBindingParser.cpp @@ -51,8 +51,15 @@ namespace Diligent // Shader should be the first argument auto *pPSO = *GetUserData<IPipelineState**>( L, 1, m_PSOLibMetatableName.c_str() ); + bool InitStaticResources = false; + auto NumArgs = lua_gettop( L ); + if( NumArgs >= 2 ) + { + InitStaticResources = ReadValueFromLua<Bool>( L, 2 ); + } + auto pNewShaderResBndngLuaObj = reinterpret_cast<IShaderResourceBinding**>(lua_newuserdata( L, sizeof( IShaderResourceBinding* ) )); - pPSO->CreateShaderResourceBinding(pNewShaderResBndngLuaObj); + pPSO->CreateShaderResourceBinding(pNewShaderResBndngLuaObj, InitStaticResources); CHECK_LUA_STACK_HEIGHT( +1 ); } |
