18 #ifndef INCLUDED_SHADERTECHNIQUE 19 #define INCLUDED_SHADERTECHNIQUE 40 std::unique_ptr<Renderer::Backend::IGraphicsPipelineState> pipelineState,
63 std::function<void(Renderer::Backend::SGraphicsPipelineStateDesc& pipelineStateDesc)>;
67 void SetPasses(std::vector<CShaderPass>&& passes);
69 int GetNumPasses()
const;
74 GetGraphicsPipelineState(
int pass = 0)
const;
80 bool GetSortByDistance()
const;
82 void SetSortByDistance(
bool enable);
93 bool m_SortByDistance =
false;
102 #endif // INCLUDED_SHADERTECHNIQUE VfsPath m_Path
Definition: ShaderTechnique.h:96
CShaderDefines m_Defines
Definition: ShaderTechnique.h:97
CShaderProgramPtr m_Shader
Definition: ShaderTechnique.h:50
Implements a render pass consisting of a pipeline state and a shader, used by CShaderTechnique.
Definition: ShaderTechnique.h:36
CShaderPass(std::unique_ptr< Renderer::Backend::IGraphicsPipelineState > pipelineState, const CShaderProgramPtr &shader)
Definition: ShaderTechnique.cpp:25
std::unique_ptr< Renderer::Backend::IGraphicsPipelineState > m_PipelineState
Definition: ShaderTechnique.h:52
const CShaderDefines & GetShaderDefines()
Definition: ShaderTechnique.h:86
Implements a render technique consisting of a sequence of passes.
Definition: ShaderTechnique.h:59
A holder for precompiled graphics pipeline description.
Definition: PipelineState.h:190
IShaderProgram is a container for multiple shaders of different types.
Definition: IShaderProgram.h:80
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
Definition: ShaderDefines.h:146
Renderer::Backend::IGraphicsPipelineState * GetPipelineState() const noexcept
Definition: ShaderTechnique.h:47
const VfsPath & GetPath()
Definition: ShaderTechnique.h:84
std::function< void(Renderer::Backend::SGraphicsPipelineStateDesc &pipelineStateDesc)> PipelineStateDescCallback
Definition: ShaderTechnique.h:63
PipelineStateDescCallback m_PipelineStateDescCallback
Definition: ShaderTechnique.h:99
std::vector< CShaderPass > m_Passes
Definition: ShaderTechnique.h:88
std::shared_ptr< CShaderProgram > CShaderProgramPtr
Definition: ShaderProgramPtr.h:25
const CShaderProgramPtr & GetShaderProgram() const noexcept
Definition: ShaderTechnique.h:44