Definition GPUDevice.hpp:357
A base interface for RenderAPI objects.
Definition Common.hpp:52
GPUDeviceObject(GPUDevice &device)
~GPUDeviceObject() override
GPUDevice & device
The owning device this object was created from.
Definition Common.hpp:55
GPUObject(GPUObject &&)=delete
GPUObject(const GPUObject &)=delete
void retain() noexcept
Retains the object by increment it's reference count by one.
Definition Common.hpp:32
virtual void destroy() noexcept
A internal method called by the system when the object reference count reaches zero.
GPUObject & operator=(const GPUObject &)=delete
virtual ~GPUObject()=default
RefCounter< true > mRefCounter
The object's reference counter.
Definition Common.hpp:18
GPUObject & operator=(GPUObject &&)=delete
bool release() noexcept
Releases the object by decrementing it's reference count by one.
Definition Common.hpp:36
bool decrement() noexcept
Decrements the reference counter by one.
void increment() noexcept
Increments the reference counter by one.
A class that implements a simple interface for reference counting.
Definition SmartPtr.hpp:82
TDeviceObject(const TDeviceObject &)=delete
TDeviceObject(GPUDevice &device, const Descriptor &descriptor)
Initializes a new RenderAPI device object instance.
Definition Common.hpp:73
TDescriptor Descriptor
An type-alias to the descriptor struct type.
Definition Common.hpp:65
const Descriptor & descriptor
A structure that describes the object and it's properties.
Definition Common.hpp:69
TDeviceObject(TDeviceObject &&)=delete
TDeviceObject & operator=(const TDeviceObject &)=delete
TDeviceObject & operator=(TDeviceObject &&)=delete
~TDeviceObject() override=default
Definition Application.hpp:19
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25