diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-01-18 23:00:55 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-01-19 00:23:05 +0300 |
commit | 5128637d480a376711798858a1dbdb3302039426 (patch) | |
tree | 6a11a2c35e1fd402aaf36469dd83931323eaad1f /source/blender/blenlib/intern/array_utils.c | |
parent | 3d4b8922fcb794e0aa8ab5d1a0311f6b594c5b32 (diff) |
BLI_array_utils: add binary and/or functions
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 |