|
CeresEngine 0.2.0
A game development framework
|
A simple graphics task that makes easier implementing tasks that use a single graphics pipeline. More...
#include <CeresEngine/Renderer/RenderGraph/RenderTask.hpp>
Public Member Functions | |
| SimpleGraphicsRenderTask2 (RenderGraph &renderGraph, const String &name) | |
| void | execute (RenderGraphContext &context, GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget) override |
| StringView | getName () const override |
| Returns a display name for the render task. | |
| virtual void | execute (RenderGraphContext &context, GPUCommandBuffer &commandBuffer)=0 |
Executes the render task with the given commandBuffer. | |
Public Member Functions inherited from CeresEngine::GraphicsRenderTask | |
| RenderTask (RenderGraph &renderGraph) | |
Public Member Functions inherited from CeresEngine::RenderTask | |
| RenderTask (RenderGraph &renderGraph) | |
| virtual | ~RenderTask () |
| RenderTaskResourceUsage & | compile () |
| Compiles the render task. | |
| virtual RenderTaskStatus | check () const |
| Returns true if the task is dirty and needs to be run. | |
| virtual Any | getSettings () const |
| Gets a const-reference to the render task settings. | |
| virtual Any | getSettings () |
| Gets a reference to the render task settings. | |
| const Vector< InputSlot * > & | getInputs () const |
| const Vector< OutputSlot * > & | getOutputs () const |
| const RenderTaskResourceUsage & | getResourceUsage () const |
Public Member Functions inherited from CeresEngine::RefCounted< RenderTask > | |
| 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. | |
Protected Member Functions | |
| virtual void | initialize (GPUDevice &device) |
| Perform a sequence of steps that initialize the graphics render task. | |
| virtual void | execute (RenderGraphContext &context, GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget, RendererGraphicsPipeline &pipeline)=0 |
Executes the graphics render task with the given commandBuffer, pipeline and renderTarget. | |
| virtual bool | isShaderDirty (RendererShader &shader, GPURenderPass &renderPass) const |
| Checks if the shader is dirty and needs to be recreated. | |
| virtual RendererShaderPtr | createShader (RendererShaderManager &shaderManager, GPURenderPass &renderPass)=0 |
| Creates a new shader instance for the render task. | |
| virtual bool | isGraphicsPipelineDirty (RendererGraphicsPipeline &graphicsPipeline, GPURenderPass &renderPass) const |
| Checks if the graphics pipeline is dirty and needs to be recreated. | |
| virtual RendererGraphicsPipelinePtr | createGraphicsPipeline (RendererGraphicsPipelineManager &graphicsPipelineManager, RendererShader &shader, GPURenderPass &renderPass)=0 |
| Creates a new graphics pipeline instance for the render task. | |
Protected Member Functions inherited from CeresEngine::GraphicsRenderTask | |
| virtual bool | isRenderPassDirty (GPURenderPass &renderPass) const |
| Checks if the render pass is dirty and needs to be recreated. | |
| virtual GPURenderPassPtr | createRenderPass (GPUDevice &device) |
| Creates a new render pass instance for the render task. | |
| virtual bool | isRenderTargetDirty (GPURenderTarget &renderTarget, GPURenderPass &renderPass) const |
| Checks if the render target is dirty and needs to be recreated. | |
| virtual GPURenderTargetPtr | createRenderTarget (GPUDevice &device, GPURenderPass &renderPass) |
| Creates a new render target instance for the render task. | |
Protected Member Functions inherited from CeresEngine::RenderTask | |
| virtual void | compile (RenderTaskCompiler &compiler)=0 |
| Compiles the render task. | |
| virtual bool | shouldConnect (const Slot &slot, const Slot &targetSlot) const |
| An internal method called whenever a new connection is being made. | |
| virtual void | willConnect (Slot &slot, Slot &targetSlot) |
| An internal method called before the slot is connected. | |
| virtual void | didConnect (Slot &slot, Connection &connection) |
| An internal method called after the slot is connected. | |
| virtual bool | shouldDisconnect (const Slot &slot, const Connection &connection) const |
| An internal method called whenever a new disconnection is being made. | |
| virtual void | willDisconnect (Slot &slot, Connection &connection) |
| An internal method called before the slot is disconnected. | |
| virtual void | didDisconnect (Slot &slot, Connection &connection) |
| An internal method called whenever the slot is disconnected. | |
| ImageRenderResource & | create (const GPUImageDescriptor &descriptor) |
| BufferRenderResource & | create (const GPUBufferDescriptor &descriptor) |
Protected Attributes | |
| RendererShaderPtr | mShader |
| The cached graphics pipeline instance. | |
| RendererGraphicsPipelinePtr | mPipeline |
| The cached graphics pipeline instance. | |
Protected Attributes inherited from CeresEngine::GraphicsRenderTask | |
| GPURenderPassPtr | mRenderPass |
| The cached render pass instance. | |
| GPURenderTargetPtr | mRenderTarget |
| The cached render target instance. | |
Protected Attributes inherited from CeresEngine::RenderTask | |
| RenderTaskResourceUsage | mResourceUsage |
Private Attributes | |
| String | mName |
| A display name for the render task. | |
| bool | mInitialized = false |
| A flag that indicates if the render task initializer has been called. | |
A simple graphics task that makes easier implementing tasks that use a single graphics pipeline.
|
inlineexplicit |
|
protectedpure virtual |
Creates a new graphics pipeline instance for the render task.
| graphicsPipelineManager | The manager to be used when creating a new pipeline. |
| renderPass | A reference to the current render pass. The implementation must use this render pass to create the new graphics pipeline. |
Implemented in CeresEngine::DepthPrePassRenderTask, CeresEngine::BasePassRenderTask, CeresEngine::BasePassTerrainRenderTask, CeresEngine::FinalCompositingRenderTask, and CeresEngine::PBRDeferredLightingRenderTask.
|
protectedpure virtual |
Creates a new shader instance for the render task.
| shaderManager | The manager to be used when creating a new shader. |
| renderPass | A reference to the current render pass. The implementation must use this render pass to create the new shader. |
Implemented in CeresEngine::DepthPrePassRenderTask, CeresEngine::BasePassRenderTask, CeresEngine::BasePassTerrainRenderTask, CeresEngine::FinalCompositingRenderTask, and CeresEngine::PBRDeferredLightingRenderTask.
|
virtual |
Executes the render task with the given commandBuffer.
| commandBuffer | The command buffer to encode the render task to. |
Reimplemented from CeresEngine::GraphicsRenderTask.
|
overridevirtual |
Implements CeresEngine::GraphicsRenderTask.
|
protectedpure virtual |
Executes the graphics render task with the given commandBuffer, pipeline and renderTarget.
| commandBuffer | The command buffer to encode the render task to. |
| renderTarget | The render target to render to. |
| pipeline | The graphics pipeline for the task. |
Implemented in CeresEngine::BasePassRenderTask, CeresEngine::DepthPrePassRenderTask, CeresEngine::BasePassTerrainRenderTask, CeresEngine::FinalCompositingRenderTask, and CeresEngine::PBRDeferredLightingRenderTask.
|
inlineoverridevirtual |
Returns a display name for the render task.
Reimplemented from CeresEngine::RenderTask.
|
inlineprotectedvirtual |
Perform a sequence of steps that initialize the graphics render task.
These operations are only executed once in the first execution.
Reimplemented in CeresEngine::FinalCompositingRenderTask, and CeresEngine::PBRDeferredLightingRenderTask.
|
inlineprotectedvirtual |
Checks if the graphics pipeline is dirty and needs to be recreated.
| graphicsPipeline | A reference to the previous graphics pipeline. The implementation can use this to compare the existing pipeline to check if it needs to recreate it. |
| renderPass | A reference to the current render pass. The implementation must use this render pass to create the new graphics pipeline. |
true if the implementation wishes to recreate the graphics pipeline.
|
inlineprotectedvirtual |
Checks if the shader is dirty and needs to be recreated.
| shader | A reference to the previous shader. The implementation can use this to compare the existing pipeline to check if it needs to recreate it. |
| renderPass | A reference to the current render pass. The implementation must use this render pass to create the new shader. |
true if the implementation wishes to recreate the shader. A flag that indicates if the render task initializer has been called.
|
private |
A display name for the render task.
|
protected |
The cached graphics pipeline instance.
|
protected |
The cached graphics pipeline instance.