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> | ||||