@ -5835,13 +5835,13 @@ bool ImGui::ListBox(const char* label, int* current_item, bool (*items_getter)(v 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// - PlotHistogram()
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					//-------------------------------------------------------------------------
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void   ImGui : : PlotEx ( ImGuiPlotType  plot_type ,  const  char *  label ,  float  ( * values_getter ) ( void *  data ,  int  idx ) ,  void *  data ,  int  values_count ,  int  values_offset ,  const  char *  overlay_text ,  float  scale_min ,  float  scale_max ,  ImVec2  frame_size )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					int   ImGui : : PlotEx ( ImGuiPlotType  plot_type ,  const  char *  label ,  float  ( * values_getter ) ( void *  data ,  int  idx ) ,  void *  data ,  int  values_count ,  int  values_offset ,  const  char *  overlay_text ,  float  scale_min ,  float  scale_max ,  ImVec2  frame_size )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiContext &  g  =  * GImGui ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiWindow *  window  =  GetCurrentWindow ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( window - > SkipItems )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  - 1  ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImGuiContext &  g  =  * GImGui ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  ImGuiStyle &  style  =  g . Style ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  ImGuiID  id  =  window - > GetID ( label ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -5856,7 +5856,7 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  ImRect  total_bb ( frame_bb . Min ,  frame_bb . Max  +  ImVec2 ( label_size . x  >  0.0f  ?  style . ItemInnerSpacing . x  +  label_size . x  :  0.0f ,  0 ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ItemSize ( total_bb ,  style . FramePadding . y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( ! ItemAdd ( total_bb ,  0 ,  & frame_bb ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return  - 1  ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  bool  hovered  =  ItemHoverable ( frame_bb ,  id ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Determine scale from values if not specified
   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -5881,13 +5881,13 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    RenderFrame ( frame_bb . Min ,  frame_bb . Max ,  GetColorU32 ( ImGuiCol_FrameBg ) ,  true ,  style . FrameRounding ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  int  values_count_min  =  ( plot_type  = =  ImGuiPlotType_Lines )  ?  2  :  1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    int  idx_hovered  =  - 1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( values_count  > =  values_count_min )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  res_w  =  ImMin ( ( int ) frame_size . x ,  values_count )  +  ( ( plot_type  = =  ImGuiPlotType_Lines )  ?  - 1  :  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  item_count  =  values_count  +  ( ( plot_type  = =  ImGuiPlotType_Lines )  ?  - 1  :  0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Tooltip on hover
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        int  v_hovered  =  - 1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( hovered  & &  inner_bb . Contains ( g . IO . MousePos ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            const  float  t  =  ImClamp ( ( g . IO . MousePos . x  -  inner_bb . Min . x )  /  ( inner_bb . Max . x  -  inner_bb . Min . x ) ,  0.0f ,  0.9999f ) ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -5900,7 +5900,7 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                SetTooltip ( " %d: %8.4g \n %d: %8.4g " ,  v_idx ,  v0 ,  v_idx + 1 ,  v1 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            else  if  ( plot_type  = =  ImGuiPlotType_Histogram )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                SetTooltip ( " %d: %8.4g " ,  v_idx ,  v0 ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            v _hovered  =  v_idx ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            idx _hovered  =  v_idx ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        const  float  t_step  =  1.0f  /  ( float ) res_w ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -5927,13 +5927,13 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ImVec2  pos1  =  ImLerp ( inner_bb . Min ,  inner_bb . Max ,  ( plot_type  = =  ImGuiPlotType_Lines )  ?  tp1  :  ImVec2 ( tp1 . x ,  histogram_zero_line_t ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( plot_type  = =  ImGuiPlotType_Lines )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                window - > DrawList - > AddLine ( pos0 ,  pos1 ,  v _hovered  = =  v1_idx  ?  col_hovered  :  col_base ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                window - > DrawList - > AddLine ( pos0 ,  pos1 ,  idx _hovered  = =  v1_idx  ?  col_hovered  :  col_base ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            else  if  ( plot_type  = =  ImGuiPlotType_Histogram )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if  ( pos1 . x  > =  pos0 . x  +  2.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    pos1 . x  - =  1.0f ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                window - > DrawList - > AddRectFilled ( pos0 ,  pos1 ,  v _hovered  = =  v1_idx  ?  col_hovered  :  col_base ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                window - > DrawList - > AddRectFilled ( pos0 ,  pos1 ,  idx _hovered  = =  v1_idx  ?  col_hovered  :  col_base ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            t0  =  t1 ;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -5947,6 +5947,10 @@ void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_ge 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( label_size . x  >  0.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        RenderText ( ImVec2 ( frame_bb . Max . x  +  style . ItemInnerSpacing . x ,  inner_bb . Min . y ) ,  label ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Return hovered index or -1 if none are hovered. 
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // This is currently not exposed in the public API because we need a larger redesign of the whole thing, but in the short-term we are making it available in PlotEx().
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return  idx_hovered ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					struct  ImGuiPlotArrayGetterData