mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Merge branch 'master' into docking
# Conflicts: # docs/CHANGELOG.txt # imgui_internal.h
This commit is contained in:
		| @@ -1,4 +1,4 @@ | ||||
| // dear imgui, v1.76 | ||||
| // dear imgui, v1.77 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! | ||||
| @@ -735,6 +735,14 @@ struct ImGuiDataTypeInfo | ||||
|     const char* ScanFmt;        // Default scanf format for the type | ||||
| }; | ||||
|  | ||||
| // Extend ImGuiDataType_ | ||||
| enum ImGuiDataTypePrivate_ | ||||
| { | ||||
|     ImGuiDataType_String = ImGuiDataType_COUNT + 1, | ||||
|     ImGuiDataType_Pointer, | ||||
|     ImGuiDataType_ID | ||||
| }; | ||||
|  | ||||
| // Stacked color modifier, backup of modified data so we can restore it | ||||
| struct ImGuiColorMod | ||||
| { | ||||
| @@ -997,9 +1005,10 @@ enum ImGuiNextWindowDataFlags_ | ||||
|     ImGuiNextWindowDataFlags_HasSizeConstraint  = 1 << 4, | ||||
|     ImGuiNextWindowDataFlags_HasFocus           = 1 << 5, | ||||
|     ImGuiNextWindowDataFlags_HasBgAlpha         = 1 << 6, | ||||
|     ImGuiNextWindowDataFlags_HasViewport        = 1 << 7, | ||||
|     ImGuiNextWindowDataFlags_HasDock            = 1 << 8, | ||||
|     ImGuiNextWindowDataFlags_HasWindowClass     = 1 << 9 | ||||
|     ImGuiNextWindowDataFlags_HasScroll          = 1 << 7, | ||||
|     ImGuiNextWindowDataFlags_HasViewport        = 1 << 8, | ||||
|     ImGuiNextWindowDataFlags_HasDock            = 1 << 9, | ||||
|     ImGuiNextWindowDataFlags_HasWindowClass     = 1 << 10 | ||||
| }; | ||||
|  | ||||
| // Storage for SetNexWindow** functions | ||||
| @@ -1014,6 +1023,7 @@ struct ImGuiNextWindowData | ||||
|     ImVec2                      PosPivotVal; | ||||
|     ImVec2                      SizeVal; | ||||
|     ImVec2                      ContentSizeVal; | ||||
|     ImVec2                      ScrollVal; | ||||
|     bool                        PosUndock; | ||||
|     bool                        CollapsedVal; | ||||
|     ImRect                      SizeConstraintRect; | ||||
| @@ -1186,6 +1196,9 @@ struct ImGuiContext | ||||
|     bool                    WithinFrameScope;                   // Set by NewFrame(), cleared by EndFrame() | ||||
|     bool                    WithinFrameScopeWithImplicitWindow; // Set by NewFrame(), cleared by EndFrame() when the implicit debug window has been pushed | ||||
|     bool                    WithinEndChild;                     // Set within EndChild() | ||||
|     bool                    TestEngineHookItems;                // Will call test engine hooks: ImGuiTestEngineHook_ItemAdd(), ImGuiTestEngineHook_ItemInfo(), ImGuiTestEngineHook_Log() | ||||
|     ImGuiID                 TestEngineHookIdInfo;               // Will call test engine hooks: ImGuiTestEngineHook_IdInfo() from GetID() | ||||
|     void*                   TestEngine;                         // Test engine user data | ||||
|  | ||||
|     // Windows state | ||||
|     ImVector<ImGuiWindow*>  Windows;                            // Windows, sorted in display order, back to front | ||||
| @@ -1325,6 +1338,7 @@ struct ImGuiContext | ||||
|     ImGuiID                 DragDropAcceptIdCurr;               // Target item id (set at the time of accepting the payload) | ||||
|     ImGuiID                 DragDropAcceptIdPrev;               // Target item id from previous frame (we need to store this to allow for overlapping drag and drop targets) | ||||
|     int                     DragDropAcceptFrameCount;           // Last time a target expressed a desire to accept the source | ||||
|     ImGuiID                 DragDropHoldJustPressedId;          // Set when holding a payload just made ButtonBehavior() return a press. | ||||
|     ImVector<unsigned char> DragDropPayloadBufHeap;             // We don't expose the ImVector<> directly, ImGuiPayload only holds pointer+size | ||||
|     unsigned char           DragDropPayloadBufLocal[16];        // Local buffer for small payloads | ||||
|  | ||||
| @@ -1396,14 +1410,17 @@ struct ImGuiContext | ||||
|     { | ||||
|         Initialized = false; | ||||
|         ConfigFlagsCurrFrame = ConfigFlagsLastFrame = ImGuiConfigFlags_None; | ||||
|         FontAtlasOwnedByContext = shared_font_atlas ? false : true; | ||||
|         Font = NULL; | ||||
|         FontSize = FontBaseSize = 0.0f; | ||||
|         FontAtlasOwnedByContext = shared_font_atlas ? false : true; | ||||
|         IO.Fonts = shared_font_atlas ? shared_font_atlas : IM_NEW(ImFontAtlas)(); | ||||
|         Time = 0.0f; | ||||
|         FrameCount = 0; | ||||
|         FrameCountEnded = FrameCountPlatformEnded = FrameCountRendered = -1; | ||||
|         WithinFrameScope = WithinFrameScopeWithImplicitWindow = WithinEndChild = false; | ||||
|         TestEngineHookItems = false; | ||||
|         TestEngineHookIdInfo = 0; | ||||
|         TestEngine = NULL; | ||||
|  | ||||
|         WindowsActiveCount = 0; | ||||
|         CurrentWindow = NULL; | ||||
| @@ -1491,6 +1508,7 @@ struct ImGuiContext | ||||
|         DragDropAcceptIdCurrRectSurface = 0.0f; | ||||
|         DragDropAcceptIdPrev = DragDropAcceptIdCurr = 0; | ||||
|         DragDropAcceptFrameCount = -1; | ||||
|         DragDropHoldJustPressedId = 0; | ||||
|         memset(DragDropPayloadBufLocal, 0, sizeof(DragDropPayloadBufLocal)); | ||||
|  | ||||
|         CurrentTabBar = NULL; | ||||
| @@ -1909,6 +1927,7 @@ namespace ImGui | ||||
|     IMGUI_API ImGuiSettingsHandler* FindSettingsHandler(const char* type_name); | ||||
|  | ||||
|     // Scrolling | ||||
|     IMGUI_API void          SetNextWindowScroll(const ImVec2& scroll); // Use -1.0f on one axis to leave as-is | ||||
|     IMGUI_API void          SetScrollX(ImGuiWindow* window, float new_scroll_x); | ||||
|     IMGUI_API void          SetScrollY(ImGuiWindow* window, float new_scroll_y); | ||||
|     IMGUI_API void          SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio = 0.5f); | ||||
| @@ -2189,14 +2208,20 @@ extern void                 ImGuiTestEngineHook_PreNewFrame(ImGuiContext* ctx); | ||||
| extern void                 ImGuiTestEngineHook_PostNewFrame(ImGuiContext* ctx); | ||||
| extern void                 ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id); | ||||
| extern void                 ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags); | ||||
| extern void                 ImGuiTestEngineHook_IdInfo(ImGuiContext* ctx, ImGuiDataType data_type, ImGuiID id, const void* data_id); | ||||
| extern void                 ImGuiTestEngineHook_IdInfo(ImGuiContext* ctx, ImGuiDataType data_type, ImGuiID id, const void* data_id, const void* data_id_end); | ||||
| extern void                 ImGuiTestEngineHook_Log(ImGuiContext* ctx, const char* fmt, ...); | ||||
| #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID)                ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID)               // Register item bounding box | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS)    ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS)   // Register item label and status flags (optional) | ||||
| #define IMGUI_TEST_ENGINE_LOG(_FMT, ...)                    ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__)          // Custom log entry from user land into test log | ||||
| #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB,_ID)                 if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID)               // Register item bounding box | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)      if (g.TestEngineHookItems) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS)   // Register item label and status flags (optional) | ||||
| #define IMGUI_TEST_ENGINE_LOG(_FMT,...)                     if (g.TestEngineHookItems) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__)          // Custom log entry from user land into test log | ||||
| #define IMGUI_TEST_ENGINE_ID_INFO(_ID,_TYPE,_DATA)          if (g.TestEngineHookIdInfo == id) ImGuiTestEngineHook_IdInfo(&g, _TYPE, _ID, (const void*)(_DATA)); | ||||
| #define IMGUI_TEST_ENGINE_ID_INFO2(_ID,_TYPE,_DATA,_DATA2)  if (g.TestEngineHookIdInfo == id) ImGuiTestEngineHook_IdInfo(&g, _TYPE, _ID, (const void*)(_DATA), (const void*)(_DATA2)); | ||||
| #else | ||||
| #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID)                do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS)    do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_LOG(_FMT, ...)                    do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB,_ID)                 do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID,_LABEL,_FLAGS)      do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_LOG(_FMT,...)                     do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ID_INFO(_ID,_TYPE,_DATA)          do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ID_INFO2(_ID,_TYPE,_DATA,_DATA2)  do { } while (0) | ||||
| #endif | ||||
|  | ||||
| #if defined(__clang__) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user