Dear ImGui for Roblox - not yet ported / known gaps ==================================================== Upstream reference: tools/test/upstream/ (ocornut/imgui docking branch, 1.93 WIP). Re-check with: python3 tools/test/missing.py [imgui|widgets|tables|draw] and python3 tools/test/undefined.py --no-demo (missing.py also lists names the port defines differently, e.g. the *V printf variants and DragFloat2..4 / DragInt2..4, which exist as ImGui.DragFloat2 = DragFloatN(2) etc. Those are NOT gaps.) FEATURES NOT PORTED / PARTIAL ----------------------------- - ImFont::AddRemapCodepointToGlyphIndex / FontSrcGetGlyphIndexFromCodepoint (needs the 1.93 font loader split). - Default compressed font data (GetDefaultCompressedFontDataTTF / ProggyClean/ProggyForever embedded data): AddFontFromMemoryCompressedTTF works, but the default font comes from fonts/ instead. - DebugLogSkippedErrors / DebugDrawIdConflicts* (Metrics error-recovery and ID-conflict debug tools). - ImGuiDataType.S64/U64: supported, but values are Luau doubles: exact only within +-2^53 (LLONG_MAX/ULLONG_MAX round up to 2^63/2^64; U64 max prints as 18446744073709551615 via a special case). - ImDrawList::AddCallback(userdata_size > 0): "copy" = shallow copy of a table userdata (no raw bytes in Lua). - stb_truetype: cmap format 2 (high-byte mapping) asserts -- same as upstream stb_truetype ("@TODO"). - GetAllocatorFunctions (n/a in Luau). WON'T DO (platform) ------------------- - Multi-viewports / platform windows: Roblox has one window. Viewport API exists for the main viewport only. - Gamepad navigation via a real gamepad backend (keyboard navigation works). - IME / non-ASCII keyboard text input (backend sends printable ASCII only). NOT VERIFIED LINE BY LINE AGAINST UPSTREAM ------------------------------------------ - Demo: Layout & Scrolling, Popups & Modal windows, Inputs & Focus. KNOWN ISSUES ------------ - Tables > "Columns flags": disabling every column asserts in TableUpdateLayout (upstream asserts too). - ImTriangulator ([Luau] deviation, imgui_draw.lua ImTriangulator_IsReflex): only strictly counter-clockwise corners are reflex (upstream: also collinear/duplicate points), so polygons with duplicate points triangulate differently (no overlapping-triangle fallback). PLANNED EXTENSIONS ------------------ - ImGuizmo, ImNodes, ImGuiColorTextEdit, ImPlot, ImPlot3D (as separate extensions/, built with a --with flag).