From 571bdc72bec626bbc3cb5f61fb689fb23de2ef67 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Fri, 1 Mar 2019 19:00:26 -0800 Subject: Updated renderscript to work with the new API --- RenderScript/include/PSODescParser.h | 13 ++++++++++++- RenderScript/include/ScriptParser.h | 10 +++++----- RenderScript/include/ShaderParser.h | 20 ++++---------------- RenderScript/include/ShaderVariableParser.h | 12 +++++++----- 4 files changed, 28 insertions(+), 27 deletions(-) (limited to 'RenderScript/include') diff --git a/RenderScript/include/PSODescParser.h b/RenderScript/include/PSODescParser.h index 40b729b..0b5fa0e 100644 --- a/RenderScript/include/PSODescParser.h +++ b/RenderScript/include/PSODescParser.h @@ -34,7 +34,7 @@ namespace Diligent class PSODescParser final : public EngineObjectParserCommon { public: - PSODescParser( IRenderDevice *pRenderDevice, lua_State *L ); + PSODescParser( IRenderDevice *pRenderDevice, lua_State *L, const String& ResMappingMetatableName ); static const Char* PSODescLibName; protected: @@ -46,6 +46,10 @@ namespace Diligent struct PSODescWrapper : PipelineStateDesc { String NameBuffer; + std::vector m_VarDescBuffer; + std::vector m_VarNamesBuffer; + std::vector m_StaticSamplersBuffer; + std::vector m_StaticSamplerTexNamesBuffer; std::vector LayoutElementsBuffer; }; friend class MemberBinder; @@ -55,5 +59,12 @@ namespace Diligent int IsCompatibleWith(lua_State *L); ClassMethodCaller m_IsCompatibleWithBinding; + + const String m_ResMappingMetatableName; + + ClassMethodCaller m_BindStaticResourcesBinding; + int BindStaticResources( lua_State *L ); + + BindShaderResourcesFlagEnumMapping m_BindShaderResFlagEnumMapping; }; } diff --git a/RenderScript/include/ScriptParser.h b/RenderScript/include/ScriptParser.h index 41056b4..094cef0 100644 --- a/RenderScript/include/ScriptParser.h +++ b/RenderScript/include/ScriptParser.h @@ -38,10 +38,10 @@ namespace Diligent public: typedef RefCountedObject TBase; - ScriptParser( IReferenceCounters *pRefCounters, IRenderDevice *pRenderDevice ); + ScriptParser( IReferenceCounters* pRefCounters, IRenderDevice* pRenderDevice ); ~ScriptParser(); - virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface ); + virtual void QueryInterface(const INTERFACE_ID& IID, IObject** ppInterface ); void Parse(const Char *pScript); @@ -75,7 +75,7 @@ namespace Diligent void GetTextureViewByName( const Char *TextureViewName, ITextureView** ppTextureView ); void GetBufferViewByName( const Char *BufferViewName, IBufferView** ppTextureView ); void GetPipelineStateByName( const Char *PSOName, IPipelineState** ppPSO ); - void GetShaderVariableByName( const Char *ShaderVarName, IShaderVariable** ppShaderVar ); + void GetShaderVariableByName( const Char *ShaderVarName, IShaderResourceVariable** ppShaderVar ); void GetShaderResourceBindingByName( const Char *SRBName, IShaderResourceBinding** ppSRB ); template @@ -113,8 +113,8 @@ namespace Diligent void PushFuncStub( lua_State *L, const RefCntAutoPtr &pPSO ); void PushFuncStub( lua_State *L, const Viewport &Viewport ); void PushFuncStub( lua_State *L, const Rect &Rect ); - void PushFuncStub( lua_State *L, const IShaderVariable* pShaderVar ); - void PushFuncStub( lua_State *L, const RefCntAutoPtr &pShaderVar ); + void PushFuncStub( lua_State *L, const IShaderResourceVariable* pShaderVar ); + void PushFuncStub( lua_State *L, const RefCntAutoPtr &pShaderVar ); void PushFuncStub( lua_State *L, const IShaderResourceBinding* pShaderVar ); void PushFuncStub( lua_State *L, const RefCntAutoPtr &pShaderVar ); diff --git a/RenderScript/include/ShaderParser.h b/RenderScript/include/ShaderParser.h index f3fae7e..e833364 100644 --- a/RenderScript/include/ShaderParser.h +++ b/RenderScript/include/ShaderParser.h @@ -34,13 +34,13 @@ namespace Diligent class ShaderParser final : public EngineObjectParserCommon { public: - ShaderParser( IRenderDevice *pRenderDevice, lua_State *L, const String& ResMappingMetatableName); + ShaderParser( IRenderDevice *pRenderDevice, lua_State *L); static const Char* ShaderLibName; - // ShaderCreationAttribs structure does not provide storage for the Name field, + // ShaderCreateInfo structure does not provide storage for the Name field, // nor does it provide storage for FilePath. - // We need to use ShaderCreationAttribsWrapper to be able to store the data. - struct ShaderCreationAttribsWrapper : ShaderCreationAttribs + // We need to use ShaderCreateInfoWrapper to be able to store the data. + struct ShaderCreateInfoWrapper : ShaderCreateInfo { String NameBuffer; String SourceBuffer; @@ -49,10 +49,6 @@ namespace Diligent String SearchDirectoriesBuffer; String CombinedSamplerSuffixBuffer; const char *SearchDirectories = nullptr; - std::vector m_VarDescBuffer; - std::vector m_VarNamesBuffer; - std::vector m_StaticSamplersBuffer; - std::vector m_StaticSamplerTexNamesBuffer; }; protected: @@ -60,14 +56,6 @@ namespace Diligent virtual void ReadField( lua_State *L, void *pData, const Char *Field )override final; private: - - ClassMethodCaller< ShaderParser > m_BindResourcesBinding; - int BindResources( lua_State *L ); - - const String m_ResMappingMetatableName; - EnumMapping m_ShaderSourceLangEnumMapping; - - BindShaderResourcesFlagEnumMapping m_BindShaderResFlagEnumMapping; }; } diff --git a/RenderScript/include/ShaderVariableParser.h b/RenderScript/include/ShaderVariableParser.h index e75d99e..6b97e89 100644 --- a/RenderScript/include/ShaderVariableParser.h +++ b/RenderScript/include/ShaderVariableParser.h @@ -35,13 +35,13 @@ namespace Diligent { public: ShaderVariableParser( IRenderDevice *pRenderDevice, lua_State *L, - const String &ShaderLibMetatableName, + const String &PSOLibMetatableName, const String &BufferLibMetatableName, const String &BufferViewLibMetatableName, const String &TexViewMetatableName ); static const Char* ShaderVariableLibName; - void GetObjectByName( lua_State *L, const Char *ShaderName, IShaderVariable** ppObject ); + void GetObjectByName( lua_State *L, const Char *ShaderName, IShaderResourceVariable** ppObject ); protected: virtual void CreateObj( lua_State *L )override final; @@ -51,15 +51,17 @@ namespace Diligent virtual void PushExistingObject( lua_State *L, const void *pObject )override final; private: - const String m_ShaderLibMetatableName; + const String m_PSOLibMetatableName; const String m_BufferLibMetatableName; const String m_BufferViewLibMetatableName; const String m_TexViewMetatableName; + ShaderTypeEnumMapping m_ShaderTypeEnumMapping; + int Set( lua_State *L ); ClassMethodCaller < ShaderVariableParser > m_SetBinding; - ClassMethodCaller m_GetShaderVariableBinding; - int GetShaderVariable( lua_State *L ); + ClassMethodCaller m_GetStaticShaderVariableBinding; + int GetStaticShaderVariable( lua_State *L ); }; } -- cgit v1.2.3