Changeset View
Changeset View
Standalone View
Standalone View
source/blender/freestyle/intern/scene_graph/SceneHash.cpp
| Show First 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | void SceneHash::visitIndexedFaceSet(IndexedFaceSet &ifs) | ||||
| for (unsigned i = 0; i < n; i++) { | for (unsigned i = 0; i < n; i++) { | ||||
| adler32((unsigned char *)&v[i], sizeof(v[i])); | adler32((unsigned char *)&v[i], sizeof(v[i])); | ||||
| } | } | ||||
| } | } | ||||
| static const int MOD_ADLER = 65521; | static const int MOD_ADLER = 65521; | ||||
| void SceneHash::adler32(unsigned char *data, int size) | void SceneHash::adler32(const unsigned char *data, int size) | ||||
| { | { | ||||
| uint32_t sum1 = _sum & 0xffff; | uint32_t sum1 = _sum & 0xffff; | ||||
| uint32_t sum2 = (_sum >> 16) & 0xffff; | uint32_t sum2 = (_sum >> 16) & 0xffff; | ||||
| for (int i = 0; i < size; i++) { | for (int i = 0; i < size; i++) { | ||||
| sum1 = (sum1 + data[i]) % MOD_ADLER; | sum1 = (sum1 + data[i]) % MOD_ADLER; | ||||
| sum2 = (sum1 + sum2) % MOD_ADLER; | sum2 = (sum1 + sum2) % MOD_ADLER; | ||||
| } | } | ||||
| _sum = sum1 | (sum2 << 16); | _sum = sum1 | (sum2 << 16); | ||||
| } | } | ||||
| } /* namespace Freestyle */ | } /* namespace Freestyle */ | ||||