@ -1089,6 +1089,7 @@ static int              FindWindowFocusIndex(ImGuiWindow* window); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              UpdateMouseInputs ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              UpdateMouseWheel ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  bool              UpdateManualResize ( ImGuiWindow *  window ,  const  ImVec2 &  size_auto_fit ,  int *  border_held ,  int  resize_grip_count ,  ImU32  resize_grip_col [ 4 ] ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              UpdateDebugToolItemPicker ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              RenderWindowOuterBorders ( ImGuiWindow *  window ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              RenderWindowDecorations ( ImGuiWindow *  window ,  const  ImRect &  title_bar_rect ,  bool  title_bar_is_highlight ,  int  resize_grip_count ,  const  ImU32  resize_grip_col [ 4 ] ,  float  resize_grip_draw_size ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void              RenderWindowTitleBarContents ( ImGuiWindow *  window ,  const  ImRect &  title_bar_rect ,  const  char *  name ,  bool *  p_open ) ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -3584,15 +3585,10 @@ void ImGui::UpdateHoveredWindowAndCaptureFlags() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g . IO . WantTextInput  =  ( g . WantTextInputNextFrame  ! =  - 1 )  ?  ( g . WantTextInputNextFrame  ! =  0 )  :  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  ImGui : : NewFrame ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					static  void  NewFrameSanityChecks ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IM_ASSERT ( GImGui  ! =  NULL  & &  " No current context. Did you call ImGui::CreateContext() and ImGui::SetCurrentContext() ? " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiContext &  g  =  * GImGui ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifdef IMGUI_ENABLE_TEST_ENGINE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiTestEngineHook_PreNewFrame ( & g ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Check user data
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // (We pass an error message in the assert expression to make it visible to programmers who are not using a debugger, as most assert handlers display their argument)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IM_ASSERT ( g . Initialized ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -3605,7 +3601,6 @@ void ImGui::NewFrame() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IM_ASSERT ( g . Style . Alpha  > =  0.0f  & &  g . Style . Alpha  < =  1.0f             & &  " Invalid style setting. Alpha cannot be negative (allows us to avoid a few clamps in color computations)! " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IM_ASSERT ( g . Style . WindowMinSize . x  > =  1.0f  & &  g . Style . WindowMinSize . y  > =  1.0f  & &  " Invalid style setting. " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IM_ASSERT ( g . Style . WindowMenuButtonPosition  = =  ImGuiDir_Left  | |  g . Style . WindowMenuButtonPosition  = =  ImGuiDir_Right ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    for  ( int  n  =  0 ;  n  <  ImGuiKey_COUNT ;  n + + )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        IM_ASSERT ( g . IO . KeyMap [ n ]  > =  - 1  & &  g . IO . KeyMap [ n ]  <  IM_ARRAYSIZE ( g . IO . KeysDown )  & &  " io.KeyMap[] contains an out of bound value (need to be 0..512, or -1 for unmapped key) " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -3616,6 +3611,19 @@ void ImGui::NewFrame() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Perform simple check: the beta io.ConfigWindowsResizeFromEdges option requires back-end to honor mouse cursor changes and set the ImGuiBackendFlags_HasMouseCursors flag accordingly.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( g . IO . ConfigWindowsResizeFromEdges  & &  ! ( g . IO . BackendFlags  &  ImGuiBackendFlags_HasMouseCursors ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        g . IO . ConfigWindowsResizeFromEdges  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  ImGui : : NewFrame ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    IM_ASSERT ( GImGui  ! =  NULL  & &  " No current context. Did you call ImGui::CreateContext() and ImGui::SetCurrentContext() ? " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiContext &  g  =  * GImGui ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifdef IMGUI_ENABLE_TEST_ENGINE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiTestEngineHook_PreNewFrame ( & g ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Check and assert for various common IO and Configuration mistakes
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    NewFrameSanityChecks ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Load settings on first frame (if not explicitly loaded manually before)
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! g . SettingsLoaded )   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -3798,6 +3806,24 @@ void ImGui::NewFrame() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ClosePopupsOverWindow ( g . NavWindow ,  false ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    UpdateDebugToolItemPicker ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Create implicit/fallback window - which we will only render it if the user has added something to it.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // We don't use "Debug" to avoid colliding with user trying to create a "Debug" window with custom flags.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // This fallback is particularly important as it avoid ImGui:: calls from crashing.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SetNextWindowSize ( ImVec2 ( 400 , 400 ) ,  ImGuiCond_FirstUseEver ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    Begin ( " Debug##Default " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g . FrameScopePushedImplicitWindow  =  true ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifdef IMGUI_ENABLE_TEST_ENGINE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiTestEngineHook_PostNewFrame ( & g ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack.
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  ImGui : : UpdateDebugToolItemPicker ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiContext &  g  =  * GImGui ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g . DebugItemPickerBreakID  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( g . DebugItemPickerActive )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -3817,17 +3843,6 @@ void ImGui::NewFrame() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ImGui : : TextColored ( GetStyleColorVec4 ( hovered_id  ?  ImGuiCol_Text  :  ImGuiCol_TextDisabled ) ,  " Click to break in debugger! " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ImGui : : EndTooltip ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Create implicit/fallback window - which we will only render it if the user has added something to it.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // We don't use "Debug" to avoid colliding with user trying to create a "Debug" window with custom flags.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // This fallback is particularly important as it avoid ImGui:: calls from crashing.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SetNextWindowSize ( ImVec2 ( 400 , 400 ) ,  ImGuiCond_FirstUseEver ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    Begin ( " Debug##Default " ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    g . FrameScopePushedImplicitWindow  =  true ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# ifdef IMGUI_ENABLE_TEST_ENGINE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiTestEngineHook_PostNewFrame ( & g ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					# endif  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  ImGui : : Initialize ( ImGuiContext *  context )