![]() |
XII Release 0.1.0
|
Interface that defines methods to manipulate a buffer object. More...
#include <Buffer.h>
Public Member Functions | |
| XII_ALWAYS_INLINE const xiiGALBufferCreationDescription & | GetDescription () const |
| This returns the creation description for this object. | |
| XII_ALWAYS_INLINE xiiBitflags< xiiGALExternalMemoryKind > | GetExternalMemoryKind () const |
| This returns the external memory kind flags for this buffer. | |
| XII_ALWAYS_INLINE xiiUInt64 | GetSize () const |
| This returns the buffer size. | |
| virtual XII_ALWAYS_INLINE xiiUInt64 | GetMemoryConsumption () const |
| Returns the calculated memory consumption for buffer. | |
| xiiSharedPtr< xiiGALBufferView > | GetDefaultView (xiiEnum< xiiGALBufferViewType > viewType) |
| This returns the handle of the default view. | |
| XII_ALWAYS_INLINE xiiBitflags< xiiGALMemoryPropertyFlags > | GetMemoryProperties () const |
| This returns the buffer memory properties. | |
| virtual void | FlushMappedRange (xiiUInt64 uiStartOffset, xiiUInt64 uiSize)=0 |
| This flushes the specified range of non-coherent memory from the host cache to make it available to the GPU. | |
| virtual void | InvalidateMappedRange (xiiUInt64 uiStartOffset, xiiUInt64 uiSize)=0 |
| This invalidates the specified range of non-coherent memory modified by the GPU to make it visible to the CPU. | |
| xiiSharedPtr< xiiGALBufferView > | CreateView (xiiGALBufferViewCreationDescription &description) |
| This creates a new buffer view. | |
| virtual xiiGALSparseBufferProperties | GetSparseProperties () const =0 |
| This returns the sparse buffer memory properties. | |
Public Member Functions inherited from xiiGALResource | |
| virtual void | SetResourceState (xiiBitflags< xiiGALResourceStateFlags > stateFlags) |
| This sets the buffer usage state. | |
| virtual XII_ALWAYS_INLINE xiiBitflags< xiiGALResourceStateFlags > | GetResourceState () const |
| This returns the buffer state. | |
| XII_ALWAYS_INLINE bool | IsInKnownState () const |
| This returns true if the resource is in known state by the engine. | |
| XII_ALWAYS_INLINE bool | CheckState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const |
| This returns true if the given resource state is set. | |
| XII_ALWAYS_INLINE bool | CheckAnyState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const |
| This returns true if any of the given resource state are set. | |
Public Member Functions inherited from xiiGALDeviceObject | |
| XII_ALWAYS_INLINE xiiSharedPtr< xiiGALDevice > | GetDevice () const |
| Returns the xiiGALDevice that created this resource. | |
Public Member Functions inherited from xiiGALObject | |
| XII_ALWAYS_INLINE xiiStringView | GetDebugName () const |
| Returns the debug name of this resource. | |
| void | SetDebugName (xiiStringView sDebugName) const |
| Sets the debug name for this resource. | |
Public Member Functions inherited from xiiReflectedClass | |
| virtual const xiiRTTI * | GetDynamicRTTI () const |
| bool | IsInstanceOf (const xiiRTTI *pType) const |
| Returns whether the type of this instance is of the given type or derived from it. | |
| template<typename T> | |
| XII_ALWAYS_INLINE bool | IsInstanceOf () const |
| Returns whether the type of this instance is of the given type or derived from it. | |
Public Member Functions inherited from xiiRefCounted | |
| virtual | ~xiiRefCounted ()=default |
| Adds a virtual destructor. | |
Public Member Functions inherited from xiiRefCountingImpl | |
| xiiRefCountingImpl ()=default | |
| Constructor. | |
| xiiRefCountingImpl (const xiiRefCountingImpl &rhs) | |
| void | operator= (const xiiRefCountingImpl &rhs) |
| xiiUInt32 | AddRef () const |
| Increments the reference counter. Returns the new reference count. | |
| xiiUInt32 | ReleaseRef () const |
| Decrements the reference counter. Returns the new reference count. | |
| bool | IsReferenced () const |
| Returns true if the reference count is greater than 0, false otherwise. | |
| xiiUInt32 | GetRefCount () const |
| Returns the current reference count. | |
Protected Member Functions | |
| xiiGALBuffer (xiiSharedPtr< xiiGALDevice > pDevice, const xiiGALBufferCreationDescription &creationDescription) | |
| virtual xiiResult | InitPlatform (const xiiGALBufferData *pInitialData, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind)=0 |
| virtual xiiInternal::NewInstance< xiiGALBufferView > | CreateViewPlatform (const xiiGALBufferViewCreationDescription &description)=0 |
| void | VerifyFlushMappedRangeArguments (xiiUInt64 uiStartOffset, xiiUInt64 uiSize) const |
| void | VerifyInvalidateMappedRangeArguments (xiiUInt64 uiStartOffset, xiiUInt64 uiSize) const |
Protected Member Functions inherited from xiiGALResource | |
| xiiGALResource (xiiSharedPtr< xiiGALDevice > pDevice) | |
Protected Member Functions inherited from xiiGALDeviceObject | |
| xiiGALDeviceObject (xiiSharedPtr< xiiGALDevice > pDevice) | |
Protected Member Functions inherited from xiiGALObject | |
| virtual XII_ALWAYS_INLINE void | SetDebugNamePlatform (xiiStringView sName) const |
Protected Attributes | |
| xiiGALBufferCreationDescription | m_Description |
| xiiBitflags< xiiGALExternalMemoryKind > | m_ExternalMemoryKind |
| xiiBitflags< xiiGALMemoryPropertyFlags > | m_MemoryPropertyFlags |
| xiiSharedPtr< xiiGALBufferView > | m_DefaultBufferViews [xiiGALBufferViewType::ENUM_COUNT] |
Protected Attributes inherited from xiiGALResource | |
| xiiBitflags< xiiGALResourceStateFlags > | m_ResourceState |
Protected Attributes inherited from xiiGALDeviceObject | |
| xiiSharedPtr< xiiGALDevice > | m_pDevice |
Friends | |
| class | xiiGALDevice |
| class | xiiMemoryUtils |
Additional Inherited Members | |
Static Public Member Functions inherited from xiiNoBase | |
| static const xiiRTTI * | GetStaticRTTI () |
Interface that defines methods to manipulate a buffer object.
|
nodiscard |
This creates a new buffer view.
| description | - The buffer view description. See xiiGALBufferViewCreationDescription. |
|
pure virtual |
This flushes the specified range of non-coherent memory from the host cache to make it available to the GPU.
| uiStartOffset | - The offset in bytes from the beginning of the buffer to the start of the memory range to flush. |
| uiSize | - The size in bytes of the memory range to flush. |
This method should only be used for persistently-mapped buffers that do not report the xiiGALMemoryProperties::HostCoherent property. After an application modifies a mapped memory range on the CPU, it must flush the range to make it available to the GPU.
Implemented in xiiGALBufferVulkan.
|
nodiscard |
This returns the handle of the default view.
| viewType | - The type of the requested view. See xiiGALBufferViewType. |
|
inlinenodiscard |
This returns the buffer memory properties.
The memory properties are only relevant for persistently mapped buffers. In particular, if the memory is not coherent, an application must call xiiGALBuffer::FlushMappedRange() to make writes by the CPU available to the GPU, and call xiiGALBuffer::InvalidateMappedRange() to make writes by the GPU visible to the CPU.
|
nodiscardpure virtual |
This returns the sparse buffer memory properties.
Implemented in xiiGALBufferVulkan.
|
pure virtual |
This invalidates the specified range of non-coherent memory modified by the GPU to make it visible to the CPU.
| uiStartOffset | - The offset in bytes from the beginning of the buffer to the start of the memory to invalidate. |
| uiSize | - The size in bytes of the memory range to invalidate. |
This method should only be used for persistently-mapped buffers that do not report the xiiGALMemoryProperties::HostCoherent property. After an application modifies a mapped memory range on the CPU, it must invalidate the range to make it visible to the CPU.
Implemented in xiiGALBufferVulkan.