Hash: Add utility function to convert address to rgb values
Some magic hashing, will become handy to make debug messages easier to follow.
This commit is contained in:
@@ -68,4 +68,16 @@ BLI_INLINE float BLI_hash_int_01(unsigned int k)
|
|||||||
return (float)BLI_hash_int(k) * (1.0f / (float)0xFFFFFFFF);
|
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__
|
#endif // __BLI_HASH_H__
|
||||||
|
|||||||
Reference in New Issue
Block a user