![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <vkGenericVertexData.h>
Classes | |
struct | GenericBufferImpl |
struct | IndexBufferEntry |
Public Member Functions | |
vkGenericVertexData (GFXDevice &context, const U16 ringBufferLength, const std::string_view name) | |
void | reset () override |
Also clears GPU memory. | |
void | draw (const GenericDrawCommand &command, VDIUserData *data) noexcept override |
BufferLock | setIndexBuffer (const IndexBuffer &indices) override |
BufferLock | setBuffer (const SetBufferParams ¶ms) noexcept override |
BufferLock | updateBuffer (U32 buffer, U32 elementCountOffset, U32 elementCountRange, bufferPtr data) noexcept override |
![]() | |
GenericVertexData (GFXDevice &context, U16 ringBufferLength, const std::string_view name) | |
virtual BufferLock | setIndexBuffer (const IndexBuffer &indices)=0 |
virtual void | reset ()=0 |
Also clears GPU memory. | |
virtual BufferLock | setBuffer (const SetBufferParams ¶ms)=0 |
virtual BufferLock | updateBuffer (U32 buffer, U32 elementCountOffset, U32 elementCountRange, bufferPtr data)=0 |
![]() | |
VertexDataInterface (GFXDevice &context, const std::string_view name) | |
virtual | ~VertexDataInterface () override |
virtual void | draw (const GenericDrawCommand &command, VDIUserData *data)=0 |
PROPERTY_R (Handle, handle) | |
PROPERTY_RW (bool, primitiveRestartRequired, false) | |
![]() | |
GUIDWrapper () noexcept | |
GUIDWrapper (const GUIDWrapper &old) noexcept | |
GUIDWrapper (GUIDWrapper &&old) noexcept | |
virtual | ~GUIDWrapper ()=default |
FORCE_INLINE I64 | getGUID () const noexcept |
GUIDWrapper & | operator= (const GUIDWrapper &old)=delete |
GUIDWrapper & | operator= (GUIDWrapper &&other)=delete |
![]() | |
virtual | ~GraphicsResource () |
GFXDevice & | context () const noexcept |
U64 | nameHash () const noexcept |
![]() | |
NonCopyable (const NonCopyable &)=delete | |
NonCopyable & | operator= (const NonCopyable &)=delete |
NonCopyable (NonCopyable &&)=default | |
NonCopyable & | operator= (NonCopyable &&)=default |
![]() | |
NonMovable (NonMovable &&)=delete | |
NonMovable & | operator= (NonMovable &&)=delete |
NonMovable (const NonMovable &)=default | |
NonMovable & | operator= (const NonMovable &)=default |
![]() | |
RingBuffer (U16 queueLength) noexcept | |
virtual | ~RingBuffer ()=default |
virtual void | resize (U16 queueLength) noexcept |
U16 | queueLength () const noexcept |
I32 | queueIndex () const noexcept |
void | incQueue () noexcept |
void | decQueue () noexcept |
Private Member Functions | |
void | bindBufferInternal (const SetBufferParams::BufferBindConfig &bindConfig, VkCommandBuffer &cmdBuffer) |
Private Attributes | |
vector< IndexBufferEntry > | _idxBuffers |
vector< GenericBufferImpl > | _bufferObjects |
SharedMutex | _idxBufferLock |
Additional Inherited Members | |
![]() | |
using | Handle = PoolHandle |
using | VDIPool = ObjectPool< VertexDataInterface, 256, true > |
![]() | |
enum class | Type : U8 { RENDER_TARGET , SHADER_BUFFER , BUFFER , SHADER , SHADER_PROGRAM , TEXTURE , COUNT } |
![]() | |
static I64 | generateGUID () noexcept |
![]() | |
static constexpr Handle | INVALID_VDI_HANDLE {U16_MAX, 0u} |
static VDIPool | s_VDIPool |
![]() | |
GraphicsResource (GFXDevice &context, Type type, I64 GUID, U64 nameHash) | |
![]() | |
NonCopyable ()=default | |
~NonCopyable ()=default | |
![]() | |
NonMovable ()=default | |
~NonMovable ()=default | |
![]() | |
Str< 256 > | _name |
![]() | |
const I64 | _guid |
![]() | |
GFXDevice & | _context |
Definition at line 42 of file vkGenericVertexData.h.
Divide::vkGenericVertexData::vkGenericVertexData | ( | GFXDevice & | context, |
const U16 | ringBufferLength, | ||
const std::string_view | name | ||
) |
Definition at line 14 of file vkGenericVertexData.cpp.
|
private |
Definition at line 67 of file vkGenericVertexData.cpp.
|
overridevirtualnoexcept |
Implements Divide::VertexDataInterface.
Definition at line 27 of file vkGenericVertexData.cpp.
|
overridevirtual |
Also clears GPU memory.
Implements Divide::GenericVertexData.
Definition at line 19 of file vkGenericVertexData.cpp.
|
overridevirtualnoexcept |
When reading and writing to the same buffer, we use a round-robin approach and offset the reading and writing to multiple copies of the data
Implements Divide::GenericVertexData.
Definition at line 95 of file vkGenericVertexData.cpp.
|
overridevirtual |
Implements Divide::GenericVertexData.
Definition at line 148 of file vkGenericVertexData.cpp.
|
overridevirtualnoexcept |
Implements Divide::GenericVertexData.
Definition at line 249 of file vkGenericVertexData.cpp.
|
private |
Definition at line 75 of file vkGenericVertexData.h.
|
private |
Definition at line 76 of file vkGenericVertexData.h.
|
private |
Definition at line 74 of file vkGenericVertexData.h.