4DBug
93a3c4faf5
Library draw call sites match 1.93: AddLineH/AddLineV + StrokeCenterBiased/StrokeInside (window/menu borders, separators, text cursor), tab border PathStroke, check mark AALineEnds, CloseButton/TreeNode lines/ColorButton/alpha checkerboard 1.93, Ctrl+Tab highlight AddRect arg order, metrics AA push/pop
2026-10-15 07:24:13 -05:00
4DBug
9872d43fd6
Draw list 1.93: baked round corners in the font atlas (ImFontAtlasBuildUpdateTexDataCorners, fill radii 1..16 + 3 stroke thicknesses) used by AddRect/AddRectFilled when pixel-aligned (_AddRectBaked/_AddRectFilledBaked)
2026-10-15 06:55:57 -05:00
4DBug
af2026113a
Draw list 1.93 strokes: _AddPolyline ported (texture AA lines, joins/miter/bevel, CapSquare, AALineEnds, Stroke Inside/Center/CenterBiased/Outside/Legacy), AddConvexPolyFilled AAFill, all primitives with 1.93 signatures/flags, PathRect/PathArcTo 1.93, baked line textures; Custom Rendering demo flags UI restored. check_all: t_pixels incremental==full redraw, headless screenshot (tools/test/shot.py)
2026-10-15 06:37:49 -05:00
4DBug
a111187591
Draw list 1.93 foundation (no output change): ImDrawFlags 1.93 values (Round*/Stroke*/AA*/JoinMiter/CapSquare/TextNoPixelSnap/UseTexForRoundCorners...; RoundCorners* kept as obsolete aliases), ImDrawList.Flags + PushDrawFlag/PopDrawFlag/_SetPixelDensity, SetupDrawListSharedData 1.93, style.CurveTessellationMaxError/AntiAliasedLineEnds, _AddPolyline entry point
2026-10-15 05:13:58 -05:00
4DBug
d18bc714fc
Demo: Selection State & Multi-Select section (ExampleSelectionWithDeletion, ExampleDualListBox, all 11 sub-demos) and Assets Browser ported; fix ImFloor() for negative non-integers (was floor-1)
2026-10-15 04:13:40 -05:00
4DBug
049e160852
Port multi-select, box-select and typing-select (BeginMultiSelect/EndMultiSelect, SetNextItemSelectionUserData, MultiSelectItemHeader/Footer, BeginBoxSelect/EndBoxSelect, GetTypingSelectRequest/TypingSelectFind*, ImGuiSelectionBasicStorage/ExternalStorage, Metrics nodes); wired into Selectable/Checkbox/TreeNode/clipper/tables; t_multiselect
2026-10-15 03:49:53 -05:00
4DBug
33ab5a1d84
Fix: InputTextMultiline crashed when drawn (InputTextLineIndexBuild/line offsets 0-based like upstream, inverted buf_display_end), InputText LiveEdit flag check; Shortcut()/IsKeyChordPressed() upstream defaults; FrameCount starts at 0 (IsWindowAppearing on first frame); missing ImGuiIO config fields with upstream defaults (+ ConfigDebugBeginReturnValueOnce/Loop); ColorButton drag source + ColorEdit4 drop target, IMGUI_PAYLOAD_TYPE_COLOR_3F/4F; t_fixes covers them
2026-10-15 03:03:10 -05:00
4DBug
9c8c1b018e
Demo: re-ported imgui_demo.cpp line by line in upstream order (one function per upstream function, same labels/HelpMarkers/comments, 176/186 IMGUI_DEMO_MARKERs; port table driver/Sub()/Demo* helpers removed, statics in S.<Function>). New: DemoWindowInputs (Inputs & Focus), Image Viewer, ShowExampleAppDockSpaceBasic. Selection/Assets Browser stubbed until multi-select is ported. ImColor helper (imgui_h.lua). PORT_STATUS demo similarity 29% -> 51%
2026-10-15 02:32:58 -05:00
4DBug
b929de5206
Fix: ImDrawList:PushClipRectFullScreen() was missing (drop target outside the window clip rect crashed); CalcItemSize() no longer writes to the caller's size (by value like upstream; fixes BeginTable UserOuterSize), scalar _CalcItemSizeXY for internal callers; t_fixes covers both
2026-10-15 02:05:43 -05:00
4DBug
ac4398ee2a
tools/test: check_all.sh (CI mirror + all scripted tests + demo forced open + LÖVE), hashes.sh (draw checksums vs a git rev), t_libhash (library-only draw checksum); regenerate PORT_STATUS
2026-10-15 02:03:40 -05:00
4DBug
b71e29ee35
Roblox backend perf (pixel-identical): redraw budget (SetRedrawBudget, default 1.5 ms; RenderRate default 0), exact in-place draw list compare + whole-pixel move fast path, partial tile redraws, flat rects hashed by in-tile rect, quads hashed by TL/BR, no full redraw on texture updates, @native CopyTexturePixels, reused partial upload buffers; imgui_draw: @native word wrap, ImStrByte/classifier inlined, text size cache covers wrapped text; t_pixels pixel oracle; run.py RUN_FLAGS
2026-10-14 22:26:38 -05:00
4DBug
090525076f
InputText: fix clipboard paste (filter was inverted, then off-by-one in the filtered buffer); ImParseFormatTrimDecorations: return [start, end) like upstream (Ctrl+click temp input showed decorations / crashed on "%d%%"); ShrinkWidths: tie order by Index descending like upstream; t_fixes test
2026-10-14 10:32:10 -05:00
4DBug
e502866075
CI: minified builds (ImGui.min.luau, ImGui-nodemo.min.luau, imgui_love.min.lua, imgui_love-nodemo.min.lua) via tools/minify.py; checks + release assets; run.py MINIFY=1
2026-10-14 10:23:55 -05:00
4DBug
7eb7d5fcbb
Docking: set node.LastBgColor (closing dock hosts drew white bodies), host skips own bg, fix SetNextWindowBgAlpha; Roblox backend: frames skipped by the render rate cap are drawn later (UI could freeze when the app stopped rendering); t_dock_close test
2026-10-14 06:26:28 -05:00
4DBug
e228ed8638
Roblox backend: text proxy is opt-in (SetTextProxy), remove SetTextProxyDebug; new example main.client.luau
2026-10-09 02:22:30 -05:00
4DBug
14e6da3b29
SetNextWindowCached(key): opt-in cached windows on top of the refresh policy (skip contents while idle), t_cached_window test, README snippet
Build & Release / build (push) Canceled after 0s
2026-10-08 20:43:56 -05:00
4DBug
66fa061089
LÖVE backend + build target (compat/luajit.lua shims, Roblox build unchanged), examples/example_love, examples/example_shared (same app on Roblox and LÖVE), LuaJIT checksum tests
2026-10-08 19:31:22 -05:00
4DBug
81c5ad9e43
Roblox backend: hidden TextBox proxy for text input
...
A single off-screen TextBox holds focus while an imgui text field is active, so the OS
delivers typing (any layout/unicode), paste and copy/cut. Its text mirrors imgui selection
(fully selected) so Ctrl+C/X copy exactly that; deletions apply as an imgui Backspace;
Ctrl is released around pasted characters. Focus is captured after the click is released,
kept on clicks inside imgui, ends on clicks outside. KeyCode text kept as fallback.
SetTextProxyDebug for logging.
2026-10-08 19:31:22 -05:00
4DBug
ffc0332971
Embed widget example (Instances inside imgui windows, one Frame per id, hidden when not submitted, EmbedFlags) + backend SetOverlay
2026-10-08 17:28:13 -05:00
4DBug
e0c2c2cf21
README modelled on upstream with rendered screenshots/GIF, docs/TODO.txt, screenshot tooling, t_readme snippet test, ImGui.NewTextBuffer helpers
2026-10-08 17:15:54 -05:00
4DBug
e051302b23
Rename 'ImGui Sincerely' to 'Dear ImGui'
2026-10-08 17:00:00 -05:00
4DBug
8421bb5475
Reorganize like upstream: library at root (docking/dragdrop/debug tools merged into imgui.lua, tabs into imgui_widgets.lua), single imgui_demo.lua, backends/, fonts/, examples/, docs/; --no-demo build
2026-10-08 16:47:42 -05:00
4DBug
06523e5417
Perf: ColorEdit4 layout-only fast path for fully clipped rows, cached drag/slider value text, @native on color/group widgets; t_widget_cost + t_colors_hash
2026-10-08 12:31:10 -05:00
4DBug
0e06d846cf
Perf: ImDrawList vertices in a flat buffer (f64 pos/uv + u32 col); backend reads it directly and skips draw lists identical to last frame
2026-10-08 12:11:36 -05:00
4DBug
b19fe61236
Roblox backend: window content in its own clipped layer at the scroll origin (scrolling moves pixels instead of redrawing), 128px tiles
2026-10-08 11:52:42 -05:00
4DBug
ab108d288b
Roblox backend: clear/upload only each tile's dirty region; scroll benchmark in t_drag, scrolling in t_composite
2026-10-08 11:33:28 -05:00
4DBug
ceb66d3067
Roblox backend: one layer (Frame + tiles) per draw list so moving windows costs no redraw; gradient rect fast path; t_drag/t_composite checks
2026-10-08 11:10:53 -05:00
4DBug
71843392f1
Perf: allocation-free ItemSize/ItemAdd/IsMouseHoveringRect/GetColorU32/RenderArrow, @native on hot UI paths; t_drawhash output-equivalence check
2026-10-08 10:41:15 -05:00
4DBug
d9a741aa0e
Fix StyleCopy for named-field vectors (Style Editor assert)
2026-10-08 10:33:05 -05:00
4DBug
623dc5b936
Perf: ImVec2/ImVec4/ImRect store named fields (no metamethod per .x/.Min), bench flags --roblox/--open-only
2026-10-08 10:16:40 -05:00
4DBug
7a20710b65
Perf: cache text sizes per baked font, AddRect fast path as 4 rects; run.py --profile + prof.py
2026-10-08 10:03:18 -05:00
4DBug
e12368ee21
Roblox backend: 60 Hz render cap (SetRenderRate) and MicroProfiler labels (SetProfiling)
2026-10-08 09:49:18 -05:00
4DBug
3fca191b86
Fix PushStyleVar aliasing the caller's ImVec2 into the style; fix DebugNodeFontGlyph crash
2026-10-08 09:27:57 -05:00
4DBug
1dd48be9b8
Port window hit-test hole so PassthruCentralNode doesn't capture the mouse
2026-10-08 09:15:32 -05:00
4DBug
0cba4f7ce8
tools: full Metrics/Debugger window (windows, drawlists, viewports, fonts, popups, tab bars, tables, docking, settings, inputs, internal state, rect overlays)
2026-10-08 08:40:30 -05:00
4DBug
1862183f78
demo: dockspace + documents example apps
2026-10-08 08:28:23 -05:00
4DBug
a75e24ac4c
demo: example apps (console, log, layout, property editor, long text, auto/constrained resize, overlay, fullscreen, window titles)
2026-10-08 08:24:43 -05:00
4DBug
d7a2b8a4df
demo: port all Widgets sections, ShowStyleEditor/ShowStyleSelector, menus; fix crashes found by click fuzzer (color/scalar default args, InputTextWithHint string hint, AddText overload, splitter reset, CollapsingHeader close button, callback data methods, SetKeyboardFocusHere & misc getters)
2026-10-08 08:06:00 -05:00
4DBug
701d1d3449
tables: full port of imgui_tables.cpp (layout, borders, draw channel merge, sorting, headers, angled headers, context menu, .ini settings, reconcile, GC) + legacy Columns API; demo: ShowUserGuide, DemoWindowColumns; misc widget aliases
2026-10-08 06:53:00 -05:00
4DBug
9860373ce5
core: ListClipper, TextFilter, error recovery + error tooltip, NavEndFrame; widgets: Combo, ListBox, TreeNodeEx/TreePush, MainMenuBar, ViewportSideBar; tree node fixes
2026-10-08 06:35:35 -05:00
4DBug
c563739688
docking: fix docked bg + dock-host moving; per-function @native to fit Roblox codegen limit
2026-10-08 05:51:40 -05:00
4DBug
2381a232ee
docking: runs end to end (dock/undock by drag, builder, ini round trip), test scripts
2026-10-08 05:43:00 -05:00
4DBug
fee9a84902
WIP: tabs, docking, dragdrop, settings, logging, harness
2026-10-08 05:35:25 -05:00