@ -2476,7 +2476,7 @@ bool ImGuiListClipper::Step()
IM_ASSERT ( table - > RowPosY1 = = StartPosY & & table - > RowPosY2 = = window - > DC . CursorPos . y ) ;
IM_ASSERT ( table - > RowPosY1 = = StartPosY & & table - > RowPosY2 = = window - > DC . CursorPos . y ) ;
ItemsHeight = ( window - > DC . CursorPos . y - StartPosY ) / ( float ) ( DisplayEnd - DisplayStart ) ;
ItemsHeight = ( window - > DC . CursorPos . y - StartPosY ) / ( float ) ( DisplayEnd - DisplayStart ) ;
float affected_by_floating_point_precision = ImIsFloatAboveGuaranteedIntegerPrecision ( StartPosY ) | | ImIsFloatAboveGuaranteedIntegerPrecision ( window - > DC . CursorPos . y ) ;
bool affected_by_floating_point_precision = ImIsFloatAboveGuaranteedIntegerPrecision ( StartPosY ) | | ImIsFloatAboveGuaranteedIntegerPrecision ( window - > DC . CursorPos . y ) ;
if ( affected_by_floating_point_precision )
if ( affected_by_floating_point_precision )
ItemsHeight = window - > DC . PrevLineSize . y + g . Style . ItemSpacing . y ; // FIXME: Technically wouldn't allow multi-line entries.
ItemsHeight = window - > DC . PrevLineSize . y + g . Style . ItemSpacing . y ; // FIXME: Technically wouldn't allow multi-line entries.
@ -4456,13 +4456,13 @@ static void ImGui::RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32
// Draw behind window by moving the draw command at the FRONT of the draw list
// Draw behind window by moving the draw command at the FRONT of the draw list
{
{
ImDrawList * draw_list = window - > RootWindow - > DrawList ;
ImDrawList * draw_list = window - > RootWindow - > DrawList ;
draw_list - > AddDrawCmd ( ) ;
draw_list - > PushClipRect ( viewport_rect . Min - ImVec2 ( 1 , 1 ) , viewport_rect . Max + ImVec2 ( 1 , 1 ) , false ) ; // Ensure ImDrawCmd are not merged
draw_list - > PushClipRect ( viewport_rect . Min - ImVec2 ( 1 , 1 ) , viewport_rect . Max + ImVec2 ( 1 , 1 ) , false ) ; // Ensure ImDrawCmd are not merged
draw_list - > AddRectFilled ( viewport_rect . Min , viewport_rect . Max , col ) ;
draw_list - > AddRectFilled ( viewport_rect . Min , viewport_rect . Max , col ) ;
ImDrawCmd cmd = draw_list - > CmdBuffer . back ( ) ;
ImDrawCmd cmd = draw_list - > CmdBuffer . back ( ) ;
IM_ASSERT ( cmd . ElemCount = = 6 ) ;
IM_ASSERT ( cmd . ElemCount = = 6 ) ;
draw_list - > CmdBuffer . pop_back ( ) ;
draw_list - > CmdBuffer . pop_back ( ) ;
draw_list - > CmdBuffer . push_front ( cmd ) ;
draw_list - > CmdBuffer . push_front ( cmd ) ;
draw_list - > PopClipRect ( ) ;
}
}
}
}
@ -4608,6 +4608,10 @@ void ImGui::Render()
AddDrawListToDrawData ( & viewport - > DrawDataBuilder . Layers [ 0 ] , GetBackgroundDrawList ( viewport ) ) ;
AddDrawListToDrawData ( & viewport - > DrawDataBuilder . Layers [ 0 ] , GetBackgroundDrawList ( viewport ) ) ;
}
}
// Draw modal/window whitening backgrounds
if ( first_render_of_frame )
RenderDimmedBackgrounds ( ) ;
// Add ImDrawList to render
// Add ImDrawList to render
ImGuiWindow * windows_to_render_top_most [ 2 ] ;
ImGuiWindow * windows_to_render_top_most [ 2 ] ;
windows_to_render_top_most [ 0 ] = ( g . NavWindowingTarget & & ! ( g . NavWindowingTarget - > Flags & ImGuiWindowFlags_NoBringToFrontOnFocus ) ) ? g . NavWindowingTarget - > RootWindow : NULL ;
windows_to_render_top_most [ 0 ] = ( g . NavWindowingTarget & & ! ( g . NavWindowingTarget - > Flags & ImGuiWindowFlags_NoBringToFrontOnFocus ) ) ? g . NavWindowingTarget - > RootWindow : NULL ;
@ -4623,10 +4627,6 @@ void ImGui::Render()
if ( windows_to_render_top_most [ n ] & & IsWindowActiveAndVisible ( windows_to_render_top_most [ n ] ) ) // NavWindowingTarget is always temporarily displayed as the top-most window
if ( windows_to_render_top_most [ n ] & & IsWindowActiveAndVisible ( windows_to_render_top_most [ n ] ) ) // NavWindowingTarget is always temporarily displayed as the top-most window
AddRootWindowToDrawData ( windows_to_render_top_most [ n ] ) ;
AddRootWindowToDrawData ( windows_to_render_top_most [ n ] ) ;
// Draw modal/window whitening backgrounds
if ( first_render_of_frame )
RenderDimmedBackgrounds ( ) ;
// Setup ImDrawData structures for end-user
// Setup ImDrawData structures for end-user
g . IO . MetricsRenderVertices = g . IO . MetricsRenderIndices = 0 ;
g . IO . MetricsRenderVertices = g . IO . MetricsRenderIndices = 0 ;
for ( int n = 0 ; n < g . Viewports . Size ; n + + )
for ( int n = 0 ; n < g . Viewports . Size ; n + + )