Blender V4.3
blender::gpu::VKVertexBuffer Class Reference

#include <vk_vertex_buffer.hh>

Inherits blender::gpu::VertBuf.

Public Member Functions

 ~VKVertexBuffer ()
 
void bind_as_ssbo (uint binding) override
 
void bind_as_texture (uint binding) override
 
void wrap_handle (uint64_t handle) override
 
void update_sub (uint start, uint len, const void *data) override
 
void read (void *data) const override
 
VkBuffer vk_handle () const
 
VkBufferView vk_buffer_view_get () const
 
void device_format_ensure ()
 
const GPUVertFormatdevice_format_get () const
 
void ensure_updated ()
 
void ensure_buffer_view ()
 
- Public Member Functions inherited from blender::gpu::VertBuf
 VertBuf ()
 
virtual ~VertBuf ()
 
void init (const GPUVertFormat &format, GPUUsageType usage)
 
void clear ()
 
void allocate (uint vert_len)
 
void resize (uint vert_len)
 
void upload ()
 
VertBufduplicate ()
 
size_t size_alloc_get () const
 
size_t size_used_get () const
 
void reference_add ()
 
void reference_remove ()
 
GPUUsageType get_usage_type () const
 
template<typename T >
MutableSpan< Tdata ()
 

Protected Member Functions

void acquire_data () override
 
void resize_data () override
 
void release_data () override
 
void upload_data () override
 
void duplicate_data (VertBuf *dst) override
 

Friends

class VKTexture
 

Additional Inherited Members

- Public Attributes inherited from blender::gpu::VertBuf
GPUVertFormat format = {}
 
uint vertex_len = 0
 
uint vertex_alloc = 0
 
GPUVertBufStatus flag = GPU_VERTBUF_INVALID
 
GPUUsageType extended_usage_ = GPU_USAGE_STATIC
 
- Static Public Attributes inherited from blender::gpu::VertBuf
static size_t memory_usage = 0
 
- Protected Attributes inherited from blender::gpu::VertBuf
uchardata_ = nullptr
 
GPUUsageType usage_ = GPU_USAGE_STATIC
 

Detailed Description

Definition at line 18 of file vk_vertex_buffer.hh.

Constructor & Destructor Documentation

◆ ~VKVertexBuffer()

blender::gpu::VKVertexBuffer::~VKVertexBuffer ( )

Definition at line 21 of file vk_vertex_buffer.cc.

References release_data().

Member Function Documentation

◆ acquire_data()

void blender::gpu::VKVertexBuffer::acquire_data ( )
overrideprotectedvirtual

◆ bind_as_ssbo()

void blender::gpu::VKVertexBuffer::bind_as_ssbo ( uint binding)
overridevirtual

◆ bind_as_texture()

void blender::gpu::VKVertexBuffer::bind_as_texture ( uint binding)
overridevirtual

◆ device_format_ensure()

◆ device_format_get()

const GPUVertFormat & blender::gpu::VKVertexBuffer::device_format_get ( ) const

◆ duplicate_data()

void blender::gpu::VKVertexBuffer::duplicate_data ( VertBuf * dst)
overrideprotectedvirtual

Implements blender::gpu::VertBuf.

Definition at line 171 of file vk_vertex_buffer.cc.

References NOT_YET_IMPLEMENTED.

◆ ensure_buffer_view()

◆ ensure_updated()

void blender::gpu::VKVertexBuffer::ensure_updated ( )

Definition at line 40 of file vk_vertex_buffer.cc.

References upload_data().

◆ read()

◆ release_data()

void blender::gpu::VKVertexBuffer::release_data ( )
overrideprotectedvirtual

◆ resize_data()

void blender::gpu::VKVertexBuffer::resize_data ( )
overrideprotectedvirtual

◆ update_sub()

void blender::gpu::VKVertexBuffer::update_sub ( uint start,
uint len,
const void * data )
overridevirtual

Implements blender::gpu::VertBuf.

Definition at line 71 of file vk_vertex_buffer.cc.

References NOT_YET_IMPLEMENTED.

◆ upload_data()

◆ vk_buffer_view_get()

VkBufferView blender::gpu::VKVertexBuffer::vk_buffer_view_get ( ) const
inline

Definition at line 41 of file vk_vertex_buffer.hh.

References BLI_assert.

◆ vk_handle()

VkBuffer blender::gpu::VKVertexBuffer::vk_handle ( ) const
inline

◆ wrap_handle()

void blender::gpu::VKVertexBuffer::wrap_handle ( uint64_t handle)
overridevirtual

Implements blender::gpu::VertBuf.

Definition at line 66 of file vk_vertex_buffer.cc.

References NOT_YET_IMPLEMENTED.

Friends And Related Symbol Documentation

◆ VKTexture

friend class VKTexture
friend

Definition at line 66 of file vk_vertex_buffer.hh.


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