16#include <Cocoa/Cocoa.h>
17#include <Metal/Metal.h>
18#include <QuartzCore/QuartzCore.h>
38 bool point_restarts_stripped_ =
false;
47 uint32_t emulated_v_count = 0;
48 void free_optimized_buffer();
53 bool can_optimize_ =
true;
59 void read(uint32_t *
data)
const override;
79 return (type ==
GPU_INDEX_U16) ? MTLIndexTypeUInt16 : MTLIndexTypeUInt32;
83 void strip_restart_indices()
override;
85 MEM_CXX_CLASS_ALLOC_FUNCS(
"MTLIndexBuf")
Read Guarded memory(de)allocation.
BMesh const char void * data
unsigned long long int uint64_t
static MTLIndexType gpu_index_type_to_metal(GPUIndexBufType type)
void upload_data() override
friend class MTLStorageBuf
id< MTLBuffer > get_index_buffer(GPUPrimType &in_out_primitive_type, uint &in_out_v_count)
void bind_as_ssbo(uint32_t binding) override
void update_sub(uint32_t start, uint32_t len, const void *data) override
void flag_can_optimize(bool can_optimize)