116 using TRenderResource::TRenderResource;
195 using TRenderResource::TRenderResource;
284 operator T&()
const {
return get(); }
#define CE_REFL_FUNC(N)
Definition Macros.hpp:552
#define CE_REFL_DATA(N)
Definition Macros.hpp:541
Represents a secure buffer i.e.
Definition Buffer.hpp:28
Definition RenderResource.hpp:193
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
Pointer get() const noexcept
Definition SmartPtr.hpp:244
Definition RenderResource.hpp:227
bool isTransient() const final
Definition RenderResource.hpp:250
const GPUBufferDescriptor & getDescriptor() const final
Gets the resource descriptor.
Definition RenderResource.hpp:246
ExternalBufferRenderResource(RenderGraph &renderGraph, GPUBuffer &buffer)
bool isExternal() const final
Definition RenderResource.hpp:253
void realize(GPUDevice &device) final
Realizes the resource.
GPUBufferPtr mBuffer
Definition RenderResource.hpp:229
ExternalBufferRenderResource(RenderGraph &renderGraph, const GPUBufferPtr &buffer)
void unrealize(GPUDevice &device) final
Unrealizes the resource.
GPUBuffer * get() const final
Definition RenderResource.hpp:243
Definition RenderResource.hpp:158
GPUImage * get() const final
Definition RenderResource.hpp:174
ExternalImageRenderResource(RenderGraph &renderGraph, const GPUImagePtr &image)
bool isExternal() const final
Definition RenderResource.hpp:187
void set(GPUImage &image)
Definition RenderResource.hpp:177
bool isTransient() const final
Definition RenderResource.hpp:184
void realize(GPUDevice &device) final
Realizes the resource.
ExternalImageRenderResource(RenderGraph &renderGraph, GPUImage &image)
const GPUImageDescriptor & getDescriptor() const final
Gets the resource descriptor.
Definition RenderResource.hpp:180
void unrealize(GPUDevice &device) final
Unrealizes the resource.
GPUImagePtr mImage
Definition RenderResource.hpp:160
Definition GPUBuffer.hpp:124
Definition GPUDevice.hpp:357
Definition GPUImage.hpp:331
Definition RenderResource.hpp:114
A simple reference counter base class.
Definition SmartPtr.hpp:438
Definition RenderGraph.hpp:23
Definition RenderResource.hpp:27
virtual ~RenderResource()=default
const Vector< RenderTask * > & getWriters() const
Definition RenderResource.hpp:72
Vector< RenderTask * > mReaders
Definition RenderResource.hpp:35
RenderGraph & mRenderGraph
The owning render graph instance.
Definition RenderResource.hpp:32
virtual void realize(GPUDevice &device)=0
Realizes the resource.
virtual bool isValid() const =0
RenderResource(RenderGraph &renderGraph)
Definition RenderResource.hpp:39
virtual bool isTransient() const =0
const Vector< RenderTask * > & getReaders() const
Definition RenderResource.hpp:71
virtual void unrealize(GPUDevice &device)=0
Unrealizes the resource.
virtual bool isExternal() const =0
Vector< RenderTask * > mWriters
Definition RenderResource.hpp:36
Definition RenderResource.hpp:256
RenderResourceRef & operator=(T &resource)
Definition RenderResource.hpp:264
RenderResourceRef()=default
RenderResourceRef(T *resource)
Definition RenderResource.hpp:269
T & get() const
Definition RenderResource.hpp:279
T * mResource
Definition RenderResource.hpp:258
bool valid() const
Definition RenderResource.hpp:280
RenderResourceRef & operator=(const RenderResourceRef &other)=default
T & operator*() const
Definition RenderResource.hpp:282
T * operator->() const
Definition RenderResource.hpp:283
RenderResourceRef(T &resource)
Definition RenderResource.hpp:263
RenderResourceRef & operator=(T *resource)
Definition RenderResource.hpp:270
RenderResourceRef(const RenderResourceRef &other)=default
Definition RenderTask.hpp:164
Definition RenderResource.hpp:75
virtual const D & getDescriptor() const =0
Gets the resource descriptor.
bool isValid() const override
Definition RenderResource.hpp:92
virtual R * get() const =0
R * operator->() const
Definition RenderResource.hpp:99
R & operator*() const
Definition RenderResource.hpp:96
static const constexpr RenderResourceType resourceType
Definition RenderResource.hpp:77
Definition RenderResource.hpp:198
bool isTransient() const final
Definition RenderResource.hpp:221
const GPUBufferDescriptor & getDescriptor() const final
Gets the resource descriptor.
Definition RenderResource.hpp:217
void realize(GPUDevice &device) final
Realizes the resource.
TransientBufferRenderResource(RenderGraph &renderGraph, const GPUBufferDescriptor &descriptor)
GPUBufferPtr mBuffer
Definition RenderResource.hpp:201
bool isExternal() const final
Definition RenderResource.hpp:224
void unrealize(GPUDevice &device) final
Unrealizes the resource.
GPUBufferDescriptor mDescriptor
Definition RenderResource.hpp:200
GPUBuffer * get() const final
Definition RenderResource.hpp:214
Definition RenderResource.hpp:119
const GPUImageDescriptor & getDescriptor() const final
Gets the resource descriptor.
Definition RenderResource.hpp:138
bool isTransient() const final
Definition RenderResource.hpp:142
bool isExternal() const final
Definition RenderResource.hpp:145
TransientImageRenderResource(RenderGraph &renderGraph, const GPUImageDescriptor &descriptor)
void unrealize(GPUDevice &device) final
Unrealizes the resource.
static constexpr void reflect(Processor &&RTTI)
Executes the given processor for every field of the struct.
Definition RenderResource.hpp:150
GPUImageDescriptor mDescriptor
Definition RenderResource.hpp:121
void realize(GPUDevice &device) final
Realizes the resource.
GPUImagePtr mImage
Definition RenderResource.hpp:122
GPUImage * get() const final
Definition RenderResource.hpp:135
Definition Application.hpp:19
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
RenderResourceType
Definition RenderResource.hpp:22
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Hardware buffer descriptor structure.
Definition GPUBuffer.hpp:92
Definition GPUImage.hpp:247