the String class instead of the stack for logging, and get rid of the old and useless BitField class.legacy
| @@ -9,21 +9,19 @@ liblol_a_SOURCES = \ | |||||
| core.h tiler.cpp tiler.h dict.cpp dict.h \ | core.h tiler.cpp tiler.h dict.cpp dict.h \ | ||||
| audio.cpp audio.h scene.cpp scene.h font.cpp font.h layer.cpp layer.h \ | audio.cpp audio.h scene.cpp scene.h font.cpp font.h layer.cpp layer.h \ | ||||
| map.cpp map.h entity.cpp entity.h ticker.cpp ticker.h lolgl.h \ | map.cpp map.h entity.cpp entity.h ticker.cpp ticker.h lolgl.h \ | ||||
| tileset.cpp tileset.h forge.cpp forge.h video.cpp video.h log.cpp log.h \ | |||||
| timer.cpp timer.h bitfield.h profiler.cpp profiler.h \ | |||||
| tileset.cpp tileset.h forge.cpp forge.h video.cpp video.h \ | |||||
| 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 \ | |||||
| profiler.cpp profiler.h text.cpp text.h emitter.cpp emitter.h numeric.h \ | |||||
| worldentity.cpp worldentity.h gradient.cpp gradient.h gradient.lolfx \ | worldentity.cpp worldentity.h gradient.cpp gradient.h gradient.lolfx \ | ||||
| platform.cpp platform.h sprite.cpp sprite.h camera.cpp camera.h \ | platform.cpp platform.h sprite.cpp sprite.h camera.cpp camera.h \ | ||||
| \ | \ | ||||
| lol/unit.h lol/debug.h \ | |||||
| lol/base/types.h lol/base/array.h lol/base/string.h lol/base/hash.h \ | lol/base/types.h lol/base/array.h lol/base/string.h lol/base/hash.h \ | ||||
| lol/base/map.h \ | lol/base/map.h \ | ||||
| lol/math/vector.h lol/math/half.h lol/math/real.h lol/math/remez.h \ | lol/math/vector.h lol/math/half.h lol/math/real.h lol/math/remez.h \ | ||||
| lol/math/math.h \ | |||||
| lol/math/geometry.h \ | |||||
| lol/sys/init.h \ | |||||
| lol/math/math.h lol/math/geometry.h \ | |||||
| lol/sys/init.h lol/sys/log.h lol/sys/thread.h lol/sys/timer.h \ | |||||
| lol/image/color.h \ | lol/image/color.h \ | ||||
| lol/unit.h lol/debug.h \ | |||||
| \ | \ | ||||
| generated/location.hh generated/position.hh generated/stack.hh \ | generated/location.hh generated/position.hh generated/stack.hh \ | ||||
| \ | \ | ||||
| @@ -71,8 +69,8 @@ liblol_a_SOURCES = \ | |||||
| \ | \ | ||||
| mesh/mesh.cpp mesh/mesh.h \ | mesh/mesh.cpp mesh/mesh.h \ | ||||
| \ | \ | ||||
| sys/init.cpp \ | |||||
| sys/threadbase.h sys/thread.h \ | |||||
| sys/init.cpp sys/log.cpp sys/timer.cpp \ | |||||
| sys/threadbase.h \ | |||||
| \ | \ | ||||
| image/image.cpp image/image.h image/image-private.h \ | image/image.cpp image/image.h image/image-private.h \ | ||||
| image/codec/gdiplus-image.cpp \ | image/codec/gdiplus-image.cpp \ | ||||
| @@ -1,55 +0,0 @@ | |||||
| // | |||||
| // 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://www.wtfpl.net/ for more details. | |||||
| // | |||||
| // | |||||
| // The BitField class | |||||
| // ------------------ | |||||
| // | |||||
| #if !defined __LOL_BITFIELD_H__ | |||||
| #define __LOL_BITFIELD_H__ | |||||
| #include <stdint.h> | |||||
| namespace lol | |||||
| { | |||||
| template class BitField<unsigned int COUNT> | |||||
| { | |||||
| public: | |||||
| BitField() | |||||
| { | |||||
| memset(bits, 0, sizeof(bits)); | |||||
| } | |||||
| inline unsigned int IsSet(unsigned int index) | |||||
| { | |||||
| return bits[index / 32] & (1 << (index & 31)); | |||||
| } | |||||
| inline void Set(unsigned int index) | |||||
| { | |||||
| bits[index / 32] |= (1 << (index & 31)); | |||||
| } | |||||
| inline void Unset(unsigned int index) | |||||
| { | |||||
| bits[index / 32] &= ~(1 << (index & 31)); | |||||
| } | |||||
| private: | |||||
| uint32_t bits[(COUNT + 31) / 32]; | |||||
| }; | |||||
| } /* namespace lol */ | |||||
| #endif // __LOL_BITFIELD_H__ | |||||
| @@ -89,15 +89,15 @@ static inline int isnan(float f) | |||||
| #include <lol/math/geometry.h> | #include <lol/math/geometry.h> | ||||
| #include <lol/sys/init.h> | #include <lol/sys/init.h> | ||||
| #include <lol/sys/log.h> | |||||
| #include <lol/sys/thread.h> | #include <lol/sys/thread.h> | ||||
| #include <lol/sys/timer.h> | |||||
| #include <lol/image/color.h> | #include <lol/image/color.h> | ||||
| #include "numeric.h" | #include "numeric.h" | ||||
| #include "timer.h" | |||||
| // Static classes | // Static classes | ||||
| #include "log.h" | |||||
| #include "platform.h" | #include "platform.h" | ||||
| #include "video.h" | #include "video.h" | ||||
| #include "audio.h" | #include "audio.h" | ||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | // 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 | // modify it under the terms of the Do What The Fuck You Want To | ||||
| // Public License, Version 2, as published by Sam Hocevar. See | // Public License, Version 2, as published by Sam Hocevar. See | ||||
| @@ -14,8 +14,8 @@ | |||||
| // The central logging system. | // The central logging system. | ||||
| // | // | ||||
| #if !defined __LOL_LOG_H__ | |||||
| #define __LOL_LOG_H__ | |||||
| #if !defined __LOL_SYS_LOG_H__ | |||||
| #define __LOL_SYS_LOG_H__ | |||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include <cstdarg> | #include <cstdarg> | ||||
| @@ -51,5 +51,5 @@ private: | |||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| #endif // __LOL_LOG_H__ | |||||
| #endif // __LOL_SYS_LOG_H__ | |||||
| @@ -1,7 +1,7 @@ | |||||
| // | // | ||||
| // Lol Engine | // Lol Engine | ||||
| // | // | ||||
| // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net> | |||||
| // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net> | |||||
| // This program is free software; you can redistribute it and/or | // 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 | // modify it under the terms of the Do What The Fuck You Want To | ||||
| // Public License, Version 2, as published by Sam Hocevar. See | // Public License, Version 2, as published by Sam Hocevar. See | ||||
| @@ -13,8 +13,8 @@ | |||||
| // --------------- | // --------------- | ||||
| // | // | ||||
| #if !defined __LOL_TIMER_H__ | |||||
| #define __LOL_TIMER_H__ | |||||
| #if !defined __LOL_SYS_TIMER_H__ | |||||
| #define __LOL_SYS_TIMER_H__ | |||||
| namespace lol | namespace lol | ||||
| { | { | ||||
| @@ -37,5 +37,5 @@ private: | |||||
| } /* namespace lol */ | } /* namespace lol */ | ||||
| #endif // __LOL_TIMER_H__ | |||||
| #endif // __LOL_SYS_TIMER_H__ | |||||
| @@ -272,7 +272,6 @@ | |||||
| <ClCompile Include="input\keyboard.cpp" /> | <ClCompile Include="input\keyboard.cpp" /> | ||||
| <ClCompile Include="input\stick.cpp" /> | <ClCompile Include="input\stick.cpp" /> | ||||
| <ClCompile Include="layer.cpp" /> | <ClCompile Include="layer.cpp" /> | ||||
| <ClCompile Include="log.cpp" /> | |||||
| <ClCompile Include="map.cpp" /> | <ClCompile Include="map.cpp" /> | ||||
| <ClCompile Include="math\geometry.cpp" /> | <ClCompile Include="math\geometry.cpp" /> | ||||
| <ClCompile Include="math\half.cpp" /> | <ClCompile Include="math\half.cpp" /> | ||||
| @@ -294,6 +293,8 @@ | |||||
| <ClCompile Include="scene.cpp" /> | <ClCompile Include="scene.cpp" /> | ||||
| <ClCompile Include="sprite.cpp" /> | <ClCompile Include="sprite.cpp" /> | ||||
| <ClCompile Include="sys\init.cpp" /> | <ClCompile Include="sys\init.cpp" /> | ||||
| <ClCompile Include="sys\log.cpp" /> | |||||
| <ClCompile Include="sys\timer.cpp" /> | |||||
| <ClCompile Include="text.cpp" /> | <ClCompile Include="text.cpp" /> | ||||
| <ClCompile Include="ticker.cpp" /> | <ClCompile Include="ticker.cpp" /> | ||||
| <ClCompile Include="tiler.cpp" /> | <ClCompile Include="tiler.cpp" /> | ||||
| @@ -306,7 +307,6 @@ | |||||
| <ItemGroup> | <ItemGroup> | ||||
| <ClInclude Include="application\application.h" /> | <ClInclude Include="application\application.h" /> | ||||
| <ClInclude Include="audio.h" /> | <ClInclude Include="audio.h" /> | ||||
| <ClInclude Include="bitfield.h" /> | |||||
| <ClInclude Include="bullet\btBulletCollisionCommon.h" /> | <ClInclude Include="bullet\btBulletCollisionCommon.h" /> | ||||
| <ClInclude Include="bullet\btBulletDynamicsCommon.h" /> | <ClInclude Include="bullet\btBulletDynamicsCommon.h" /> | ||||
| <ClInclude Include="bullet\Bullet-C-Api.h" /> | <ClInclude Include="bullet\Bullet-C-Api.h" /> | ||||
| @@ -584,7 +584,6 @@ | |||||
| <ClInclude Include="input\keyboard.h" /> | <ClInclude Include="input\keyboard.h" /> | ||||
| <ClInclude Include="input\stick.h" /> | <ClInclude Include="input\stick.h" /> | ||||
| <ClInclude Include="layer.h" /> | <ClInclude Include="layer.h" /> | ||||
| <ClInclude Include="log.h" /> | |||||
| <ClInclude Include="loldebug.h" /> | <ClInclude Include="loldebug.h" /> | ||||
| <ClInclude Include="lolgl.h" /> | <ClInclude Include="lolgl.h" /> | ||||
| <ClInclude Include="lol\base\array.h" /> | <ClInclude Include="lol\base\array.h" /> | ||||
| @@ -601,7 +600,9 @@ | |||||
| <ClInclude Include="lol\math\remez.h" /> | <ClInclude Include="lol\math\remez.h" /> | ||||
| <ClInclude Include="lol\math\vector.h" /> | <ClInclude Include="lol\math\vector.h" /> | ||||
| <ClInclude Include="lol\sys\init.h" /> | <ClInclude Include="lol\sys\init.h" /> | ||||
| <ClInclude Include="lol\sys\log.h" /> | |||||
| <ClInclude Include="lol\sys\thread.h" /> | <ClInclude Include="lol\sys\thread.h" /> | ||||
| <ClInclude Include="lol\sys\timer.h" /> | |||||
| <ClInclude Include="lol\unit.h" /> | <ClInclude Include="lol\unit.h" /> | ||||
| <ClInclude Include="mesh\mesh.h" /> | <ClInclude Include="mesh\mesh.h" /> | ||||
| <ClInclude Include="map.h" /> | <ClInclude Include="map.h" /> | ||||
| @@ -192,9 +192,6 @@ | |||||
| <ClCompile Include="ticker.cpp"> | <ClCompile Include="ticker.cpp"> | ||||
| <Filter>...</Filter> | <Filter>...</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| <ClCompile Include="log.cpp"> | |||||
| <Filter>...</Filter> | |||||
| </ClCompile> | |||||
| <ClCompile Include="map.cpp"> | <ClCompile Include="map.cpp"> | ||||
| <Filter>...</Filter> | <Filter>...</Filter> | ||||
| </ClCompile> | </ClCompile> | ||||
| @@ -752,9 +749,6 @@ | |||||
| <ClInclude Include="audio.h"> | <ClInclude Include="audio.h"> | ||||
| <Filter>...</Filter> | <Filter>...</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="bitfield.h"> | |||||
| <Filter>...</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="camera.h"> | <ClInclude Include="camera.h"> | ||||
| <Filter>...</Filter> | <Filter>...</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -785,9 +779,6 @@ | |||||
| <ClInclude Include="layer.h"> | <ClInclude Include="layer.h"> | ||||
| <Filter>...</Filter> | <Filter>...</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| <ClInclude Include="log.h"> | |||||
| <Filter>...</Filter> | |||||
| </ClInclude> | |||||
| <ClInclude Include="loldebug.h"> | <ClInclude Include="loldebug.h"> | ||||
| <Filter>...</Filter> | <Filter>...</Filter> | ||||
| </ClInclude> | </ClInclude> | ||||
| @@ -1675,4 +1666,4 @@ | |||||
| <Filter>gpu</Filter> | <Filter>gpu</Filter> | ||||
| </None> | </None> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| </Project> | |||||
| </Project> | |||||
| @@ -82,11 +82,8 @@ void Log::Helper(MessageType type, char const *fmt, va_list ap) | |||||
| ANDROID_LOG_ERROR | ANDROID_LOG_ERROR | ||||
| }; | }; | ||||
| char buf[4096]; | |||||
| vsnprintf(buf, 4095, fmt, ap); | |||||
| buf[4095] = '\0'; | |||||
| __android_log_print(prio[type], "LOL", "[%d] %s", (int)gettid(), buf); | |||||
| String buf = String::Printf(fmt, ap); | |||||
| __android_log_print(prio[type], "LOL", "[%d] %s", (int)gettid(), &buf[0]); | |||||
| #else | #else | ||||
| char const *prefix[] = | char const *prefix[] = | ||||
| @@ -98,12 +95,8 @@ void Log::Helper(MessageType type, char const *fmt, va_list ap) | |||||
| }; | }; | ||||
| # if defined _WIN32 | # if defined _WIN32 | ||||
| char buf[4096]; | |||||
| vsnprintf(buf, 4095, fmt, ap); | |||||
| buf[4095] = '\0'; | |||||
| OutputDebugString(prefix[type]); | |||||
| OutputDebugString(": "); | |||||
| OutputDebugString(buf); | |||||
| String buf = String(prefix[type]) + ": " + String::Printf(fmt, ap); | |||||
| OutputDebugString(&buf[0]); | |||||
| # else | # else | ||||
| fprintf(stderr, "%s: ", prefix[type]); | fprintf(stderr, "%s: ", prefix[type]); | ||||
| vfprintf(stderr, fmt, ap); | vfprintf(stderr, fmt, ap); | ||||