Skip to content
Tags give the ability to mark specific points in history as being important
This project is mirrored from https://github.com/cfillion/reaimgui.git. Pull mirroring updated .
  • v0.9.1
    v0.9.1
    
    • 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 <https://github.com/ocornut/imgui/releases/tag/v1.90.6>
    
    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
    v0.9.0.2
    
    • 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
    v0.9.0.1
    
    • Hotfix: repair docking on Windows
    
  • v0.9
    v0.9
    
    • Add an action to open the HTML documentation
    • Add a setting to disable hardware acceleration (Direct3D on Windows and OpenGL on macOS only) [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):
    • 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 to false when not sorting in tristate mode
    • Swap the column_{index,user_id} return values of TableGetColumnSortSpecs
    
  • v0.8.7.6
    v0.8.7.6
    
    • Fix a brief display of uninitialized pixels when opening docked windows
    • 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 windows not staying in place under certain monitor scales [#13]
    • Linux: repair HiDPI scaling (regression from v0.8) [p=2752987]
    
  • v0.8.7.5
    v0.8.7.5
    
    • 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
    
  • v0.8.7.4
    v0.8.7.4
    
    • Fix a crash when undocking via the context menu since 0.8.7.3
    
  • v0.8.7.3
    v0.8.7.3
    
    • Report stored size when opening a docked window [p=2700189]
    • macOS and Windows: fix a memory leak and potential crash when the renderer fails to initialize
    • macOS: fix a crash when pressing mouse buttons higher than 5
    • macOS: fix a memory leak and a potential crash in the Metal renderer when images are incorrectly re-created every frame while a window is occluded [p=2698614]
    • macOS: fix mouse events not reaching REAPER after opening a native menu while a mouse button is down then pressing another button
    • macOS: release mouse capture on window focus changes [p=2695756]
    • macOS: send a single right-click event when handling the "Control+left-click emulates right-click" setting
    
  • v0.8.7.2
    v0.8.7.2
    
    • Fix a crash when windows are closed out of ownership order while a mouse button is down
    • macOS: fix the x86_64 release binary not containing FreeType2 since 0.8.7 [p=2694907]
    
  • v0.8.7.1
    v0.8.7.1
    
    • Fix imgui.lua always applying all available shims
    
  • v0.8.7
    v0.8.7
    
    • Add a context menu with "move to docker"/undock/close actions to docker tabs
    • Allow docked windows to be resized down to 10x10px [p=2691001]
    • Fix docked windows not opening with focus [p=2690820]
    • Fix usage of the Attach function in Python ReaScripts [#11]
    • Update to dear imgui v1.89.6 <https://github.com/ocornut/imgui/releases/tag/v1.89.6>
    • Linux: fix window position desync when the WM denies or alter the move request [p=2670425]
    • Linux: implement mouse events passthrough via WindowFlags_NoInputs [p=2684289]
    • macOS: restore compatibility with macOS 10.9–10.12 (accidentally lost in v0.8)
    • Windows: add a title bar context menu when native decorations are enabled
    • Windows: disable DirectX feature toggling fullscreen when pressing Alt+Enter
    • Windows: don't bring REAPER back to front when focusing another app while a topmost window is shown [p=2684110]
    
    API changes:
    • Rename ListClipper_ForceDisplayRangeByIndices to ListClipper_IncludeRangeByIndices
    
  • v0.8.6.1
    v0.8.6.1
    
    • macOS: restore accidentally disabled clipboard I/O
    
  • v0.8.6
    v0.8.6
    
    • Add a button to restore default settings in the preferences page
    • Don't give focus to the first setting when opening the preferences page [t=277729]
    • Enable docking by default (ConfigFlags_DockingEnable) and expose a user setting
    • Fix 1-frame flicker after uploading a new texture
    • Fix a use-after-free when calling an EEL function after an assertion failure
    • Fix crashes when removing/uploading textures every frame [p=2663379]
    • Fix name conflict between the ImGui_Image type and function in the C++ header
    • Revert "disable ConfigVar_InputTrickleEventQueue by default" [p=2664743]
    • Update to dear imgui v1.89.5 <https://github.com/ocornut/imgui/releases/tag/v1.89.5>
    
    API changes:
    • Move the C++ API functions to a ImGui namespace
    
  • v0.8.5
    v0.8.5
    
    • Add a new API for running EEL programs
    • Collect all errors in a single report window
    • Disable ConfigVar_InputTrickleEventQueue by default
    • Fix duplicate error reports when failing to end a frame
    • Remove global object count limit (limit context attachments instead)
    • Update to dear imgui v1.89.4 <https://github.com/ocornut/imgui/releases/tag/v1.89.4>
    • macOS: fix stuck keys when undocking while a key is down
    • macOS: follow the "Control+left-click emulates right-click" setting [t=277197]
    • Windows: fix a regression in the OpenGL renderer causing crashes [p=2656531]
    
    Documentation:
    • Add a table of contents of the entire category tree
    • Insert links for references with trailing wildcards (eg. StyleVar_*)
    
    gfx2imgui:
    • Add REAPER v6.75's gfx.getchar second return value
    • Implement (partial) blit rotation
    • More compatibility improvements and performance optimizations
    
    API changes:
    • Add 'callback' parameter to InputText* and SetNextWindowSizeConstraints
    • Add a boolean return value to BeginTooltip
    • Add ConfigVar_DebugBeginReturnValue{Once,Loop}
    • Add CreateFunctionFromEEL and Function_*
    • Add InputTextFlags_Callback{Always,CharFilter,Completion,Edit,History}
    • Renamed {Push,Pop}AllowKeyboardFocus to {Push,Pop}TabStop
    
  • v0.8.4
    v0.8.4
    
    • Fill the HWND text of docked windows with the tab name [p=2649553]
    • Fix "Too many vertices in ImDrawList" assertion when adding many draw calls during the first 2 frames of a context
    • Fix a crash when opening a window more than 1 minute after the last one in the same context [p=2639537]
    • Fix two cases of stuck mouse buttons and keyboard keys after closing windows
    • Ignore warnings when loading PNG images
    • Lua demo: replace `r.ImGui_` prefix with `ImGui.`
    • macOS: fix a crash when destroying a window immediately after receiving focus
    • macOS: fix stuck buttons and keys after a native menu is opened
    • macOS: update window position when resizing via native decorations
    • Re-raise the minimum OpenGL version to 3.2
    • Update dear imgui to v1.89.3 <https://github.com/ocornut/imgui/releases/tag/v1.89.3>
    • Windows: fix a memory leak in the Direct3D 10 renderer [p=2639587]
    • Windows: fix incorrect monitor work area calculation in some cases [p=2639793]
    
    gfx2imgui:
    • Fix multiple text aligment and clipping bugs [p=2646948]
    • Fix preloading fonts after gaps in slot indices
    • Fix stuck mouse buttons after focus loss [p=2647387]
    • Improve rendering of lines with fractional scaling [p=2646948]
    • Various compatibility improvements and performance optimizations
    
    API changes:
    • Add MouseCursor_None
    • Add NumericLimits_{Double,Int}
    • Add SeparatorText and StyleVar_SeparatorText{BorderSize,Align,Padding}
    
  • v0.8.3
    v0.8.3
    
    • Add actions to toggle boolean settings
    • Adjust the top docker's hit box for the tabbar, transport and toolbar above
    • Fix a crash when undocking by dragging the top-left corner triangle
    • Reduce memory usage when docking is enabled
    • Update dear imgui to v1.89.2 <https://github.com/ocornut/imgui/releases/tag/v1.89.2>
    
    imgui.lua:
    • Extend 0.8 shims for window boundary extension to cover End{Popup,Table,Tooltip}
    • Fix 0.7 shim of CaptureKeyboardFromApp [p=2633349]
    • Fix 0.8 shims eating the return values of TableNext{Column,Row} and TableSetColumnIndex [p=2632656]
    • Fix 0.8 shims making EndGroup move the cursor to the wrong Y position [p=2632446]
    
    API changes:
    • Remove IsWindowCollapsed (broken since v0.5)
    
  • v0.8.2
    v0.8.2
    
    • Add user settings for docking with Shift only, docking splitting and docking window transparency
    • Automatically open tabs for dropping windows when hovering REAPER dockers or main window sides
    • Disable mouse input when captured by a window belonging to a different context
    • Fix a crash when moving dockers with a single window on the left or top side of a split
    • Fix parameters with two characters names missing from the documentation
    • Make the settings page's help text behave more similarly to native pages
    • Re-enable drawing the background of empty dockers
    • Reuse the existing native window when dropping a window back into the same docker
    • Use the system theme text color in the error dialog
    • macOS: fix crash/corruption in the Metal renderer due to GPU buffers being incorrectly resized
    • Linux: compile libjpeg-turbo into the binary for compatibility with Fedora [p=2627734]
    • Linux: fix windows not gaining focus on first click since v0.8
    • Linux: replace window z-order heuristic with proper hit-testing
    • Windows: filter out \b\e\r\n\t from the character input queue
    • Windows: fix assertion failure in some HiDPI monitor configurations [p=2616056][p=2620880][p=2622681]
    • Windows: follow the "Use large (non-tool) window frames for windows" setting
    • Windows: temporarily disable usage under non-multimonitor aware HiDPI modes [p=2629558]
    • Windows: treat non-client window area as passthrough when hit-testing
    
    imgui.lua:
    • Exceptionally add shims to restore pre-0.8 values for GetKeyMods
    • Extend 0.8's shims for window boundary extension to cover table cells
    
  • v0.8.1
    v0.8.1
    
    • imgui.lua: add shims for dear imgui 1.89's obsoleted window boundary extension via SetCursorPos
    • macOS: fix the Metal renderer crashing (observed on macOS 12 ARM)
    
  • v0.8
    cc6087e8 · Merge branch 'bitmap' ·
    v0.8
    
    • Add a user settings page in Preferences > Plug-ins > ReaImGui:
      - Option to disable restoration of saved settings ("safe mode")
      - Option to select which graphics renderer to use
    • Display indirect errors in a custom, more user-friendly dialog
    • Implement bitmap image loading (PNG and JPEG from a file or memory) and image sets (per-DPI variants)
    • macOS: add a Metal renderer (new default, requires El Capitan or newer)
    • Share GPU textures with all windows in the same context (except on Linux due to a GDK 3 limitation)
    • Update dear imgui to v1.89.1 <https://github.com/ocornut/imgui/releases/tag/v1.89> and <https://github.com/ocornut/imgui/releases/tag/v1.89.1>
    • Windows: add a Direct3D 10 renderer (new default)
    • Windows: disable minimizing and use the tool window style when decorations are enabled
    • Windows: support mouse input everywhere in windows straddling multiple monitors with mixed DPI scales
    
    Documentation:
    • DRI-ify default argument values (code + doc using a single source of truth)
    • Hide the "ImGui_" prefix
    • More accurate line number ranges in links to source code
    • Reorganize all functions in hierarchical, individually documented sections
    • Rich-text formatting (Markdown <3)
    • Syntax highlighting of code samples (if client-side Javascript is enabled)
    
    API changes:
    • Add {Attach,Detach} for linking the liftime of any object with a context
    • Add ConfigFlags_NavNoCaptureKeyboard
    • Add ConfigVar_HoverDelay{Normal,Short} and ConfigVar_InputTextEnterKeepActive
    • Add GetFramerate
    • Add HoveredFlags_{Delay{Normal,Short},NoSharedDelay}
    • Add Image{,Button} and DrawList_AddImage{,Quad,Rounded}
    • Add InputTextFlags_EscapeClearsAll
    • Add Key_Mouse*
    • Add Mod_Shortcut (alias for _Ctrl on Linux & Windows and _Super, the Cmd key, on macOS)
    • Remove {Attach,Detach}Font (replaced by generic {Attach,Detach} functions)
    • Rename ModFlags_* to Mod_*
    
  • v0.7.2
    v0.7.2
    
    • Fix window under the window under mouse getting hovered for 1 frame on mouse release
    • macOS: fix crash when the context is destroyed while a window is docked
    • macOS: fix framebuffer size not updating when switching from another docker tab
    • macOS: fix non-initial windows not gaining focus on open
    • Windows: fix multiple DPI scaling issues
    
    API changes:
    • Add GetWindowDpiScale
    
    gfx2imgui:
    • Add GFX2IMGUI_NO_BLIT_PREMULTIPLY option [p=2609372]
    • Fix nearest font selection when sizes smaller than requested are loaded [p=2609372]
    • Keep alive fonts while they're actively being drawn from a blitted buffer [p=2609372]
    • Warn when substituting font for the default one