Skip to content

Releases: cfillion/reaimgui

v0.9.3.2

18 Oct 13:31
v0.9.3.2
575d5d2
Compare
Choose a tag to compare
  • Fix a crash when saving screensets after more than one context shared an ID
  • Select better font fallbacks in the HTML documentation
  • Linux: fix a crash when opening a window on the same frame images got garbage-collected

v0.9.3.1

27 Sep 21:09
v0.9.3.1
1bc0658
Compare
Choose a tag to compare
  • Fix a potential crash when removing textures
  • Windows: repair drag-docking functionality [#23]

v0.9.3

19 Sep 06:04
v0.9.3
fa70cd4
Compare
Choose a tag to compare
  • Fix sub-30ms double-clicks landing on the window under [p=2795708]
  • Repair the LuaCATS definition file
  • macOS: fix compatibility with macOS 15 "Sequoia" [p=2809649]
  • macOS: fix a crash when uploading a texture bigger than Metal limits
  • macOS: fix restoration of Ctrl when regaining focus and right-click emulation is enabled
  • macOS: fix stuck right-click emulation when unfocusing while Ctrl is down
  • macOS: forward mousewheel events when WindowFlags_NoInputs is set [p=2799779]

API changes:

  • Add CreateFontFromMem

v0.9.2

04 Jul 07:30
v0.9.2
369071e
Compare
Choose a tag to compare
  • Add experimental Zig bindings
  • Fix the 0.7 shim of CaptureKeyboardFromApp [p=2790175]
  • Fix the Viewport API not starting a frame [p=2783450]
  • Update to dear imgui 1.90.9

API changes:

  • Add ChildFlags_NavFlattened
  • Add Col_Tab{SelectedOverline,DimmedSelectedOverline} and TabBarFlags_DrawSelectedOverline
  • Add ConfigFlags_NoKeyboard
  • Add CreateImageFromLICE (support bitmaps created using JS_LICE_CreateBitmap only)
  • Add InputTextFlags_{Display,Parse}EmptyRefVal
  • Add optional 'flags' parameter to CreateImageFromMem
  • Add Shortcut, SetNextItemShortcut and InputFlags_*.
  • Add SliderFlags_WrapAround
  • Add TableGetHoveredColumn
  • Rename Col_TabActive to _TabSelected, _TabUnfocused to _TabDimmed and _TabUnfocusedActive to _TabDimmedSelected
  • Rename DragDropFlags_SourceAutoExpirePayload to _PayloadAutoExpire
  • Swap Mod_CtrlMod_Super on macOS and remove Mod_Shortcut

v0.9.1

13 May 03:07
v0.9.1
c494c79
Compare
Choose a tag to compare
  • Add a LuaCATS definition file for IDE language servers (in the Releases page on GitHub)
  • Clarify error messages occurring during font loading are font-related [p=2776476]
  • Differentiate between integer/number in the documented Lua signatures
  • Document CollapsingHeader's and Selectable's p_* parameters as optional
  • Fix assertion failure when setting an empty drag/drop payload
  • Fix incorrect values of ModFlags_{Alt,Shift,Super} in 0.8 shims
  • Prevent stuck keys when keyboard capture is released from an action's global shortcut key [p=2765259]
  • Remove ReaImGui_Hello World.eel from the ReaPack package
  • Update to dear imgui v1.90.6 (release notes)

C++ bindings:

  • Annotate Begin* and Create* functions as [[nodiscard]]
  • Fix all pointer parameters being effectively optional

gfx2imgui:

  • Clamp excessively large requested font sizes [p=2781729]

API changes:

  • Add StyleVar_TableAngledHeadersTextAlign
  • Add TreeNodeFlags_SpanTextWidth
  • ProgressBar accepts negative 'fraction' values for indeterminate mode

v0.9.0.2

17 Apr 16:43
v0.9.0.2
e53451b
Compare
Choose a tag to compare
  • Fix 0.9 not switching the active font texture to the current DPI in dockers
  • Fix 0.9 shims letting through unknown virtual key codes and asserting
  • macOS: fix incorrect clipping in the Metal renderer if the clip rect's origin is smaller than the window's position
  • Windows: repair drag-docking over floating dockers

v0.9.0.1

14 Apr 15:26
v0.9.0.1
395bc22
Compare
Choose a tag to compare
  • Hotfix: repair v0.9 crashing when docking on Windows

v0.9

14 Apr 10:45
v0.9
5af2ed0
Compare
Choose a tag to compare
  • 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 and getchar(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 to GetColorEx
  • Add BeginItemTooltip and SetItemTooltip
  • Add ChildFlags_{AlwaysAutoResize,AlwaysUseWindowPadding,{,Auto}Resize{X,Y},Border,FrameStyle,None}
  • Add ComboFlags_WidthFitPreview
  • Add ConfigVar_HoverStationaryDelay and _HoverFlagsForTooltip{Mouse,Nav}
  • Add DebugFlashStyleColor and DebugStartItemPicker
  • Add DrawList_AddConcavePolyFilled and DrawList_PathFillConcave
  • Add DrawList_AddEllipse{,Filled} and DrawList_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} and Key_App{Back,Forward}
  • Add ListClipper_IncludeItemByIndex and rename _IncludeRangeByIndices to _IncludeItemsByIndex
  • Add PopupFlags_NoReopen
  • Add StyleVar_{Tab,TabBar}BorderSize and TabItemFlags_NoAssumedClosure
  • Add TableAngledHeadersRow, TableColumnFlags_AngledHeader and StyleVar_TableAngledHeadersAngle
  • Add TableFlags_HighlightHoveredColumn
  • Add TreeNodeFlags_SpanAllColumns
  • Remove BeginChildFrame and EndChildFrame (use BeginChild+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 to ShowIDStackToolWindow
  • Rename {Selectable,TreeNode}Flags_AllowItemOverlap to _AllowOverlap
  • Replace BeginChild's (bool)border parameter with (int)child_flags
  • Replace SetItemAllowOverlap (after the item) with SetNextItemAllowOverlap (before the item)
  • Set TableNeedSort's has_specs output value to false when not sorting in tristate mode
  • Swap the column_{index,user_id} return values of TableGetColumnSortSpecs

v0.8.7.6

04 Feb 08:18
v0.8.7.6
1e7945b
Compare
Choose a tag to compare
  • Fix a crash when REAPER quits while a frame is still open
  • Fix TableGetColumnSortSpecs accepting invalid negative indices
  • Handle font size truncation when computing rendering scale
  • macOS: fix fallback for missing font families in recent OS versions
  • macOS: fix window position desync when changing monitor resolution in recent OS versions [p=2732554]
  • Linux: fix a brief display of uninitialized pixels when opening docked windows
  • Linux: fix windows not staying in place under certain monitor scales [#13]
  • Linux: repair HiDPI scaling (regression from v0.8) [p=2752987]

v0.8.7.5

07 Nov 08:09
v0.8.7.5
a3b09e1
Compare
Choose a tag to compare
  • Fix compatibility of file drag and drop with dear imgui v1.89.4
  • Focus new docked windows when they are the only tab in the docker [p=2724239]
  • Windows: fix detection of the "multimonitor aware" HiDPI mode on Windows 8.1 [p=2724812]
  • Windows: fix windows not staying in place after moving under certain monitor scales [p=2724640]

gfx2imgui:

  • Fix replacing images after (re)initializing gfx
  • Harden gradrect to gracefully handle bogus Infinity/NaN delta arguments