v0.9
- Add an action to open the HTML documentation
- Add a setting to disable hardware acceleration [p=2763726]
- Add saving and restoring UI state in REAPER screensets
- Document the minimum compatible version of each API function
- Fix list clippers not always using the specified context
- Fix v0.8.7's incorrect shim of
ListClipper_ForceDisplayRangeByIndices
- Implement error detection in the OpenGL renderer
- Improve accuracy when scaling up fonts for HiDPI
- Limit image width/height to 8192 pixels
- Reduce the maximum count of per-context attachments to 1024
- Report an error when using an EEL callback function outside of a callback
- Support toggling WindowFlags_NoInputs after window creation
- Throw an error when resources are wastefully re-created every frame
- Update Dear ImGui to v1.90.5
- Linux: fix input of multiple ponctuation keys (+ PrintScreen on every platform)
- Linux: fix more cases of window positions going out of sync with the WM [#16]
- Linux: workaround windows taking a long time to open on KDE + Wayland + Intel GPUs [p=2769385]
- Linux: macOS: fix detection of the mouse hovering another application
- macOS: disable the Metal renderer and default to OpenGL on macOS earlier than 10.11
- macOS: don't stretch contents when resizing OpenGL windows using system decorations
- macOS: fix off-by-one mouse cursor position at the bottom of the screen
- macOS: fix stuck left mouse button if it's pressed before Ctrl and right click emulation is enabled
- macOS: fix the OpenGL renderer failing on macOS 10.9 [p=2766024]
- macOS: re-initialize OpenGL after moving a window to another monitor
- Windows: fix missing preview when dragging files from the Media Explorer
- Windows: fix possible file drop false positive when the cursor is near another window
C++ bindings (reaper_imgui_functions.h):
- Add binary backward compatibility and minimum version check
- Add error reporting by locally throwing
ImGui_Error
- Add ImGui::load() to initialize the API instead of lazy-loading on call
- Now requires C++17 or newer
- Pass optional scalars directly by value
Lua bindings (imgui.lua, details here):
- Complete redesign of the backward-compatibility shim system
- Return a table containing the functions from the requested API version
- Allow multiple modules within the same action to use different API versions
- Numeric constants are exposed as values rather than functions
- Simplify the recommended example snippets using GetBuiltinPath + require
Python bindings:
- Remove ImGui_ prefix from function names and rename to imgui.py
Demo script:
- Examples > Custom rendering > Draw Channels
- Layout & Scrolling > Child windows > Auto-resize with constraints
- Layout & Scrolling > Child windows > Manual-resize
- Layout & Scrolling > Overlap Mode
- Tables > Angled headers
- Tables > Row height
- Tools > Item Picker
- Widgets > Drag and Drop > Tooltip at target location
- Widgets > Text Input > Miscellaneous
- Widgets > Tooltips
gfx2imgui.lua:
- Add REAPER v7.03's
getchar(65536)&8
andgetchar(65537)
, fix&4
- Support setfont with more than one font flag
- Trigger gfx.triangle's line heuristic with more than 2 unique points
- Various performance optimizations
API changes:
- Add
alpha_mul
optional parameter toGetColorEx
- Add
BeginItemTooltip
andSetItemTooltip
- Add
ChildFlags_{AlwaysAutoResize,AlwaysUseWindowPadding,{,Auto}Resize{X,Y},Border,FrameStyle,None}
- Add
ComboFlags_WidthFitPreview
- Add
ConfigVar_HoverStationaryDelay
and_HoverFlagsForTooltip{Mouse,Nav}
- Add
DebugFlashStyleColor
andDebugStartItemPicker
- Add
DrawList_AddConcavePolyFilled
andDrawList_PathFillConcave
- Add
DrawList_AddEllipse{,Filled}
andDrawList_PathEllipticalArcTo
- Add
GetBuiltinPath
(shortcut for "$resource_path/Scripts/ReaTeam Extensions/API") - Add
HoveredFlags_AllowWhenOverlappedBy{Item,Window}
and_ForTooltip
- Add
IsKeyChordPressed
- Add
Key_F{13..24}
andKey_App{Back,Forward}
- Add
ListClipper_IncludeItemByIndex
and rename_IncludeRangeByIndices
to_IncludeItemsByIndex
- Add
PopupFlags_NoReopen
- Add
StyleVar_{Tab,TabBar}BorderSize
andTabItemFlags_NoAssumedClosure
- Add
TableAngledHeadersRow
,TableColumnFlags_AngledHeader
andStyleVar_TableAngledHeadersAngle
- Add
TableFlags_HighlightHoveredColumn
- Add
TreeNodeFlags_SpanAllColumns
- Remove
BeginChildFrame
andEndChildFrame
(useBeginChild
+ChildFlags_FrameStyle
instead) - Remove
DestroyContext
(was not useful since 0.5) - Remove support of Windows virtual key codes (was deprecated in 0.6)
- Remove
TableGetColumnSortSpecs
's redundant sort_order return value - Remove
WindowFlags_AlwaysUseWindowPadding
- Rename
ShowStackToolWindow
toShowIDStackToolWindow
- Rename
{Selectable,TreeNode}Flags_AllowItemOverlap
to_AllowOverlap
- Replace
BeginChild
's (bool)border parameter with (int)child_flags - Replace
SetItemAllowOverlap
(after the item) withSetNextItemAllowOverlap
(before the item) - Set
TableNeedSort
'shas_specs
output value to false when not sorting in tristate mode - Swap the
column_{index,user_id}
return values ofTableGetColumnSortSpecs