diff options
Diffstat (limited to 'source/blender/blenlib/intern/array_utils.c')
-rw-r--r-- | source/blender/blenlib/intern/array_utils.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/array_utils.c b/source/blender/blenlib/intern/array_utils.c index cef912e42a3..52ca835876e 100644 --- a/source/blender/blenlib/intern/array_utils.c +++ b/source/blender/blenlib/intern/array_utils.c @@ -142,3 +142,31 @@ int _bli_array_findindex(const void *arr, unsigned int arr_len, size_t arr_strid } return -1; } + +void _bli_array_binary_and( + void *arr, const void *arr_a, const void *arr_b, + unsigned int arr_len, size_t arr_stride) +{ + char *dst = arr; + const char *src_a = arr_a; + const char *src_b = arr_b; + + size_t i = arr_stride * arr_len; + while (i--) { + *(dst++) = *(src_a++) & *(src_b++); + } +} + +void _bli_array_binary_or( + void *arr, const void *arr_a, const void *arr_b, + unsigned int arr_len, size_t arr_stride) +{ + char *dst = arr; + const char *src_a = arr_a; + const char *src_b = arr_b; + + size_t i = arr_stride * arr_len; + while (i--) { + *(dst++) = *(src_a++) | *(src_b++); + } +}
\ No newline at end of file |