mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	DrawList: Replace "bool close" in drawing functions with flags.
This commit is contained in:
		| @@ -37,6 +37,11 @@ HOW TO UPDATE? | |||||||
|  |  | ||||||
| Breaking Changes: | Breaking Changes: | ||||||
|  |  | ||||||
|  | - ImDrawList: upgraded AddPolyline()/PathStroke()'s "bool closed" parameter to use "ImDrawFlags flags". | ||||||
|  |   The matching ImDrawFlags_Closed value is guaranteed to always stay == 1 in the future. | ||||||
|  |       bool closed = false ----> use ImDrawFlags_None, or 0 | ||||||
|  |       bool closed = true  ----> use ImDrawFlags_Closed | ||||||
|  |   Difference may not be noticeable for most but zealous type-checking tools may report a need to change. | ||||||
| - Style: renamed rarely used style.CircleSegmentMaxError (old default = 1.60f) | - Style: renamed rarely used style.CircleSegmentMaxError (old default = 1.60f) | ||||||
|   to style.CircleTessellationMaxError (new default = 0.30f) as its meaning changed. (#3808) [@thedmd] |   to style.CircleTessellationMaxError (new default = 0.30f) as its meaning changed. (#3808) [@thedmd] | ||||||
| - Win32+MinGW: Re-enabled IME functions by default even under MinGW. In July 2016, issue #738 had me incorrectly | - Win32+MinGW: Re-enabled IME functions by default even under MinGW. In July 2016, issue #738 had me incorrectly | ||||||
|   | |||||||
| @@ -376,6 +376,7 @@ CODE | |||||||
|  When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. |  When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. | ||||||
|  You can read releases logs https://github.com/ocornut/imgui/releases for more details. |  You can read releases logs https://github.com/ocornut/imgui/releases for more details. | ||||||
|  |  | ||||||
|  |  - 2021/03/10 (1.82) - upgraded ImDrawList::AddPolyline() and PathStroke() "bool closed" parameter to "ImDrawFlags flags". The matching ImDrawFlags_Closed value is guaranteed to always stay == 1 in the future. | ||||||
|  - 2021/02/22 (1.82) - win32+mingw: Re-enabled IME functions by default even under MinGW. In July 2016, issue #738 had me incorrectly disable those default functions for MinGW. MinGW users should: either link with -limm32, either set their imconfig file  with '#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS'. |  - 2021/02/22 (1.82) - win32+mingw: Re-enabled IME functions by default even under MinGW. In July 2016, issue #738 had me incorrectly disable those default functions for MinGW. MinGW users should: either link with -limm32, either set their imconfig file  with '#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS'. | ||||||
|  - 2021/02/17 (1.82) - renamed rarely used style.CircleSegmentMaxError (old default = 1.60f) to style.CircleTessellationMaxError (new default = 0.30f) as the meaning of the value changed. |  - 2021/02/17 (1.82) - renamed rarely used style.CircleSegmentMaxError (old default = 1.60f) to style.CircleTessellationMaxError (new default = 0.30f) as the meaning of the value changed. | ||||||
|  - 2021/02/03 (1.81) - renamed ListBoxHeader(const char* label, ImVec2 size) to BeginListBox(). Kept inline redirection function (will obsolete). |  - 2021/02/03 (1.81) - renamed ListBoxHeader(const char* label, ImVec2 size) to BeginListBox(). Kept inline redirection function (will obsolete). | ||||||
| @@ -5451,7 +5452,7 @@ static void ImGui::RenderWindowOuterBorders(ImGuiWindow* window) | |||||||
|         ImRect border_r = GetResizeBorderRect(window, border_held, rounding, 0.0f); |         ImRect border_r = GetResizeBorderRect(window, border_held, rounding, 0.0f); | ||||||
|         window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN1) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle - IM_PI * 0.25f, def.OuterAngle); |         window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN1) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle - IM_PI * 0.25f, def.OuterAngle); | ||||||
|         window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN2) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle, def.OuterAngle + IM_PI * 0.25f); |         window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN2) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle, def.OuterAngle + IM_PI * 0.25f); | ||||||
|         window->DrawList->PathStroke(GetColorU32(ImGuiCol_SeparatorActive), false, ImMax(2.0f, border_size)); // Thicker than usual |         window->DrawList->PathStroke(GetColorU32(ImGuiCol_SeparatorActive), 0, ImMax(2.0f, border_size)); // Thicker than usual | ||||||
|     } |     } | ||||||
|     if (g.Style.FrameBorderSize > 0 && !(window->Flags & ImGuiWindowFlags_NoTitleBar)) |     if (g.Style.FrameBorderSize > 0 && !(window->Flags & ImGuiWindowFlags_NoTitleBar)) | ||||||
|     { |     { | ||||||
| @@ -11246,7 +11247,7 @@ void ImGui::DebugNodeDrawList(ImGuiWindow* window, const ImDrawList* draw_list, | |||||||
|                 { |                 { | ||||||
|                     ImDrawListFlags backup_flags = fg_draw_list->Flags; |                     ImDrawListFlags backup_flags = fg_draw_list->Flags; | ||||||
|                     fg_draw_list->Flags &= ~ImDrawListFlags_AntiAliasedLines; // Disable AA on triangle outlines is more readable for very large and thin triangles. |                     fg_draw_list->Flags &= ~ImDrawListFlags_AntiAliasedLines; // Disable AA on triangle outlines is more readable for very large and thin triangles. | ||||||
|                     fg_draw_list->AddPolyline(triangle, 3, IM_COL32(255, 255, 0, 255), true, 1.0f); |                     fg_draw_list->AddPolyline(triangle, 3, IM_COL32(255, 255, 0, 255), ImDrawFlags_Closed, 1.0f); | ||||||
|                     fg_draw_list->Flags = backup_flags; |                     fg_draw_list->Flags = backup_flags; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -11273,7 +11274,7 @@ void ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox(ImDrawList* out_draw_list, co | |||||||
|         for (int n = 0; n < 3; n++, idx_n++) |         for (int n = 0; n < 3; n++, idx_n++) | ||||||
|             vtxs_rect.Add((triangle[n] = vtx_buffer[idx_buffer ? idx_buffer[idx_n] : idx_n].pos)); |             vtxs_rect.Add((triangle[n] = vtx_buffer[idx_buffer ? idx_buffer[idx_n] : idx_n].pos)); | ||||||
|         if (show_mesh) |         if (show_mesh) | ||||||
|             out_draw_list->AddPolyline(triangle, 3, IM_COL32(255, 255, 0, 255), true, 1.0f); // In yellow: mesh triangles |             out_draw_list->AddPolyline(triangle, 3, IM_COL32(255, 255, 0, 255), ImDrawFlags_Closed, 1.0f); // In yellow: mesh triangles | ||||||
|     } |     } | ||||||
|     // Draw bounding boxes |     // Draw bounding boxes | ||||||
|     if (show_aabb) |     if (show_aabb) | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -30,7 +30,7 @@ Index of this file: | |||||||
| // [SECTION] Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs) | // [SECTION] Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs) | ||||||
| // [SECTION] Obsolete functions | // [SECTION] Obsolete functions | ||||||
| // [SECTION] Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor) | // [SECTION] Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor) | ||||||
| // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) | // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawFlags, ImDrawListFlags, ImDrawList, ImDrawData) | ||||||
| // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) | // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) | ||||||
| // [SECTION] Viewports (ImGuiViewportFlags, ImGuiViewport) | // [SECTION] Viewports (ImGuiViewportFlags, ImGuiViewport) | ||||||
|  |  | ||||||
| @@ -162,8 +162,9 @@ typedef int ImGuiMouseCursor;       // -> enum ImGuiMouseCursor_     // Enum: A | |||||||
| typedef int ImGuiSortDirection;     // -> enum ImGuiSortDirection_   // Enum: A sorting direction (ascending or descending) | typedef int ImGuiSortDirection;     // -> enum ImGuiSortDirection_   // Enum: A sorting direction (ascending or descending) | ||||||
| typedef int ImGuiStyleVar;          // -> enum ImGuiStyleVar_        // Enum: A variable identifier for styling | typedef int ImGuiStyleVar;          // -> enum ImGuiStyleVar_        // Enum: A variable identifier for styling | ||||||
| typedef int ImGuiTableBgTarget;     // -> enum ImGuiTableBgTarget_   // Enum: A color target for TableSetBgColor() | typedef int ImGuiTableBgTarget;     // -> enum ImGuiTableBgTarget_   // Enum: A color target for TableSetBgColor() | ||||||
| typedef int ImDrawCornerFlags;      // -> enum ImDrawCornerFlags_    // Flags: for ImDrawList::AddRect(), AddRectFilled() etc. | typedef int ImDrawCornerFlags;      // -> enum ImDrawCornerFlags_    // Flags: for ImDrawList functions: AddRect(), AddRectFilled() etc. | ||||||
| typedef int ImDrawListFlags;        // -> enum ImDrawListFlags_      // Flags: for ImDrawList | typedef int ImDrawFlags;            // -> enum ImDrawFlags_          // Flags: for ImDrawList functions: AddPolyline(), PathStroke() etc. | ||||||
|  | typedef int ImDrawListFlags;        // -> enum ImDrawListFlags_      // Flags: for ImDrawList instance | ||||||
| typedef int ImFontAtlasFlags;       // -> enum ImFontAtlasFlags_     // Flags: for ImFontAtlas build | typedef int ImFontAtlasFlags;       // -> enum ImFontAtlasFlags_     // Flags: for ImFontAtlas build | ||||||
| typedef int ImGuiBackendFlags;      // -> enum ImGuiBackendFlags_    // Flags: for io.BackendFlags | typedef int ImGuiBackendFlags;      // -> enum ImGuiBackendFlags_    // Flags: for io.BackendFlags | ||||||
| typedef int ImGuiButtonFlags;       // -> enum ImGuiButtonFlags_     // Flags: for InvisibleButton() | typedef int ImGuiButtonFlags;       // -> enum ImGuiButtonFlags_     // Flags: for InvisibleButton() | ||||||
| @@ -2336,7 +2337,14 @@ enum ImDrawCornerFlags_ | |||||||
|     ImDrawCornerFlags_All       = 0xF     // In your function calls you may use ~0 (= all bits sets) instead of ImDrawCornerFlags_All, as a convenience |     ImDrawCornerFlags_All       = 0xF     // In your function calls you may use ~0 (= all bits sets) instead of ImDrawCornerFlags_All, as a convenience | ||||||
| }; | }; | ||||||
|  |  | ||||||
| // Flags for ImDrawList. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly. | // Flags for some ImDrawList functions | ||||||
|  | enum ImDrawFlags_ | ||||||
|  | { | ||||||
|  |     ImDrawFlags_None                        = 0, | ||||||
|  |     ImDrawFlags_Closed                      = 1 << 0  // PathStroke(), AddPolyline(): specify that (LEGACY: this must always stay == 1 to be backward compatible with old API using a bool) | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | // Flags for ImDrawList instance. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly. | ||||||
| // It is however possible to temporarily alter flags between calls to ImDrawList:: functions. | // It is however possible to temporarily alter flags between calls to ImDrawList:: functions. | ||||||
| enum ImDrawListFlags_ | enum ImDrawListFlags_ | ||||||
| { | { | ||||||
| @@ -2409,7 +2417,7 @@ struct ImDrawList | |||||||
|     IMGUI_API void  AddNgonFilled(const ImVec2& center, float radius, ImU32 col, int num_segments); |     IMGUI_API void  AddNgonFilled(const ImVec2& center, float radius, ImU32 col, int num_segments); | ||||||
|     IMGUI_API void  AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); |     IMGUI_API void  AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); | ||||||
|     IMGUI_API void  AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); |     IMGUI_API void  AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); | ||||||
|     IMGUI_API void  AddPolyline(const ImVec2* points, int num_points, ImU32 col, bool closed, float thickness); |     IMGUI_API void  AddPolyline(const ImVec2* points, int num_points, ImU32 col, ImDrawFlags flags, float thickness); | ||||||
|     IMGUI_API void  AddConvexPolyFilled(const ImVec2* points, int num_points, ImU32 col); // Note: Anti-aliased filling requires points to be in clockwise order. |     IMGUI_API void  AddConvexPolyFilled(const ImVec2* points, int num_points, ImU32 col); // Note: Anti-aliased filling requires points to be in clockwise order. | ||||||
|     IMGUI_API void  AddBezierCubic(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col, float thickness, int num_segments = 0); // Cubic Bezier (4 control points) |     IMGUI_API void  AddBezierCubic(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col, float thickness, int num_segments = 0); // Cubic Bezier (4 control points) | ||||||
|     IMGUI_API void  AddBezierQuadratic(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col, float thickness, int num_segments = 0);               // Quadratic Bezier (3 control points) |     IMGUI_API void  AddBezierQuadratic(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col, float thickness, int num_segments = 0);               // Quadratic Bezier (3 control points) | ||||||
| @@ -2427,7 +2435,7 @@ struct ImDrawList | |||||||
|     inline    void  PathLineTo(const ImVec2& pos)                               { _Path.push_back(pos); } |     inline    void  PathLineTo(const ImVec2& pos)                               { _Path.push_back(pos); } | ||||||
|     inline    void  PathLineToMergeDuplicate(const ImVec2& pos)                 { if (_Path.Size == 0 || memcmp(&_Path.Data[_Path.Size - 1], &pos, 8) != 0) _Path.push_back(pos); } |     inline    void  PathLineToMergeDuplicate(const ImVec2& pos)                 { if (_Path.Size == 0 || memcmp(&_Path.Data[_Path.Size - 1], &pos, 8) != 0) _Path.push_back(pos); } | ||||||
|     inline    void  PathFillConvex(ImU32 col)                                   { AddConvexPolyFilled(_Path.Data, _Path.Size, col); _Path.Size = 0; }  // Note: Anti-aliased filling requires points to be in clockwise order. |     inline    void  PathFillConvex(ImU32 col)                                   { AddConvexPolyFilled(_Path.Data, _Path.Size, col); _Path.Size = 0; }  // Note: Anti-aliased filling requires points to be in clockwise order. | ||||||
|     inline    void  PathStroke(ImU32 col, bool closed, float thickness = 1.0f)  { AddPolyline(_Path.Data, _Path.Size, col, closed, thickness); _Path.Size = 0; } |     inline    void  PathStroke(ImU32 col, ImDrawFlags flags = 0, float thickness = 1.0f) { AddPolyline(_Path.Data, _Path.Size, col, flags, thickness); _Path.Size = 0; } | ||||||
|     IMGUI_API void  PathArcTo(const ImVec2& center, float radius, float a_min, float a_max, int num_segments = 10); |     IMGUI_API void  PathArcTo(const ImVec2& center, float radius, float a_min, float a_max, int num_segments = 10); | ||||||
|     IMGUI_API void  PathArcToFast(const ImVec2& center, float radius, int a_min_of_12, int a_max_of_12);                // Use precomputed angles for a 12 steps circle |     IMGUI_API void  PathArcToFast(const ImVec2& center, float radius, int a_min_of_12, int a_max_of_12);                // Use precomputed angles for a 12 steps circle | ||||||
|     IMGUI_API void  PathBezierCubicCurveTo(const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, int num_segments = 0); // Cubic Bezier (4 control points) |     IMGUI_API void  PathBezierCubicCurveTo(const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, int num_segments = 0); // Cubic Bezier (4 control points) | ||||||
|   | |||||||
| @@ -689,11 +689,12 @@ void ImDrawList::PrimQuadUV(const ImVec2& a, const ImVec2& b, const ImVec2& c, c | |||||||
|  |  | ||||||
| // TODO: Thickness anti-aliased lines cap are missing their AA fringe. | // TODO: Thickness anti-aliased lines cap are missing their AA fringe. | ||||||
| // We avoid using the ImVec2 math operators here to reduce cost to a minimum for debug/non-inlined builds. | // We avoid using the ImVec2 math operators here to reduce cost to a minimum for debug/non-inlined builds. | ||||||
| void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32 col, bool closed, float thickness) | void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32 col, ImDrawFlags flags, float thickness) | ||||||
| { | { | ||||||
|     if (points_count < 2) |     if (points_count < 2) | ||||||
|         return; |         return; | ||||||
|  |  | ||||||
|  |     const bool closed = (flags & ImDrawFlags_Closed) != 0; | ||||||
|     const ImVec2 opaque_uv = _Data->TexUvWhitePixel; |     const ImVec2 opaque_uv = _Data->TexUvWhitePixel; | ||||||
|     const int count = closed ? points_count : points_count - 1; // The number of line segments we need to draw |     const int count = closed ? points_count : points_count - 1; // The number of line segments we need to draw | ||||||
|     const bool thick_line = (thickness > _FringeScale); |     const bool thick_line = (thickness > _FringeScale); | ||||||
| @@ -1192,7 +1193,7 @@ void ImDrawList::AddLine(const ImVec2& p1, const ImVec2& p2, ImU32 col, float th | |||||||
|         return; |         return; | ||||||
|     PathLineTo(p1 + ImVec2(0.5f, 0.5f)); |     PathLineTo(p1 + ImVec2(0.5f, 0.5f)); | ||||||
|     PathLineTo(p2 + ImVec2(0.5f, 0.5f)); |     PathLineTo(p2 + ImVec2(0.5f, 0.5f)); | ||||||
|     PathStroke(col, false, thickness); |     PathStroke(col, 0, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| // p_min = upper-left, p_max = lower-right | // p_min = upper-left, p_max = lower-right | ||||||
| @@ -1205,7 +1206,7 @@ void ImDrawList::AddRect(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, fl | |||||||
|         PathRect(p_min + ImVec2(0.50f, 0.50f), p_max - ImVec2(0.50f, 0.50f), rounding, rounding_corners); |         PathRect(p_min + ImVec2(0.50f, 0.50f), p_max - ImVec2(0.50f, 0.50f), rounding, rounding_corners); | ||||||
|     else |     else | ||||||
|         PathRect(p_min + ImVec2(0.50f, 0.50f), p_max - ImVec2(0.49f, 0.49f), rounding, rounding_corners); // Better looking lower-right corner and rounded non-AA shapes. |         PathRect(p_min + ImVec2(0.50f, 0.50f), p_max - ImVec2(0.49f, 0.49f), rounding, rounding_corners); // Better looking lower-right corner and rounded non-AA shapes. | ||||||
|     PathStroke(col, true, thickness); |     PathStroke(col, ImDrawFlags_Closed, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImDrawList::AddRectFilled(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners) | void ImDrawList::AddRectFilled(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners) | ||||||
| @@ -1249,7 +1250,7 @@ void ImDrawList::AddQuad(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, c | |||||||
|     PathLineTo(p2); |     PathLineTo(p2); | ||||||
|     PathLineTo(p3); |     PathLineTo(p3); | ||||||
|     PathLineTo(p4); |     PathLineTo(p4); | ||||||
|     PathStroke(col, true, thickness); |     PathStroke(col, ImDrawFlags_Closed, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImDrawList::AddQuadFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col) | void ImDrawList::AddQuadFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col) | ||||||
| @@ -1272,7 +1273,7 @@ void ImDrawList::AddTriangle(const ImVec2& p1, const ImVec2& p2, const ImVec2& p | |||||||
|     PathLineTo(p1); |     PathLineTo(p1); | ||||||
|     PathLineTo(p2); |     PathLineTo(p2); | ||||||
|     PathLineTo(p3); |     PathLineTo(p3); | ||||||
|     PathStroke(col, true, thickness); |     PathStroke(col, ImDrawFlags_Closed, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImDrawList::AddTriangleFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col) | void ImDrawList::AddTriangleFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col) | ||||||
| @@ -1309,7 +1310,7 @@ void ImDrawList::AddCircle(const ImVec2& center, float radius, ImU32 col, int nu | |||||||
|         PathArcToFast(center, radius - 0.5f, 0, 12 - 1); |         PathArcToFast(center, radius - 0.5f, 0, 12 - 1); | ||||||
|     else |     else | ||||||
|         PathArcTo(center, radius - 0.5f, 0.0f, a_max, num_segments - 1); |         PathArcTo(center, radius - 0.5f, 0.0f, a_max, num_segments - 1); | ||||||
|     PathStroke(col, true, thickness); |     PathStroke(col, ImDrawFlags_Closed, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImDrawList::AddCircleFilled(const ImVec2& center, float radius, ImU32 col, int num_segments) | void ImDrawList::AddCircleFilled(const ImVec2& center, float radius, ImU32 col, int num_segments) | ||||||
| @@ -1347,7 +1348,7 @@ void ImDrawList::AddNgon(const ImVec2& center, float radius, ImU32 col, int num_ | |||||||
|     // Because we are filling a closed shape we remove 1 from the count of segments/points |     // Because we are filling a closed shape we remove 1 from the count of segments/points | ||||||
|     const float a_max = (IM_PI * 2.0f) * ((float)num_segments - 1.0f) / (float)num_segments; |     const float a_max = (IM_PI * 2.0f) * ((float)num_segments - 1.0f) / (float)num_segments; | ||||||
|     PathArcTo(center, radius - 0.5f, 0.0f, a_max, num_segments - 1); |     PathArcTo(center, radius - 0.5f, 0.0f, a_max, num_segments - 1); | ||||||
|     PathStroke(col, true, thickness); |     PathStroke(col, ImDrawFlags_Closed, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| // Guaranteed to honor 'num_segments' | // Guaranteed to honor 'num_segments' | ||||||
| @@ -1370,7 +1371,7 @@ void ImDrawList::AddBezierCubic(const ImVec2& p1, const ImVec2& p2, const ImVec2 | |||||||
|  |  | ||||||
|     PathLineTo(p1); |     PathLineTo(p1); | ||||||
|     PathBezierCubicCurveTo(p2, p3, p4, num_segments); |     PathBezierCubicCurveTo(p2, p3, p4, num_segments); | ||||||
|     PathStroke(col, false, thickness); |     PathStroke(col, 0, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| // Quadratic Bezier takes 3 controls points | // Quadratic Bezier takes 3 controls points | ||||||
| @@ -1381,7 +1382,7 @@ void ImDrawList::AddBezierQuadratic(const ImVec2& p1, const ImVec2& p2, const Im | |||||||
|  |  | ||||||
|     PathLineTo(p1); |     PathLineTo(p1); | ||||||
|     PathBezierQuadraticCurveTo(p2, p3, num_segments); |     PathBezierQuadraticCurveTo(p2, p3, num_segments); | ||||||
|     PathStroke(col, false, thickness); |     PathStroke(col, 0, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect) | void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect) | ||||||
| @@ -3584,7 +3585,7 @@ void ImGui::RenderCheckMark(ImDrawList* draw_list, ImVec2 pos, ImU32 col, float | |||||||
|     draw_list->PathLineTo(ImVec2(bx - third, by - third)); |     draw_list->PathLineTo(ImVec2(bx - third, by - third)); | ||||||
|     draw_list->PathLineTo(ImVec2(bx, by)); |     draw_list->PathLineTo(ImVec2(bx, by)); | ||||||
|     draw_list->PathLineTo(ImVec2(bx + third * 2.0f, by - third * 2.0f)); |     draw_list->PathLineTo(ImVec2(bx + third * 2.0f, by - third * 2.0f)); | ||||||
|     draw_list->PathStroke(col, false, thickness); |     draw_list->PathStroke(col, 0, thickness); | ||||||
| } | } | ||||||
|  |  | ||||||
| void ImGui::RenderMouseCursor(ImDrawList* draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow) | void ImGui::RenderMouseCursor(ImDrawList* draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow) | ||||||
|   | |||||||
| @@ -5231,7 +5231,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl | |||||||
|             const float a1 = (n+1.0f)/6.0f * 2.0f * IM_PI + aeps; |             const float a1 = (n+1.0f)/6.0f * 2.0f * IM_PI + aeps; | ||||||
|             const int vert_start_idx = draw_list->VtxBuffer.Size; |             const int vert_start_idx = draw_list->VtxBuffer.Size; | ||||||
|             draw_list->PathArcTo(wheel_center, (wheel_r_inner + wheel_r_outer)*0.5f, a0, a1, segment_per_arc); |             draw_list->PathArcTo(wheel_center, (wheel_r_inner + wheel_r_outer)*0.5f, a0, a1, segment_per_arc); | ||||||
|             draw_list->PathStroke(col_white, false, wheel_thickness); |             draw_list->PathStroke(col_white, 0, wheel_thickness); | ||||||
|             const int vert_end_idx = draw_list->VtxBuffer.Size; |             const int vert_end_idx = draw_list->VtxBuffer.Size; | ||||||
|  |  | ||||||
|             // Paint colors over existing vertices |             // Paint colors over existing vertices | ||||||
| @@ -7890,7 +7890,7 @@ void ImGui::TabItemBackground(ImDrawList* draw_list, const ImRect& bb, ImGuiTabI | |||||||
|         draw_list->PathArcToFast(ImVec2(bb.Min.x + rounding + 0.5f, y1 + rounding + 0.5f), rounding, 6, 9); |         draw_list->PathArcToFast(ImVec2(bb.Min.x + rounding + 0.5f, y1 + rounding + 0.5f), rounding, 6, 9); | ||||||
|         draw_list->PathArcToFast(ImVec2(bb.Max.x - rounding - 0.5f, y1 + rounding + 0.5f), rounding, 9, 12); |         draw_list->PathArcToFast(ImVec2(bb.Max.x - rounding - 0.5f, y1 + rounding + 0.5f), rounding, 9, 12); | ||||||
|         draw_list->PathLineTo(ImVec2(bb.Max.x - 0.5f, y2)); |         draw_list->PathLineTo(ImVec2(bb.Max.x - 0.5f, y2)); | ||||||
|         draw_list->PathStroke(GetColorU32(ImGuiCol_Border), false, g.Style.TabBorderSize); |         draw_list->PathStroke(GetColorU32(ImGuiCol_Border), 0, g.Style.TabBorderSize); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user