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

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

Inheritance diagram for CeresEngine::GLRenderTarget:
CeresEngine::GPURenderTarget CeresEngine::GLDeviceObject< GLRenderTarget, GPURenderTarget > CeresEngine::TDeviceObject< GPURenderTargetDescriptor > CeresEngine::GLObject< ChildTypeName, ParentType > CeresEngine::GPUDeviceObject CeresEngine::GPUObject

Public Member Functions

 GLRenderTarget (GLDevicePtr device, const GPURenderTargetDescriptor &descriptor)
 
 GLRenderTarget (GLDevicePtr device, GLuint existingFramebufferID)
 
 ~GLRenderTarget () final
 
void activate () const
 Activates the framebuffer for rendering in OpenGL.
 
GLuint handle () const
 
const Vector< GLImagePtr > & attachments () const
 
- Public Member Functions inherited from CeresEngine::GPURenderTarget
 GPURenderTarget (const GPURenderTarget &)=delete
 Deleted copy constructor.
 
GPURenderTargetoperator= (const GPURenderTarget &)=delete
 
 GPURenderTarget (GPURenderTarget &&)=delete
 Deleted move constructor.
 
GPURenderTargetoperator= (GPURenderTarget &&)=delete
 
 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< GPURenderTargetDescriptor >
 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.
 

Private Attributes

const GPURenderTargetDescriptor descriptorGL
 The descriptor used to create the render target.
 
GLObjectHandle<&glad_glGenFramebuffers, &glad_glDeleteFramebuffersframebufferID
 The OpenGL framebuffer object.
 
Vector< GLImagePtrmAttachments
 A reference to the images attached to the render target.
 
TExtent2< UInt32mResolution
 
Vector< GLenummColorAttachments
 
GLenum mBlitMask = 0
 

Additional Inherited Members

- Public Types inherited from CeresEngine::TDeviceObject< GPURenderTargetDescriptor >
using Descriptor = GPURenderTargetDescriptor
 An type-alias to the descriptor struct type.
 
- Static Public Member Functions inherited from CeresEngine::GLObject< ChildTypeName, ParentType >
static RC< ChildTypeNamecast (const RC< ParentType > &ptr)
 Casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static RC< ChildTypeNamesafeCast (const RC< ParentType > &ptr)
 Safely casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static ChildTypeNamecast (ParentType &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeNamecast (const ParentType &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static ChildTypeNamecast (ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeNamecast (const ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static ChildTypeNamesafeCast (ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeNamesafeCast (const ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
- Public Attributes inherited from CeresEngine::TDeviceObject< GPURenderTargetDescriptor >
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.
 
- Protected Member Functions inherited from CeresEngine::GLDeviceObject< GLRenderTarget, GPURenderTarget >
 GLDeviceObject (GLDevicePtr device)
 Creates a new GLDeviceObject from the given device.
 
- Protected Attributes inherited from CeresEngine::GLDeviceObject< GLRenderTarget, GPURenderTarget >
GLDevicedeviceGL
 The owning GLDevice instance.
 

Constructor & Destructor Documentation

◆ GLRenderTarget() [1/2]

CeresEngine::GLRenderTarget::GLRenderTarget ( GLDevicePtr  device,
const GPURenderTargetDescriptor descriptor 
)

◆ GLRenderTarget() [2/2]

CeresEngine::GLRenderTarget::GLRenderTarget ( GLDevicePtr  device,
GLuint  existingFramebufferID 
)

◆ ~GLRenderTarget()

CeresEngine::GLRenderTarget::~GLRenderTarget ( )
final

Member Function Documentation

◆ activate()

void CeresEngine::GLRenderTarget::activate ( ) const

Activates the framebuffer for rendering in OpenGL.

◆ attachments()

const Vector< GLImagePtr > & CeresEngine::GLRenderTarget::attachments ( ) const
inline
Returns
A reference to the images attached to the render target.

◆ handle()

GLuint CeresEngine::GLRenderTarget::handle ( ) const
inline
Returns
The OpenGL object handle

Member Data Documentation

◆ descriptorGL

const GPURenderTargetDescriptor CeresEngine::GLRenderTarget::descriptorGL
private

The descriptor used to create the render target.

◆ framebufferID

GLObjectHandle<& glad_glGenFramebuffers , & glad_glDeleteFramebuffers > CeresEngine::GLRenderTarget::framebufferID
private

The OpenGL framebuffer object.

◆ mAttachments

Vector<GLImagePtr> CeresEngine::GLRenderTarget::mAttachments
private

A reference to the images attached to the render target.

◆ mBlitMask

GLenum CeresEngine::GLRenderTarget::mBlitMask = 0
private

◆ mColorAttachments

Vector<GLenum> CeresEngine::GLRenderTarget::mColorAttachments
private

◆ mResolution

TExtent2<UInt32> CeresEngine::GLRenderTarget::mResolution
private

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