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 |