@ -723,6 +723,14 @@ struct ImGuiDataTypeInfo 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  char *  ScanFmt ;         // Default scanf format for the type
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Extend ImGuiDataType_
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					enum  ImGuiDataTypePrivate_  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiDataType_String  =  ImGuiDataType_COUNT  +  1 ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiDataType_Pointer ,   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiDataType_ID   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Stacked color modifier, backup of modified data so we can restore it
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					struct  ImGuiColorMod  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1035,6 +1043,7 @@ struct ImGuiContext 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool                     WithinFrameScopeWithImplicitWindow ;  // Set by NewFrame(), cleared by EndFrame() when the implicit debug window has been pushed
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool                     WithinEndChild ;                      // Set within EndChild()
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    bool                     TestEngineHookItems ;                 // Will call test engine hooks ImGuiTestEngineHook_ItemAdd(), ImGuiTestEngineHook_ItemInfo(), ImGuiTestEngineHook_Log()
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiID                  TestEngineHookPushId ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    void *                    TestEngine ;                          // Test engine user data
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Windows state
   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1244,6 +1253,7 @@ struct ImGuiContext 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        FrameCountEnded  =  FrameCountRendered  =  - 1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WithinFrameScope  =  WithinFrameScopeWithImplicitWindow  =  WithinEndChild  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        TestEngineHookItems  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        TestEngineHookPushId  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        TestEngine  =  NULL ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WindowsActiveCount  =  0 ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1941,14 +1951,20 @@ extern void                 ImGuiTestEngineHook_PreNewFrame(ImGuiContext* ctx); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					extern  void                  ImGuiTestEngineHook_PostNewFrame ( ImGuiContext *  ctx ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					extern  void                  ImGuiTestEngineHook_ItemAdd ( ImGuiContext *  ctx ,  const  ImRect &  bb ,  ImGuiID  id ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					extern  void                  ImGuiTestEngineHook_ItemInfo ( ImGuiContext *  ctx ,  ImGuiID  id ,  const  char *  label ,  ImGuiItemStatusFlags  flags ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					extern  void                  ImGuiTestEngineHook_PushID ( ImGuiContext *  ctx ,  ImGuiDataType  data_type ,  ImGuiID  id ,  const  void *  data_id ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					extern  void                  ImGuiTestEngineHook_PushID ( ImGuiContext *  ctx ,  ImGuiDataType  data_type ,  ImGuiID  id ,  const  void *  data_id ,  const  void *  data_id_end ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					extern  void                  ImGuiTestEngineHook_Log ( ImGuiContext *  ctx ,  const  char *  fmt ,  . . . ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_ITEM_ADD(_BB,_ID)                 if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID)                // Register item bounding box
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)      if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS)    // Register item label and status flags (optional)
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_LOG(_FMT,...)                     if (g.TestEngineHookItems) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__)           // Custom log entry from user land into test log
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_PUSH_ID(_ID,_TYPE,_DATA)          if (g.TestEngineHookPushId == id) ImGuiTestEngineHook_PushID(&g, _TYPE, _ID, (const void*)(_DATA));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_PUSH_ID2(_ID,_TYPE,_DATA,_DATA2)  if (g.TestEngineHookPushId == id) ImGuiTestEngineHook_PushID(&g, _TYPE, _ID, (const void*)(_DATA), (const void*)(_DATA2));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# else  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_ITEM_ADD(_BB,_ID)                 do { } while (0)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)      do { } while (0)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_LOG(_FMT,...)                     do { } while (0)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_PUSH_ID(_ID,_TYPE,_DATA)          do { } while (0)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# define IMGUI_TEST_ENGINE_PUSH_ID2(_ID,_TYPE,_DATA,_DATA2)  do { } while (0)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# if defined(__clang__)