![]() |
Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Implements a render technique consisting of a sequence of passes. More...
#include <ShaderTechnique.h>

Public Types | |
| using | PipelineStateDescCallback = std::function< void(Renderer::Backend::SGraphicsPipelineStateDesc &pipelineStateDesc)> |
Public Member Functions | |
| CShaderTechnique (const VfsPath &path, const CShaderDefines &defines, const PipelineStateDescCallback &callback) | |
| void | SetPasses (std::vector< CShaderPass > &&passes) |
| void | SetComputePipelineState (std::unique_ptr< Renderer::Backend::IComputePipelineState > pipelineState, const CShaderProgramPtr &computeShader) |
| int | GetNumPasses () const |
| Renderer::Backend::IShaderProgram * | GetShader (int pass=0) const |
| Renderer::Backend::IGraphicsPipelineState * | GetGraphicsPipelineState (int pass=0) const |
| Renderer::Backend::IComputePipelineState * | GetComputePipelineState () const |
| bool | GetSortByDistance () const |
| Whether this technique uses alpha blending that requires objects to be drawn from furthest to nearest. More... | |
| void | SetSortByDistance (bool enable) |
| const VfsPath & | GetPath () |
| const CShaderDefines & | GetShaderDefines () |
| const PipelineStateDescCallback & | GetPipelineStateDescCallback () const |
Private Attributes | |
| std::vector< CShaderPass > | m_Passes |
| bool | m_SortByDistance = false |
| VfsPath | m_Path |
| CShaderDefines | m_Defines |
| PipelineStateDescCallback | m_PipelineStateDescCallback |
| std::unique_ptr< Renderer::Backend::IComputePipelineState > | m_ComputePipelineState |
| CShaderProgramPtr | m_ComputeShader |
Implements a render technique consisting of a sequence of passes.
CShaderManager loads these from shader effect XML files.
| using CShaderTechnique::PipelineStateDescCallback = std::function<void(Renderer::Backend::SGraphicsPipelineStateDesc& pipelineStateDesc)> |
| CShaderTechnique::CShaderTechnique | ( | const VfsPath & | path, |
| const CShaderDefines & | defines, | ||
| const PipelineStateDescCallback & | callback | ||
| ) |
| Renderer::Backend::IComputePipelineState * CShaderTechnique::GetComputePipelineState | ( | ) | const |
| Renderer::Backend::IGraphicsPipelineState * CShaderTechnique::GetGraphicsPipelineState | ( | int | pass = 0 | ) | const |
| int CShaderTechnique::GetNumPasses | ( | ) | const |
|
inline |
|
inline |
| Renderer::Backend::IShaderProgram * CShaderTechnique::GetShader | ( | int | pass = 0 | ) | const |
|
inline |
| bool CShaderTechnique::GetSortByDistance | ( | ) | const |
Whether this technique uses alpha blending that requires objects to be drawn from furthest to nearest.
| void CShaderTechnique::SetComputePipelineState | ( | std::unique_ptr< Renderer::Backend::IComputePipelineState > | pipelineState, |
| const CShaderProgramPtr & | computeShader | ||
| ) |
| void CShaderTechnique::SetPasses | ( | std::vector< CShaderPass > && | passes | ) |
| void CShaderTechnique::SetSortByDistance | ( | bool | enable | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |