mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Merge branch 'master' into docking
# Conflicts: # backends/imgui_impl_dx10.cpp # backends/imgui_impl_dx11.cpp # backends/imgui_impl_dx12.cpp # backends/imgui_impl_dx9.cpp # backends/imgui_impl_opengl3.cpp # backends/imgui_impl_win32.cpp # docs/CHANGELOG.txt # examples/example_glfw_vulkan/main.cpp # examples/example_sdl_vulkan/main.cpp # imgui.cpp
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
// dear imgui, v1.81
 | 
			
		||||
// dear imgui, v1.82 WIP
 | 
			
		||||
// (internal structures/api)
 | 
			
		||||
 | 
			
		||||
// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility!
 | 
			
		||||
@@ -629,10 +629,20 @@ struct IMGUI_API ImChunkStream
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// ImDrawList: Helper function to calculate a circle's segment count given its radius and a "maximum error" value.
 | 
			
		||||
// FIXME: the minimum number of auto-segment may be undesirably high for very small radiuses (e.g. 1.0f)
 | 
			
		||||
#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN                     12
 | 
			
		||||
// Estimation of number of circle segment based on error is derived using method described in https://stackoverflow.com/a/2244088/15194693
 | 
			
		||||
// Number of segments (N) is calculated using equation:
 | 
			
		||||
//   N = ceil ( pi / acos(1 - error / r) )     where r > 0, error <= r
 | 
			
		||||
// Our equation is significantly simpler that one in the post thanks for choosing segment that is
 | 
			
		||||
// perpendicular to X axis. Follow steps in the article from this starting condition and you will
 | 
			
		||||
// will get this result.
 | 
			
		||||
//
 | 
			
		||||
// Rendering circles with an odd number of segments, while mathematically correct will produce
 | 
			
		||||
// asymmetrical results on the raster grid. Therefore we're rounding N to next even number (7->8, 8->8, 9->10 etc.)
 | 
			
		||||
//
 | 
			
		||||
#define IM_ROUNDUP_TO_EVEN(_V)                                  ((((_V) + 1) / 2) * 2)
 | 
			
		||||
#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN                     4
 | 
			
		||||
#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX                     512
 | 
			
		||||
#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(_RAD,_MAXERROR)    ImClamp((int)((IM_PI * 2.0f) / ImAcos(((_RAD) - (_MAXERROR)) / (_RAD))), IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX)
 | 
			
		||||
#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(_RAD,_MAXERROR)    ImClamp(IM_ROUNDUP_TO_EVEN((int)ImCeil(IM_PI / ImAcos(1 - ImMin((_MAXERROR), (_RAD)) / (_RAD)))), IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX)
 | 
			
		||||
 | 
			
		||||
// ImDrawList: You may set this to higher values (e.g. 2 or 3) to increase tessellation of fast rounded corners path.
 | 
			
		||||
#ifndef IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER
 | 
			
		||||
@@ -657,7 +667,7 @@ struct IMGUI_API ImDrawListSharedData
 | 
			
		||||
    const ImVec4*   TexUvLines;                 // UV of anti-aliased lines in the atlas
 | 
			
		||||
 | 
			
		||||
    ImDrawListSharedData();
 | 
			
		||||
    void SetCircleSegmentMaxError(float max_error);
 | 
			
		||||
    void SetCircleTessellationMaxError(float max_error);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct ImDrawDataBuilder
 | 
			
		||||
@@ -2308,9 +2318,10 @@ struct ImGuiTable
 | 
			
		||||
    ImGuiTableColumnIdx         HeldHeaderColumn;           // Index of column header being held.
 | 
			
		||||
    ImGuiTableColumnIdx         ReorderColumn;              // Index of column being reordered. (not cleared)
 | 
			
		||||
    ImGuiTableColumnIdx         ReorderColumnDir;           // -1 or +1
 | 
			
		||||
    ImGuiTableColumnIdx         LeftMostEnabledColumn;      // Index of left-most non-hidden column.
 | 
			
		||||
    ImGuiTableColumnIdx         RightMostEnabledColumn;     // Index of right-most non-hidden column.
 | 
			
		||||
    ImGuiTableColumnIdx         LeftMostStretchedColumn;    // Index of left-most stretched column.
 | 
			
		||||
    ImGuiTableColumnIdx         RightMostStretchedColumn;   // Index of right-most stretched column.
 | 
			
		||||
    ImGuiTableColumnIdx         RightMostEnabledColumn;     // Index of right-most non-hidden column.
 | 
			
		||||
    ImGuiTableColumnIdx         ContextPopupColumn;         // Column right-clicked on, of -1 if opening context menu from a neutral/empty spot
 | 
			
		||||
    ImGuiTableColumnIdx         FreezeRowsRequest;          // Requested frozen rows count
 | 
			
		||||
    ImGuiTableColumnIdx         FreezeRowsCount;            // Actual frozen row count (== FreezeRowsRequest, or == 0 when no scrolling offset)
 | 
			
		||||
@@ -2618,6 +2629,7 @@ namespace ImGui
 | 
			
		||||
    IMGUI_API void          TablePopBackgroundChannel();
 | 
			
		||||
 | 
			
		||||
    // Tables: Internals
 | 
			
		||||
    inline    ImGuiTable*   GetCurrentTable() { ImGuiContext& g = *GImGui; return g.CurrentTable; }
 | 
			
		||||
    IMGUI_API ImGuiTable*   TableFindByID(ImGuiID id);
 | 
			
		||||
    IMGUI_API bool          BeginTableEx(const char* name, ImGuiID id, int columns_count, ImGuiTableFlags flags = 0, const ImVec2& outer_size = ImVec2(0, 0), float inner_width = 0.0f);
 | 
			
		||||
    IMGUI_API void          TableBeginInitMemory(ImGuiTable* table, int columns_count);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user