Blender V4.3
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 ()
 
 MTLStorageBuf (MTLUniformBuf *uniform_buf, size_t size)
 
 MTLStorageBuf (MTLVertBuf *uniform_buf, size_t size)
 
 MTLStorageBuf (MTLIndexBuf *uniform_buf, size_t size)
 
 MTLStorageBuf (MTLTexture *texture, 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 ()
 

Additional Inherited Members

- Protected Attributes inherited from blender::gpu::StorageBuf
size_t size_in_bytes_
 
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/5]

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

Definition at line 30 of file mtl_storage_buffer.mm.

References metal_buffer_.

◆ ~MTLStorageBuf()

◆ MTLStorageBuf() [2/5]

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

Definition at line 39 of file mtl_storage_buffer.mm.

References BLI_assert, GPU_USAGE_DYNAMIC, uniform_buf(), and uniform_buffer_.

◆ MTLStorageBuf() [3/5]

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

Definition at line 48 of file mtl_storage_buffer.mm.

References BLI_assert, GPU_USAGE_DYNAMIC, and vertex_buffer_.

◆ MTLStorageBuf() [4/5]

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

Definition at line 57 of file mtl_storage_buffer.mm.

References BLI_assert, GPU_USAGE_DYNAMIC, and index_buffer_.

◆ MTLStorageBuf() [5/5]

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

Definition at line 66 of file mtl_storage_buffer.mm.

References BLI_assert, GPU_USAGE_DYNAMIC, texture, and texture_.

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 85 of file mtl_storage_buffer.hh.

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

◆ get_size()

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

◆ init()

◆ read()

◆ sync_as_indirect_buffer()

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

Implements blender::gpu::StorageBuf.

Definition at line 79 of file mtl_storage_buffer.hh.

◆ unbind()

◆ update()

Member Data Documentation

◆ index_buffer_

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

Definition at line 45 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 46 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().

◆ uniform_buffer_

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

Definition at line 43 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().

◆ vertex_buffer_

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

Definition at line 44 of file mtl_storage_buffer.hh.

Referenced by get_metal_buffer(), and MTLStorageBuf().


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