Blender V5.0
blender::draw::StorageVectorBuffer< T, len > Class Template Reference

#include <DRW_gpu_wrapper.hh>

Inherits blender::draw::StorageArrayBuffer< T, len, device_only >.

Public Member Functions

 StorageVectorBuffer (const char *name=nullptr)
 ~StorageVectorBuffer ()=default
void clear ()
void clear_and_trim ()
void append (const T &value)
void append (T &&value)
template<typename... ForwardT>
void append_as (ForwardT &&...value)
void extend (const Span< T > values)
int64_t size () const
bool is_empty () const
void clear_to_zero ()=delete
Public Member Functions inherited from blender::draw::StorageArrayBuffer< T, len, device_only >
 StorageArrayBuffer (const char *name=nullptr)
 ~StorageArrayBuffer ()
void resize (int64_t new_size)
Tget_or_resize (int64_t index)
void trim_to_next_power_of_2 (int64_t required_size)
int64_t size () const
MutableSpan< Tas_span () const
Public Member Functions inherited from blender::draw::detail::StorageCommon< T, len, device_only >
 StorageCommon (const char *name=nullptr)
 ~StorageCommon ()
void push_update ()
void clear_to_zero ()
void async_flush_to_host ()
void read ()
 operator gpu::StorageBuf * () const
gpu::StorageBuf ** operator& ()
Public Member Functions inherited from blender::draw::detail::DataBuffer< T, len, false >
const Toperator[] (int64_t index) const
const Tdata () const
const Tbegin () const
const Tend () const
 operator Span< T > () const

Static Public Member Functions

static void swap (StorageVectorBuffer &a, StorageVectorBuffer &b)
Static Public Member Functions inherited from blender::draw::StorageArrayBuffer< T, len, device_only >
static void swap (StorageArrayBuffer &a, StorageArrayBuffer &b)

Additional Inherited Members

Protected Member Functions inherited from blender::draw::detail::DataBuffer< T, len, false >
 BLI_STATIC_ASSERT (((sizeof(T) *len) % 16)==0, "Buffer size need to be aligned to size of float4.")
Protected Attributes inherited from blender::draw::detail::StorageCommon< T, len, device_only >
gpu::StorageBufssbo_
const char * name_ = typeid(T).name()
Protected Attributes inherited from blender::draw::detail::DataBuffer< T, len, false >
Tdata_
int64_t len_

Detailed Description

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
class blender::draw::StorageVectorBuffer< T, len >
Template Parameters
TType of the values stored in this uniform buffer.
lenThe number of values that can be stored in this storage buffer at creation.

Definition at line 413 of file DRW_gpu_wrapper.hh.

Constructor & Destructor Documentation

◆ StorageVectorBuffer()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
blender::draw::StorageVectorBuffer< T, len >::StorageVectorBuffer ( const char * name = nullptr)
inline

Definition at line 419 of file DRW_gpu_wrapper.hh.

◆ ~StorageVectorBuffer()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
blender::draw::StorageVectorBuffer< T, len >::~StorageVectorBuffer ( )
default

Member Function Documentation

◆ append() [1/2]

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::append ( const T & value)
inline

◆ append() [2/2]

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::append ( T && value)
inline

Definition at line 450 of file DRW_gpu_wrapper.hh.

◆ append_as()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
template<typename... ForwardT>
void blender::draw::StorageVectorBuffer< T, len >::append_as ( ForwardT &&... value)
inline

◆ clear()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::clear ( )
inline

Set item count to zero but does not free memory or resize the buffer.

Definition at line 425 of file DRW_gpu_wrapper.hh.

Referenced by blender::draw::overlay::ShapeInstanceBuf< ExtraInstanceData >::clear(), and blender::draw::StorageVectorBuffer< IrradianceBrickPacked, 16 >::clear_and_trim().

◆ clear_and_trim()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::clear_and_trim ( )
inline

Set item count to zero and trim the buffer if current size is much larger than the current item count.

Definition at line 434 of file DRW_gpu_wrapper.hh.

◆ clear_to_zero()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::clear_to_zero ( )
delete

◆ extend()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::extend ( const Span< T > values)
inline

Definition at line 464 of file DRW_gpu_wrapper.hh.

◆ is_empty()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
bool blender::draw::StorageVectorBuffer< T, len >::is_empty ( ) const
inline

Definition at line 477 of file DRW_gpu_wrapper.hh.

◆ size()

◆ swap()

template<typename T, int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T)>
void blender::draw::StorageVectorBuffer< T, len >::swap ( StorageVectorBuffer< T, len > & a,
StorageVectorBuffer< T, len > & b )
inlinestatic

Definition at line 485 of file DRW_gpu_wrapper.hh.


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