|
CeresEngine 0.2.0
A game development framework
|
A renderer compute pipeline. More...
#include <CeresEngine/Renderer/Resources/RendererComputePipeline.hpp>
Public Member Functions | |
| RendererComputePipeline (RendererComputePipelineManager &manager, StringView name, const RendererShaderPtr &shader, const GPUPipelineLayoutPtr &pipelineLayout=nullptr) | |
| Creates a new renderer compute pipeline instance. | |
| ~RendererComputePipeline () | |
| GPUComputePipelinePtr | getPipeline (const RendererComputePipelineSpecialization &specialization) const |
| Gets the compiled compute pipeline program for the given parameters. | |
| GPUComputePipelinePtr | getPipeline (RendererShaderSpecialization shaderSpecialization=RendererShaderSpecialization()) const |
| Gets the compiled compute pipeline program for the given parameters. | |
| const String & | getName () const noexcept |
| A human-readable name to use on the pipeline. | |
| const GPUPipelineLayoutPtr & | getPipelineLayout () const noexcept |
| Pointer to an optional pipeline layout for the compute pipeline. | |
| const RendererShaderPtr & | getShader () const noexcept |
| The shader to be used when creating new GPU Compute Pipeline instances. | |
Public Member Functions inherited from CeresEngine::RefCounted< RendererComputePipeline > | |
| RefCounted (Args &&... args) | |
Creates a new RefCounted object and constructs a new Deleter by forwarding Args to it. | |
| void | retain () noexcept |
| Retains the object by increment it's reference count by one. | |
| bool | release () noexcept |
| Relases the object by decrementing it's reference count by one. | |
Private Attributes | |
| RendererComputePipelineManager & | mManager |
| The renderer compute pipeline manager that owns this compute pipeline object. | |
| String | mName |
| A human-readable name to use on the pipeline. | |
| RendererShaderPtr | mShader |
| The shader to be used when creating new GPU Compute Pipeline instances. | |
| GPUPipelineLayoutPtr | mPipelineLayout = nullptr |
| Pointer to an optional pipeline layout for the compute pipeline. | |
| HashMap< UInt64, GPUComputePipelinePtr > | mPipelines |
| The compute pipeline programs, indexed by their parameters hash. | |
Friends | |
| class | RendererComputePipelineManager |
A renderer compute pipeline.
This is similar to a GPUComputePipeline but is managed by the renderer and allows mutation of certain parameters on runtime with automatic specialization by the renderer.
|
explicit |
Creates a new renderer compute pipeline instance.
| manager | The manager that owns this pipeline object. |
| name | A human-readable name to use on the pipeline.\ |
| shader | The shader program that should be used when specializing the compute pipeline. |
| pipelineLayout | The pipeline layout object. If empty, one will be deduced from the shader and render pass. |
| CeresEngine::RendererComputePipeline::~RendererComputePipeline | ( | ) |
A human-readable name to use on the pipeline.
| GPUComputePipelinePtr CeresEngine::RendererComputePipeline::getPipeline | ( | const RendererComputePipelineSpecialization & | specialization | ) | const |
Gets the compiled compute pipeline program for the given parameters.
| specialization | The pipeline specialization parameters. |
|
inline |
Gets the compiled compute pipeline program for the given parameters.
| shaderSpecialization | A description of the shader specialization to use. |
|
inlinenoexcept |
Pointer to an optional pipeline layout for the compute pipeline.
By default null.
|
inlinenoexcept |
The shader to be used when creating new GPU Compute Pipeline instances.
|
private |
The renderer compute pipeline manager that owns this compute pipeline object.
|
private |
A human-readable name to use on the pipeline.
|
private |
Pointer to an optional pipeline layout for the compute pipeline.
By default null.
|
mutableprivate |
The compute pipeline programs, indexed by their parameters hash.
|
private |
The shader to be used when creating new GPU Compute Pipeline instances.