CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GPUGraphicsPipeline Class Referenceabstract

#include <CeresEngine/RenderAPI/GPUGraphicsPipeline.hpp>

Inheritance diagram for CeresEngine::GPUGraphicsPipeline:
CeresEngine::TDeviceObject< GPUGraphicsPipelineDescriptor > CeresEngine::GPUDeviceObject CeresEngine::GPUObject CeresEngine::GLGraphicsPipeline CeresEngine::MKGraphicsPipeline CeresEngine::MTGraphicsPipeline CeresEngine::NLGraphicsPipeline CeresEngine::VKGraphicsPipeline CeresEngine::WGGraphicsPipeline

Classes

class  Scope
 A helper class that begins a scoped graphics pipeline recording. More...
 

Public Member Functions

 GPUGraphicsPipeline (const GPUGraphicsPipeline &)=delete
 Deleted copy constructor.
 
GPUGraphicsPipelineoperator= (const GPUGraphicsPipeline &)=delete
 
 GPUGraphicsPipeline (GPUGraphicsPipeline &&)=delete
 Deleted move constructor.
 
GPUGraphicsPipelineoperator= (GPUGraphicsPipeline &&)=delete
 
virtual GPUResourceSetPtr createResourceSet (const GPUResourceSetDescriptor &descriptor, UInt32 setIndex=0)=0
 Creates a new ResourceSet for the given GraphicsPipeline.
 
virtual void begin (GPUCommandBuffer &commandBuffer)=0
 Prepares the pipeline for execution.
 
virtual void end (GPUCommandBuffer &commandBuffer)=0
 Finishes the pipeline execution.
 
template<typename Func , typename... Args>
decltype(autowith (GPUCommandBuffer &commandBuffer, Func &&func)
 Prepares the pipeline for execution.
 
 TDeviceObject (GPUDevice &device, const Descriptor &descriptor)
 Inherited constructors.
 
 TDeviceObject (const TDeviceObject &)=delete
 Inherited constructors.
 
 TDeviceObject (TDeviceObject &&)=delete
 Inherited constructors.
 
- Public Member Functions inherited from CeresEngine::TDeviceObject< GPUGraphicsPipelineDescriptor >
 TDeviceObject (GPUDevice &device, const Descriptor &descriptor)
 Initializes a new RenderAPI device object instance.
 
 TDeviceObject (const TDeviceObject &)=delete
 
 TDeviceObject (TDeviceObject &&)=delete
 
 ~TDeviceObject () override=default
 
TDeviceObjectoperator= (const TDeviceObject &)=delete
 
TDeviceObjectoperator= (TDeviceObject &&)=delete
 
- Public Member Functions inherited from CeresEngine::GPUDeviceObject
 GPUDeviceObject (GPUDevice &device)
 
 ~GPUDeviceObject () override
 
- Public Member Functions inherited from CeresEngine::GPUObject
 GPUObject ()=default
 
virtual ~GPUObject ()=default
 
 GPUObject (const GPUObject &)=delete
 
GPUObjectoperator= (const GPUObject &)=delete
 
 GPUObject (GPUObject &&)=delete
 
GPUObjectoperator= (GPUObject &&)=delete
 
void retain () noexcept
 Retains the object by increment it's reference count by one.
 
bool release () noexcept
 Releases the object by decrementing it's reference count by one.
 

Additional Inherited Members

- Public Types inherited from CeresEngine::TDeviceObject< GPUGraphicsPipelineDescriptor >
using Descriptor = GPUGraphicsPipelineDescriptor
 An type-alias to the descriptor struct type.
 
- Public Attributes inherited from CeresEngine::TDeviceObject< GPUGraphicsPipelineDescriptor >
const Descriptordescriptor
 A structure that describes the object and it's properties.
 
- Public Attributes inherited from CeresEngine::GPUDeviceObject
GPUDevicedevice
 The owning device this object was created from.
 
- Protected Member Functions inherited from CeresEngine::GPUObject
virtual void destroy () noexcept
 A internal method called by the system when the object reference count reaches zero.
 

Constructor & Destructor Documentation

◆ GPUGraphicsPipeline() [1/2]

CeresEngine::GPUGraphicsPipeline::GPUGraphicsPipeline ( const GPUGraphicsPipeline )
delete

Deleted copy constructor.

◆ GPUGraphicsPipeline() [2/2]

CeresEngine::GPUGraphicsPipeline::GPUGraphicsPipeline ( GPUGraphicsPipeline &&  )
delete

Deleted move constructor.

Member Function Documentation

◆ begin()

virtual void CeresEngine::GPUGraphicsPipeline::begin ( GPUCommandBuffer commandBuffer)
pure virtual

◆ createResourceSet()

virtual GPUResourceSetPtr CeresEngine::GPUGraphicsPipeline::createResourceSet ( const GPUResourceSetDescriptor descriptor,
UInt32  setIndex = 0 
)
pure virtual

Creates a new ResourceSet for the given GraphicsPipeline.

Parameters
descriptorThe descriptor that describes the resources bound to the resource set.
Returns
A newly created DescriptorSet.

Implemented in CeresEngine::MTGraphicsPipeline, CeresEngine::MKGraphicsPipeline, CeresEngine::NLGraphicsPipeline, CeresEngine::GLGraphicsPipeline, CeresEngine::WGGraphicsPipeline, and CeresEngine::VKGraphicsPipeline.

◆ end()

◆ operator=() [1/2]

GPUGraphicsPipeline & CeresEngine::GPUGraphicsPipeline::operator= ( const GPUGraphicsPipeline )
delete

◆ operator=() [2/2]

GPUGraphicsPipeline & CeresEngine::GPUGraphicsPipeline::operator= ( GPUGraphicsPipeline &&  )
delete

◆ TDeviceObject() [1/3]

Inherited constructors.

◆ TDeviceObject() [2/3]

CeresEngine::TDeviceObject< TDescriptor, TParent >::TDeviceObject ( GPUDevice device,
const Descriptor descriptor 
)
inlineexplicit

Inherited constructors.

◆ TDeviceObject() [3/3]

CeresEngine::TDeviceObject< TDescriptor, TParent >::TDeviceObject ( TDeviceObject &&  )
delete

Inherited constructors.

◆ with()

template<typename Func , typename... Args>
decltype(auto) CeresEngine::GPUGraphicsPipeline::with ( GPUCommandBuffer commandBuffer,
Func &&  func 
)
inline

Prepares the pipeline for execution.

When ready, the renderer must call func() so that the user can fill the command buffer within the scope of execution of the pipeline.

Parameters
commandBufferThe command buffer responsible for queuing rendering commands.
funcThe rendering block.

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