[Bf-blender-cvs] [f0596bf6605] master: Hash: Add utility function to convert address to rgb values

Sergey Sharybin noreply at git.blender.org
Fri Mar 16 12:25:08 CET 2018


Commit: f0596bf6605b6ad2de12c94c1af47b6fbac241a8
Author: Sergey Sharybin
Date:   Fri Mar 16 12:11:55 2018 +0100
Branches: master
https://developer.blender.org/rBf0596bf6605b6ad2de12c94c1af47b6fbac241a8

Hash: Add utility function to convert address to rgb values

Some magic hashing, will become handy to make debug messages
easier to follow.

===================================================================

M	source/blender/blenlib/BLI_hash.h

===================================================================

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__



More information about the Bf-blender-cvs mailing list