Blender V4.3
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 ()
 
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 GPUStorageBuf * () const
 
GPUStorageBuf ** operator& ()
 
- Public Member Functions inherited from blender::draw::detail::DataBuffer< T, len, false >
const Toperator[] (int64_t index) const
 
Toperator[] (int64_t index)
 
const Tdata () const
 
Tdata ()
 
const Tbegin () const
 
Tbegin ()
 
const Tend () const
 
Tend ()
 
 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 >
GPUStorageBuf * ssbo_
 
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 >

Definition at line 414 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 420 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 ( )
inline

Definition at line 421 of file DRW_gpu_wrapper.hh.

Member Function Documentation

◆ append() [1/2]

◆ 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

◆ 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()

◆ 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 435 of file DRW_gpu_wrapper.hh.

References blender::draw::StorageVectorBuffer< T, len >::clear(), and blender::draw::StorageArrayBuffer< T, len, device_only >::trim_to_next_power_of_2().

◆ 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 465 of file DRW_gpu_wrapper.hh.

References append, and v.

Referenced by blender::eevee::VolumeProbeModule::set_view().

◆ is_empty()

◆ size()

◆ swap()

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

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