From f0596bf6605b6ad2de12c94c1af47b6fbac241a8 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 16 Mar 2018 12:11:55 +0100 Subject: Hash: Add utility function to convert address to rgb values Some magic hashing, will become handy to make debug messages easier to follow. --- source/blender/blenlib/BLI_hash.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source/blender/blenlib') 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__ -- cgit v1.2.3