Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::GenericVertexData Class Referenceabstract

#include <GenericVertexData.h>

+ Inheritance diagram for Divide::GenericVertexData:

Classes

struct  IndexBuffer
 
struct  SetBufferParams
 

Public Member Functions

 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 &params)=0
 
virtual BufferLock updateBuffer (U32 buffer, U32 elementCountOffset, U32 elementCountRange, bufferPtr data)=0
 
- Public Member Functions inherited from Divide::VertexDataInterface
 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)
 
- Public Member Functions inherited from Divide::GUIDWrapper
 GUIDWrapper () noexcept
 
 GUIDWrapper (const GUIDWrapper &old) noexcept
 
 GUIDWrapper (GUIDWrapper &&old) noexcept
 
virtual ~GUIDWrapper ()=default
 
FORCE_INLINE I64 getGUID () const noexcept
 
GUIDWrapperoperator= (const GUIDWrapper &old)=delete
 
GUIDWrapperoperator= (GUIDWrapper &&other)=delete
 
- Public Member Functions inherited from Divide::GraphicsResource
virtual ~GraphicsResource ()
 
GFXDevicecontext () const noexcept
 
U64 nameHash () const noexcept
 
- Public Member Functions inherited from Divide::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 
- Public Member Functions inherited from Divide::NonMovable
 NonMovable (NonMovable &&)=delete
 
NonMovableoperator= (NonMovable &&)=delete
 
 NonMovable (const NonMovable &)=default
 
NonMovableoperator= (const NonMovable &)=default
 
- Public Member Functions inherited from Divide::RingBuffer
 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
 

Protected Attributes

Str< 256 > _name
 
- Protected Attributes inherited from Divide::GUIDWrapper
const I64 _guid
 
- Protected Attributes inherited from Divide::GraphicsResource
GFXDevice_context
 

Additional Inherited Members

- Public Types inherited from Divide::VertexDataInterface
using Handle = PoolHandle
 
using VDIPool = ObjectPool< VertexDataInterface, 256, true >
 
- Public Types inherited from Divide::GraphicsResource
enum class  Type : U8 {
  RENDER_TARGET , SHADER_BUFFER , BUFFER , SHADER ,
  SHADER_PROGRAM , TEXTURE , COUNT
}
 
- Static Public Member Functions inherited from Divide::GUIDWrapper
static I64 generateGUID () noexcept
 
- Static Public Attributes inherited from Divide::VertexDataInterface
static constexpr Handle INVALID_VDI_HANDLE {U16_MAX, 0u}
 
static VDIPool s_VDIPool
 
- Protected Member Functions inherited from Divide::GraphicsResource
 GraphicsResource (GFXDevice &context, Type type, I64 GUID, U64 nameHash)
 
- Protected Member Functions inherited from Divide::NonCopyable
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 
- Protected Member Functions inherited from Divide::NonMovable
 NonMovable ()=default
 
 ~NonMovable ()=default
 

Detailed Description

Definition at line 46 of file GenericVertexData.h.

Constructor & Destructor Documentation

◆ GenericVertexData()

Divide::GenericVertexData::GenericVertexData ( GFXDevice context,
U16  ringBufferLength,
const std::string_view  name 
)

Definition at line 7 of file GenericVertexData.cpp.

Member Function Documentation

◆ reset()

virtual void Divide::GenericVertexData::reset ( )
pure virtual

◆ setBuffer()

virtual BufferLock Divide::GenericVertexData::setBuffer ( const SetBufferParams params)
pure virtual

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

Implemented in Divide::noGenericVertexData, Divide::vkGenericVertexData, and Divide::glGenericVertexData.

◆ setIndexBuffer()

virtual BufferLock Divide::GenericVertexData::setIndexBuffer ( const IndexBuffer indices)
pure virtual

◆ updateBuffer()

virtual BufferLock Divide::GenericVertexData::updateBuffer ( U32  buffer,
U32  elementCountOffset,
U32  elementCountRange,
bufferPtr  data 
)
pure virtual

Member Data Documentation

◆ _name

Str<256> Divide::GenericVertexData::_name
protected

Definition at line 95 of file GenericVertexData.h.


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