NDEVR
API Documentation
GraphicsPipelineabstract

A GraphicsPipeline is a set of resources that are chained together to correctly render something. More...

Inheritance diagram for GraphicsPipeline:
[legend]

Public Member Functions

virtual ~GraphicsPipeline ()
 Destructor.
virtual void cleanResources ()=0
 Cleans up stale or unused GPU resources.
virtual void cleanup ()=0
 Releases all GPU resources.
virtual void commit (GraphicsUpdateArguments &args)=0
 Commits pending changes to the GPU.
virtual bool createPipeline (GraphicsUpdateArguments &args)=0
 Creates or recreates the rendering pipeline.
virtual const ConstPointer< GraphicsDevice > & device () const =0
 Returns the graphics device (const).
virtual const DynamicPointer< GraphicsDevice > & device ()=0
 Returns the graphics device.
virtual void drawFrame (GraphicsUpdateArguments &args)=0
 Renders a single frame.
virtual void ensureLastRenderComplete ()=0
 Blocks until the last submitted render is complete.
virtual bool hasCommand () const =0
 Checks whether there are pending commands to execute.
virtual void init (GraphicsUpdateArguments &args)=0
 Initializes the pipeline with the given arguments.
virtual bool runCommand (GraphicsUpdateArguments &args)=0
 Executes a queued rendering command.
virtual void setWindowInstance (WindowInstance *instance)=0
 Associates a window instance with this pipeline.
virtual void updateUniformBuffer (GraphicsUpdateArguments &args)=0
 Updates the camera uniform buffer on the GPU.

Detailed Description

A GraphicsPipeline is a set of resources that are chained together to correctly render something.


See also
GraphicsDevice, GraphicsSession, Renderer

Definition at line 48 of file GraphicsPipeline.h.

Member Function Documentation

◆ commit()

virtual void GraphicsPipeline::commit ( GraphicsUpdateArguments & args)
pure virtual

Commits pending changes to the GPU.

Parameters
[in]argsThe update arguments.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ createPipeline()

virtual bool GraphicsPipeline::createPipeline ( GraphicsUpdateArguments & args)
pure virtual

Creates or recreates the rendering pipeline.

Parameters
[in]argsThe update arguments.
Returns
True if the pipeline was created successfully.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ device() [1/2]

virtual const ConstPointer< GraphicsDevice > & GraphicsPipeline::device ( ) const
pure virtual

Returns the graphics device (const).

Returns
Const reference to the device pointer.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ device() [2/2]

virtual const DynamicPointer< GraphicsDevice > & GraphicsPipeline::device ( )
pure virtual

Returns the graphics device.

Returns
Reference to the device pointer.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ drawFrame()

virtual void GraphicsPipeline::drawFrame ( GraphicsUpdateArguments & args)
pure virtual

Renders a single frame.

Parameters
[in]argsThe update arguments.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ hasCommand()

virtual bool GraphicsPipeline::hasCommand ( ) const
pure virtual

Checks whether there are pending commands to execute.

Returns
True if commands are pending.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ init()

virtual void GraphicsPipeline::init ( GraphicsUpdateArguments & args)
pure virtual

Initializes the pipeline with the given arguments.

Parameters
[in]argsThe update arguments.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ runCommand()

virtual bool GraphicsPipeline::runCommand ( GraphicsUpdateArguments & args)
pure virtual

Executes a queued rendering command.

Parameters
[in]argsThe update arguments.
Returns
True if a command was executed.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ setWindowInstance()

virtual void GraphicsPipeline::setWindowInstance ( WindowInstance * instance)
pure virtual

Associates a window instance with this pipeline.

Parameters
[in]instanceThe window instance.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.

◆ updateUniformBuffer()

virtual void GraphicsPipeline::updateUniformBuffer ( GraphicsUpdateArguments & args)
pure virtual

Updates the camera uniform buffer on the GPU.

Parameters
[in]argsThe update arguments.

Implemented in GLESGraphicsPipeline, GLESGraphicsSession, VulkanRenderPipeline, and VulkanSession.


The documentation for this class was generated from the following file: