CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GLComputePipeline Class Referencefinal

#include <CeresEngine/RenderAPI/OpenGL/GLComputePipeline.hpp>

Inheritance diagram for CeresEngine::GLComputePipeline:
CeresEngine::GPUComputePipeline CeresEngine::GLDeviceObject< GLComputePipeline, GPUComputePipeline > CeresEngine::TDeviceObject< GPUComputePipelineDescriptor > CeresEngine::GLObject< ChildTypeName, ParentType > CeresEngine::GPUDeviceObject CeresEngine::GPUObject

Public Member Functions

 GLComputePipeline (GLDevicePtr device, const GPUComputePipelineDescriptor &descriptor)
 
 ~GLComputePipeline () final
 
GPUResourceSetPtr createResourceSet (const GPUResourceSetDescriptor &descriptor) final
 
void begin (GPUCommandBuffer &commandBuffer) final
 
void end (GPUCommandBuffer &commandBuffer) final
 
- Public Member Functions inherited from CeresEngine::GPUComputePipeline
 GPUComputePipeline (const GPUComputePipeline &)=delete
 Deleted copy constructor.
 
GPUComputePipeline & operator= (const GPUComputePipeline &)=delete
 
 GPUComputePipeline (GPUComputePipeline &&)=delete
 Deleted move constructor.
 
GPUComputePipeline & operator= (GPUComputePipeline &&)=delete
 
template<typename Func , typename... Args>
decltype(auto) with (GPUCommandBuffer &commandBuffer, Func &&func, Args &&... args)
 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< GPUComputePipelineDescriptor >
 TDeviceObject (GPUDevice &device, const Descriptor &descriptor)
 Initializes a new RenderAPI device object instance.
 
 TDeviceObject (const TDeviceObject &)=delete
 
 TDeviceObject (TDeviceObject &&)=delete
 
 ~TDeviceObject () override=default
 
TDeviceObject & operator= (const TDeviceObject &)=delete
 
TDeviceObject & operator= (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
 
GPUObject & operator= (const GPUObject &)=delete
 
 GPUObject (GPUObject &&)=delete
 
GPUObject & operator= (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.
 

Private Attributes

const GPUComputePipelineDescriptor descriptorGL
 A object that describes the graphics pipeline object.
 
GLPipelineLayoutPtr mPipelineLayout
 The OpenGL pipeline layout.
 
GLShaderProgramPtr mShaderProgram
 A vector of all pipelines stages in the pipeline.
 

Additional Inherited Members

- Public Types inherited from CeresEngine::TDeviceObject< GPUComputePipelineDescriptor >
using Descriptor = GPUComputePipelineDescriptor
 An type-alias to the descriptor struct type.
 
- Static Public Member Functions inherited from CeresEngine::GLObject< ChildTypeName, ParentType >
static RC< ChildTypeName > cast (const RC< ParentType > &ptr)
 Casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static RC< ChildTypeName > safeCast (const RC< ParentType > &ptr)
 Safely casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static ChildTypeName & cast (ParentType &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeName & cast (const ParentType &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static ChildTypeName * cast (ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeName * cast (const ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static ChildTypeName * safeCast (ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeName * safeCast (const ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
- Public Attributes inherited from CeresEngine::TDeviceObject< GPUComputePipelineDescriptor >
const Descriptor & descriptor
 A structure that describes the object and it's properties.
 
- Public Attributes inherited from CeresEngine::GPUDeviceObject
GPUDevice & device
 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.
 
- Protected Member Functions inherited from CeresEngine::GLDeviceObject< GLComputePipeline, GPUComputePipeline >
 GLDeviceObject (GLDevicePtr device)
 Creates a new GLDeviceObject from the given device.
 
- Protected Attributes inherited from CeresEngine::GLDeviceObject< GLComputePipeline, GPUComputePipeline >
GLDevice & deviceGL
 The owning GLDevice instance.
 

Constructor & Destructor Documentation

◆ GLComputePipeline()

CeresEngine::GLComputePipeline::GLComputePipeline ( GLDevicePtr  device,
const GPUComputePipelineDescriptor &  descriptor 
)

◆ ~GLComputePipeline()

CeresEngine::GLComputePipeline::~GLComputePipeline ( )
final

Member Function Documentation

◆ begin()

void CeresEngine::GLComputePipeline::begin ( GPUCommandBuffer &  commandBuffer)
finalvirtual

◆ createResourceSet()

GPUResourceSetPtr CeresEngine::GLComputePipeline::createResourceSet ( const GPUResourceSetDescriptor &  descriptor)
finalvirtual

◆ end()

void CeresEngine::GLComputePipeline::end ( GPUCommandBuffer &  commandBuffer)
finalvirtual

Member Data Documentation

◆ descriptorGL

const GPUComputePipelineDescriptor CeresEngine::GLComputePipeline::descriptorGL
private

A object that describes the graphics pipeline object.

◆ mPipelineLayout

GLPipelineLayoutPtr CeresEngine::GLComputePipeline::mPipelineLayout
private

The OpenGL pipeline layout.

◆ mShaderProgram

GLShaderProgramPtr CeresEngine::GLComputePipeline::mShaderProgram
private

A vector of all pipelines stages in the pipeline.


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