Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-01-18 23:00:55 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-01-19 00:23:05 +0300
commit5128637d480a376711798858a1dbdb3302039426 (patch)
tree6a11a2c35e1fd402aaf36469dd83931323eaad1f /source/blender/blenlib/intern/array_utils.c
parent3d4b8922fcb794e0aa8ab5d1a0311f6b594c5b32 (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.c28
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