|
CeresEngine 0.2.0
A game development framework
|
The renderer compute pipeline manager that is responsible for managing and re-using GPU compute pipelines. More...
#include <CeresEngine/Renderer/Resources/RendererComputePipeline.hpp>
Classes | |
| struct | ComputePipelineInfo |
Public Member Functions | |
| RendererComputePipelineManager (Renderer &renderer) | |
| Creates a new ComputePipeline Manager instance. | |
| RendererComputePipelinePtr | get (StringView name, const RendererShaderPtr &shader, const GPUPipelineLayoutPtr &pipelineLayout=nullptr) |
| Gets (or creates) a new RendererComputePipeline from a compute pipeline state descriptor. | |
| RendererComputePipelinePtr | get (const RendererShaderPtr &shader, const GPUPipelineLayoutPtr &pipelineLayout=nullptr) |
| Gets (or creates) a new RendererComputePipeline from a compute pipeline compute pipeline program descriptor. | |
Private Member Functions | |
| RendererComputePipelinePtr | getOrCreate (StringView name, const RendererShaderPtr &shader, const GPUPipelineLayoutPtr &pipelineLayout) |
Gets an existing or creates a new renderer compute pipeline instance for the given base descriptor. | |
| void | notifyDestroy (const RendererComputePipeline *computePipeline) noexcept |
| Notifies the manager that the renderer compute pipeline is being destroyed. | |
Private Attributes | |
| Renderer & | mRenderer |
| The renderer that owns this manager instance. | |
| HashMap< UInt64, ComputePipelineInfo > | mComputePipelines |
| A map that holds compute pipeline information for each base compute pipeline descriptor. | |
Friends | |
| class | RendererComputePipeline |
The renderer compute pipeline manager that is responsible for managing and re-using GPU compute pipelines.
|
explicit |
Creates a new ComputePipeline Manager instance.
| renderer | The renderer that owns this manager instance. |
|
inline |
Gets (or creates) a new RendererComputePipeline from a compute pipeline compute pipeline program descriptor.
| shader | The shader program that should be used when specializing the compute pipeline. |
| pipelineLayout | The pipeline layout object. If nullptr, one will be deduced from the shader and render pass. |
| RendererComputePipelinePtr CeresEngine::RendererComputePipelineManager::get | ( | StringView | name, |
| const RendererShaderPtr & | shader, | ||
| const GPUPipelineLayoutPtr & | pipelineLayout = nullptr |
||
| ) |
Gets (or creates) a new RendererComputePipeline from a compute pipeline state descriptor.
| 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 nullptr, one will be deduced from the shader and render pass. |
|
private |
Gets an existing or creates a new renderer compute pipeline instance for the given base descriptor.
|
privatenoexcept |
Notifies the manager that the renderer compute pipeline is being destroyed.
|
friend |
|
private |
A map that holds compute pipeline information for each base compute pipeline descriptor.
|
private |
The renderer that owns this manager instance.