Blender
V3.3
|
#include "BLI_utildefines.h"
Go to the source code of this file.
Macros | |
#define | _BITMAP_POWER 5 |
#define | _BITMAP_MASK 31 |
#define | _BITMAP_NUM_BLOCKS(_num) (((_num) + _BITMAP_MASK) >> _BITMAP_POWER) |
#define | BLI_BITMAP_SIZE(_num) ((size_t)(_BITMAP_NUM_BLOCKS(_num)) * sizeof(BLI_bitmap)) |
#define | BLI_BITMAP_NEW(_num, _alloc_string) ((BLI_bitmap *)MEM_callocN(BLI_BITMAP_SIZE(_num), _alloc_string)) |
#define | BLI_BITMAP_NEW_ALLOCA(_num) ((BLI_bitmap *)memset(alloca(BLI_BITMAP_SIZE(_num)), 0, BLI_BITMAP_SIZE(_num))) |
#define | BLI_BITMAP_NEW_MEMARENA(_mem, _num) |
#define | BLI_BITMAP_DECLARE(_name, _num) BLI_bitmap _name[_BITMAP_NUM_BLOCKS(_num)] = {} |
#define | BLI_BITMAP_TEST(_bitmap, _index) |
#define | BLI_BITMAP_TEST_AND_SET_ATOMIC(_bitmap, _index) |
#define | BLI_BITMAP_TEST_BOOL(_bitmap, _index) |
#define | BLI_BITMAP_ENABLE(_bitmap, _index) |
#define | BLI_BITMAP_DISABLE(_bitmap, _index) |
#define | BLI_BITMAP_FLIP(_bitmap, _index) |
#define | BLI_BITMAP_SET(_bitmap, _index, _set) |
#define | BLI_BITMAP_RESIZE(_bitmap, _num) |
Typedefs | |
typedef unsigned int | BLI_bitmap |
Functions | |
void | BLI_bitmap_set_all (BLI_bitmap *bitmap, bool set, size_t bits) |
void | BLI_bitmap_flip_all (BLI_bitmap *bitmap, size_t bits) |
void | BLI_bitmap_copy_all (BLI_bitmap *dst, const BLI_bitmap *src, size_t bits) |
void | BLI_bitmap_and_all (BLI_bitmap *dst, const BLI_bitmap *src, size_t bits) |
void | BLI_bitmap_or_all (BLI_bitmap *dst, const BLI_bitmap *src, size_t bits) |
int | BLI_bitmap_find_first_unset (const BLI_bitmap *bitmap, size_t bits) |
#define _BITMAP_MASK 31 |
Definition at line 25 of file BLI_bitmap.h.
#define _BITMAP_NUM_BLOCKS | ( | _num | ) | (((_num) + _BITMAP_MASK) >> _BITMAP_POWER) |
Number of blocks needed to hold '_num' bits.
Definition at line 30 of file BLI_bitmap.h.
#define _BITMAP_POWER 5 |
Definition at line 23 of file BLI_bitmap.h.
#define BLI_BITMAP_DECLARE | ( | _name, | |
_num | |||
) | BLI_bitmap _name[_BITMAP_NUM_BLOCKS(_num)] = {} |
Declares a bitmap as a variable.
Definition at line 59 of file BLI_bitmap.h.
#define BLI_BITMAP_DISABLE | ( | _bitmap, | |
_index | |||
) |
Clear the value of a single bit at '_index'.
Definition at line 88 of file BLI_bitmap.h.
#define BLI_BITMAP_ENABLE | ( | _bitmap, | |
_index | |||
) |
Set the value of a single bit at '_index'.
Definition at line 81 of file BLI_bitmap.h.
#define BLI_BITMAP_FLIP | ( | _bitmap, | |
_index | |||
) |
Flip the value of a single bit at '_index'.
Definition at line 95 of file BLI_bitmap.h.
#define BLI_BITMAP_NEW | ( | _num, | |
_alloc_string | |||
) | ((BLI_bitmap *)MEM_callocN(BLI_BITMAP_SIZE(_num), _alloc_string)) |
Allocate memory for a bitmap with '_num' bits; free with MEM_freeN().
Definition at line 40 of file BLI_bitmap.h.
#define BLI_BITMAP_NEW_ALLOCA | ( | _num | ) | ((BLI_bitmap *)memset(alloca(BLI_BITMAP_SIZE(_num)), 0, BLI_BITMAP_SIZE(_num))) |
Allocate a bitmap on the stack.
Definition at line 46 of file BLI_bitmap.h.
#define BLI_BITMAP_NEW_MEMARENA | ( | _mem, | |
_num | |||
) |
Allocate using given MemArena.
Definition at line 52 of file BLI_bitmap.h.
#define BLI_BITMAP_RESIZE | ( | _bitmap, | |
_num | |||
) |
Resize bitmap to have space for '_num' bits.
Definition at line 117 of file BLI_bitmap.h.
#define BLI_BITMAP_SET | ( | _bitmap, | |
_index, | |||
_set | |||
) |
Set or clear the value of a single bit at '_index'.
Definition at line 102 of file BLI_bitmap.h.
#define BLI_BITMAP_SIZE | ( | _num | ) | ((size_t)(_BITMAP_NUM_BLOCKS(_num)) * sizeof(BLI_bitmap)) |
Size (in bytes) used to hold '_num' bits.
Definition at line 35 of file BLI_bitmap.h.
#define BLI_BITMAP_TEST | ( | _bitmap, | |
_index | |||
) |
Get the value of a single bit at '_index'.
Definition at line 64 of file BLI_bitmap.h.
#define BLI_BITMAP_TEST_AND_SET_ATOMIC | ( | _bitmap, | |
_index | |||
) |
Definition at line 68 of file BLI_bitmap.h.
#define BLI_BITMAP_TEST_BOOL | ( | _bitmap, | |
_index | |||
) |
Definition at line 74 of file BLI_bitmap.h.
typedef unsigned int BLI_bitmap |
Definition at line 16 of file BLI_bitmap.h.
void BLI_bitmap_and_all | ( | BLI_bitmap * | dst, |
const BLI_bitmap * | src, | ||
size_t | bits | ||
) |
Combine two bitmaps with boolean AND.
Definition at line 35 of file bitmap.c.
References _BITMAP_NUM_BLOCKS, and src.
void BLI_bitmap_copy_all | ( | BLI_bitmap * | dst, |
const BLI_bitmap * | src, | ||
size_t | bits | ||
) |
Copy all bits from one bitmap to another.
Definition at line 30 of file bitmap.c.
References BLI_BITMAP_SIZE, and src.
Referenced by BKE_animsys_nla_remap_keyframe_values(), and nlaevalchan_blendOrcombine_try_copy_to_lower().
int BLI_bitmap_find_first_unset | ( | const BLI_bitmap * | bitmap, |
size_t | bits | ||
) |
Find index of the lowest unset bit. Returns -1 if all the bits are set.
Definition at line 51 of file bitmap.c.
References _BITMAP_NUM_BLOCKS, _BITMAP_POWER, bitscan_forward_uint(), BLI_assert, and result.
Referenced by blender::tests::TEST(), and UniqueName_Value::use_smallest_unused().
void BLI_bitmap_flip_all | ( | BLI_bitmap * | bitmap, |
size_t | bits | ||
) |
Invert all bits in the bitmap.
Definition at line 22 of file bitmap.c.
References _BITMAP_NUM_BLOCKS.
Referenced by blender::tests::TEST().
void BLI_bitmap_or_all | ( | BLI_bitmap * | dst, |
const BLI_bitmap * | src, | ||
size_t | bits | ||
) |
Combine two bitmaps with boolean OR.
Definition at line 43 of file bitmap.c.
References _BITMAP_NUM_BLOCKS, and src.
void BLI_bitmap_set_all | ( | BLI_bitmap * | bitmap, |
bool | set, | ||
size_t | bits | ||
) |
Set or clear all bits in the bitmap.
Definition at line 17 of file bitmap.c.
References BLI_BITMAP_SIZE.
Referenced by BKE_animsys_nla_remap_keyframe_values(), BKE_blendfile_library_relocate(), BKE_blendfile_link(), BKE_mesh_remap_calc_loops_from_mesh(), BKE_sculpt_sync_face_sets_visibility_to_grids(), BLI_astar_graph_solve(), DRW_sparse_uniform_buffer_clear(), EEVEE_shadows_cache_init(), EEVEE_shadows_update(), gpencil_layer_cache_add(), loose_verts_map_get(), mesh_normals_loop_custom_set(), nla_eval_domain_action(), nlaevalchan_blendOrcombine_get_inverted_upper_evalchan(), nlaevalchan_combine_quaternion_get_inverted_lower_evalchan(), nlaevalchan_combine_quaternion_get_inverted_upper_evalchan(), nlaevalchan_combine_quaternion_handle_undefined_blend_values(), nlasnapshot_enable_all_blend_domain(), nlasnapshot_from_action(), SCULPT_geodesic_mesh_create(), and subdiv_foreach_ctx_init().