@ -140,48 +140,47 @@ extern IMGUI_API ImGuiContext* GImGui;  // Current implicit context pointer 
			
		
	
		
		
			
				
					
					# endif # endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					//-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
  
			
		
	
		
		
			
				
					
					// Generic helpers
 // Macros
  
			
				
				
			
		
	
		
		
			
				
					
					//-----------------------------------------------------------------------------
  
			
		
	
		
		
			
				
					
					// - Macros
  
			
		
	
		
		
			
				
					
					// - Helpers: Misc
  
			
		
	
		
		
			
				
					
					// - Helpers: Bit manipulation
  
			
		
	
		
		
			
				
					
					// - Helpers: Geometry
  
			
		
	
		
		
			
				
					
					// - Helpers: String, Formatting
  
			
		
	
		
		
			
				
					
					// - Helpers: UTF-8 <> wchar conversions
  
			
		
	
		
		
			
				
					
					// - Helpers: ImVec2/ImVec4 operators
  
			
		
	
		
		
			
				
					
					// - Helpers: Maths
  
			
		
	
		
		
			
				
					
					// - Helper: ImBoolVector
  
			
		
	
		
		
			
				
					
					// - Helper: ImPool<>
  
			
		
	
		
		
			
				
					
					// - Helper: ImChunkStream<>
  
			
		
	
		
		
	
		
		
			
				
					
					//-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					// Macros
 // Debug Logging
  
			
				
				
			
		
	
		
		
			
				
					
					# define IM_PI           3.14159265358979323846f # ifndef IMGUI_DEBUG_LOG  
			
				
				
			
		
	
		
		
			
				
					
					# ifdef _WIN32 # define IMGUI_DEBUG_LOG(_FMT,...)       printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__)  
			
				
				
			
		
	
		
		
			
				
					
					# 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 # endif  
			
		
	
		
		
			
				
					
					# define IM_TABSIZE      (4) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					// Static Asserts
  
			
		
	
		
		
			
				
					
					# if (__cplusplus >= 201100) # if (__cplusplus >= 201100)  
			
		
	
		
		
			
				
					
					# define IM_STATIC_ASSERT(_COND)         static_assert(_COND, "") # define IM_STATIC_ASSERT(_COND)         static_assert(_COND, "")  
			
		
	
		
		
			
				
					
					# else # else  
			
		
	
		
		
			
				
					
					# define IM_STATIC_ASSERT(_COND)         typedef char static_assertion_##__line__[(_COND)?1:-1] # define IM_STATIC_ASSERT(_COND)         typedef char static_assertion_##__line__[(_COND)?1:-1]  
			
		
	
		
		
			
				
					
					# endif # 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
 // "Paranoid" Debug Asserts are meant to only be enabled during specific debugging/work, otherwise would slow down the code too much.
  
			
				
				
			
		
	
		
		
			
				
					
					# define IM_FLOOR(_VAL)                  ((float)(int)(_VAL))                                     // ImFloor() is not inlined in MSVC debug builds
 # define IMGUI_DEBUG_PARANOID            1  
			
				
				
			
		
	
		
		
			
				
					
					# define IM_ROUND(_VAL)                  ((float)(int)((_VAL) + 0.5f))                            //
 # if IMGUI_DEBUG_PARANOID  
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					# define IM_ASSERT_PARANOID(_EXPR)       IM_ASSERT(_EXPR)  
			
		
	
		
		
			
				
					
					# else  
			
		
	
		
		
			
				
					
					# define IM_ASSERT_PARANOID(_EXPR)     
			
		
	
		
		
			
				
					
					# endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					// Error handling
 // 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 # ifndef IM_ASSERT_USER_ERROR  
			
		
	
		
		
			
				
					
					# define IM_ASSERT_USER_ERROR(_EXPR,_MSG) IM_ASSERT((_EXPR) && (_MSG))     // Recoverable User Error
 # define IM_ASSERT_USER_ERROR(_EXP,_MSG) IM_ASSERT((_EXP) && (_MSG))       // Recoverable User Error
  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					# endif # endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					// Debug Logging
 // Misc Macros
  
			
				
				
			
		
	
		
		
			
				
					
					# ifndef IMGUI_DEBUG_LOG # define IM_PI                           3.14159265358979323846f  
			
				
				
			
		
	
		
		
			
				
					
					# define IMGUI_DEBUG_LOG(_FMT,...)       printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__) # 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 # 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
 // 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 # ifdef _MSC_VER  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -190,6 +189,21 @@ extern IMGUI_API ImGuiContext* GImGui;  // Current implicit context pointer 
			
		
	
		
		
			
				
					
					# define IMGUI_CDECL # define IMGUI_CDECL  
			
		
	
		
		
			
				
					
					# endif # endif  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					//-----------------------------------------------------------------------------
  
			
		
	
		
		
			
				
					
					// Generic helpers
  
			
		
	
		
		
			
				
					
					//-----------------------------------------------------------------------------
  
			
		
	
		
		
			
				
					
					// - Helpers: Misc
  
			
		
	
		
		
			
				
					
					// - Helpers: Bit manipulation
  
			
		
	
		
		
			
				
					
					// - Helpers: Geometry
  
			
		
	
		
		
			
				
					
					// - Helpers: String, Formatting
  
			
		
	
		
		
			
				
					
					// - Helpers: UTF-8 <> wchar conversions
  
			
		
	
		
		
			
				
					
					// - Helpers: ImVec2/ImVec4 operators
  
			
		
	
		
		
			
				
					
					// - Helpers: Maths
  
			
		
	
		
		
			
				
					
					// - Helper: ImBoolVector
  
			
		
	
		
		
			
				
					
					// - Helper: ImPool<>
  
			
		
	
		
		
			
				
					
					// - Helper: ImChunkStream<>
  
			
		
	
		
		
			
				
					
					//-----------------------------------------------------------------------------
  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					// 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 ) ;