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

#include <CeresEngine/Renderer/RenderGraph/RenderResource.hpp>

Inheritance diagram for CeresEngine::RenderResource:
CeresEngine::RefCounted< RenderResource > CeresEngine::TRenderResource< GPUBuffer, GPUBufferDescriptor, RenderResourceType::Buffer > CeresEngine::TRenderResource< GPUImage, GPUImageDescriptor, RenderResourceType::Image > CeresEngine::TRenderResource< R, D, RT > CeresEngine::BufferRenderResource CeresEngine::ImageRenderResource CeresEngine::ExternalBufferRenderResource CeresEngine::TransientBufferRenderResource CeresEngine::ExternalImageRenderResource CeresEngine::TransientImageRenderResource

Public Member Functions

 RenderResource (RenderGraph &renderGraph)
 
virtual ~RenderResource ()=default
 
virtual void realize (GPUDevice &device)=0
 Realizes the resource.
 
virtual void unrealize (GPUDevice &device)=0
 Unrealizes the resource.
 
virtual bool isTransient () const =0
 
virtual bool isExternal () const =0
 
virtual bool isValid () const =0
 
 operator bool () const
 
const Vector< RenderTask * > & getReaders () const
 
const Vector< RenderTask * > & getWriters () const
 
- Public Member Functions inherited from CeresEngine::RefCounted< RenderResource >
 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 Attributes

RenderGraphmRenderGraph
 The owning render graph instance.
 

Private Attributes

Vector< RenderTask * > mReaders
 
Vector< RenderTask * > mWriters
 

Friends

class RenderTask
 

Constructor & Destructor Documentation

◆ RenderResource()

CeresEngine::RenderResource::RenderResource ( RenderGraph renderGraph)
inlineexplicit

◆ ~RenderResource()

virtual CeresEngine::RenderResource::~RenderResource ( )
virtualdefault

Member Function Documentation

◆ getReaders()

const Vector< RenderTask * > & CeresEngine::RenderResource::getReaders ( ) const
inline

◆ getWriters()

const Vector< RenderTask * > & CeresEngine::RenderResource::getWriters ( ) const
inline

◆ isExternal()

virtual bool CeresEngine::RenderResource::isExternal ( ) const
pure virtual

◆ isTransient()

virtual bool CeresEngine::RenderResource::isTransient ( ) const
pure virtual
Returns
true if the resource is transient and will be automatically created by the render graph implementation.

Implemented in CeresEngine::TransientImageRenderResource, CeresEngine::ExternalImageRenderResource, CeresEngine::TransientBufferRenderResource, and CeresEngine::ExternalBufferRenderResource.

◆ isValid()

virtual bool CeresEngine::RenderResource::isValid ( ) const
pure virtual

◆ operator bool()

CeresEngine::RenderResource::operator bool ( ) const
inlineexplicit
Returns
true if the resource is created and can be used at this moment.

◆ realize()

virtual void CeresEngine::RenderResource::realize ( GPUDevice device)
pure virtual

Realizes the resource.

If the resource is a transient resource, it will be created at this stage. Normally, this method is called before executing the first render tasks that uses it.

Parameters
deviceThe device to allocate the resource from.

Implemented in CeresEngine::TransientImageRenderResource, CeresEngine::ExternalImageRenderResource, CeresEngine::TransientBufferRenderResource, and CeresEngine::ExternalBufferRenderResource.

◆ unrealize()

virtual void CeresEngine::RenderResource::unrealize ( GPUDevice device)
pure virtual

Unrealizes the resource.

If the resource is a transient resource, it will be destroyed at this stage. Normally, this method is called after executing the last render tasks that uses it.

Parameters
deviceThe device to allocate the resource from.

Implemented in CeresEngine::TransientImageRenderResource, CeresEngine::ExternalImageRenderResource, CeresEngine::TransientBufferRenderResource, and CeresEngine::ExternalBufferRenderResource.

Friends And Related Symbol Documentation

◆ RenderTask

Member Data Documentation

◆ mReaders

Vector<RenderTask*> CeresEngine::RenderResource::mReaders
private

◆ mRenderGraph

RenderGraph& CeresEngine::RenderResource::mRenderGraph
protected

The owning render graph instance.

◆ mWriters

Vector<RenderTask*> CeresEngine::RenderResource::mWriters
private

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