|  |  | @ -2893,6 +2893,12 @@ int ImGui::GetFrameCount() | 
			
		
	
		
		
			
				
					
					|  |  |  |     return GImGui->FrameCount; |  |  |  |     return GImGui->FrameCount; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | static ImDrawList* GetOverlayDrawList(ImGuiWindow*) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     // This seemingly unnecessary wrapper simplifies compatibility between the 'master' and 'viewport' branches.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     return &GImGui->OverlayDrawList; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ImDrawList* ImGui::GetOverlayDrawList() |  |  |  | ImDrawList* ImGui::GetOverlayDrawList() | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |     return &GImGui->OverlayDrawList; |  |  |  |     return &GImGui->OverlayDrawList; | 
			
		
	
	
		
		
			
				
					|  |  | @ -4472,7 +4478,7 @@ static void ImGui::UpdateManualResize(ImGuiWindow* window, const ImVec2& size_au | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (resize_rect.Min.y > resize_rect.Max.y) ImSwap(resize_rect.Min.y, resize_rect.Max.y); |  |  |  |         if (resize_rect.Min.y > resize_rect.Max.y) ImSwap(resize_rect.Min.y, resize_rect.Max.y); | 
			
		
	
		
		
			
				
					
					|  |  |  |         bool hovered, held; |  |  |  |         bool hovered, held; | 
			
		
	
		
		
			
				
					
					|  |  |  |         ButtonBehavior(resize_rect, window->GetID((void*)(intptr_t)resize_grip_n), &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_NoNavFocus); |  |  |  |         ButtonBehavior(resize_rect, window->GetID((void*)(intptr_t)resize_grip_n), &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_NoNavFocus); | 
			
		
	
		
		
			
				
					
					|  |  |  |         //GetOverlayDrawList()->AddRect(resize_rect.Min, resize_rect.Max, IM_COL32(255, 255, 0, 255));
 |  |  |  |         //GetOverlayDrawList(window)->AddRect(resize_rect.Min, resize_rect.Max, IM_COL32(255, 255, 0, 255));
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if (hovered || held) |  |  |  |         if (hovered || held) | 
			
		
	
		
		
			
				
					
					|  |  |  |             g.MouseCursor = (resize_grip_n & 1) ? ImGuiMouseCursor_ResizeNESW : ImGuiMouseCursor_ResizeNWSE; |  |  |  |             g.MouseCursor = (resize_grip_n & 1) ? ImGuiMouseCursor_ResizeNESW : ImGuiMouseCursor_ResizeNWSE; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -4497,7 +4503,7 @@ static void ImGui::UpdateManualResize(ImGuiWindow* window, const ImVec2& size_au | 
			
		
	
		
		
			
				
					
					|  |  |  |         bool hovered, held; |  |  |  |         bool hovered, held; | 
			
		
	
		
		
			
				
					
					|  |  |  |         ImRect border_rect = GetResizeBorderRect(window, border_n, grip_hover_inner_size, RESIZE_WINDOWS_FROM_EDGES_HALF_THICKNESS); |  |  |  |         ImRect border_rect = GetResizeBorderRect(window, border_n, grip_hover_inner_size, RESIZE_WINDOWS_FROM_EDGES_HALF_THICKNESS); | 
			
		
	
		
		
			
				
					
					|  |  |  |         ButtonBehavior(border_rect, window->GetID((void*)(intptr_t)(border_n + 4)), &hovered, &held, ImGuiButtonFlags_FlattenChildren); |  |  |  |         ButtonBehavior(border_rect, window->GetID((void*)(intptr_t)(border_n + 4)), &hovered, &held, ImGuiButtonFlags_FlattenChildren); | 
			
		
	
		
		
			
				
					
					|  |  |  |         //GetOverlayDrawList()->AddRect(border_rect.Min, border_rect.Max, IM_COL32(255, 255, 0, 255));
 |  |  |  |         //GetOverlayDrawList(window)->AddRect(border_rect.Min, border_rect.Max, IM_COL32(255, 255, 0, 255));
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if ((hovered && g.HoveredIdTimer > RESIZE_WINDOWS_FROM_EDGES_FEEDBACK_TIMER) || held) |  |  |  |         if ((hovered && g.HoveredIdTimer > RESIZE_WINDOWS_FROM_EDGES_FEEDBACK_TIMER) || held) | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |             g.MouseCursor = (border_n & 1) ? ImGuiMouseCursor_ResizeEW : ImGuiMouseCursor_ResizeNS; |  |  |  |             g.MouseCursor = (border_n & 1) ? ImGuiMouseCursor_ResizeEW : ImGuiMouseCursor_ResizeNS; | 
			
		
	
	
		
		
			
				
					|  |  | @ -6841,7 +6847,7 @@ static bool NavScoreItem(ImGuiNavMoveResult* result, ImRect cand) | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (ImGui::IsMouseHoveringRect(cand.Min, cand.Max)) |  |  |  |     if (ImGui::IsMouseHoveringRect(cand.Min, cand.Max)) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         ImFormatString(buf, IM_ARRAYSIZE(buf), "dbox (%.2f,%.2f->%.4f)\ndcen (%.2f,%.2f->%.4f)\nd (%.2f,%.2f->%.4f)\nnav %c, quadrant %c", dbx, dby, dist_box, dcx, dcy, dist_center, dax, day, dist_axial, "WENS"[g.NavMoveDir], "WENS"[quadrant]); |  |  |  |         ImFormatString(buf, IM_ARRAYSIZE(buf), "dbox (%.2f,%.2f->%.4f)\ndcen (%.2f,%.2f->%.4f)\nd (%.2f,%.2f->%.4f)\nnav %c, quadrant %c", dbx, dby, dist_box, dcx, dcy, dist_center, dax, day, dist_axial, "WENS"[g.NavMoveDir], "WENS"[quadrant]); | 
			
		
	
		
		
			
				
					
					|  |  |  |         ImDrawList* draw_list = ImGui::GetOverlayDrawList(); |  |  |  |         ImDrawList* draw_list = GetOverlayDrawList(window); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         draw_list->AddRect(curr.Min, curr.Max, IM_COL32(255,200,0,100)); |  |  |  |         draw_list->AddRect(curr.Min, curr.Max, IM_COL32(255,200,0,100)); | 
			
		
	
		
		
			
				
					
					|  |  |  |         draw_list->AddRect(cand.Min, cand.Max, IM_COL32(255,255,0,200)); |  |  |  |         draw_list->AddRect(cand.Min, cand.Max, IM_COL32(255,255,0,200)); | 
			
		
	
		
		
			
				
					
					|  |  |  |         draw_list->AddRectFilled(cand.Max-ImVec2(4,4), cand.Max+ImGui::CalcTextSize(buf)+ImVec2(4,4), IM_COL32(40,0,0,150)); |  |  |  |         draw_list->AddRectFilled(cand.Max-ImVec2(4,4), cand.Max+ImGui::CalcTextSize(buf)+ImVec2(4,4), IM_COL32(40,0,0,150)); | 
			
		
	
	
		
		
			
				
					|  |  | @ -6849,11 +6855,11 @@ static bool NavScoreItem(ImGuiNavMoveResult* result, ImRect cand) | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     else if (g.IO.KeyCtrl) // Hold to preview score in matching quadrant. Press C to rotate.
 |  |  |  |     else if (g.IO.KeyCtrl) // Hold to preview score in matching quadrant. Press C to rotate.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (IsKeyPressedMap(ImGuiKey_C)) { g.NavMoveDirLast = (ImGuiDir)((g.NavMoveDirLast + 1) & 3); g.IO.KeysDownDuration[g.IO.KeyMap[ImGuiKey_C]] = 0.01f; } |  |  |  |         if (ImGui::IsKeyPressedMap(ImGuiKey_C)) { g.NavMoveDirLast = (ImGuiDir)((g.NavMoveDirLast + 1) & 3); g.IO.KeysDownDuration[g.IO.KeyMap[ImGuiKey_C]] = 0.01f; } | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if (quadrant == g.NavMoveDir) |  |  |  |         if (quadrant == g.NavMoveDir) | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |             ImFormatString(buf, IM_ARRAYSIZE(buf), "%.0f/%.0f", dist_box, dist_center); |  |  |  |             ImFormatString(buf, IM_ARRAYSIZE(buf), "%.0f/%.0f", dist_box, dist_center); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ImDrawList* draw_list = ImGui::GetOverlayDrawList(); |  |  |  |             ImDrawList* draw_list = GetOverlayDrawList(window); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             draw_list->AddRectFilled(cand.Min, cand.Max, IM_COL32(255, 0, 0, 200)); |  |  |  |             draw_list->AddRectFilled(cand.Min, cand.Max, IM_COL32(255, 0, 0, 200)); | 
			
		
	
		
		
			
				
					
					|  |  |  |             draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Min, IM_COL32(255, 255, 255, 255), buf); |  |  |  |             draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Min, IM_COL32(255, 255, 255, 255), buf); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
	
		
		
			
				
					|  |  | @ -7446,8 +7452,8 @@ static void ImGui::NavUpdate() | 
			
		
	
		
		
			
				
					
					|  |  |  |     //g.OverlayDrawList.AddRect(g.NavScoringRectScreen.Min, g.NavScoringRectScreen.Max, IM_COL32(255,200,0,255)); // [DEBUG]
 |  |  |  |     //g.OverlayDrawList.AddRect(g.NavScoringRectScreen.Min, g.NavScoringRectScreen.Max, IM_COL32(255,200,0,255)); // [DEBUG]
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     g.NavScoringCount = 0; |  |  |  |     g.NavScoringCount = 0; | 
			
		
	
		
		
			
				
					
					|  |  |  | #if IMGUI_DEBUG_NAV_RECTS |  |  |  | #if IMGUI_DEBUG_NAV_RECTS | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (g.NavWindow) { for (int layer = 0; layer < 2; layer++) GetOverlayDrawList()->AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG]
 |  |  |  |     if (g.NavWindow) { for (int layer = 0; layer < 2; layer++) GetOverlayDrawList(g.NavWindow)->AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG]
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     if (g.NavWindow) { ImU32 col = (g.NavWindow->HiddenFrames == 0) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredRefPos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); g.OverlayDrawList.AddCircleFilled(p, 3.0f, col); g.OverlayDrawList.AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } |  |  |  |     if (g.NavWindow) { ImU32 col = (!g.NavWindow->Hidden) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredRefPos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); GetOverlayDrawList(g.NavWindow)->AddCircleFilled(p, 3.0f, col); GetOverlayDrawList(g.NavWindow)->AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | #endif |  |  |  | #endif | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -8891,7 +8897,7 @@ void ImGui::ShowMetricsWindow(bool* p_open) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return; |  |  |  |                 return; | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ImDrawList* overlay_draw_list = GetOverlayDrawList(); // Render additional visuals into the top-most draw list
 |  |  |  |             ImDrawList* overlay_draw_list = GetOverlayDrawList(window); // Render additional visuals into the top-most draw list
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             if (window && IsItemHovered()) |  |  |  |             if (window && IsItemHovered()) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 overlay_draw_list->AddRect(window->Pos, window->Pos + window->Size, IM_COL32(255, 255, 0, 255)); |  |  |  |                 overlay_draw_list->AddRect(window->Pos, window->Pos + window->Size, IM_COL32(255, 255, 0, 255)); | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (!node_open) |  |  |  |             if (!node_open) | 
			
		
	
	
		
		
			
				
					|  |  | @ -9050,7 +9056,7 @@ void ImGui::ShowMetricsWindow(bool* p_open) | 
			
		
	
		
		
			
				
					
					|  |  |  |             char buf[32]; |  |  |  |             char buf[32]; | 
			
		
	
		
		
			
				
					
					|  |  |  |             ImFormatString(buf, IM_ARRAYSIZE(buf), "%d", window->BeginOrderWithinContext); |  |  |  |             ImFormatString(buf, IM_ARRAYSIZE(buf), "%d", window->BeginOrderWithinContext); | 
			
		
	
		
		
			
				
					
					|  |  |  |             float font_size = ImGui::GetFontSize() * 2; |  |  |  |             float font_size = ImGui::GetFontSize() * 2; | 
			
		
	
		
		
			
				
					
					|  |  |  |             ImDrawList* overlay_draw_list = GetOverlayDrawList(); |  |  |  |             ImDrawList* overlay_draw_list = GetOverlayDrawList(window); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             overlay_draw_list->AddRectFilled(window->Pos, window->Pos + ImVec2(font_size, font_size), IM_COL32(200, 100, 100, 255)); |  |  |  |             overlay_draw_list->AddRectFilled(window->Pos, window->Pos + ImVec2(font_size, font_size), IM_COL32(200, 100, 100, 255)); | 
			
		
	
		
		
			
				
					
					|  |  |  |             overlay_draw_list->AddText(NULL, font_size, window->Pos, IM_COL32(255, 255, 255, 255), buf); |  |  |  |             overlay_draw_list->AddText(NULL, font_size, window->Pos, IM_COL32(255, 255, 255, 255), buf); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |