mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-22 20:07:01 +00:00
Internals: Added IM_ASSERT_PARANOID, IMGUI_DEBUG_PARANOID define. Shuffled a bit of the macros section in imgui_internal.h
This commit is contained in:
parent
51e2e9b239
commit
b205ab01f2
@ -139,10 +139,59 @@ namespace ImStb
|
|||||||
extern IMGUI_API ImGuiContext* GImGui; // Current implicit context pointer
|
extern IMGUI_API ImGuiContext* GImGui; // Current implicit context pointer
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Macros
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Debug Logging
|
||||||
|
#ifndef IMGUI_DEBUG_LOG
|
||||||
|
#define IMGUI_DEBUG_LOG(_FMT,...) printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Static Asserts
|
||||||
|
#if (__cplusplus >= 201100)
|
||||||
|
#define IM_STATIC_ASSERT(_COND) static_assert(_COND, "")
|
||||||
|
#else
|
||||||
|
#define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1]
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// "Paranoid" Debug Asserts are meant to only be enabled during specific debugging/work, otherwise would slow down the code too much.
|
||||||
|
#define IMGUI_DEBUG_PARANOID 1
|
||||||
|
#if IMGUI_DEBUG_PARANOID
|
||||||
|
#define IM_ASSERT_PARANOID(_EXPR) IM_ASSERT(_EXPR)
|
||||||
|
#else
|
||||||
|
#define IM_ASSERT_PARANOID(_EXPR)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Error handling
|
||||||
|
// Down the line in some frameworks/languages we would like to have a way to redirect those to the programmer and recover from more faults.
|
||||||
|
#ifndef IM_ASSERT_USER_ERROR
|
||||||
|
#define IM_ASSERT_USER_ERROR(_EXP,_MSG) IM_ASSERT((_EXP) && (_MSG)) // Recoverable User Error
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Misc Macros
|
||||||
|
#define IM_PI 3.14159265358979323846f
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define IM_NEWLINE "\r\n" // Play it nice with Windows users (Update: since 2018-05, Notepad finally appears to support Unix-style carriage returns!)
|
||||||
|
#else
|
||||||
|
#define IM_NEWLINE "\n"
|
||||||
|
#endif
|
||||||
|
#define IM_TABSIZE (4)
|
||||||
|
#define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose
|
||||||
|
#define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255
|
||||||
|
#define IM_FLOOR(_VAL) ((float)(int)(_VAL)) // ImFloor() is not inlined in MSVC debug builds
|
||||||
|
#define IM_ROUND(_VAL) ((float)(int)((_VAL) + 0.5f)) //
|
||||||
|
|
||||||
|
// Enforce cdecl calling convention for functions called by the standard library, in case compilation settings changed the default to e.g. __vectorcall
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define IMGUI_CDECL __cdecl
|
||||||
|
#else
|
||||||
|
#define IMGUI_CDECL
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Generic helpers
|
// Generic helpers
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// - Macros
|
|
||||||
// - Helpers: Misc
|
// - Helpers: Misc
|
||||||
// - Helpers: Bit manipulation
|
// - Helpers: Bit manipulation
|
||||||
// - Helpers: Geometry
|
// - Helpers: Geometry
|
||||||
@ -155,41 +204,6 @@ extern IMGUI_API ImGuiContext* GImGui; // Current implicit context pointer
|
|||||||
// - Helper: ImChunkStream<>
|
// - Helper: ImChunkStream<>
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
// Macros
|
|
||||||
#define IM_PI 3.14159265358979323846f
|
|
||||||
#ifdef _WIN32
|
|
||||||
#define IM_NEWLINE "\r\n" // Play it nice with Windows users (2018/05 news: Microsoft announced that Notepad will finally display Unix-style carriage returns!)
|
|
||||||
#else
|
|
||||||
#define IM_NEWLINE "\n"
|
|
||||||
#endif
|
|
||||||
#define IM_TABSIZE (4)
|
|
||||||
#if (__cplusplus >= 201100)
|
|
||||||
#define IM_STATIC_ASSERT(_COND) static_assert(_COND, "")
|
|
||||||
#else
|
|
||||||
#define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1]
|
|
||||||
#endif
|
|
||||||
#define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose
|
|
||||||
#define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255
|
|
||||||
#define IM_FLOOR(_VAL) ((float)(int)(_VAL)) // ImFloor() is not inlined in MSVC debug builds
|
|
||||||
#define IM_ROUND(_VAL) ((float)(int)((_VAL) + 0.5f)) //
|
|
||||||
|
|
||||||
// Error handling
|
|
||||||
#ifndef IM_ASSERT_USER_ERROR
|
|
||||||
#define IM_ASSERT_USER_ERROR(_EXPR,_MSG) IM_ASSERT((_EXPR) && (_MSG)) // Recoverable User Error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Debug Logging
|
|
||||||
#ifndef IMGUI_DEBUG_LOG
|
|
||||||
#define IMGUI_DEBUG_LOG(_FMT,...) printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Enforce cdecl calling convention for functions called by the standard library, in case compilation settings changed the default to e.g. __vectorcall
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#define IMGUI_CDECL __cdecl
|
|
||||||
#else
|
|
||||||
#define IMGUI_CDECL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Helpers: Misc
|
// Helpers: Misc
|
||||||
#define ImQsort qsort
|
#define ImQsort qsort
|
||||||
IMGUI_API ImU32 ImHashData(const void* data, size_t data_size, ImU32 seed = 0);
|
IMGUI_API ImU32 ImHashData(const void* data, size_t data_size, ImU32 seed = 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user