Debug.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROCKETCOREDEBUG_H
00029 #define ROCKETCOREDEBUG_H
00030
00031 #include <Rocket/Core/Header.h>
00032
00033
00034 #if defined (ROCKET_PLATFORM_WIN32)
00035 #define ROCKET_BREAK _asm { int 0x03 }
00036 #elif defined (ROCKET_PLATFORM_LINUX)
00037 #define ROCKET_BREAK asm ("int $0x03" )
00038 #elif defined (ROCKET_PLATFORM_MACOSX)
00039 #define ROCKET_BREAK _asm { int 0x03 }
00040 #endif
00041
00042 #define ROCKET_STATIC_ASSERT(cond, msg) typedef char msg[(cond) ? 1 : 0]
00043
00044
00045 #if 1
00046 #define ROCKET_ASSERT(x)
00047 #define ROCKET_ASSERTMSG(x, m)
00048 #define ROCKET_ERROR
00049 #define ROCKET_ERRORMSG(m)
00050 #define ROCKET_VERIFY(x) x
00051 #else
00052 namespace Rocket {
00053 namespace Core {
00054
00055 bool ROCKETCORE_API Assert(const char* message, const char* file, int line);
00056 #define ROCKET_ASSERT(x) \
00057 if (!(x)) \
00058 { \
00059 if (!Rocket::Core::Assert("ROCKET_ASSERT("#x")", __FILE__, __LINE__ )) \
00060 { \
00061 ROCKET_BREAK; \
00062 } \
00063 }
00064 #define ROCKET_ASSERTMSG(x, m) \
00065 if (!(x)) \
00066 { \
00067 if (!Rocket::Core::Assert(m, __FILE__, __LINE__ )) \
00068 { \
00069 ROCKET_BREAK; \
00070 } \
00071 }
00072 #define ROCKET_ERROR \
00073 if (!Rocket::Core::Assert("ROCKET_ERROR", __FILE__, __LINE__)) \
00074 { \
00075 ROCKET_BREAK; \
00076 }
00077 #define ROCKET_ERRORMSG(m) \
00078 if (!Rocket::Core::Assert(m, __FILE__, __LINE__)) \
00079 { \
00080 ROCKET_BREAK; \
00081 }
00082 #define ROCKET_VERIFY(x) ROCKET_ASSERT(x)
00083
00084 }
00085 }
00086 #endif
00087
00088 #endif