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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-03-16 14:11:55 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-03-16 14:11:55 +0300
commitf0596bf6605b6ad2de12c94c1af47b6fbac241a8 (patch)
tree41c92ebd5a3251fad486f993026489ba29a9a8d4 /source/blender/blenlib
parent3baf31e73a7176fac8081b6648ce768b9504c2b1 (diff)
Hash: Add utility function to convert address to rgb values
Some magic hashing, will become handy to make debug messages easier to follow.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/BLI_hash.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_hash.h b/source/blender/blenlib/BLI_hash.h
index fa79481e25c..9ca7898d6b8 100644
--- a/source/blender/blenlib/BLI_hash.h
+++ b/source/blender/blenlib/BLI_hash.h
@@ -68,4 +68,16 @@ BLI_INLINE float BLI_hash_int_01(unsigned int k)
return (float)BLI_hash_int(k) * (1.0f / (float)0xFFFFFFFF);
}
+BLI_INLINE void BLI_hash_pointer_to_color(const void *ptr, int *r, int *g, int *b)
+{
+ size_t val = (size_t)ptr;
+ const size_t hash_a = BLI_hash_int(val & 0x0000ffff);
+ const size_t hash_b = BLI_hash_int((val & 0xffff0000) >> 32);
+ const size_t hash =
+ hash_a ^ (hash_b + 0x9e3779b9 + (hash_a << 6) + (hash_a >> 2));
+ *r = (hash & 0xff0000) >> 16;
+ *g = (hash & 0x00ff00) >> 8;
+ *b = hash & 0x0000ff;
+}
+
#endif // __BLI_HASH_H__