Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release ReaImGui: ReaScript binding for Dear ImGui v0.9.0.1 #93

Merged
merged 3 commits into from
Apr 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 2 additions & 94 deletions API/reaper_imgui.ext
Original file line number Diff line number Diff line change
@@ -1,99 +1,7 @@
@description ReaImGui: ReaScript binding for Dear ImGui
@author cfillion
@version 0.9
@changelog
• 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):
• 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
@version 0.9.0.1
@changelog • Hotfix: repair v0.9 crashing when docking on Windows
@provides
[darwin32] reaper_imgui-i386.dylib https://github.com/cfillion/reaimgui/releases/download/v$version/$path
[darwin64] reaper_imgui-x86_64.dylib https://github.com/cfillion/reaimgui/releases/download/v$version/$path
Expand Down
Loading