From aa2c53d75bcabb63f07c7e10225e1a95c79bfaa8 Mon Sep 17 00:00:00 2001 From: Pavel Rojtberg Date: Thu, 19 Oct 2023 23:29:13 +0200 Subject: [PATCH] RTSS: slightly refactor ProgramProcessor --- .../src/OgreShaderGLSLProgramProcessor.cpp | 27 ---------------- .../src/OgreShaderGLSLProgramProcessor.h | 23 ------------- .../src/OgreShaderHLSLProgramProcessor.cpp | 32 ------------------- .../src/OgreShaderHLSLProgramProcessor.h | 24 -------------- .../src/OgreShaderProgramProcessor.cpp | 13 ++++++++ .../src/OgreShaderProgramProcessor.h | 2 +- 6 files changed, 14 insertions(+), 107 deletions(-) diff --git a/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.cpp b/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.cpp index 32ffe66efc02..9f6837bc727e 100644 --- a/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.cpp +++ b/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.cpp @@ -30,33 +30,6 @@ THE SOFTWARE. namespace Ogre { namespace RTShader { -//----------------------------------------------------------------------------- -GLSLProgramProcessor::GLSLProgramProcessor() -{ -} - -//----------------------------------------------------------------------------- -GLSLProgramProcessor::~GLSLProgramProcessor() -{ -} - -//----------------------------------------------------------------------------- -bool GLSLProgramProcessor::preCreateGpuPrograms(ProgramSet* programSet) -{ - Program* vsProgram = programSet->getCpuProgram(GPT_VERTEX_PROGRAM); - Program* fsProgram = programSet->getCpuProgram(GPT_FRAGMENT_PROGRAM); - Function* vsMain = vsProgram->getEntryPointFunction(); - Function* fsMain = fsProgram->getEntryPointFunction(); - bool success; - - // Compact vertex shader outputs. - success = ProgramProcessor::compactVsOutputs(vsMain, fsMain); - if (success == false) - return false; - - return true; -} - //----------------------------------------------------------------------------- bool GLSLProgramProcessor::postCreateGpuPrograms(ProgramSet* programSet) { diff --git a/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.h b/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.h index 8dcc65f07c36..33e7e3968aeb 100644 --- a/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.h +++ b/Components/RTShaderSystem/src/OgreShaderGLSLProgramProcessor.h @@ -45,30 +45,7 @@ namespace RTShader { */ class GLSLProgramProcessor : public ProgramProcessor { - -// Interface. -public: - - /** Class constructor. - */ - GLSLProgramProcessor(); - - /** Class destructor */ - virtual ~GLSLProgramProcessor(); - - /** - @see ProgramProcessor::preCreateGpuPrograms - */ - bool preCreateGpuPrograms(ProgramSet* programSet) override; - - /** - @see ProgramProcessor::postCreateGpuPrograms - */ bool postCreateGpuPrograms(ProgramSet* programSet) override; - - -private: - /** Bind texture samplers. */ void bindTextureSamplers(Program* pCpuProgram, GpuProgramPtr pGpuProgram); }; diff --git a/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.cpp b/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.cpp index bfe436b0f270..243c5fd0e3a1 100644 --- a/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.cpp +++ b/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.cpp @@ -29,38 +29,6 @@ THE SOFTWARE. namespace Ogre { namespace RTShader { - -String HLSLProgramProcessor::TargetLanguage = "hlsl"; - -//----------------------------------------------------------------------------- -HLSLProgramProcessor::HLSLProgramProcessor() -{ - -} - -//----------------------------------------------------------------------------- -HLSLProgramProcessor::~HLSLProgramProcessor() -{ - -} - -//----------------------------------------------------------------------------- -bool HLSLProgramProcessor::preCreateGpuPrograms( ProgramSet* programSet ) -{ - Program* vsProgram = programSet->getCpuProgram(GPT_VERTEX_PROGRAM); - Program* psProgram = programSet->getCpuProgram(GPT_FRAGMENT_PROGRAM); - Function* vsMain = vsProgram->getEntryPointFunction(); - Function* fsMain = psProgram->getEntryPointFunction(); - bool success; - - // Compact vertex shader outputs. - success = ProgramProcessor::compactVsOutputs(vsMain, fsMain); - if (success == false) - return false; - - return true; -} - //----------------------------------------------------------------------------- bool HLSLProgramProcessor::postCreateGpuPrograms( ProgramSet* programSet ) { diff --git a/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.h b/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.h index be5ad00491a1..aa015ce5b5f3 100644 --- a/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.h +++ b/Components/RTShaderSystem/src/OgreShaderHLSLProgramProcessor.h @@ -45,31 +45,7 @@ namespace RTShader { */ class HLSLProgramProcessor : public ProgramProcessor { - - // Interface. -public: - - /** Class constructor. - */ - HLSLProgramProcessor(); - - /** Class destructor */ - virtual ~HLSLProgramProcessor(); - - /** Return the target language of this processor. */ - virtual const String& getTargetLanguage() const { return TargetLanguage; } - - /** - @see ProgramProcessor::preCreateGpuPrograms - */ - bool preCreateGpuPrograms(ProgramSet* programSet) override; - /** - @see ProgramProcessor::postCreateGpuPrograms - */ bool postCreateGpuPrograms(ProgramSet* programSet) override; - - static String TargetLanguage; - }; diff --git a/Components/RTShaderSystem/src/OgreShaderProgramProcessor.cpp b/Components/RTShaderSystem/src/OgreShaderProgramProcessor.cpp index 564c5d1382b8..03552f05c5df 100644 --- a/Components/RTShaderSystem/src/OgreShaderProgramProcessor.cpp +++ b/Components/RTShaderSystem/src/OgreShaderProgramProcessor.cpp @@ -44,6 +44,19 @@ ProgramProcessor::~ProgramProcessor() } +//----------------------------------------------------------------------------- +bool ProgramProcessor::preCreateGpuPrograms(ProgramSet* programSet) +{ + Program* vsProgram = programSet->getCpuProgram(GPT_VERTEX_PROGRAM); + Program* fsProgram = programSet->getCpuProgram(GPT_FRAGMENT_PROGRAM); + Function* vsMain = vsProgram->getEntryPointFunction(); + Function* fsMain = fsProgram->getEntryPointFunction(); + + // Compact vertex shader outputs. + return compactVsOutputs(vsMain, fsMain); +} + + //----------------------------------------------------------------------------- void ProgramProcessor::bindAutoParameters(Program* pCpuProgram, GpuProgramPtr pGpuProgram) { diff --git a/Components/RTShaderSystem/src/OgreShaderProgramProcessor.h b/Components/RTShaderSystem/src/OgreShaderProgramProcessor.h index f3fae078ec00..38d1329f5fdf 100644 --- a/Components/RTShaderSystem/src/OgreShaderProgramProcessor.h +++ b/Components/RTShaderSystem/src/OgreShaderProgramProcessor.h @@ -63,7 +63,7 @@ class ProgramProcessor : public RTShaderSystemAlloc @param programSet The program set container. Return true on success. */ - virtual bool preCreateGpuPrograms(ProgramSet* programSet) = 0; + virtual bool preCreateGpuPrograms(ProgramSet* programSet); /** Called after creation of the GPU programs. @param programSet The program set container.