Blender V4.3
blender::draw::StorageArrayBuffer< T, len, device_only > Class Template Reference

#include <DRW_gpu_wrapper.hh>

Inherits blender::draw::detail::StorageCommon< T, len, device_only >.

Inherited by blender::draw::StorageVectorBuffer< BoneInstanceData >, blender::draw::StorageVectorBuffer< BoneEnvelopeData >, blender::draw::StorageVectorBuffer< BoneStickData >, blender::draw::StorageVectorBuffer< ExtraInstanceData >, blender::draw::StorageVectorBuffer< ObjectMatrices >, blender::draw::StorageVectorBuffer< blender::VecBase >, blender::draw::StorageVectorBuffer< float4 >, blender::draw::StorageVectorBuffer< VertexData >, blender::draw::StorageVectorBuffer< InstanceDataT >, blender::draw::StorageVectorBuffer< uint32_t >, blender::draw::StorageVectorBuffer< blender::eevee::Material >, and blender::draw::StorageVectorBuffer< T, len >.

Public Member Functions

 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 (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), bool device_only = false>
class blender::draw::StorageArrayBuffer< T, len, device_only >

Definition at line 335 of file DRW_gpu_wrapper.hh.

Constructor & Destructor Documentation

◆ StorageArrayBuffer()

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

◆ ~StorageArrayBuffer()

template<typename T , int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T), bool device_only = false>
blender::draw::StorageArrayBuffer< T, len, device_only >::~StorageArrayBuffer ( )
inline

Definition at line 342 of file DRW_gpu_wrapper.hh.

References MEM_freeN().

Member Function Documentation

◆ as_span()

template<typename T , int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T), bool device_only = false>
MutableSpan< T > blender::draw::StorageArrayBuffer< T, len, device_only >::as_span ( ) const
inline

◆ get_or_resize()

◆ resize()

◆ size()

◆ swap()

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

Definition at line 400 of file DRW_gpu_wrapper.hh.

References b.

Referenced by blender::draw::StorageVectorBuffer< T, len >::swap().

◆ trim_to_next_power_of_2()

template<typename T , int64_t len = (512u + (sizeof(T) - 1)) / sizeof(T), bool device_only = false>
void blender::draw::StorageArrayBuffer< T, len, device_only >::trim_to_next_power_of_2 ( int64_t required_size)
inline

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