the new Shader cache.legacy
@@ -8,7 +8,7 @@ liblol_a_SOURCES = \ | |||||
tileset.cpp tileset.h forge.cpp forge.h video.cpp video.h \ | tileset.cpp tileset.h forge.cpp forge.h video.cpp video.h \ | ||||
timer.cpp timer.h bitfield.h profiler.cpp profiler.h input.h input.cpp \ | timer.cpp timer.h bitfield.h profiler.cpp profiler.h input.h input.cpp \ | ||||
world.cpp world.h sample.cpp sample.h sampler.cpp sampler.h \ | world.cpp world.h sample.cpp sample.h sampler.cpp sampler.h \ | ||||
text.cpp text.h emitter.cpp emitter.h numeric.h \ | |||||
text.cpp text.h emitter.cpp emitter.h numeric.h hash.cpp hash.h \ | |||||
worldentity.cpp worldentity.h shader.cpp shader.h \ | worldentity.cpp worldentity.h shader.cpp shader.h \ | ||||
\ | \ | ||||
sdlinput.cpp sdlinput.h \ | sdlinput.cpp sdlinput.h \ | ||||
@@ -39,6 +39,7 @@ | |||||
#include "world.h" | #include "world.h" | ||||
// Other objects | // Other objects | ||||
#include "hash.h" | |||||
#include "dict.h" | #include "dict.h" | ||||
#include "map.h" | #include "map.h" | ||||
#include "layer.h" | #include "layer.h" | ||||
@@ -0,0 +1,58 @@ | |||||
// | |||||
// Lol Engine | |||||
// | |||||
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
// This program is free software; you can redistribute it and/or | |||||
// modify it under the terms of the Do What The Fuck You Want To | |||||
// Public License, Version 2, as published by Sam Hocevar. See | |||||
// http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
// | |||||
#if defined HAVE_CONFIG_H | |||||
# include "config.h" | |||||
#endif | |||||
#include "core.h" | |||||
/* | |||||
* Hash implementation class | |||||
*/ | |||||
static class HashData | |||||
{ | |||||
friend class Hash; | |||||
public: | |||||
HashData() | |||||
{ | |||||
/* Initialise CRC32 table */ | |||||
for (int i = 0; i < 256; i++) | |||||
{ | |||||
uint32_t tmp = i; | |||||
for (int j = 8; j--; ) | |||||
tmp = (tmp >> 1) ^ ((tmp & 1) ? 0xedb88320 : 0); | |||||
crc32_table[i] = tmp; | |||||
} | |||||
} | |||||
private: | |||||
uint32_t crc32_table[256]; | |||||
} | |||||
hashdata; | |||||
static HashData * const data = &hashdata; | |||||
/* | |||||
* Public Hash class | |||||
*/ | |||||
uint32_t Hash::Crc32(char const *str) | |||||
{ | |||||
uint32_t ret = 0xffffffff, ch; | |||||
while ((ch = (uint8_t)*str++)) | |||||
ret = data->crc32_table[(uint8_t)(ret ^ ch)] ^ (ret >> 8); | |||||
return ret ^ 0xffffffff; | |||||
} | |||||
@@ -0,0 +1,26 @@ | |||||
// | |||||
// Lol Engine | |||||
// | |||||
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
// This program is free software; you can redistribute it and/or | |||||
// modify it under the terms of the Do What The Fuck You Want To | |||||
// Public License, Version 2, as published by Sam Hocevar. See | |||||
// http://sam.zoy.org/projects/COPYING.WTFPL for more details. | |||||
// | |||||
// | |||||
// The Hash class | |||||
// -------------- | |||||
// | |||||
#if !defined __DH_HASH_H__ | |||||
#define __DH_HASH_H__ | |||||
class Hash | |||||
{ | |||||
public: | |||||
static uint32_t Crc32(char const *data); | |||||
}; | |||||
#endif // __DH_HASH_H__ | |||||
@@ -25,6 +25,7 @@ | |||||
<ClInclude Include="..\src\entity.h" /> | <ClInclude Include="..\src\entity.h" /> | ||||
<ClInclude Include="..\src\font.h" /> | <ClInclude Include="..\src\font.h" /> | ||||
<ClInclude Include="..\src\forge.h" /> | <ClInclude Include="..\src\forge.h" /> | ||||
<ClInclude Include="..\src\hash.h" /> | |||||
<ClInclude Include="..\src\input.h" /> | <ClInclude Include="..\src\input.h" /> | ||||
<ClInclude Include="..\src\layer.h" /> | <ClInclude Include="..\src\layer.h" /> | ||||
<ClInclude Include="..\src\map.h" /> | <ClInclude Include="..\src\map.h" /> | ||||
@@ -59,6 +60,7 @@ | |||||
<ClCompile Include="..\src\entity.cpp" /> | <ClCompile Include="..\src\entity.cpp" /> | ||||
<ClCompile Include="..\src\font.cpp" /> | <ClCompile Include="..\src\font.cpp" /> | ||||
<ClCompile Include="..\src\forge.cpp" /> | <ClCompile Include="..\src\forge.cpp" /> | ||||
<ClCompile Include="..\src\hash.cpp" /> | |||||
<ClCompile Include="..\src\input.cpp" /> | <ClCompile Include="..\src\input.cpp" /> | ||||
<ClCompile Include="..\src\layer.cpp" /> | <ClCompile Include="..\src\layer.cpp" /> | ||||
<ClCompile Include="..\src\map.cpp" /> | <ClCompile Include="..\src\map.cpp" /> | ||||
@@ -39,6 +39,9 @@ | |||||
<ClInclude Include="..\src\forge.h"> | <ClInclude Include="..\src\forge.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\src\hash.h"> | |||||
<Filter>lolengine</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\src\input.h"> | <ClInclude Include="..\src\input.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -130,6 +133,9 @@ | |||||
<ClCompile Include="..\src\forge.cpp"> | <ClCompile Include="..\src\forge.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\src\hash.cpp"> | |||||
<Filter>lolengine</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\src\input.cpp"> | <ClCompile Include="..\src\input.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -25,6 +25,7 @@ | |||||
<ClInclude Include="..\src\entity.h" /> | <ClInclude Include="..\src\entity.h" /> | ||||
<ClInclude Include="..\src\font.h" /> | <ClInclude Include="..\src\font.h" /> | ||||
<ClInclude Include="..\src\forge.h" /> | <ClInclude Include="..\src\forge.h" /> | ||||
<ClInclude Include="..\src\hash.h" /> | |||||
<ClInclude Include="..\src\input.h" /> | <ClInclude Include="..\src\input.h" /> | ||||
<ClInclude Include="..\src\layer.h" /> | <ClInclude Include="..\src\layer.h" /> | ||||
<ClInclude Include="..\src\map.h" /> | <ClInclude Include="..\src\map.h" /> | ||||
@@ -59,6 +60,7 @@ | |||||
<ClCompile Include="..\src\entity.cpp" /> | <ClCompile Include="..\src\entity.cpp" /> | ||||
<ClCompile Include="..\src\font.cpp" /> | <ClCompile Include="..\src\font.cpp" /> | ||||
<ClCompile Include="..\src\forge.cpp" /> | <ClCompile Include="..\src\forge.cpp" /> | ||||
<ClCompile Include="..\src\hash.cpp" /> | |||||
<ClCompile Include="..\src\input.cpp" /> | <ClCompile Include="..\src\input.cpp" /> | ||||
<ClCompile Include="..\src\layer.cpp" /> | <ClCompile Include="..\src\layer.cpp" /> | ||||
<ClCompile Include="..\src\map.cpp" /> | <ClCompile Include="..\src\map.cpp" /> | ||||
@@ -39,6 +39,9 @@ | |||||
<ClInclude Include="..\src\forge.h"> | <ClInclude Include="..\src\forge.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\src\hash.h"> | |||||
<Filter>lolengine</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\src\input.h"> | <ClInclude Include="..\src\input.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -130,6 +133,9 @@ | |||||
<ClCompile Include="..\src\forge.cpp"> | <ClCompile Include="..\src\forge.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\src\hash.cpp"> | |||||
<Filter>lolengine</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\src\input.cpp"> | <ClCompile Include="..\src\input.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
@@ -30,6 +30,7 @@ | |||||
<ClInclude Include="..\src\entity.h" /> | <ClInclude Include="..\src\entity.h" /> | ||||
<ClInclude Include="..\src\font.h" /> | <ClInclude Include="..\src\font.h" /> | ||||
<ClInclude Include="..\src\forge.h" /> | <ClInclude Include="..\src\forge.h" /> | ||||
<ClInclude Include="..\src\hash.h" /> | |||||
<ClInclude Include="..\src\input.h" /> | <ClInclude Include="..\src\input.h" /> | ||||
<ClInclude Include="..\src\layer.h" /> | <ClInclude Include="..\src\layer.h" /> | ||||
<ClInclude Include="..\src\map.h" /> | <ClInclude Include="..\src\map.h" /> | ||||
@@ -68,6 +69,7 @@ | |||||
<ClCompile Include="..\src\entity.cpp" /> | <ClCompile Include="..\src\entity.cpp" /> | ||||
<ClCompile Include="..\src\font.cpp" /> | <ClCompile Include="..\src\font.cpp" /> | ||||
<ClCompile Include="..\src\forge.cpp" /> | <ClCompile Include="..\src\forge.cpp" /> | ||||
<ClCompile Include="..\src\hash.cpp" /> | |||||
<ClCompile Include="..\src\input.cpp" /> | <ClCompile Include="..\src\input.cpp" /> | ||||
<ClCompile Include="..\src\layer.cpp" /> | <ClCompile Include="..\src\layer.cpp" /> | ||||
<ClCompile Include="..\src\map.cpp" /> | <ClCompile Include="..\src\map.cpp" /> | ||||
@@ -39,6 +39,9 @@ | |||||
<ClInclude Include="..\src\forge.h"> | <ClInclude Include="..\src\forge.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\src\hash.h"> | |||||
<Filter>lolengine</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\src\input.h"> | <ClInclude Include="..\src\input.h"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -135,6 +138,9 @@ | |||||
<ClCompile Include="..\src\forge.cpp"> | <ClCompile Include="..\src\forge.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||
<ClCompile Include="..\src\hash.cpp"> | |||||
<Filter>lolengine</Filter> | |||||
</ClCompile> | |||||
<ClCompile Include="..\src\input.cpp"> | <ClCompile Include="..\src\input.cpp"> | ||||
<Filter>lolengine</Filter> | <Filter>lolengine</Filter> | ||||
</ClCompile> | </ClCompile> | ||||