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

#include <NonePlaceholderObjects.h>

+ Inheritance diagram for Divide::noGenericVertexData:

Public Member Functions

 noGenericVertexData (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 &params) noexcept override
 
BufferLock updateBuffer (U32 buffer, U32 elementCountOffset, U32 elementCountRange, bufferPtr data) noexcept override
 
- Public Member Functions inherited from Divide::GenericVertexData
 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
 

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
 
- Protected Attributes inherited from Divide::GenericVertexData
Str< 256 > _name
 
- Protected Attributes inherited from Divide::GUIDWrapper
const I64 _guid
 
- Protected Attributes inherited from Divide::GraphicsResource
GFXDevice_context
 

Detailed Description

Definition at line 51 of file NonePlaceholderObjects.h.

Constructor & Destructor Documentation

◆ noGenericVertexData()

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

Definition at line 53 of file NonePlaceholderObjects.h.

Member Function Documentation

◆ draw()

void Divide::noGenericVertexData::draw ( const GenericDrawCommand command,
VDIUserData data 
)
inlineoverridevirtualnoexcept

Implements Divide::VertexDataInterface.

Definition at line 58 of file NonePlaceholderObjects.h.

◆ reset()

void Divide::noGenericVertexData::reset ( )
inlineoverridevirtual

Also clears GPU memory.

Implements Divide::GenericVertexData.

Definition at line 57 of file NonePlaceholderObjects.h.

◆ setBuffer()

BufferLock Divide::noGenericVertexData::setBuffer ( const SetBufferParams params)
inlineoverridevirtualnoexcept

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 61 of file NonePlaceholderObjects.h.

◆ setIndexBuffer()

BufferLock Divide::noGenericVertexData::setIndexBuffer ( const IndexBuffer indices)
inlineoverridevirtual

Implements Divide::GenericVertexData.

Definition at line 60 of file NonePlaceholderObjects.h.

◆ updateBuffer()

BufferLock Divide::noGenericVertexData::updateBuffer ( U32  buffer,
U32  elementCountOffset,
U32  elementCountRange,
bufferPtr  data 
)
inlineoverridevirtualnoexcept

Implements Divide::GenericVertexData.

Definition at line 62 of file NonePlaceholderObjects.h.


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