Blender V5.0
blender::gpu::MTLStorageBuf Class Reference

#include <mtl_storage_buffer.hh>

Inherits blender::gpu::StorageBuf.

Public Member Functions

void sync_as_indirect_buffer () override
const char * get_name ()
Creation & Deletion
 MTLStorageBuf (size_t size, GPUUsageType usage, const char *name)
 ~MTLStorageBuf () override
 MTLStorageBuf (MTLUniformBuf *uniform_buf, size_t size)
 MTLStorageBuf (MTLVertBuf *vert_buf, size_t size)
 MTLStorageBuf (MTLIndexBuf *index_buf, size_t size)
 MTLStorageBuf (MTLTexture *texture, size_t size)
 MTLStorageBuf (size_t size)
Data upload / update
void update (const void *data) override
void init ()
Usage
void bind (int slot) override
void unbind () override
void clear (uint32_t clear_value) override
void copy_sub (VertBuf *src, uint dst_offset, uint src_offset, uint copy_size) override
void read (void *data) override
void async_flush_to_host () override
id< MTLBufferget_metal_buffer ()
size_t get_size ()
Public Member Functions inherited from blender::gpu::StorageBuf
 StorageBuf (size_t size, const char *name)
virtual ~StorageBuf ()
void usage_size_set (size_t size)
size_t usage_size_get () const

Additional Inherited Members

Protected Attributes inherited from blender::gpu::StorageBuf
size_t size_in_bytes_ = -1
size_t usage_size_in_bytes_ = -1
void * data_ = nullptr
char name_ [DEBUG_NAME_LEN] = {}

Detailed Description

Implementation of Storage Buffers using Metal.

Definition at line 26 of file mtl_storage_buffer.hh.

Constructor & Destructor Documentation

◆ MTLStorageBuf() [1/6]

blender::gpu::MTLStorageBuf::MTLStorageBuf ( size_t size,
GPUUsageType usage,
const char * name )

Definition at line 39 of file mtl_storage_buffer.mm.

References metal_buffer_, name, size(), and blender::gpu::StorageBuf::StorageBuf().

Referenced by copy_sub().

◆ ~MTLStorageBuf()

◆ MTLStorageBuf() [2/6]

blender::gpu::MTLStorageBuf::MTLStorageBuf ( MTLUniformBuf * uniform_buf,
size_t size )

◆ MTLStorageBuf() [3/6]

blender::gpu::MTLStorageBuf::MTLStorageBuf ( MTLVertBuf * vert_buf,
size_t size )

◆ MTLStorageBuf() [4/6]

blender::gpu::MTLStorageBuf::MTLStorageBuf ( MTLIndexBuf * index_buf,
size_t size )

◆ MTLStorageBuf() [5/6]

blender::gpu::MTLStorageBuf::MTLStorageBuf ( MTLTexture * texture,
size_t size )

◆ MTLStorageBuf() [6/6]

Member Function Documentation

◆ async_flush_to_host()

◆ bind()

◆ clear()

◆ copy_sub()

◆ get_metal_buffer()

◆ get_name()

const char * blender::gpu::MTLStorageBuf::get_name ( )
inline

Definition at line 90 of file mtl_storage_buffer.hh.

References blender::gpu::StorageBuf::name_.

◆ get_size()

size_t blender::gpu::MTLStorageBuf::get_size ( )

Definition at line 520 of file mtl_storage_buffer.mm.

References BLI_assert, and blender::gpu::StorageBuf::size_in_bytes_.

Referenced by update().

◆ init()

◆ read()

◆ sync_as_indirect_buffer()

void blender::gpu::MTLStorageBuf::sync_as_indirect_buffer ( )
inlineoverridevirtual

Implements blender::gpu::StorageBuf.

Definition at line 84 of file mtl_storage_buffer.hh.

◆ unbind()

void blender::gpu::MTLStorageBuf::unbind ( )
overridevirtual

◆ update()

Member Data Documentation

◆ index_buffer_

MTLIndexBuf* blender::gpu::MTLStorageBuf::index_buffer_

Definition at line 47 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().

◆ metal_buffer_

gpu::MTLBuffer* blender::gpu::MTLStorageBuf::metal_buffer_

◆ texture_

gpu::MTLTexture* blender::gpu::MTLStorageBuf::texture_

Definition at line 48 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().

◆ uniform_buffer_

MTLUniformBuf* blender::gpu::MTLStorageBuf::uniform_buffer_

Definition at line 45 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().

◆ vertex_buffer_

MTLVertBuf* blender::gpu::MTLStorageBuf::vertex_buffer_

Definition at line 46 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().


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