SHA256
6
0
forked from pool/imgui
Commit Graph

2 Commits

Author SHA256 Message Date
ming li
c377a76d74 Update to version 1.91.0 2024-11-26 14:00:26 +02:00
e5dae905d9 Accepting request 1189723 from home:frantisek.simorda:branches:openSUSE:Factory
- - Update to 1.90.9
    Removed old nested structure: renaming ImGuiStorage::ImGuiStoragePair type to ImGuiStoragePair (simpler for many languages). No significant nested type left.
    BeginChild: added ImGuiChildFlags_NavFlattened as a replacement for the window flag ImGuiWindowFlags_NavFlattened: the feature only ever made sense for BeginChild() calls anyhow. (#7687) 
        old: BeginChild("Name", size, 0, ImGuiWindowFlags_NavFlattened);
        new: BeginChild("Name", size, ImGuiChildFlags_NavFlattened, 0)
        Kept inline redirection flag (will obsolete).
    Style: renamed tab colors for clarity and consistency with other changes: (#261, #351)
        ImGuiCol_TabActive -> ImGuiCol_TabSelected
        ImGuiCol_TabUnfocused -> ImGuiCol_TabDimmed
        ImGuiCol_TabUnfocusedActive -> ImGuiCol_TabDimmedSelected
        Kept inline redirecting enums (will obsolete).
    IO: io.ClearInputKeys() (first exposed in 1.89.8) doesn't clear mouse data. Newly added io.ClearInputMouse() does. (#4921)
    Drag and Drop: renamed ImGuiDragDropFlags_SourceAutoExpirePayload to ImGuiDragDropFlags_PayloadAutoExpire. Kept inline redirecting enum (will obsolete). (#1725, #143)
    IO: do not disable io.ConfigWindowsResizeFromEdges (which allow resizing from borders and lower-left corner) when ImGuiBackendFlags_HasMouseCursors is not set by backend. The initial reasoning is that resizing from borders feels better when correct mouse cursor shape change as honored by backends. Keeping this enabling will hopefully increase pressure on third-party backends to set ImGuiBackendFlags_HasMouseCursors and honor changes of ImGui::GetMouseCursor() value. (#1495)
    IO: do not claim io.WantCaptureMouse=true on the mouse release frame of a button which was pressed over void/underlying app, which is consistent/needed to allow the mouse up event of a drag over void/underlying app to catch release. (#1392) 
    IO: Added io.ClearInputMouse() to clear mouse state. (#4921)
    Windows: BeginChild(): fixed a glitch when during a resize of a child window which is tightly close to the boundaries of its parent (e.g. with zero WindowPadding), the child position could have temporarily be moved around by erroneous padding application. (#7706)
    TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline option to draw an horizontal line over selected tabs to increase visibility. This is used by docking. Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors.
    Tables: added TableGetHoveredColumn() to public API, as an alternative to testing for TableGetColumnFlags(column) & ImGuiTableColumnFlags_IsHovered on each column. (#3740)
    Disabled, Inputs: fixed using Shortcut() or SetNextItemShortcut() within a disabled block bypassing the disabled state. (#7726)
    Disabled: Reworked 1.90.8 behavior of Begin() not inheriting current BeginDisabled() state, to make it that only tooltip windows are temporarily clearing it. (#211, #7640)
    Drags: added ImGuiSliderFlags_WrapAround flag for DragInt(), DragFloat() etc. (#7749)
    Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern sets active id so a multi-frame extern source doesn't interfere with hovered widgets. (#143)
    Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern does not assume a mouse button being pressed. Facilitate implementing cross-context drag and drop. (#143)
    Drag and Drop: Added ImGuiDragDropFlags_PayloadNoCrossContext/ImGuiDragDropFlags_PayloadNoCrossProcess flags as metadata to specify that a payload may not be copied outside the context/process by some logic aiming to copy payloads around.
    Drag and Drop: Fixes an issue when elapsing payload would be based on last payload frame instead of last drag source frame, which makes a difference if not resubmitting payload every frame. (#143)
    Debug Tools: Metrics/Debugger: Browsing a Storage perform hover lookup on identifier.
    Viewports: Backported void* ImGuiViewport::PlatformHandle from docking branch for use by backends.
    imgui_freetype: Fixed divide by zero while handling FT_PIXEL_MODE_BGRA glyphs. (#7267, #3369)
    Backends: OpenGL2, OpenGL3: ImGui_ImplOpenGL3_NewFrame() recreates font texture if it has been destroyed by ImGui_ImplOpenGL3_DestroyFontsTexture(). (#7748) 
    Backends: SDL3: Update for API removal of keysym field in SDL_KeyboardEvent. (#7728)
    Backends: SDL3: Update for SDL_StartTextInput()/SDL_StopTextInput() API changes. (#7735)
    Backends: SDL3: Update for SDL_SetTextInputRect() API rename. (#7760, #7754) 
    Backends: SDLRenderer3: Update for SDL_RenderGeometryRaw() API changes. (SDL#9009).
    Backends: Vulkan: Remove Volk/ from volk.h #include directives. (#7722, #6582, #4854) 
    Examples: SDL3: Remove use of SDL_HINT_IME_NATIVE_UI since new SDL_HINT_IME_IMPLEMENTED_UI values has a more suitable default for our case case.
    Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671) 
- Changes of 1.90.8
    Reordered various ImGuiInputTextFlags values. This should NOT be breaking unless you are using generated headers that have values not matching the main library.
    Removed ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft from imgui.h, was mostly unused and misleading.
    Inputs: Fixed IsMouseClicked(..., repeat=true); broken in 1.90.7 on 2024/05/22. (due to an internal api parameter swap, repeat wouldn't be honored and ownership would be accidentally checked even though this api is meant to not
    check ownership). (#7657) 
    Windows: fixed altering FramePadding mid-frame not correctly affecting logic responsible for honoring io.ConfigWindowsMoveFromTitleBarOnly. (#7576, #899)
    Scrollbar: made scrolling logic more standard: clicking above or below the grab scrolls by one page, holding mouse button repeats scrolling. (#7328, #150)
    Scrollbar: fixed miscalculation of vertical scrollbar visibility when required solely by the presence of an horizontal scrollbar. (#1574)
    InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_ParseEmptyRefVal to parse an empty field as zero-value. (#7305) 
    InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_DisplayEmptyRefVal to display a zero-value as empty. (#7305) 
    Popups: fixed an issue preventing to close a popup opened over a modal by clicking over void (it required clicking over the visible part of the modal). (#7654)
    Tables: fixed an issue where ideal size reported to parent container wouldn't correctly take account of inner scrollbar, affecting potential auto-resize of parent container. (#7651)
    Tables: fixed a bug where after disabling the ScrollY flag for a table, previous scrollbar width would be accounted for. (#5920)
    Combo: simplified Combo() API uses a list clipper (due to its api it wasn't previously trivial before we added clipper.IncludeItemByIndex() function).
    Disabled: nested tooltips or other non-child window within a BeginDisabled() block disable the disabled state. (#211, #7640)
    Misc: made ImGuiDir and ImGuiSortDirection stronger-typed enums.
    Backends: SDL3: Update for SDL_SYSTEM_CURSOR_xxx api renames. (#7653)
    RangeSelect/MultiSelect: Box-Select: when dragging from void, first hit item sets NavId so navigation can resume from that spot.
    RangeSelect/MultiSelect: (breaking) Added optional 'items_count' parameter to BeginMultiSelect(). Will enable extra features, and remove equivalent parameter from ImGuiSelectionBasicStorage::ApplyRequests().
    RangeSelect/MultiSelect: (breaking) renamed ImGuiMultiSelectFlags_BoxSelect -> ImGuiMultiSelectFlags_BoxSelect1d, ImGuiMultiSelectFlags_BoxSelect2d -> ImGuiMultiSelectFlags_BoxSelect.
    RangeSelect/MultiSelect: (breaking) ImGuiSelectionBasicStorage: renamed AdapterData to UserData.
    RangeSelect/MultiSelect: ImGuiSelectionBasicStorage: added GetStorageIdFromIndex() method indirection to be easier on the reader.
    RangeSelect/MultiSelect: ImGuiSelectionBasicStorage: fixed Swap() helper.
    RangeSelect/MultiSelect: added ImGuiSelectionExternalStorage helper. Simplify checkboxes/bool demo.
    RangeSelect/MultiSelect: Box-select: fixes for checkboxes support.
    RangeSelect/MultiSelect: mark parent child window as navigable into, with highlight visible when pressing Escape.
- Changes of 1.90.7
    Inputs: on macOS X, Cmd and Ctrl keys are now automatically swapped by io.AddKeyEvent(), as this naturally align with how macOS X uses those keys. (#2343, #4084, #5923, #456)
        Effectively it means that e.g. ImGuiMod_Ctrl | ImGuiKey_C is a valid idiomatic shortcut for both Windows and Mac style users.
        It shouldn't really affect your code unless you had explicit/custom shortcut swapping in place for macOS X apps in your input logic.
        Removed ImGuiMod_Shortcut which was previously dynamically remapping to Ctrl or Cmd/Super. It is now unnecessary to specific cross-platform idiomatic shortcuts. Kept symbols redirecting ImGuiMod_Shortcut to ImGuiMod_Ctrl (will obsolete).
    Commented out obsolete symbols renamed in 1.88 (May 2022):
        CaptureKeyboardFromApp() -> SetNextFrameWantCaptureKeyboard()
        CaptureMouseFromApp() -> SetNextFrameWantCaptureMouse()
    Backends: SDL_Renderer2/SDL_Renderer3: ImGui_ImplSDLRenderer2_RenderDrawData() and ImGui_ImplSDLRenderer3_RenderDrawData() now takes a SDL_Renderer* parameter. This was previously overlooked from the API but it will allow eventual support for multi-viewports.
    Extra Breaking changes IF AND ONLY IF you were using imgui_internal.h versions of Shortcut() or owner-aware versions of IsKeyPressed(), IsKeyChordPressed(), IsMouseClicked() prior to this version. (Open for details)
    Windows: BeginChild(): fixed visibility of fully clipped child windows and tables from Test Engine.
    Windows: BeginChild(): fixed auto-fit calculation when using either (not both) ResizeX/ResizeY and double-clicking on a border. Calculation incorrectly didn't always account for scrollbar as it assumed the other axis would also be auto-fit. (#1710)
    Inputs: added shortcut and routing system in public API. (#456, #2637)
        Most of the infrastructure have been in place for a few versions. Recent changes/fixes allowed to make it public.
        The general idea is that several callers may register interest in a shortcut, and only one owner gets it.
            in Parent: call Shortcut(Ctrl+S) // When Parent is focused, only Parent gets the shortcut.
            in Child1: call Shortcut(Ctrl+S) // When Child1 is focused, only Child1 gets the shortcut (Child1 overrides Parent shortcuts)
            in Child2: no call // When Child2 is focused, only Parent gets the shortcut.
        The whole system is order independent, so if Child1 makes its calls before Parent, results will be identical. This is an important property as it facilitate working with foreign code or larger codebase.
        Added Shortcut() function. e.g. Using ImGui::Shortcut(ImGuiMod_Ctrl | ImGuiKey_C) with default policy:
            checks that CTRL+C is pressed,
            and that current window is in focus stack,
            and that no other requests for CTRL+C have been made from higher priority locations (e.g. deeper in the window/item stack).
        Added SetNextItemShortcut() to set a shortcut to locally or remotely press or activate an item (depending on specified routing policy: using ImGuiInputFlags_RouteGlobal the item shortcut may be executed even if its window is not in focus stack). Items like buttons are not fully activated, in the sense that they get pressed but another active item, e.g. InputText() won't be deactivated.
        Added routing policies for Shortcut(), SetNextItemShortcut(): (#456, #2637)
            ImGuiInputFlags_RouteFocused: focus stack route (default)
            ImGuiInputFlags_RouteActive: only route to active item
            ImGuiInputFlags_RouteGlobal: route globally, unless a focus route claim shame shortcut.
            ImGuiInputFlags_RouteAlways: no routing submission, no routing check.
        Added other shortcut/routing options: (#456, #2637)
            ImGuiInputFlags_Repeat: for use by Shortcut() and by upcoming rework of various input functions (which are still internal for now).
            ImGuiInputFlags_Tooltip: for SetNextItemShortcut() to show a tooltip when hovering item.
            ImGuiInputFlags_RouteOverFocused: global route takes priority over focus route.
            ImGuiInputFlags_RouteOverActive: global route takes priority over active item.
            ImGuiInputFlags_RouteUnlessBgFocused: global route disabled if no imgui window focused.
            ImGuiInputFlags_RouteFromRootWindow: route evaluated from the point of view of root window rather than current window.
    Inputs: (OSX) Fixes variety of code which inconsistently required using Ctrl instead of Cmd.
        e.g. Drags/Sliders now use Cmd+Click to input a value. (#4084)
        Some shortcuts still uses Ctrl on Mac: e.g. Ctrl+Tab to switch windows. (#4828)
    Inputs: (OSX) Ctrl+Left Click alias as a Right click. (#2343) 
    Inputs: Fixed ImGui::GetKeyName(ImGuiKey_None) from returning "N/A" or "None" depending on value of IMGUI_DISABLE_OBSOLETE_KEYIO. It always returns "None".
    Nav: fixed holding Ctrl or gamepad L1 from not slowing down keyboard/gamepad tweak speed. Broken during a refactor refactor for 1.89. Holding Shift/R1 to speed up wasn't broken.
    Tables: fixed cell background of fully clipped row overlapping with header. (#7575, #7041) 
    Demo: Added "Inputs & Focus -> Shortcuts" section. (#456, #2637)
    Demo: Documents: Added shortcuts and renaming tabs/documents. (#7233)
    Examples: Win32+DX9,DX10,DX11,DX12: rework main loop to handle minimization and screen locking without burning resources by running unthrottled code. (#2496, #3907, #6308, #7615)
    Backends: all backends + demo now call IMGUI_CHECKVERSION() to verify ABI compatibility between caller code and compiled version of Dear ImGui. If you get an assert it most likely mean you have a build issue, read comments near the assert. (#7568)
    Backends: Win32: undo an assert introduced in 1.90.6 which didn't allow WndProc handler to be called before backend initialization. Because of how ::CreateWindow() calls in WndProc it is facilitating to not assert. (#6275) 
    Backends, Examples: SDL3: updates for latest SDL3 API changes. (#7580) 
- Changes of 1.90.6
    TreeNode: Fixed a layout inconsistency when using a empty/hidden label followed by a SameLine() call. (#7505, #282)
    With the fix, IF you were successfully using TreeNode("")+SameLine(); you will now have extra spacing between your TreeNode and the following item. You'll need to change the SameLine() call to SameLine(0,0) to remove this extraneous spacing. This seemed like the more sensible fix that's not making things less consistent. (Note: when using this idiom you are likely to also use ImGuiTreeNodeFlags_SpanAvailWidth).
    Windows: Changed default ClipRect to extend to windows' left and right borders, instead of adding arbitrary WindowPadding.x * 0.5f space on left and right. That ClipRect half-padding was arbitrary/confusing and inconsistent with Y axis. It also made it harder to draw items covering whole window without pushing an extended ClipRect. Some items near windows left and right edge that used to be clipped may be partly more visible. (#3312, #7540, #3756, #6170, #6365)
    Windows: Fixed subsequent Begin() append calls from setting last item information for title bar, making it impossible to use IsItemHovered() on a Begin()-to-append, and causing issue bypassing hover detection on collapsed windows. (#7506, #823)
    Fonts: Fixed font ascent and descent calculation when a font hits exact integer values. It is possible that some prior manual use of ImFontConfig::GlyphOffset may become duplicate with this fix. (#7399, #7404) 
    TreeNode: Added ImGuiTreeNodeFlags_SpanTextWidth to make hitbox and highlight only cover the label. (#6937) 
    Tables: Angled headers: fixed multi-line label display when angle is flipped. (#6917)
    Tables: Angled headers: added style.TableAngledHeadersTextAlign and corresponding ImGuiStyleVar_TableAngledHeadersTextAlign variable. Default to horizontal center. (#6917) 
    ProgressBar: Added support for indeterminate progress bar by passing an animated negative fraction, e.g. ProgressBar(-1.0f * GetTime()). (#5316, #5370, #1901)
    Text, DrawList: Improved handling of long single-line wrapped text. Faster and mitigate issues with reading vertex indexing limits with 16-bit indices. (#7496, #5720)
    Backends: OpenGL3: Detect ES3 contexts on desktop based on version string, to e.g. avoid calling glPolygonMode() on them. (#7447) 
    Backends: OpenGL3: Update loader for Linux to support EGL/GLVND. (#7562) 
    Backends: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define. (you could always use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + ImGui_ImplVulkan_LoadFunctions() as well). (#6582, #4854) 
    Backends: SDL3: Fixed text inputs. Re-enable calling SDL_StartTextInput()/SDL_StopTextInput() as SDL3 no longer enables it by default. (#7452, #6306, #6071, #1953) 
    Examples: GLFW+Vulkan, SDL+Vulkan: Added optional support for Volk. (#6582, #4854)
    Examples: GLFW+WebGPU: Added support for WebGPU-native/Dawn (#7435, #7132) 
    Examples: GLFW+WebGPU: Renamed example_emscripten_wgpu/ to example_glfw_wgpu/. (#7435, #7132)
- Changes of 1.90.5
    More formally obsoleted GetKeyIndex() when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is set.
    It has been unnecessary and a no-op since 1.87 (it returns the same value as passed when used with a 1.87+ backend using io.AddKeyEvent() function). (#4921)
    Reminder: IsKeyPressed(GetKeyIndex(ImGuiKey_XXX)) --> IsKeyPressed(ImGuiKey_XXX)
    ImDrawList: Merged the radius_x/radius_y parameters in AddEllipse(), AddEllipseFilled() and PathEllipticalArcTo() into a single ImVec2 parameter. Exceptionally, because those functions were added recently in 1.90, we are not adding inline redirection functions. The transition is easy and should affect few users. (#2743, #7417) 
    Windows: Scrollbar visibility decision uses current size when both size and contents size are submitted by API. (#7252)
    Windows: Double-click to collapse may be disabled via key-ownership mechanism. (#7369)
    Windows: BeginChild(): Extend outer resize borders to the edges when there are no corner grips. Essentially affects resizable child windows. (#7440, #1710) 
    Windows: BeginChild(): Resizing logic for child windows evaluates whether per-axis clamping should be applied based on parent scrollbars, not child scrollbars. (#7440, #1710)  Adjust those resizing limits to match window padding rather than inner clipping rectangle.
    Tables: Fixed auto-width columns when using synced-instances of same table, width of one instance would bleed into next one instead of sharing their widths. (#7218)
    Tables: Angled headers: fixed border hit box extending beyond when used within non-scrollable tables. (#7416) 
    Tables: Angled headers: fixed borders not moving back up after TableAngleHeadersRow() stops being called. (#7416) 
    Tables: Angled headers: rounding header size to nearest integers, fixes some issues when using clipper.
    Menus, Popups: Fixed an issue where sibling menu popups re-opening in successive frames would erroneously close the window. While it is technically a popup issue it would generally manifest when fast moving the mouse bottom to top in a sub-menu. (#7325, #7287, #7063)
    ProgressBar: Fixed passing fraction==NaN from leading to a crash. (#7451)
    ListBox: Fixed text-baseline offset when using SameLine()+Text() after a labeled ListBox().
    Drags, Sliders, Inputs: Fixed io.PlatformLocaleDecimalPoint decimal point localization feature not working regression from 1.90.1. (#7389, #6719, #2278) 
    Style: Added ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TableAngledHeadersAngle for consistency. (#7411) 
    DrawList: Added AddConcavePolyFilled(), PathFillConcave() concave filling. (#760)  Note that only simple polygons (no self-intersections, no holes) are supported.
    DrawList: Allow AddText() to accept null ranges. (#3615, 7391)
    Docs: added more wiki links to headers of imgui.h/imgui.cpp to facilitate discovery
    of interesting resources, because github doesn't allow Wiki to be crawled by search engines.

OBS-URL: https://build.opensuse.org/request/show/1189723
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/imgui?expand=0&rev=24
2024-08-01 19:10:40 +00:00