@@ -15,13 +15,13 @@ liblol_a_SOURCES = \ | |||||
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/base/types.h lol/base/array.h lol/base/string.h lol/base/hash.h \ | |||||
lol/base/map.h \ | |||||
lol/base/log.h lol/base/array.h lol/base/types.h lol/base/array.h \ | |||||
lol/base/string.h lol/base/hash.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/math/math.h lol/math/geometry.h \ | ||||
lol/sys/init.h lol/sys/log.h lol/sys/thread.h lol/sys/timer.h \ | |||||
lol/sys/init.h lol/sys/thread.h lol/sys/timer.h \ | |||||
lol/image/color.h \ | lol/image/color.h \ | ||||
lol/unit.h lol/debug.h \ | |||||
lol/unit.h \ | |||||
\ | \ | ||||
generated/location.hh generated/position.hh generated/stack.hh \ | generated/location.hh generated/position.hh generated/stack.hh \ | ||||
\ | \ | ||||
@@ -42,7 +42,7 @@ liblol_a_SOURCES = \ | |||||
$(d3d9_sources) \ | $(d3d9_sources) \ | ||||
$(android_sources) \ | $(android_sources) \ | ||||
\ | \ | ||||
base/hash.cpp base/string.cpp \ | |||||
base/hash.cpp base/log.cpp base/string.cpp \ | |||||
\ | \ | ||||
math/vector.cpp math/real.cpp math/half.cpp math/trig.cpp \ | math/vector.cpp math/real.cpp math/half.cpp math/trig.cpp \ | ||||
math/geometry.cpp \ | math/geometry.cpp \ | ||||
@@ -69,7 +69,7 @@ liblol_a_SOURCES = \ | |||||
\ | \ | ||||
mesh/mesh.cpp mesh/mesh.h \ | mesh/mesh.cpp mesh/mesh.h \ | ||||
\ | \ | ||||
sys/init.cpp sys/log.cpp sys/timer.cpp \ | |||||
sys/init.cpp sys/timer.cpp \ | |||||
sys/threadbase.h \ | sys/threadbase.h \ | ||||
\ | \ | ||||
image/image.cpp image/image.h image/image-private.h \ | image/image.cpp image/image.h image/image-private.h \ | ||||
@@ -74,9 +74,9 @@ static inline int isnan(float f) | |||||
#endif | #endif | ||||
// Base types | // Base types | ||||
#include <lol/debug.h> | |||||
#include <lol/base/types.h> | #include <lol/base/types.h> | ||||
#include <lol/base/log.h> | |||||
#include <lol/base/assert.h> | |||||
#include <lol/base/array.h> | #include <lol/base/array.h> | ||||
#include <lol/base/string.h> | #include <lol/base/string.h> | ||||
#include <lol/base/hash.h> | #include <lol/base/hash.h> | ||||
@@ -89,7 +89,6 @@ 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/sys/timer.h> | ||||
@@ -0,0 +1,78 @@ | |||||
// | |||||
// Lol Engine | |||||
// | |||||
// Copyright: (c) 2010-2013 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. | |||||
// | |||||
#if !defined __LOL_BASE_ASSERT_H__ | |||||
#define __LOL_BASE_ASSERT_H__ | |||||
#include <cstdlib> | |||||
namespace lol | |||||
{ | |||||
static inline void Abort() | |||||
{ | |||||
#if defined __CELLOS_LV2__ | |||||
*(uint32_t *)NULL = 0xdead; | |||||
#else | |||||
std::abort(); | |||||
#endif | |||||
} | |||||
#define LOL_CALL(macro, args) macro args | |||||
#define LOL_EVAL(a) a | |||||
#define LOL_1ST(a, ...) a | |||||
#define LOL_NUM2(a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, \ | |||||
a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, \ | |||||
a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, \ | |||||
a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, \ | |||||
a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, \ | |||||
a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, \ | |||||
a61, a62, a63, ...) a63 | |||||
#define LOL_NUM(...) \ | |||||
LOL_EVAL(LOL_NUM2(__VA_ARGS__, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \ | |||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \ | |||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \ | |||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \ | |||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \ | |||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \ | |||||
2, 1, TOO_MANY_ARGUMENTS)) | |||||
/* Three levels of dispatch are needed because of Visual Studio's bizarre | |||||
* handling of __VA_ARGS__ inside macro calls */ | |||||
#define LOL_CAT3(a, b) a##b | |||||
#define LOL_CAT2(a, b) LOL_CAT3(a,b) | |||||
#define LOL_CAT(a, b) LOL_CAT2(a,b) | |||||
#define LOL_ERROR_1(t) \ | |||||
Log::Error("assertion failure: " #t "\n") | |||||
#define LOL_ERROR_2(t, s) \ | |||||
Log::Error("assertion failure: %s\n", s) | |||||
#define LOL_ERROR_3(t, s, ...) \ | |||||
Log::Error("assertion failure: " s "\n", __VA_ARGS__) | |||||
#if FINAL_RELEASE | |||||
# define ASSERT(...) (void)sizeof(LOL_CALL(LOL_1ST, (__VA_ARGS__))) | |||||
#else | |||||
# define ASSERT(...) \ | |||||
if (!(LOL_CALL(LOL_1ST, (__VA_ARGS__)))) \ | |||||
{ \ | |||||
LOL_CALL(LOL_CAT(LOL_ERROR_, LOL_CALL(LOL_NUM, (__VA_ARGS__))), \ | |||||
(__VA_ARGS__)); \ | |||||
Abort(); \ | |||||
} | |||||
#endif | |||||
} /* namespace lol */ | |||||
#endif // __LOL_BASE_ASSERT_H__ | |||||
@@ -14,8 +14,8 @@ | |||||
// The central logging system. | // The central logging system. | ||||
// | // | ||||
#if !defined __LOL_SYS_LOG_H__ | |||||
#define __LOL_SYS_LOG_H__ | |||||
#if !defined __LOL_BASE_LOG_H__ | |||||
#define __LOL_BASE_LOG_H__ | |||||
#include <stdint.h> | #include <stdint.h> | ||||
#include <cstdarg> | #include <cstdarg> | ||||
@@ -51,5 +51,5 @@ private: | |||||
} /* namespace lol */ | } /* namespace lol */ | ||||
#endif // __LOL_SYS_LOG_H__ | |||||
#endif // __LOL_BASE_LOG_H__ | |||||
@@ -1,36 +0,0 @@ | |||||
// | |||||
// Lol Engine | |||||
// | |||||
// Copyright: (c) 2010-2013 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. | |||||
// | |||||
// | |||||
// Debug utilities | |||||
// --------------- | |||||
// | |||||
#if !defined __LOL_DEBUG_H__ | |||||
#define __LOL_DEBUG_H__ | |||||
#include <cstdlib> | |||||
namespace lol | |||||
{ | |||||
static inline void Abort() | |||||
{ | |||||
#if defined __CELLOS_LV2__ | |||||
*(uint32_t *)NULL = 0; | |||||
#else | |||||
std::abort(); | |||||
#endif | |||||
} | |||||
} /* namespace lol */ | |||||
#endif // __LOL_DEBUG_H__ | |||||
@@ -235,6 +235,7 @@ | |||||
<ClCompile Include="bullet\LinearMath\btSerializer.cpp" /> | <ClCompile Include="bullet\LinearMath\btSerializer.cpp" /> | ||||
<ClCompile Include="camera.cpp" /> | <ClCompile Include="camera.cpp" /> | ||||
<ClCompile Include="base\hash.cpp" /> | <ClCompile Include="base\hash.cpp" /> | ||||
<ClCompile Include="base\log.cpp" /> | |||||
<ClCompile Include="base\string.cpp" /> | <ClCompile Include="base\string.cpp" /> | ||||
<ClCompile Include="debug\fps.cpp" /> | <ClCompile Include="debug\fps.cpp" /> | ||||
<ClCompile Include="debug\record.cpp" /> | <ClCompile Include="debug\record.cpp" /> | ||||
@@ -293,7 +294,6 @@ | |||||
<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="sys\timer.cpp" /> | ||||
<ClCompile Include="text.cpp" /> | <ClCompile Include="text.cpp" /> | ||||
<ClCompile Include="ticker.cpp" /> | <ClCompile Include="ticker.cpp" /> | ||||
@@ -586,11 +586,12 @@ | |||||
<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" /> | ||||
<ClInclude Include="lol\base\assert.h" /> | |||||
<ClInclude Include="lol\base\hash.h" /> | <ClInclude Include="lol\base\hash.h" /> | ||||
<ClInclude Include="lol\base\log.h" /> | |||||
<ClInclude Include="lol\base\map.h" /> | <ClInclude Include="lol\base\map.h" /> | ||||
<ClInclude Include="lol\base\string.h" /> | <ClInclude Include="lol\base\string.h" /> | ||||
<ClInclude Include="lol\base\types.h" /> | <ClInclude Include="lol\base\types.h" /> | ||||
<ClInclude Include="lol\debug.h" /> | |||||
<ClInclude Include="lol\image\color.h" /> | <ClInclude Include="lol\image\color.h" /> | ||||
<ClInclude Include="lol\math\geometry.h" /> | <ClInclude Include="lol\math\geometry.h" /> | ||||
<ClInclude Include="lol\math\half.h" /> | <ClInclude Include="lol\math\half.h" /> | ||||
@@ -599,7 +600,6 @@ | |||||
<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\sys\timer.h" /> | ||||
<ClInclude Include="lol\unit.h" /> | <ClInclude Include="lol\unit.h" /> | ||||
@@ -731,9 +731,6 @@ | |||||
<ClInclude Include="gpu\indexbuffer.h"> | <ClInclude Include="gpu\indexbuffer.h"> | ||||
<Filter>gpu</Filter> | <Filter>gpu</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="lol\debug.h"> | |||||
<Filter>lol</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="input\input.h"> | <ClInclude Include="input\input.h"> | ||||
<Filter>input</Filter> | <Filter>input</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -1613,6 +1610,9 @@ | |||||
<ClInclude Include="lol\base\array.h"> | <ClInclude Include="lol\base\array.h"> | ||||
<Filter>lol\base</Filter> | <Filter>lol\base</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="lol\base\assert.h"> | |||||
<Filter>lol\base</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="lol\base\hash.h"> | <ClInclude Include="lol\base\hash.h"> | ||||
<Filter>lol\base</Filter> | <Filter>lol\base</Filter> | ||||
</ClInclude> | </ClInclude> | ||||