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:
Diffstat (limited to 'intern/cycles/util')
-rw-r--r--intern/cycles/util/util_hash.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/intern/cycles/util/util_hash.h b/intern/cycles/util/util_hash.h
index 16901dab38e..c31b46e1580 100644
--- a/intern/cycles/util/util_hash.h
+++ b/intern/cycles/util/util_hash.h
@@ -19,13 +19,15 @@
#ifndef __UTIL_HASH_H__
#define __UTIL_HASH_H__
+#include "util_types.h"
+
CCL_NAMESPACE_BEGIN
-static inline unsigned int hash_int_2d(unsigned int kx, unsigned int ky)
+static inline uint hash_int_2d(uint kx, uint ky)
{
#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k))))
- unsigned int a, b, c;
+ uint a, b, c;
a = b = c = 0xdeadbeef + (2 << 2) + 13;
a += kx;
@@ -44,11 +46,21 @@ static inline unsigned int hash_int_2d(unsigned int kx, unsigned int ky)
#undef rot
}
-static inline unsigned int hash_int(unsigned int k)
+static inline uint hash_int(uint k)
{
return hash_int_2d(k, 0);
}
+static inline uint hash_string(const char *str)
+{
+ uint i = 0, c;
+
+ while ((c = *str++))
+ i = i * 37 + c;
+
+ return i;
+}
+
CCL_NAMESPACE_END
#endif /* __UTIL_HASH_H__ */