39 #define BLI_buffer_declare_static(type_, name_, flag_, static_count_) \
41 type_ name_##_static_[static_count_]; \
42 BLI_Buffer name_ = { \
43 (name_##_static_), sizeof(type_), 0, static_count_, BLI_BUFFER_USE_STATIC | (flag_)}
46 #define BLI_buffer_declare(type_, name_, flag_) \
48 BLI_Buffer name_ = {NULL, sizeof(type_), 0, 0, (flag_)}
50 #define BLI_buffer_at(buffer_, type_, index_) \
51 ((((type_ *)(buffer_) \
52 ->data)[(BLI_assert(sizeof(type_) == (buffer_)->elem_size)), \
53 (BLI_assert((int)(index_) >= 0 && (size_t)(index_) < (buffer_)->count)), \
56 #define BLI_buffer_array(buffer_, type_) (&(BLI_buffer_at(buffer_, type_, 0)))
58 #define BLI_buffer_resize_data(buffer_, type_, new_count_) \
59 ((BLI_buffer_resize(buffer_, new_count_), new_count_ ? BLI_buffer_array(buffer_, type_) : NULL))
61 #define BLI_buffer_reinit_data(buffer_, type_, new_count_) \
62 ((BLI_buffer_reinit(buffer_, new_count_), new_count_ ? BLI_buffer_array(buffer_, type_) : NULL))
64 #define BLI_buffer_append(buffer_, type_, val_) \
65 (BLI_buffer_resize(buffer_, (buffer_)->count + 1), \
66 (BLI_buffer_at(buffer_, type_, (buffer_)->count - 1) = val_))
68 #define BLI_buffer_clear(buffer_) \
70 (buffer_)->count = 0; \
82 #define BLI_buffer_append_array(buffer_, type_, data_, count_) \
84 type_ *__tmp = (data_); \
85 BLI_assert(sizeof(type_) == (buffer_)->elem_size); \
86 _bli_buffer_append_array(buffer_, __tmp, count_); \
92 #define BLI_buffer_free(name_) \
94 _bli_buffer_free(name_); \
100 #define BLI_buffer_field_init(name_, type_) \
102 memset(name_, 0, sizeof(*name_)); \
103 *(size_t *)&((name_)->elem_size) = sizeof(type_); \
107 #define BLI_buffer_field_free(name_) _bli_buffer_free(name_)
void BLI_buffer_resize(BLI_Buffer *buffer, const size_t new_count)
void _bli_buffer_append_array(BLI_Buffer *buffer, void *data, size_t count)
void BLI_buffer_reinit(BLI_Buffer *buffer, const size_t new_count)
struct BLI_Buffer BLI_Buffer
void _bli_buffer_free(BLI_Buffer *buffer)
__kernel void ccl_constant KernelData ccl_global void ccl_global char ccl_global int ccl_global char ccl_global unsigned int ccl_global float * buffer