Blender V5.0
BLI_array_store.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11
12#include "BLI_sys_types.h"
13
14typedef struct BArrayState BArrayState;
15typedef struct BArrayStore BArrayStore;
16
37BArrayStore *BLI_array_store_create(unsigned int stride, unsigned int chunk_count);
46
58
71 const void *data,
72 size_t data_len,
73 const BArrayState *state_reference);
80
93void *BLI_array_store_state_data_get_alloc(const BArrayState *state, size_t *r_data_len);
94
99
100/* `array_store_rle.cc` */
101
112uint8_t *BLI_array_store_rle_encode(const uint8_t *data_dec,
113 size_t data_dec_len,
114 size_t data_enc_extra_size,
115 size_t *r_data_enc_len);
124void BLI_array_store_rle_decode(const uint8_t *data_enc,
125 const size_t data_enc_len,
126 void *data_dec_v,
127 const size_t data_dec_len);
BArrayState * BLI_array_store_state_add(BArrayStore *bs, const void *data, size_t data_len, const BArrayState *state_reference)
void BLI_array_store_state_remove(BArrayStore *bs, BArrayState *state)
size_t BLI_array_store_calc_size_expanded_get(const BArrayStore *bs)
void * BLI_array_store_state_data_get_alloc(const BArrayState *state, size_t *r_data_len)
void BLI_array_store_clear(BArrayStore *bs)
bool BLI_array_store_is_valid(BArrayStore *bs)
void BLI_array_store_rle_decode(const uint8_t *data_enc, const size_t data_enc_len, void *data_dec_v, const size_t data_dec_len)
size_t BLI_array_store_state_size_get(const BArrayState *state)
void BLI_array_store_state_data_get(const BArrayState *state, void *data)
void BLI_array_store_destroy(BArrayStore *bs)
size_t BLI_array_store_calc_size_compacted_get(const BArrayStore *bs)
uint8_t * BLI_array_store_rle_encode(const uint8_t *data_dec, size_t data_dec_len, size_t data_enc_extra_size, size_t *r_data_enc_len)
BArrayStore * BLI_array_store_create(unsigned int stride, unsigned int chunk_count)
BMesh const char void * data
static ulong state[N]