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