mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	ImDrawList: small debug-mode optimization when calling AddRect() without rounding + Selectable: small debug-mode optimization.
# Conflicts: # imgui_widgets.cpp
This commit is contained in:
		| @@ -9577,9 +9577,6 @@ ImVec2 ImGui::GetCursorScreenPos() | |||||||
|     return window->DC.CursorPos; |     return window->DC.CursorPos; | ||||||
| } | } | ||||||
|  |  | ||||||
| // 2022/08/05: Setting cursor position also extend boundaries (via modifying CursorMaxPos) used to compute window size, group size etc. |  | ||||||
| // I believe this was is a judicious choice but it's probably being relied upon (it has been the case since 1.31 and 1.50) |  | ||||||
| // It would be sane if we requested user to use SetCursorPos() + Dummy(ImVec2(0,0)) to extend CursorMaxPos... |  | ||||||
| void ImGui::SetCursorScreenPos(const ImVec2& pos) | void ImGui::SetCursorScreenPos(const ImVec2& pos) | ||||||
| { | { | ||||||
|     ImGuiWindow* window = GetCurrentWindow(); |     ImGuiWindow* window = GetCurrentWindow(); | ||||||
|   | |||||||
| @@ -1349,10 +1349,12 @@ static inline ImDrawFlags FixRectCornerFlags(ImDrawFlags flags) | |||||||
|  |  | ||||||
| void ImDrawList::PathRect(const ImVec2& a, const ImVec2& b, float rounding, ImDrawFlags flags) | void ImDrawList::PathRect(const ImVec2& a, const ImVec2& b, float rounding, ImDrawFlags flags) | ||||||
| { | { | ||||||
|  |     if (rounding >= 0.5f) | ||||||
|  |     { | ||||||
|         flags = FixRectCornerFlags(flags); |         flags = FixRectCornerFlags(flags); | ||||||
|     rounding = ImMin(rounding, ImFabs(b.x - a.x) * ( ((flags & ImDrawFlags_RoundCornersTop)  == ImDrawFlags_RoundCornersTop)  || ((flags & ImDrawFlags_RoundCornersBottom) == ImDrawFlags_RoundCornersBottom) ? 0.5f : 1.0f ) - 1.0f); |         rounding = ImMin(rounding, ImFabs(b.x - a.x) * (((flags & ImDrawFlags_RoundCornersTop) == ImDrawFlags_RoundCornersTop) || ((flags & ImDrawFlags_RoundCornersBottom) == ImDrawFlags_RoundCornersBottom) ? 0.5f : 1.0f) - 1.0f); | ||||||
|     rounding = ImMin(rounding, ImFabs(b.y - a.y) * ( ((flags & ImDrawFlags_RoundCornersLeft) == ImDrawFlags_RoundCornersLeft) || ((flags & ImDrawFlags_RoundCornersRight)  == ImDrawFlags_RoundCornersRight)  ? 0.5f : 1.0f ) - 1.0f); |         rounding = ImMin(rounding, ImFabs(b.y - a.y) * (((flags & ImDrawFlags_RoundCornersLeft) == ImDrawFlags_RoundCornersLeft) || ((flags & ImDrawFlags_RoundCornersRight) == ImDrawFlags_RoundCornersRight) ? 0.5f : 1.0f) - 1.0f); | ||||||
|  |     } | ||||||
|     if (rounding < 0.5f || (flags & ImDrawFlags_RoundCornersMask_) == ImDrawFlags_RoundCornersNone) |     if (rounding < 0.5f || (flags & ImDrawFlags_RoundCornersMask_) == ImDrawFlags_RoundCornersNone) | ||||||
|     { |     { | ||||||
|         PathLineTo(a); |         PathLineTo(a); | ||||||
|   | |||||||
| @@ -6566,6 +6566,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl | |||||||
|         const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); |         const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); | ||||||
|         RenderFrame(bb.Min, bb.Max, col, false, 0.0f); |         RenderFrame(bb.Min, bb.Max, col, false, 0.0f); | ||||||
|     } |     } | ||||||
|  |     if (g.NavId == id) | ||||||
|         RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding); |         RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding); | ||||||
|  |  | ||||||
|     if (span_all_columns && window->DC.CurrentColumns) |     if (span_all_columns && window->DC.CurrentColumns) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user