mirror of
https://github.com/Drezil/imgui.git
synced 2025-07-04 20:18:47 +02:00
Comments (#2599). Moved branch Changelog above 1.71 wip one. Added some missing changelog bits.
This commit is contained in:
@ -28,6 +28,75 @@ HOW TO UPDATE?
|
||||
and API updates have been a little more frequent lately. They are documented below and in imgui.cpp and should not affect all users.
|
||||
- Please report any issue!
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
DOCKING BRANCH (In Progress)
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
DOCKING FEATURES
|
||||
|
||||
- Added Docking system: [BETA] (#2109, #351)
|
||||
- Added ImGuiConfigFlags_DockingEnable flag to enable Docking.
|
||||
Set with `io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;`.
|
||||
- Added DockSpace() API.
|
||||
- Added ImGuiDockNodeFlags flags for DockSpace().
|
||||
- Added SetNextWindowDock(), SetNextWindowClass() API.
|
||||
- Added GetWindowDockId(), IsWindowDocked() API.
|
||||
- Added ImGuiWindowFlags_NoDocking window flag to disable the possibility for a window to be docked.
|
||||
Popup, Menu and Child windows always have the ImGuiWindowFlags_NoDocking flag set.
|
||||
- Added io.ConfigDockingNoSplit option.
|
||||
- Added io.ConfigDockingWithShift option.
|
||||
- Added io.ConfigDockingTabBarOnSingleWindows option.
|
||||
- Added io.ConfigDockingTransparentPayload option.
|
||||
- Style: Added ImGuiCol_DockingPreview, ImGuiCol_DockingEmptyBg colors.
|
||||
- Demo: Added "DockSpace" example app showcasing use of explicit dockspace nodes.
|
||||
|
||||
MULTI-VIEWPORT FEATURES (was previously 'viewport' branch, merged into 'docking')
|
||||
|
||||
Breaking Changes:
|
||||
|
||||
- IMPORTANT: When multi-viewports are enabled (with io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable),
|
||||
all coordinates/positions will be in your natural OS coordinates space. It means that:
|
||||
- Reference to hard-coded positions such as in SetNextWindowPos(ImVec2(0,0)) are _probably_ not what you want anymore.
|
||||
Use GetMainViewport()->Pos to offset hard-coded positions, e.g. SetNextWindowPos(GetMainViewport()->Pos).
|
||||
- Likewise io.MousePos and GetMousePos() will use OS coordinates.
|
||||
If you query mouse positions to interact with non-imgui coordinates you will need to offset them.
|
||||
e.g. subtract GetWindowViewport()->Pos.
|
||||
- Render function: the ImDrawData structure now contains 'DisplayPos' and 'DisplaySize' fields.
|
||||
To support multi-viewport, you need to use those values when creating your orthographic projection matrix.
|
||||
Use 'draw_data->DisplaySize' instead of 'io.DisplaySize', and 'draw_data->DisplayPos' instead of (0,0) as the upper-left point.
|
||||
You need to subtract 'draw_data->DisplayPos' from your scissor rectangles to convert them from global coordinates to frame-buffer coordinates.
|
||||
- IO: Moved IME support functions from io.ImeSetInputScreenPosFn, io.ImeWindowHandle to the PlatformIO api.
|
||||
- IO: Removed io.DisplayVisibleMin, io.DisplayVisibleMax settings (they were marked obsoleted, used to clip within the (0,0)..(DisplaySize) range).
|
||||
|
||||
Other changes:
|
||||
(FIXME: This need a fuller explanation!)
|
||||
|
||||
- Added ImGuiPlatformIO structure and GetPlatformIO().
|
||||
Similarly to ImGuiIO and GetIO(), this structure is the main point of communication for back-ends supporting multi-viewports.
|
||||
- Added ImGuiPlatformMonitor to feed OS monitor information in the ImGuiPlatformIO::Monitors.
|
||||
- Added GetMainViewport().
|
||||
- Added GetWindowViewport(), SetNextWindowViewport().
|
||||
- Added GetWindowDpiScale().
|
||||
- Added GetOverlayDrawList(ImGuiViewport* viewport).
|
||||
The no-parameter version of GetOverlayDrawList() return the overlay for the current window's viewport.
|
||||
- Added UpdatePlatformWindows(), RenderPlatformWindows(), DestroyPlatformWindows() for usage for application core.
|
||||
- Added FindViewportByID(), FindViewportByPlatformHandle() for usage by back-ends.
|
||||
- Added ImGuiConfigFlags_ViewportsEnable configuration flag and other viewport options.
|
||||
- Added io.ConfigViewportsNoAutoMerge, io.ConfigViewportsNoTaskBarIcon, io.ConfigViewportsNoDecoration, io.ConfigViewportsNoDefaultParent options.
|
||||
- Added ImGuiBackendFlags_PlatformHasViewports, ImGuiBackendFlags_RendererHasViewports, ImGuiBackendFlags_HasMouseHoveredViewport backend flags.
|
||||
- Added io.MainViewport, io.Viewports, io.MouseHoveredViewport (MouseHoveredViewport is optional _even_ for multi-viewport support).
|
||||
- Added ImGuiViewport structure, ImGuiViewportFlags flags.
|
||||
- Added ImGuiWindowClass and SetNextWindowClass() for passing viewport related hints to the OS/platform back-end.
|
||||
- Examples: Renderer: OpenGL2, OpenGL3, DirectX11, DirectX12, Vulkan: Added support for multi-viewports.
|
||||
- Examples: Platforms: Win32, GLFW, SDL2: Added support for multi-viewports.
|
||||
Note that Linux/Mac still have inconsistent support for multi-viewports. If you want to help see https://github.com/ocornut/imgui/issues/2117.
|
||||
- Examples: Win32: Added DPI-related helpers to access DPI features without requiring the latest Windows SDK at compile time,
|
||||
and without requiring Windows 10 at runtime.
|
||||
- Examples: Vulkan: Added various optional helpers in imgui_impl_vulkan.h (they are used for multi-viewport support)
|
||||
to make the examples main.cpp easier to read.
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
VERSION 1.71 (In Progress)
|
||||
-----------------------------------------------------------------------
|
||||
@ -78,70 +147,6 @@ Other Changes:
|
||||
support. (#2538, #2541)
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
DOCKING BRANCH (In Progress)
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
DOCKING FEATURES
|
||||
|
||||
- Added Docking system: [BETA] (#2109, #351)
|
||||
- Added ImGuiConfigFlags_DockingEnable flag to enable Docking.
|
||||
Set with `io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;`.
|
||||
- Added DockSpace() API.
|
||||
- Added ImGuiDockNodeFlags flags for DockSpace().
|
||||
- Added SetNextWindowDock(), SetNextWindowClass() API.
|
||||
- Added GetWindowDockId(), IsWindowDocked() API.
|
||||
- Added ImGuiWindowFlags_NoDocking window flag to disable the possibility for a window to be docked.
|
||||
Popup, Menu and Child windows always have the ImGuiWindowFlags_NoDocking flag set.
|
||||
- Added io.ConfigDockingWithShift option to configure docking mode.
|
||||
- Style: Added ImGuiCol_DockingPreview, ImGuiCol_DockingEmptyBg colors.
|
||||
- Demo: Added "DockSpace" example app showcasing use of explicit dockspace nodes.
|
||||
|
||||
MULTI-VIEWPORT FEATURES (was previously 'viewport' branch, merged into 'docking')
|
||||
|
||||
Breaking Changes:
|
||||
|
||||
- IMPORTANT: When multi-viewports are enabled (with io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable),
|
||||
all coordinates/positions will be in your natural OS coordinates space. It means that:
|
||||
- Reference to hard-coded positions such as in SetNextWindowPos(ImVec2(0,0)) are _probably_ not what you want anymore.
|
||||
Use GetMainViewport()->Pos to offset hard-coded positions, e.g. SetNextWindowPos(GetMainViewport()->Pos).
|
||||
- Likewise io.MousePos and GetMousePos() will use OS coordinates.
|
||||
If you query mouse positions to interact with non-imgui coordinates you will need to offset them.
|
||||
e.g. subtract GetWindowViewport()->Pos.
|
||||
- Render function: the ImDrawData structure now contains 'DisplayPos' and 'DisplaySize' fields.
|
||||
To support multi-viewport, you need to use those values when creating your orthographic projection matrix.
|
||||
Use 'draw_data->DisplaySize' instead of 'io.DisplaySize', and 'draw_data->DisplayPos' instead of (0,0) as the upper-left point.
|
||||
You need to subtract 'draw_data->DisplayPos' from your scissor rectangles to convert them from global coordinates to frame-buffer coordinates.
|
||||
- IO: Moved IME support functions from io.ImeSetInputScreenPosFn, io.ImeWindowHandle to the PlatformIO api.
|
||||
- IO: Removed io.DisplayVisibleMin, io.DisplayVisibleMax settings (they were marked obsoleted, used to clip within the (0,0)..(DisplaySize) range).
|
||||
|
||||
Other changes:
|
||||
(FIXME: This need a fuller explanation!)
|
||||
|
||||
- Added ImGuiPlatformIO structure and GetPlatformIO().
|
||||
Similarly to ImGuiIO and GetIO(), this structure is the main point of communication for back-ends supporting multi-viewports.
|
||||
- Added ImGuiPlatformMonitor to feed OS monitor information in the ImGuiPlatformIO::Monitors.
|
||||
- Added GetMainViewport().
|
||||
- Added GetWindowViewport(), SetNextWindowViewport().
|
||||
- Added GetWindowDpiScale().
|
||||
- Added GetOverlayDrawList(ImGuiViewport* viewport).
|
||||
The no-parameter version of GetOverlayDrawList() return the overlay for the current window's viewport.
|
||||
- Added UpdatePlatformWindows(), RenderPlatformWindows(), DestroyPlatformWindows() for usage for application core.
|
||||
- Added FindViewportByID(), FindViewportByPlatformHandle() for usage by back-ends.
|
||||
- Added ImGuiConfigFlags_ViewportsEnable configuration flag and other viewport options.
|
||||
- Added ImGuiBackendFlags_PlatformHasViewports, ImGuiBackendFlags_RendererHasViewports, ImGuiBackendFlags_HasMouseHoveredViewport backend flags.
|
||||
- Added io.MainViewport, io.Viewports, io.MouseHoveredViewport (MouseHoveredViewport is optional _even_ for multi-viewport support).
|
||||
- Added ImGuiViewport structure, ImGuiViewportFlags flags.
|
||||
- Added ImGuiWindowClass and SetNextWindowClass() for passing viewport related hints to the OS/platform back-end.
|
||||
- Examples: Renderer: OpenGL2, OpenGL3, DirectX11, DirectX12, Vulkan: Added support for multi-viewports.
|
||||
- Examples: Platforms: Win32, GLFW, SDL2: Added support for multi-viewports.
|
||||
Note that Linux/Mac still have inconsistent support for multi-viewports. If you want to help see https://github.com/ocornut/imgui/issues/2117.
|
||||
- Examples: Win32: Added DPI-related helpers to access DPI features without requiring the latest Windows SDK at compile time,
|
||||
and without requiring Windows 10 at runtime.
|
||||
- Examples: Vulkan: Added various optional helpers in imgui_impl_vulkan.h (they are used for multi-viewport support)
|
||||
to make the examples main.cpp easier to read.
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
VERSION 1.70 (Released 2019-05-06)
|
||||
-----------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user