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

#include <mtl_index_buffer.hh>

Inherits blender::gpu::IndexBuf.

Static Public Member Functions

static MTLIndexType gpu_index_type_to_metal (GPUIndexBufType type)
 

Friends

class MTLBatch
 
class MTLDrawList
 
class MTLStorageBuf
 

Core MTLIndexBuf implementation.

 ~MTLIndexBuf ()
 
void bind_as_ssbo (uint32_t binding) override
 
void read (uint32_t *data) const override
 
void upload_data () override
 
void update_sub (uint32_t start, uint32_t len, const void *data) override
 
void flag_can_optimize (bool can_optimize)
 

Index buffer optimization and topology emulation

Index buffer optimization and emulation. Optimize index buffers by eliminating restart-indices. Emulate unsupported index types e.g. Triangle Fan and Line Loop.

id< MTLBufferget_index_buffer (GPUPrimType &in_out_primitive_type, uint &in_out_v_count)
 

Additional Inherited Members

- Public Member Functions inherited from blender::gpu::IndexBuf
 IndexBuf ()
 
virtual ~IndexBuf ()
 
void init (uint indices_len, uint32_t *indices, uint min_index, uint max_index, GPUPrimType prim_type, bool uses_restart_indices)
 
void init_subrange (IndexBuf *elem_src, uint start, uint length)
 
void init_build_on_device (uint index_len)
 
uint32_t index_len_get () const
 
uint32_t index_start_get () const
 
uint32_t index_base_get () const
 
bool is_32bit () const
 
size_t size_get () const
 
bool is_init () const
 
- Protected Attributes inherited from blender::gpu::IndexBuf
GPUIndexBufType index_type_ = GPU_INDEX_U32
 
uint32_t index_start_ = 0
 
uint32_t index_len_ = 0
 
uint32_t index_base_ = 0
 
bool is_init_ = false
 
bool is_subrange_ = false
 
bool is_empty_ = false
 
union { 
 
   void *   data_ = nullptr 
 
   IndexBuf *   src_ 
 
};  
 

Detailed Description

Definition at line 20 of file mtl_index_buffer.hh.

Constructor & Destructor Documentation

◆ ~MTLIndexBuf()

blender::gpu::MTLIndexBuf::~MTLIndexBuf ( )

Member Function Documentation

◆ bind_as_ssbo()

void blender::gpu::MTLIndexBuf::bind_as_ssbo ( uint32_t binding)
overridevirtual

◆ flag_can_optimize()

void blender::gpu::MTLIndexBuf::flag_can_optimize ( bool can_optimize)

Definition at line 212 of file mtl_index_buffer.mm.

References BLI_assert_msg.

Referenced by bind_as_ssbo(), and update_sub().

◆ get_index_buffer()

◆ gpu_index_type_to_metal()

static MTLIndexType blender::gpu::MTLIndexBuf::gpu_index_type_to_metal ( GPUIndexBufType type)
inlinestatic

Definition at line 75 of file mtl_index_buffer.hh.

References blender::gpu::GPU_INDEX_U16.

Referenced by blender::gpu::MTLDrawList::submit().

◆ read()

◆ update_sub()

◆ upload_data()

Friends And Related Symbol Documentation

◆ MTLBatch

friend class MTLBatch
friend

Definition at line 21 of file mtl_index_buffer.hh.

◆ MTLDrawList

friend class MTLDrawList
friend

Definition at line 22 of file mtl_index_buffer.hh.

◆ MTLStorageBuf

friend class MTLStorageBuf
friend

Definition at line 23 of file mtl_index_buffer.hh.

Referenced by bind_as_ssbo().


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