diff --git a/docs/PORT_STATUS.txt b/docs/PORT_STATUS.txt new file mode 100644 index 0000000..4fb8caa --- /dev/null +++ b/docs/PORT_STATUS.txt @@ -0,0 +1,2661 @@ +PORT STATUS: imgui-luau vs upstream Dear ImGui (docking, 1.93.0 WIP) +Generated by tools/compare_upstream.py - do not edit. Upstream sources: tools/test/upstream/. + +Columns: funcs = upstream function definitions (overloads merged), excluding [-] rows + ported = share that has a port definition with the same name + by size = same, weighted by upstream body size (tokens) + similarity = normalized token similarity of the ported bodies (difflib ratio), weighted by size + stubs = ported but (nearly) empty in the port +Name-based matching: a renamed port function shows as [ ], a same-named one counts even if it differs. Treat as estimates. +Port-only helpers called from a ported function (same file) are inlined before comparing, since the port splits some big functions. +Known low scores that are not missing code: data-driven port code (e.g. DemoWindowTables' section table), the older 1.92 +polyline stroker (AddPolyline), Lua-native replacements (ImGuiStorage, ImStr*, ImFormatString -> string.format). + +upstream file funcs ported by size similarity stubs +imgui.cpp 786 87.4% 93.5% 75.3% 2 +imgui_widgets.cpp 308 82.8% 88.9% 79.2% 0 +imgui_draw.cpp 258 74.8% 75.4% 66.7% 2 +imgui_tables.cpp 113 96.5% 99.0% 75.6% 0 +imgui_demo.cpp 56 80.4% 91.7% 29.0% 0 +imgui.h 110 51.8% 37.1% 56.9% 0 +imgui_internal.h 269 55.4% 58.8% 68.6% 0 +TOTAL 1900 78.7% 89.5% 67.0% 4 + +upstream code reproduced (similarity x ported size / all upstream size): 60.0% +Public API (imgui.h, namespace ImGui) 365 / 376 97.1% +Internal API (imgui_internal.h, namespace ImGui) 405 / 443 91.4% +Enum values (imgui.h + imgui_internal.h) 973 / 1078 90.3% +Struct fields (imgui.h + imgui_internal.h) 1746 / 1926 90.7% + +Legend: [x] ported (sim %) [~] stub [ ] not ported [-] excluded (c++-only / obsolete / os-specific / #if 0 / test-engine) + +==================================================================================================== +imgui.cpp +==================================================================================================== + + -- INCLUDES + [-] localtime_r os-specific + + -- CONTEXT AND MEMORY ALLOCATORS + [ ] MallocWrapper + [ ] FreeWrapper + + -- USER FACING STRUCTURES (ImGuiStyle, ImGuiIO, ImGuiPlatformIO) + [x] 38% ImGuiStyle::ImGuiStyle imgui_internal.lua:1437 + [x] 83% ImGuiStyle::ScaleAllSizes imgui.lua:4779 + [x] 13% ImGuiIO::ImGuiIO imgui_h.lua:1181 + [x] 83% ImGuiIO::AddInputCharacter imgui.lua:7948 + [x] 83% ImGuiIO::AddInputCharacterUTF16 imgui.lua:7969 + [ ] ImGuiIO::AddInputCharactersUTF8 + [x] 83% ImGuiIO::ClearEventsQueue imgui.lua:7998 + [x] 80% ImGuiIO::ClearInputKeys imgui.lua:8005 + [x] 75% ImGuiIO::ClearInputMouse imgui.lua:8023 + [ ] FindLatestInputEvent + [x] 89% ImGuiIO::AddKeyAnalogEvent imgui.lua:8076 + [x] 89% ImGuiIO::AddKeyEvent imgui.lua:8122 + [ ] ImGuiIO::SetKeyEventNativeData + [x] 100% ImGuiIO::SetAppAcceptingEvents imgui.lua:8131 + [x] 75% ImGuiIO::AddMousePosEvent imgui.lua:8197 + [x] 87% ImGuiIO::AddMouseButtonEvent imgui.lua:8236 + [x] 87% ImGuiIO::AddMouseWheelEvent imgui.lua:8288 + [x] 96% ImGuiIO::AddMouseSourceEvent imgui.lua:8138 + [x] 87% ImGuiIO::AddMouseViewportEvent imgui.lua:8145 + [x] 84% ImGuiIO::AddFocusEvent imgui.lua:8174 + [x] 15% ImGuiPlatformIO::ImGuiPlatformIO imgui_h.lua:1487 + + -- MISC HELPERS/UTILITIES (Geometry functions) + [ ] ImBezierCubicClosestPoint + [ ] ImBezierCubicClosestPointCasteljauStep + [ ] ImBezierCubicClosestPointCasteljau + [x] 100% ImLineClosestPoint imgui.lua:5130 + [x] 100% ImTriangleContainsPoint imgui.lua:5148 + [x] 96% ImTriangleBarycentricCoords imgui.lua:5160 + [x] 94% ImTriangleClosestPoint imgui.lua:5179 + + -- MISC HELPERS/UTILITIES (String, Format, Hash functions) + [ ] ImStricmp + [ ] ImStrnicmp + [x] 81% ImStrncpy imgui.lua:5204 + [ ] ImStrdup + [ ] ImMemdup + [ ] ImStrdupcpy + [ ] ImStrchrRange + [ ] ImStrlenW + [ ] ImStreolRange + [x] 42% ImStrbol imgui.lua:5218 + [ ] ImStristr + [x] 69% ImStrTrimBlanks imgui.lua:5228 + [ ] ImStrSkipBlank + [x] n/a ImFormatString imgui.lua:4666 = string . format + [ ] ImFormatStringV + [ ] ImFormatStringToTempBuffer + [ ] ImFormatStringToTempBufferV + [x] 19% ImHashData imgui.lua:4883 + [x] 20% ImHashStr imgui.lua:4917 + [ ] ImHashSkipUncontributingPrefix + + -- MISC HELPERS/UTILITIES (File functions) + [~] 0% ImFileOpen imgui.lua:4702 stub + [x] 29% ImFileClose imgui.lua:4719 + [x] 16% ImFileGetSize imgui.lua:4720 + [x] 10% ImFileRead imgui.lua:4725 + [ ] ImFileWrite + [x] 39% ImFileLoadToMemory imgui.lua:4747 + + -- MISC HELPERS/UTILITIES (ImText* functions) + [x] 37% ImTextCharFromUtf8 imgui.lua:4984 + [ ] ImTextStrFromUtf8 + [ ] ImTextCountCharsFromUtf8 + [x] 69% ImTextCharToUtf8_inline imgui.lua:5037 + [x] 93% ImTextCharToUtf8 imgui.lua:5076 + [x] 5% ImTextCountUtf8BytesFromChar imgui.lua:5087 + [ ] ImTextStrToUtf8 + [ ] ImTextCountUtf8BytesFromStr + [x] 74% ImTextFindPreviousUtf8Codepoint imgui.lua:5095 + [x] 86% ImTextFindValidUtf8CodepointEnd imgui.lua:5110 + [x] 41% ImTextCountLines imgui_tables.lua:3718 + + -- MISC HELPERS/UTILITIES (Color functions) + [x] 73% ImAlphaBlendColors imgui.lua:14309 + [x] 41% ImGui::ColorConvertU32ToFloat4 imgui.lua:14320 + [x] 16% ImGui::ColorConvertFloat4ToU32 imgui.lua:14339 + [x] 87% ImGui::ColorConvertRGBtoHSV imgui.lua:14350 + [x] 61% ImGui::ColorConvertHSVtoRGB imgui.lua:14375 + + -- ImGuiStorage + [x] 69% ImLowerBound imgui_widgets.lua:5158 + [ ] PairComparerByID + [ ] ImGuiStorage::BuildSortByKey + [ ] ImGuiStorage::GetInt + [ ] ImGuiStorage::GetBool + [ ] ImGuiStorage::GetFloat + [ ] ImGuiStorage::GetVoidPtr + [ ] ImGuiStorage::GetIntRef + [ ] ImGuiStorage::GetBoolRef + [ ] ImGuiStorage::GetFloatRef + [ ] ImGuiStorage::GetVoidPtrRef + [ ] ImGuiStorage::SetInt + [ ] ImGuiStorage::SetBool + [ ] ImGuiStorage::SetFloat + [ ] ImGuiStorage::SetVoidPtr + [ ] ImGuiStorage::SetAllInt + + -- ImGuiTextFilter + [x] 32% ImGuiTextFilter::ImGuiTextFilter imgui.lua:19245 + [x] 36% ImGuiTextFilter::Draw imgui.lua:19255 + [x] 62% ImGuiTextFilter::DrawWithHint imgui.lua:19262 + [x] 49% ImGuiTextFilter::Build imgui.lua:19277 + [x] 56% ImGuiTextFilter::PassFilter imgui.lua:19338 + + -- ImGuiTextBuffer, ImGuiTextIndex + [x] 5% ImGuiTextBuffer::append imgui_h.lua:2650 + [x] 17% ImGuiTextBuffer::appendf imgui_h.lua:2651 + [ ] ImGuiTextBuffer::appendfv + [ ] ImGuiTextIndex::append + + -- ImGuiListClipper + [x] 86% GetSkipItemForListClipping imgui.lua:19376 + [x] 71% ImGuiListClipper_SortAndFuseRanges imgui.lua:19386 + [x] 89% ImGuiListClipper_SeekCursorAndSetupPrevLine imgui.lua:19410 + [x] 8% ImGuiListClipper::ImGuiListClipper imgui.lua:19443 + [-] ImGuiListClipper::~ImGuiListClipper c++-only + [x] 64% ImGuiListClipper::Begin imgui.lua:19450 + [x] 79% ImGuiListClipper::End imgui.lua:19479 + [x] 61% ImGuiListClipper::IncludeItemsByIndex imgui.lua:19505 + [x] 80% ImGuiListClipper::SeekCursorForItem imgui.lua:19516 + [x] 79% ImGuiListClipper_StepInternal imgui.lua:19523 + [x] 40% ImGuiListClipper::Step imgui.lua:19672 + [x] 79% ImGui::CalcClipRectVisibleItemsY imgui.lua:14407 + + -- STYLING + [x] 90% ImGui::GetStyle imgui.lua:14417 + [x] 71% ImGui::GetStyleColorVec4 imgui.lua:18795 + [x] 26% ImGui::GetColorU32 imgui.lua:14431 + [x] 64% ImGui::PushStyleColor imgui.lua:14463 + [x] 82% ImGui::PopStyleColor imgui.lua:14477 + [x] 74% ImGui::GetStyleVarInfo imgui.lua:14543 + [x] 56% ImGui::PushStyleVar imgui.lua:14551 + [x] 91% ImGui::PushStyleVarX imgui.lua:14570 + [x] 91% ImGui::PushStyleVarY imgui.lua:14581 + [x] 79% ImGui::PopStyleVar imgui.lua:14591 + [x] 1% ImGui::GetStyleColorName imgui.lua:19105 + + -- RENDER HELPERS + [x] 46% ImGui::FindRenderedTextEnd imgui.lua:10028 + [x] 76% ImGui::RenderText imgui.lua:10049 + [x] 79% ImGui::RenderTextWrapped imgui.lua:10079 + [x] 91% ImGui::RenderTextClippedEx imgui.lua:10108 + [x] 77% ImGui::RenderTextClipped imgui.lua:10145 + [x] 90% ImGui::RenderTextEllipsis imgui.lua:10280 + [x] 86% ImGui::RenderFrame imgui.lua:10339 + [x] 94% ImGui::RenderFrameBorder imgui.lua:10359 + [x] 99% ImGui::RenderColorComponentMarker imgui.lua:10372 + [x] 85% ImGui::RenderNavCursor imgui.lua:10168 + [x] 85% ImGui::RenderMouseCursor imgui.lua:10228 + + -- INITIALIZATION, SHUTDOWN + [x] 100% ImGui::GetCurrentContext imgui.lua:5487 + [x] 35% ImGui::SetCurrentContext imgui.lua:5492 + [x] 100% ImGui::SetAllocatorFunctions imgui.lua:5503 + [ ] ImGui::GetAllocatorFunctions + [x] 87% ImGui::CreateContext imgui.lua:5580 + [x] 83% ImGui::DestroyContext imgui.lua:5592 + [x] 6% ImGuiContext::ImGuiContext imgui_internal.lua:1995 + [-] ImGuiContext::~ImGuiContext c++-only + [x] 78% ImGui::Initialize imgui.lua:5538 + [x] 41% ImGui::Shutdown imgui.lua:14226 + [ ] ImGui::SetContextName + [ ] ImGui::AddContextHook + [ ] ImGui::RemoveContextHook + [ ] ImGui::CallContextHooks + + -- MAIN CODE (most of the code! lots of stuff, needs tidying up!) + [x] 11% ImGuiWindow::ImGuiWindow imgui_internal.lua:2579 + [-] ImGuiWindow::~ImGuiWindow c++-only + [x] 74% SetCurrentWindow imgui.lua:10760 + [x] 70% ImGui::GcCompactTransientMiscBuffers imgui.lua:10781 + [x] 94% ImGui::GcCompactTransientWindowBuffers imgui.lua:10798 + [x] 96% ImGui::GcAwakeTransientWindowBuffers imgui.lua:10810 + [x] 86% ImGui::SetActiveID imgui.lua:7404 + [x] 100% ImGui::ClearActiveID imgui.lua:7470 + [x] 98% ImGui::SetHoveredID imgui.lua:7576 + [x] 84% ImGui::GetHoveredID imgui.lua:7075 + [x] 85% ImGui::MarkItemEdited imgui.lua:7610 + [x] 93% ImGui::IsWindowContentHoverable imgui.lua:7643 + [x] 87% CalcDelayFromHoveredFlags imgui.lua:7588 + [x] 50% ApplyHoverFlagsForTooltip imgui.lua:7601 + [x] 87% ImGui::IsItemHovered imgui.lua:7683 + [x] 85% ImGui::ItemHoverable imgui.lua:7815 + [x] 99% ImGui::IsClippedEx imgui.lua:7904 + [x] 91% ImGui::SetLastItemData imgui.lua:7923 + [x] 98% ImGui::SetLastItemDataForWindow imgui.lua:7934 + [x] 93% ImGui::SetLastItemDataForChildWindowItem imgui.lua:11238 + [x] 96% ImGui::CalcWrapWidthForPos imgui.lua:9996 + [x] 77% ImGui::MemAlloc imgui.lua:457 + [x] 79% ImGui::MemFree imgui.lua:470 + [ ] ImGui::DemoMarker + [x] 79% ImGui::DebugAllocHook imgui.lua:485 + [x] 91% ImGui::GetClipboardText imgui.lua:14262 + [x] 100% ImGui::SetClipboardText imgui.lua:14268 + [x] 100% ImGui::GetVersion imgui.lua:19102 + [x] 57% ImGui::GetIO imgui.lua:14275 + [x] 90% ImGui::GetPlatformIO imgui.lua:14278 + [x] 86% ImGui::GetDrawData imgui.lua:14215 + [x] 100% ImGui::GetTime imgui.lua:14221 + [x] 100% ImGui::GetFrameCount imgui.lua:19094 + [x] 82% GetViewportBgFgDrawList imgui.lua:13566 + [x] 80% ImGui::GetBackgroundDrawList imgui.lua:13589 + [x] 80% ImGui::GetForegroundDrawList imgui.lua:13601 + [x] 100% ImGui::GetDrawListSharedData imgui.lua:11486 + [x] 90% ImGui::StartMouseMovingWindow imgui.lua:11415 + [x] 94% ImGui::StartMouseMovingWindowOrNode imgui.lua:4527 + [x] 85% ImGui::StopMouseMovingWindow imgui.lua:7375 + [x] 95% ImGui::UpdateMouseMovingWindowNewFrame imgui.lua:11447 + [x] 88% ImGui::UpdateMouseMovingWindowEndFrame imgui.lua:11544 + [x] 65% TranslateWindow imgui.lua:11615 + [x] 88% ScaleWindow imgui.lua:14813 + [x] 100% IsWindowActiveAndVisible imgui.lua:9529 + [x] 93% ImGui::UpdateHoveredWindowAndCaptureFlags imgui.lua:12978 + [x] 55% SetupDrawListSharedData imgui.lua:13455 + [x] 87% ImGui::NewFrame imgui.lua:13695 + [x] 63% ChildWindowComparer imgui.lua:13615 + [x] 89% AddWindowToSortBuffer imgui.lua:13630 + [x] 86% AddWindowToDrawData imgui.lua:13644 + [x] 64% GetWindowDisplayLayer imgui.lua:13660 + [x] 100% AddRootWindowToDrawData imgui.lua:13666 + [x] 63% FlattenDrawDataIntoSingleLayer imgui.lua:13671 + [x] 83% InitViewportDrawData imgui.lua:13481 + [x] 89% ImGui::PushClipRect imgui.lua:13550 + [x] 86% ImGui::PopClipRect imgui.lua:13556 + [x] 60% ImGui::RenderDimmedBackgroundBehindWindow imgui.lua:18876 + [x] 83% ImGui::FindBottomMostVisibleWindowWithinBeginStack imgui.lua:18849 + [x] 80% ImGui::RenderDimmedBackgrounds imgui.lua:18897 + [x] 84% ImGui::EndFrame imgui.lua:13991 + [x] 74% ImGui::Render imgui.lua:14102 + [x] 17% ImGui::CalcTextSize imgui.lua:14175 + [x] 79% ImGui::FindHoveredWindowEx imgui.lua:12892 + [x] 95% ImGui::IsItemActive imgui.lua:6954 + [x] 97% ImGui::IsItemActivated imgui.lua:6995 + [x] 95% ImGui::IsItemDeactivated imgui.lua:6981 + [x] 100% ImGui::IsItemDeactivatedAfterEdit imgui.lua:6990 + [x] 100% ImGui::IsItemFocused imgui.lua:6965 + [x] 67% ImGui::IsItemClicked imgui.lua:7008 + [x] 57% ImGui::IsItemToggledOpen imgui.lua:7013 + [x] 84% ImGui::IsItemToggledSelection imgui.lua:7023 + [x] 100% ImGui::IsAnyItemHovered imgui.lua:7032 + [x] 67% ImGui::IsAnyItemActive imgui.lua:7037 + [x] 100% ImGui::IsAnyItemFocused imgui.lua:7041 + [x] 74% ImGui::IsItemVisible imgui.lua:7046 + [x] 74% ImGui::IsItemEdited imgui.lua:7050 + [x] 71% ImGui::SetNextItemAllowOverlap imgui.lua:7057 + [x] 93% ImGui::SetActiveIdUsingAllKeyboardKeys imgui.lua:11068 + [x] 67% ImGui::GetItemID imgui.lua:7062 + [x] 100% ImGui::GetItemRectMin imgui.lua:11077 + [x] 100% ImGui::GetItemRectMax imgui.lua:11083 + [x] 67% ImGui::GetItemRectSize imgui.lua:7071 + [x] 67% ImGui::GetItemFlags imgui.lua:7066 + [x] 43% ImGui::BeginChild imgui.lua:11227 + [x] 81% ImGui::BeginChildEx imgui.lua:11093 + [x] 90% ImGui::EndChild imgui.lua:11243 + [x] 83% ImGui::FindFrontMostVisibleChildWindow imgui.lua:5629 + [x] 42% SetWindowConditionAllowFlags imgui.lua:5641 + [x] 73% ImGui::FindWindowByID imgui.lua:11628 + [x] 100% ImGui::FindWindowByName imgui.lua:11638 + [x] 86% ApplyWindowSettings imgui.lua:5655 + [x] 61% InitOrLoadWindowSettings imgui.lua:5694 + [x] 73% CreateNewWindow imgui.lua:5715 + [x] 75% GetWindowForTitleDisplay imgui.lua:6236 + [ ] GetWindowForTitleAndMenuHeight + [x] 72% CalcWindowMinSize imgui.lua:9535 + [x] 86% CalcWindowSizeAfterConstraint imgui.lua:9580 + [x] 79% CalcWindowContentSizes imgui.lua:9615 + [x] 86% CalcWindowAutoFitSize imgui.lua:9640 + [x] 85% ImGui::CalcWindowNextAutoFitSize imgui.lua:9689 + [x] 84% GetWindowBgColorIdx imgui.lua:9700 + [x] 89% CalcResizePosSizeFromAnyCorner imgui.lua:9715 + [x] 94% GetResizeBorderRect imgui.lua:4856 + [ ] ImGui::GetWindowResizeCornerID + [ ] ImGui::GetWindowResizeBorderID + [x] 71% ImGui::UpdateWindowManualResize imgui.lua:9758 + [ ] ClampWindowPos + [x] 95% RenderWindowOuterSingleBorder imgui.lua:10385 + [x] 93% ImGui::RenderWindowOuterBorders imgui.lua:10560 = RenderWindowOuterBorders + [x] 83% ImGui::RenderWindowDecorations imgui.lua:10429 + [x] 93% ImGui::RenderWindowTitleBarContents imgui.lua:10570 + [x] 85% ImGui::UpdateWindowParentAndRootLinks imgui.lua:10666 + [x] 33% ImGui::UpdateWindowSkipRefresh imgui.lua:10696 + [x] 92% SetWindowActiveForSkipRefresh imgui.lua:10748 + [x] 81% ImGui::Begin imgui.lua:11655 + [x] 86% ImGui::End imgui.lua:12712 + [x] 84% ImGui::PushItemFlag imgui.lua:12801 + [x] 96% ImGui::PopItemFlag imgui.lua:12816 + [x] 79% ImGui::BeginDisabled imgui.lua:12831 + [x] 87% ImGui::EndDisabled imgui.lua:12847 + [x] 78% ImGui::BeginDisabledOverrideReenable imgui.lua:12863 + [x] 88% ImGui::EndDisabledOverrideReenable imgui.lua:12874 + [x] 98% ImGui::PushTextWrapPos imgui.lua:14615 + [x] 97% ImGui::PopTextWrapPos imgui.lua:14622 + [x] 100% GetCombinedRootWindow imgui.lua:14633 + [x] 100% ImGui::IsWindowChildOf imgui.lua:14652 + [x] 84% ImGui::IsWindowInBeginStack imgui.lua:14672 + [x] 100% ImGui::IsWindowWithinBeginStackOf imgui.lua:14684 + [x] 91% ImGui::IsWindowAbove imgui.lua:14702 + [x] 90% ImGui::IsWindowHovered imgui.lua:14728 + [x] 67% ImGui::GetWindowDockID imgui.lua:4511 + [x] 67% ImGui::IsWindowDocked imgui.lua:4515 + [x] 100% ImGui::GetWindowWidth imgui.lua:10820 + [x] 74% ImGui::GetWindowHeight imgui.lua:10953 + [x] 56% ImGui::GetWindowPos imgui.lua:10958 + [x] 61% ImGui::SetWindowPos imgui.lua:10828 + [x] 55% ImGui::GetWindowSize imgui.lua:10963 + [x] 76% ImGui::SetWindowSize imgui.lua:10870 + [x] 55% ImGui::SetWindowCollapsed imgui.lua:10915 + [x] 59% ImGui::SetWindowHitTestHole imgui.lua:10939 + [x] 97% ImGui::SetWindowHiddenAndSkipItemsForCurrentFrame imgui.lua:10986 + [x] 55% ImGui::IsWindowCollapsed imgui.lua:10945 + [x] 55% ImGui::IsWindowAppearing imgui.lua:10949 + [x] 72% ImGui::SetNextWindowPos imgui.lua:10995 + [x] 74% ImGui::SetNextWindowSize imgui.lua:11011 + [x] 87% ImGui::SetNextWindowSizeConstraints imgui.lua:11030 + [x] 65% ImGui::SetNextWindowContentSize imgui.lua:11329 + [x] 74% ImGui::SetNextWindowScroll imgui.lua:11336 + [x] 77% ImGui::SetNextWindowCollapsed imgui.lua:11344 + [x] 80% ImGui::SetNextWindowBgAlpha imgui.lua:11039 + [x] 80% ImGui::SetNextWindowViewport imgui.lua:11359 + [x] 76% ImGui::SetNextWindowDockID imgui.lua:4519 + [x] 50% ImGui::SetNextWindowClass imgui.lua:11366 + [x] 69% ImGui::SetNextWindowRefreshPolicy imgui.lua:11376 + [x] 47% ImGui::SetNextWindowFlags imgui.lua:11310 + [x] 47% ImGui::SetNextWindowChildFlags imgui.lua:11292 + [x] 100% ImGui::GetWindowDrawList imgui.lua:11045 + [x] 22% ImGui::GetWindowDpiScale imgui.lua:11396 + [x] 42% ImGui::GetWindowViewport imgui.lua:11400 + [x] 100% ImGui::GetFont imgui.lua:11050 + [ ] ImGui::GetFontBaked + [x] 100% ImGui::GetFontSize imgui.lua:11057 + [x] 100% ImGui::GetFontTexUvWhitePixel imgui.lua:11062 + [-] ImGui::SetWindowFontScale obsolete + [x] 93% ImGui::PushFocusScope imgui.lua:15817 + [x] 56% ImGui::PopFocusScope imgui.lua:15826 + [x] 91% ImGui::IsInNavFocusRoute imgui.lua:15838 + [x] 71% ImGui::SetNavFocusScope imgui.lua:15852 + [x] 76% ImGui::FocusItem imgui.lua:19065 + [x] 100% ImGui::ActivateItemByID imgui.lua:19078 + [x] 81% ImGui::SetKeyboardFocusHere imgui.lua:19037 + [x] 98% ImGui::SetItemDefaultFocus imgui.lua:15892 + [x] 91% ImGui::SetStateStorage imgui.lua:19096 + [x] 74% ImGui::GetStateStorage imgui.lua:19095 + [x] 72% ImGui::IsRectVisible imgui.lua:6782 + + -- FONTS, TEXTURES + [x] 91% ImGui::UpdateTexturesNewFrame imgui.lua:5374 + [x] 84% ImGui::UpdateTexturesEndFrame imgui.lua:5397 + [x] 95% ImGui::UpdateFontsNewFrame imgui.lua:5413 + [x] 100% ImGui::UpdateFontsEndFrame imgui.lua:5442 + [x] 93% ImGui::GetDefaultFont imgui.lua:5447 + [ ] ImGui::RegisterUserTexture + [ ] ImGui::UnregisterUserTexture + [x] 87% ImGui::RegisterFontAtlas imgui.lua:5457 + [x] 84% ImGui::UnregisterFontAtlas imgui.lua:5471 + [x] 92% ImGui::SetCurrentFont imgui.lua:5320 + [x] 72% ImGui::UpdateCurrentFontSize imgui.lua:5265 + [ ] ImGui::SetPixelDensity + [x] 93% ImGui::PushFont imgui.lua:5340 + [x] 86% ImGui::PopFont imgui.lua:5359 + + -- ID STACK + [x] 51% ImGuiWindow::GetID imgui.lua:7510 + [x] 76% ImGuiWindow::GetIDFromPos imgui.lua:7530 + [x] 47% ImGuiWindow::GetIDFromRectangle imgui.lua:7539 + [x] 85% ImGui::PushID imgui.lua:7480 + [x] 87% ImGui::PushOverrideID imgui.lua:7489 + [x] 39% ImGui::GetIDWithSeed imgui.lua:7561 + [x] 97% ImGui::PopID imgui.lua:7499 + [x] 38% ImGui::GetID imgui.lua:7549 + + -- INPUTS + [x] 84% GetModForLRModKey imgui.lua:8376 + [x] 74% ImGui::FixupKeyChord imgui.lua:8393 + [x] 52% ImGui::GetKeyData imgui.lua:8405 + [x] 85% ImGui::GetKeyName imgui.lua:8606 + [x] 43% ImGui::GetKeyChordName imgui.lua:8563 + [x] 76% ImGui::CalcTypematicRepeatAmount imgui.lua:8648 + [x] 81% ImGui::GetTypematicRepeatRate imgui.lua:8679 + [x] 96% ImGui::GetKeyPressedAmount imgui.lua:8692 + [x] 77% ImGui::GetKeyMagnitude2d imgui.lua:8423 + [x] 83% ImGui::UpdateKeyRoutingTable imgui.lua:8707 + [x] 70% GetRoutingIdFromOwnerId imgui.lua:8753 + [x] 84% ImGui::GetShortcutRoutingData imgui.lua:8760 + [x] 86% CalcRoutingScore imgui.lua:8812 + [x] 69% IsKeyChordPotentiallyCharInput imgui.lua:8866 + [x] 73% ImGui::SetShortcutRouting imgui.lua:8893 + [ ] ImGui::TestShortcutRouting + [x] 81% ImGui::IsKeyDown imgui.lua:8472 + [x] 9% ImGui::IsKeyPressed imgui.lua:8487 + [x] 84% ImGui::IsKeyReleased imgui.lua:8496 + [x] 69% ImGui::IsMouseDown imgui.lua:9008 + [x] 13% ImGui::IsMouseClicked imgui.lua:9018 + [x] 69% ImGui::IsMouseReleased imgui.lua:9059 + [x] 86% ImGui::IsMouseReleasedWithDelay imgui.lua:9073 + [x] 71% ImGui::IsMouseDoubleClicked imgui.lua:9089 + [x] 83% ImGui::GetMouseClickedCount imgui.lua:9097 + [x] 99% LastItemOverlayButtonForNullId imgui.lua:9105 + [x] 91% ImGui::GetItemClickedCountWithSingleClickDelay imgui.lua:9141 + [x] 29% ImGui::IsMouseHoveringRect imgui.lua:6266 + [x] 81% ImGui::IsMouseDragPastThreshold imgui.lua:6299 + [x] 77% ImGui::IsMouseDragging imgui.lua:6312 + [x] 67% ImGui::GetMousePos imgui.lua:9167 + [x] 85% ImGui::TeleportMousePos imgui.lua:6326 + [x] 93% ImGui::GetMousePosOnOpeningCurrentPopup imgui.lua:9172 + [x] 80% ImGui::IsMousePosValid imgui.lua:8987 + [x] 75% ImGui::IsAnyMouseDown imgui.lua:8996 + [x] 87% ImGui::GetMouseDragDelta imgui.lua:9186 + [x] 71% ImGui::ResetMouseDragDelta imgui.lua:9205 + [x] 100% ImGui::GetMouseCursor imgui.lua:14287 + [x] 100% ImGui::SetMouseCursor imgui.lua:14296 + [x] 92% UpdateAliasKey imgui.lua:13072 + [x] 42% GetMergedModsFromKeys imgui.lua:13080 + [x] 85% ImGui::UpdateKeyboardInputs imgui.lua:13093 + [x] 88% ImGui::UpdateMouseInputs imgui.lua:13171 + [x] 91% LockWheelingWindow imgui.lua:13279 + [x] 76% FindBestWheelingWindow imgui.lua:13300 + [x] 92% ImGui::UpdateMouseWheel imgui.lua:13350 + [x] 60% ImGui::SetNextFrameWantCaptureKeyboard imgui.lua:19100 + [x] 60% ImGui::SetNextFrameWantCaptureMouse imgui.lua:19101 + [ ] GetInputSourceName + [ ] GetMouseSourceName + [ ] DebugPrintInputEvent + [x] 78% ImGui::UpdateInputEvents imgui.lua:9222 + [x] 80% ImGui::GetKeyOwner imgui.lua:8622 + [x] 84% ImGui::TestKeyOwner imgui.lua:8436 + [x] 80% ImGui::SetKeyOwner imgui.lua:9377 + [x] 59% ImGui::SetKeyOwnersForKeyChord imgui.lua:9399 + [x] 79% ImGui::SetItemKeyOwner imgui.lua:9427 + [x] 85% ImGui::IsKeyChordPressed imgui.lua:9453 + [x] 76% ImGui::SetNextItemShortcut imgui.lua:9474 + [x] 88% ImGui::ItemHandleShortcut imgui.lua:6337 + [x] 78% ImGui::Shortcut imgui.lua:9486 + + -- ERROR CHECKING, STATE RECOVERY + [ ] ImGui::DebugCheckVersionAndDataLayout + [x] 86% ImGui::ErrorCheckUsingSetCursorPosToExtendParentBoundaries imgui.lua:18812 + [ ] ImGui::ErrorCheckNewFrameSanityChecks + [ ] ImGui::ErrorCheckEndFrameSanityChecks + [x] 100% ImGui::ErrorRecoveryStoreState imgui.lua:19707 + [x] 91% ImGui::ErrorRecoveryTryToRecoverState imgui.lua:19725 + [x] 91% ImGui::ErrorRecoveryTryToRecoverWindowState imgui.lua:19754 + [x] 86% ImGui::ErrorLog imgui.lua:19843 + [x] 80% ImGui::ErrorCheckEndFrameFinalizeErrorTooltip imgui.lua:19887 + [x] 77% ImGui::BeginErrorTooltip imgui.lua:19925 + [x] 100% ImGui::EndErrorTooltip imgui.lua:19947 + + -- ITEM SUBMISSION + [x] 100% ImGui::KeepAliveID imgui.lua:6247 + [x] 64% ImGui::ItemAdd imgui.lua:6371 + + -- LAYOUT + [x] 39% ImGui::ItemSize imgui.lua:6484 + [x] 94% ImGui::SameLine imgui.lua:6558 + [x] 64% ImGui::GetCursorScreenPos imgui.lua:6688 + [x] 91% ImGui::SetCursorScreenPos imgui.lua:6696 + [x] 56% ImGui::GetCursorPos imgui.lua:6706 + [x] 100% ImGui::GetCursorPosX imgui.lua:6711 + [x] 100% ImGui::GetCursorPosY imgui.lua:6716 + [x] 66% ImGui::SetCursorPos imgui.lua:6722 + [x] 100% ImGui::SetCursorPosX imgui.lua:6730 + [x] 100% ImGui::SetCursorPosY imgui.lua:6738 + [x] 100% ImGui::GetCursorStartPos imgui.lua:6746 + [x] 70% ImGui::Indent imgui.lua:6584 + [x] 70% ImGui::Unindent imgui.lua:6600 + [x] 80% ImGui::SetNextItemWidth imgui.lua:6617 + [x] 87% ImGui::PushItemWidth imgui.lua:6625 + [x] 90% ImGui::PushMultiItemsWidths imgui.lua:6646 + [x] 95% ImGui::PopItemWidth imgui.lua:6633 + [x] 97% ImGui::CalcItemWidth imgui.lua:6900 + [x] 100% ImGui::CalcItemSize imgui.lua:6928 + [x] 100% ImGui::GetTextLineHeight imgui.lua:6949 + [x] 100% ImGui::GetTextLineHeightWithSpacing imgui.lua:6756 + [x] 100% ImGui::GetFrameHeight imgui.lua:6664 + [x] 100% ImGui::GetFrameHeightWithSpacing imgui.lua:6751 + [x] 74% ImGui::GetContentRegionAvail imgui.lua:6672 + [-] ImGui::GetContentRegionMax obsolete + [-] ImGui::GetWindowContentRegionMin obsolete + [-] ImGui::GetWindowContentRegionMax obsolete + [x] 88% ImGui::BeginGroup imgui.lua:6794 + [x] 91% ImGui::EndGroup imgui.lua:6826 + + -- SCROLLING + [x] 100% CalcScrollEdgeSnap imgui.lua:14852 + [x] 93% CalcNextScrollFromScrollTargetAndClamp imgui.lua:14863 + [x] 78% ImGui::ScrollToItem imgui.lua:14988 + [x] 86% ImGui::ScrollToRect imgui.lua:14996 + [x] 88% ImGui::ScrollToRectEx imgui.lua:14894 + [x] 74% ImGui::GetScrollX imgui.lua:14979 + [x] 74% ImGui::GetScrollY imgui.lua:14983 + [x] 74% ImGui::GetScrollMaxX imgui.lua:14975 + [x] 100% ImGui::GetScrollMaxY imgui.lua:14970 + [x] 75% ImGui::SetScrollX imgui.lua:15031 + [x] 75% ImGui::SetScrollY imgui.lua:15040 + [x] 78% ImGui::SetScrollFromPosX imgui.lua:15060 + [x] 78% ImGui::SetScrollFromPosY imgui.lua:15072 + [x] 95% ImGui::SetScrollHereX imgui.lua:15002 + [x] 95% ImGui::SetScrollHereY imgui.lua:15016 + + -- TOOLTIPS + [x] 100% ImGui::BeginTooltip imgui.lua:15140 + [x] 100% ImGui::BeginItemTooltip imgui.lua:15144 + [x] 83% ImGui::BeginTooltipEx imgui.lua:15087 + [x] 73% ImGui::EndTooltip imgui.lua:15151 + [x] 21% ImGui::SetTooltip imgui.lua:15158 + [ ] ImGui::SetTooltipV + [x] 52% ImGui::SetItemTooltip imgui.lua:15170 + [ ] ImGui::SetItemTooltipV + + -- POPUPS + [x] 73% ImGui::IsPopupOpen imgui.lua:11493 + [x] 82% ImGui::GetTopMostPopupModal imgui.lua:11528 + [x] 81% ImGui::GetTopMostAndVisiblePopupModal imgui.lua:18865 + [x] 79% ImGui::FindBlockingModal imgui.lua:15194 + [x] 26% ImGui::OpenPopup imgui.lua:15227 + [x] 86% ImGui::OpenPopupEx imgui.lua:15248 + [x] 73% ImGui::ClosePopupsOverWindow imgui.lua:15311 + [x] 80% ImGui::ClosePopupsExceptModals imgui.lua:18931 + [x] 62% ImGui::ClosePopupToLevel imgui.lua:15369 + [x] 81% ImGui::CloseCurrentPopup imgui.lua:15405 + [x] 81% ImGui::BeginPopupEx imgui.lua:15445 + [x] 80% ImGui::BeginPopupMenuEx imgui.lua:15468 + [x] 83% ImGui::BeginPopup imgui.lua:15494 + [x] 83% ImGui::BeginPopupModal imgui.lua:18949 + [x] 95% ImGui::EndPopup imgui.lua:15507 + [x] 38% ImGui::GetMouseButtonFromPopupFlags imgui.lua:15728 + [x] 94% ImGui::IsPopupOpenRequestForItem imgui.lua:15740 + [x] 85% ImGui::IsPopupOpenRequestForWindow imgui.lua:18979 + [x] 83% ImGui::OpenPopupOnItemClick imgui.lua:15757 + [x] 83% ImGui::BeginPopupContextItem imgui.lua:15791 + [x] 85% ImGui::BeginPopupContextWindow imgui.lua:18993 + [x] 88% ImGui::BeginPopupContextVoid imgui.lua:19003 + [x] 87% ImGui::FindBestWindowPosForPopupEx imgui.lua:15544 + [x] 87% ImGui::GetPopupAllowedExtentRect imgui.lua:15637 + [x] 92% ImGui::FindBestWindowPosForPopup imgui.lua:15660 + + -- WINDOW FOCUS + [x] 51% ImGui::SetWindowFocus imgui.lua:10969 + [x] 71% ImGui::SetNextWindowFocus imgui.lua:11353 + [x] 87% ImGui::IsWindowFocused imgui.lua:14784 + [x] 94% ImGui::FindWindowFocusIndex imgui.lua:7178 + [x] 81% ImGui::UpdateWindowInFocusOrderList imgui.lua:7213 + [x] 82% ImGui::BringWindowToFocusFront imgui.lua:7238 + [x] 56% ImGui::BringWindowToDisplayFront imgui.lua:7264 + [x] 54% ImGui::BringWindowToDisplayBack imgui.lua:18839 + [x] 35% ImGui::BringWindowToDisplayBehind imgui.lua:7285 + [x] 41% ImGui::FindWindowDisplayIndex imgui.lua:18833 + [x] 87% ImGui::FocusWindow imgui.lua:7099 + [x] 84% ImGui::FocusTopMostWindowUnderOne imgui.lua:7297 + + -- KEYBOARD/GAMEPAD NAVIGATION + [x] 93% ImGui::SetNavCursorVisible imgui.lua:19084 + [x] 94% ImGui::SetNavCursorVisibleAfterMove imgui.lua:15913 + [x] 80% ImGui::SetNavWindow imgui.lua:15929 + [x] 100% ImGui::NavHighlightActivated imgui.lua:16009 + [x] 100% ImGui::NavClearPreferredPosForAxis imgui.lua:15943 + [x] 95% ImGui::SetNavID imgui.lua:15952 + [x] 96% ImGui::SetFocusID imgui.lua:7337 + [x] 90% ImGetDirQuadrantFromDelta imgui.lua:16979 + [x] 100% NavScoreItemDistInterval imgui.lua:16986 + [x] 77% ImGui::NavScoreItem imgui.lua:17000 + [x] 93% ImGui::NavApplyItemToResult imgui.lua:17106 + [x] 100% ImGui::NavUpdateCurrentWindowIsScrollPushableX imgui.lua:17433 + [x] 94% ImGui::NavProcessItem imgui.lua:17198 + [x] 90% ImGui::NavProcessItemForTabbingRequest imgui.lua:17138 + [x] 100% ImGui::NavMoveRequestButNoResultYet imgui.lua:16974 + [x] 89% ImGui::NavMoveRequestSubmit imgui.lua:16452 + [x] 92% ImGui::NavMoveRequestResolveWithLastItem imgui.lua:17121 + [x] 92% ImGui::NavMoveRequestResolveWithPastTreeNode imgui.lua:17442 + [x] 93% ImGui::NavMoveRequestCancel imgui.lua:17453 + [x] 95% ImGui::NavMoveRequestForward imgui.lua:17465 + [x] 78% ImGui::NavMoveRequestTryWrapping imgui.lua:17480 + [x] 93% ImGui::NavSaveLastChildNavWindowIntoParent imgui.lua:15970 + [x] 57% ImGui::NavRestoreLastChildNavWindow imgui.lua:15983 + [x] 86% ImGui::NavRestoreLayer imgui.lua:15991 + [x] 100% ImGui::NavUpdateAnyRequestFlag imgui.lua:16015 + [x] 88% ImGui::NavInitWindow imgui.lua:16026 + [x] 97% ImGui::NavCalcPreferredRefPosSource imgui.lua:16058 + [x] 94% ImGui::NavCalcPreferredRefPos imgui.lua:16077 + [x] 91% ImGui::GetNavTweakPressedAmount imgui.lua:16119 + [x] 85% ImGui::NavUpdate imgui.lua:16721 + [x] 88% ImGui::NavInitRequestApplyResult imgui.lua:17272 + [x] 81% NavBiasScoringRect imgui.lua:16481 + [x] 83% ImGui::NavUpdateCreateMoveRequest imgui.lua:16582 + [x] 87% ImGui::NavUpdateCreateTabbingRequest imgui.lua:16692 + [x] 85% ImGui::NavMoveRequestApplyResult imgui.lua:17303 + [x] 91% ImGui::NavUpdateCancelRequest imgui.lua:16929 + [x] 83% ImGui::NavUpdateContextMenuRequest imgui.lua:16417 + [x] 90% ImGui::NavUpdatePageUpPageDown imgui.lua:16513 + [x] 81% ImGui::NavEndFrame imgui.lua:19219 + [x] 83% ImGui::NavUpdateCreateWrappingRequest imgui.lua:19163 + [x] 85% ImGui::IsWindowNavFocusable imgui.lua:7192 + [x] 67% FindWindowNavFocusable imgui.lua:7200 + [x] 86% NavUpdateWindowingTarget imgui.lua:16147 + [x] 92% ImGui::NavUpdateWindowingApplyFocus imgui.lua:16170 + [x] 88% ImGui::NavUpdateWindowing imgui.lua:16208 + [x] 67% GetFallbackWindowNameForWindowingList imgui.lua:19120 + [x] 84% ImGui::NavUpdateWindowingOverlay imgui.lua:19134 + + -- DRAG AND DROP + [x] 55% ImGui::IsDragDropActive imgui.lua:525 + [x] 73% ImGui::ClearDragDrop imgui.lua:529 + [x] 82% ImGui::BeginTooltipHidden imgui.lua:19016 + [x] 88% ImGui::BeginDragDropSource imgui.lua:547 + [x] 86% ImGui::EndDragDropSource imgui.lua:648 + [x] 62% ImGui::SetDragDropPayload imgui.lua:665 + [x] 92% ImGui::BeginDragDropTargetCustom imgui.lua:687 + [x] 89% ImGui::BeginDragDropTargetViewport imgui.lua:711 + [x] 87% ImGui::BeginDragDropTarget imgui.lua:734 + [x] 92% ImGui::IsDragDropPayloadBeingAccepted imgui.lua:760 + [x] 87% ImGui::AcceptDragDropPayload imgui.lua:766 + [x] 88% ImGui::RenderDragDropTargetRectForItem imgui.lua:807 + [x] 83% ImGui::RenderDragDropTargetRectForViewport imgui.lua:819 + [x] 95% ImGui::RenderDragDropTargetRectEx imgui.lua:828 + [x] 88% ImGui::GetDragDropPayload imgui.lua:835 + [x] 94% ImGui::EndDragDropTarget imgui.lua:840 + + -- LOGGING/CAPTURING + [x] 19% LogTextV imgui.lua:6098 = ImGui . LogText + [x] 45% ImGui::LogText imgui.lua:6093 + [x] 87% ImGui::LogTextV imgui.lua:6098 = ImGui . LogText + [x] 82% ImGui::LogRenderedText imgui.lua:6104 + [x] 83% ImGui::LogBegin imgui.lua:6152 + [x] 100% ImGui::LogSetNextTextDecoration imgui.lua:6168 + [x] 86% ImGui::LogToTTY imgui.lua:6174 + [~] 4% ImGui::LogToFile imgui.lua:6182 stub + [x] 90% ImGui::LogToClipboard imgui.lua:6188 + [x] 90% ImGui::LogToBuffer imgui.lua:6194 + [x] 73% ImGui::LogFinish imgui.lua:6200 + [x] 85% ImGui::LogButtons imgui.lua:6216 + + -- SETTINGS + [x] 80% ImGui::UpdateSettings imgui.lua:5770 + [x] 82% ImGui::MarkIniSettingsDirty imgui.lua:5790 + [x] 58% ImGui::AddSettingsHandler imgui.lua:5799 + [x] 76% ImGui::RemoveSettingsHandler imgui.lua:5806 + [x] 90% ImGui::FindSettingsHandler imgui.lua:5812 + [x] 79% ImGui::ClearIniSettings imgui.lua:5822 + [x] 48% ImGui::CleanupIniSettings imgui.lua:5830 + [x] 27% ImGui::LoadIniSettingsFromDisk imgui.lua:5841 + [x] 50% ImGui::LoadIniSettingsFromMemory imgui.lua:5851 + [x] 33% ImGui::SaveIniSettingsToDisk imgui.lua:5894 + [x] 59% ImGui::SaveIniSettingsToMemory imgui.lua:5902 + [x] 51% ImGui::CreateNewWindowSettings imgui.lua:5913 + [x] 71% ImGui::FindWindowSettingsByID imgui.lua:5617 + [x] 92% ImGui::FindWindowSettingsByWindow imgui.lua:5605 + [x] 74% ImGui::ClearWindowSettings imgui.lua:5930 + [x] 88% WindowSettingsHandler_ClearAll imgui.lua:5944 + [ ] WindowSettingsHandler_Cleanup + [x] 75% WindowSettingsHandler_ReadOpen imgui.lua:5950 + [x] 41% WindowSettingsHandler_ReadLine imgui.lua:5966 + [x] 71% WindowSettingsHandler_ApplyAll imgui.lua:5990 + [x] 78% WindowSettingsHandler_WriteAll imgui.lua:6001 + + -- LOCALIZATION + [x] 84% ImGui::LocalizeRegisterEntries imgui.lua:17506 + + -- VIEWPORTS, PLATFORM WINDOWS + [x] 83% ImGuiViewport::GetDebugName imgui.lua:17540 + [x] 76% ImGuiPlatformIO::ClearPlatformHandlers imgui.lua:17545 + [x] 69% ImGuiPlatformIO::ClearRendererHandlers imgui.lua:17559 + [x] 88% ImGui::GetMainViewport imgui.lua:17568 + [x] 88% ImGui::FindViewportByID imgui.lua:17577 + [ ] ImGui::FindViewportByPlatformHandle + [x] 98% ImGui::SetCurrentViewport imgui.lua:17589 + [x] 99% ImGui::SetWindowViewport imgui.lua:17617 + [x] 86% ImGui::GetWindowAlwaysWantOwnViewport imgui.lua:17630 + [x] 86% IsViewportAbove imgui.lua:17652 + [x] 89% ImGui::UpdateTryMergeWindowIntoHostViewport imgui.lua:17677 + [x] 83% ImGui::UpdateTryMergeWindowIntoHostViewports imgui.lua:17737 + [x] 88% ImGui::TranslateWindowsInViewport imgui.lua:17749 + [x] 94% ImGui::ScaleWindowsInViewport imgui.lua:14824 + [x] 85% ImGui::FindHoveredViewportFromPlatformWindowStack imgui.lua:17775 + [x] 87% ImGui::UpdateViewportsNewFrame imgui.lua:17792 + [x] 78% ImGui::UpdateViewportsEndFrame imgui.lua:18079 + [x] 81% ImGui::AddUpdateViewport imgui.lua:18113 + [x] 80% ImGui::DestroyViewport imgui.lua:18193 + [x] 93% ImGui::WindowSelectViewport imgui.lua:18219 + [x] 73% ImGui::WindowSyncOwnedViewport imgui.lua:18345 + [x] 88% ImGui::UpdatePlatformWindows imgui.lua:18449 + [x] 85% ImGui::RenderPlatformWindowsDefault imgui.lua:18567 + [x] 87% ImGui::FindPlatformMonitorForPos imgui.lua:18599 + [x] 78% ImGui::FindPlatformMonitorForRect imgui.lua:18615 + [x] 93% ImGui::UpdateViewportPlatformMonitor imgui.lua:18656 + [x] 89% ImGui::GetViewportPlatformMonitor imgui.lua:18663 + [x] 97% ImGui::DestroyPlatformWindow imgui.lua:18675 + [x] 77% ImGui::DestroyPlatformWindows imgui.lua:18701 + + -- DOCKING + [x] 61% ImGuiDockRequest::ImGuiDockRequest imgui.lua:1019 + [x] 67% ImGuiDockPreviewData::ImGuiDockPreviewData imgui.lua:1108 + [x] 23% ImGuiDockNodeSettings::ImGuiDockNodeSettings imgui.lua:1032 + [x] 53% DockNodeGetHostWindowTitle imgui.lua:1121 + [x] 96% ImGui::DockContextInitialize imgui.lua:1172 + [x] 26% ImGui::DockContextShutdown imgui.lua:1190 + [x] 67% ImGui::DockContextClearNodes imgui.lua:1197 + [x] 87% ImGui::DockContextRebuildNodes imgui.lua:1204 + [x] 70% ImGui::DockContextNewFrameUpdateUndocking imgui.lua:1214 + [x] 71% ImGui::DockContextNewFrameUpdateDocking imgui.lua:1252 + [x] 76% ImGui::DockContextEndFrame imgui.lua:1287 + [x] 82% ImGui::DockContextFindNodeByID imgui.lua:1302 + [x] 84% ImGui::DockContextGenNodeID imgui.lua:1306 + [x] 82% ImGui::DockContextAddNode imgui.lua:1315 + [x] 87% ImGui::DockContextRemoveNode imgui.lua:1329 + [x] 69% ImGui::DockContextDeleteNode imgui.lua:1353 + [ ] DockNodeComparerDepthMostFirst + [ ] ImGuiDockContextPruneNodeData::ImGuiDockContextPruneNodeData + [x] 58% ImGui::DockContextPruneUnusedSettingsNodes imgui.lua:1360 + [x] 85% ImGui::DockContextBuildNodesFromSettings imgui.lua:1435 + [x] 85% ImGui::DockContextBuildAddWindowsToNodes imgui.lua:1465 + [x] 96% ImGui::DockContextQueueDock imgui.lua:1492 + [x] 91% ImGui::DockContextQueueUndockWindow imgui.lua:1505 + [x] 91% ImGui::DockContextQueueUndockNode imgui.lua:1512 + [x] 73% ImGui::DockContextQueueNotifyRemovedNode imgui.lua:1519 + [x] 88% ImGui::DockContextProcessDock imgui.lua:1525 + [x] 50% FixLargeWindowsWhenUndocking imgui.lua:1650 + [x] 71% ImGui::DockContextProcessUndockWindow imgui.lua:1656 + [x] 84% ImGui::DockContextProcessUndockNode imgui.lua:1673 + [x] 69% ImGui::DockContextCalcDropPosForDocking imgui.lua:1709 + [x] 64% ImGuiDockNode::ImGuiDockNode imgui.lua:1049 + [-] ImGuiDockNode::~ImGuiDockNode c++-only + [x] 91% ImGui::DockNodeGetTabOrder imgui.lua:1757 + [x] 90% DockNodeHideWindowDuringHostWindowCreation imgui.lua:1764 + [x] 91% ImGui::DockNodeAddWindow imgui.lua:1769 + [x] 83% ImGui::DockNodeRemoveWindow imgui.lua:1822 + [x] 94% ImGui::DockNodeMoveChildNodes imgui.lua:1877 + [x] 88% ImGui::DockNodeMoveWindows imgui.lua:1889 + [x] 89% ImGui::DockNodeApplyPosSizeToWindows imgui.lua:1919 + [x] 92% ImGui::DockNodeHideHostWindow imgui.lua:1926 + [ ] ImGuiDockNodeTreeInfo::ImGuiDockNodeTreeInfo + [x] 93% DockNodeFindInfo imgui.lua:1939 + [x] 90% ImGui::DockNodeFindWindowByID imgui.lua:1954 + [x] 87% ImGui::DockNodeUpdateFlagsAndCollapse imgui.lua:1964 + [x] 96% ImGui::DockNodeUpdateHasCentralNodeChild imgui.lua:2040 + [x] 79% ImGui::DockNodeUpdateVisibleFlag imgui.lua:2053 + [x] 92% ImGui::DockNodeStartMouseMovingWindow imgui.lua:2062 + [x] 86% ImGui::DockNodeUpdateForRootNode imgui.lua:2072 + [x] 100% DockNodeSetupHostWindow imgui.lua:2108 + [x] 86% ImGui::DockNodeUpdate imgui.lua:2121 + [x] 68% TabItemComparerByDockOrder imgui.lua:2415 + [x] 86% ImGui::DockNodeWindowMenuHandler_Default imgui.lua:2428 + [x] 94% ImGui::DockNodeWindowMenuUpdate imgui.lua:2449 + [x] 95% ImGui::DockNodeBeginAmendTabBar imgui.lua:2465 + [x] 75% ImGui::DockNodeEndAmendTabBar imgui.lua:2476 + [x] 77% IsDockNodeTitleBarHighlighted imgui.lua:2482 + [x] 81% ImGui::DockNodeUpdateTabBar imgui.lua:2507 + [x] 96% ImGui::DockNodeAddTabBar imgui.lua:2765 + [x] 86% ImGui::DockNodeRemoveTabBar imgui.lua:2770 + [x] 92% DockNodeIsDropAllowedOne imgui.lua:2775 + [x] 86% ImGui::DockNodeIsDropAllowed imgui.lua:2804 + [x] 83% ImGui::DockNodeCalcTabBarLayout imgui.lua:2817 + [x] 77% ImGui::DockNodeCalcSplitRects imgui.lua:2846 + [x] 85% ImGui::DockNodeCalcDropRectsAndTestMousePos imgui.lua:2882 + [x] 84% ImGui::DockNodePreviewDockSetup imgui.lua:2932 + [x] 79% ImGui::DockNodePreviewDockRender imgui.lua:3019 + [x] 83% ImGui::DockNodeTreeSplit imgui.lua:3139 + [x] 78% ImGui::DockNodeTreeMerge imgui.lua:3186 + [x] 74% ImGui::DockNodeTreeUpdatePosSize imgui.lua:3228 + [x] 96% DockNodeTreeUpdateSplitterFindTouchingNode imgui.lua:3304 + [x] 76% ImGui::DockNodeTreeUpdateSplitter imgui.lua:3324 + [x] 85% ImGui::DockNodeTreeFindFallbackLeafNode imgui.lua:3410 + [x] 80% ImGui::DockNodeTreeFindVisibleNodeByPos imgui.lua:3419 + [x] 87% ImGui::SetWindowDock imgui.lua:3443 + [x] 79% ImGui::DockSpace imgui.lua:3474 + [x] 76% ImGui::DockSpaceOverViewport imgui.lua:3576 + [x] 89% ImGui::DockBuilderDockWindow imgui.lua:3639 + [x] 57% ImGui::DockBuilderGetNode imgui.lua:3657 + [x] 76% ImGui::DockBuilderSetNodePos imgui.lua:3667 + [x] 78% ImGui::DockBuilderSetNodeSize imgui.lua:3674 + [x] 74% ImGui::DockBuilderAddNode imgui.lua:3690 + [x] 87% ImGui::DockBuilderRemoveNode imgui.lua:3708 + [x] 63% ImGui::DockBuilderRemoveNodeChildNodes imgui.lua:3724 + [x] 84% ImGui::DockBuilderRemoveNodeDockedWindows imgui.lua:3792 + [x] 79% ImGui::DockBuilderSplitNode imgui.lua:3823 + [x] 75% DockBuilderCopyNodeRec imgui.lua:3849 + [x] 82% ImGui::DockBuilderCopyNode imgui.lua:3874 + [x] 76% ImGui::DockBuilderCopyWindowSettings imgui.lua:3890 + [x] 66% ImGui::DockBuilderCopyDockSpace imgui.lua:3917 + [x] 50% ImGui::DockBuilderFinish imgui.lua:3989 + [x] 89% ImGui::GetWindowAlwaysWantOwnTabBar imgui.lua:4004 + [x] 95% ImGui::DockContextBindNodeToWindow imgui.lua:4014 + [x] 84% StoreDockStyleForWindow imgui.lua:4062 = StoreDockStyleForWindow + [x] 88% ImGui::BeginDocked imgui.lua:4065 + [x] 89% ImGui::BeginDockableDragDropSource imgui.lua:4178 + [x] 91% ImGui::BeginDockableDragDropTarget imgui.lua:4207 + [x] 62% ImGui::DockSettingsRenameNodeReferences imgui.lua:4302 + [x] 68% ImGui::DockSettingsRemoveNodeReferences imgui.lua:4315 + [x] 46% ImGui::DockSettingsFindNodeSettings imgui.lua:4332 + [x] 91% ImGui::DockSettingsHandler_ClearAll imgui.lua:4341 + [x] 93% ImGui::DockSettingsHandler_ApplyAll imgui.lua:4348 + [x] 63% ImGui::DockSettingsHandler_ReadOpen imgui.lua:4356 + [x] 32% ImGui::DockSettingsHandler_ReadLine imgui.lua:4361 + [x] 80% DockSettingsHandler_DockNodeToSettings imgui.lua:4425 + [x] 52% ImGui::DockSettingsHandler_WriteAll imgui.lua:4442 + + -- PLATFORM DEPENDENT HELPERS + [-] Platform_SetClipboardTextFn_DefaultImpl os-specific + [-] Platform_GetClipboardTextFn_DefaultImpl os-specific + [ ] Platform_OpenInShellFn_DefaultImpl + [-] Platform_SetImeDataFn_DefaultImpl os-specific + [ ] InitializeDefaultPlatformHandlers + + -- METRICS/DEBUGGER WINDOW + [x] 97% MetricsHelpMarker imgui.lua:19983 = MetricsHelpMarker + [x] 93% ImGui::DebugRenderViewportThumbnail imgui.lua:18724 + [x] 92% RenderViewportsThumbnails imgui.lua:18763 + [ ] ViewportComparerByLastFocusedStampCount + [ ] ImGui::DebugRenderKeyboardPreview + [x] 52% ImGui::DebugTextEncoding imgui.lua:20874 + [ ] DebugFlashStyleColorStop + [ ] ImGui::DebugFlashStyleColor + [ ] ImGui::UpdateDebugToolFlashStyleColor + [ ] ImGui::DebugTextureIDToU64 + [ ] FormatTextureRefForDebugDisplay + [x] 52% ImGui::ShowFontAtlas imgui.lua:20173 + [x] 84% ImGui::DebugNodeTexture imgui.lua:20140 + [x] 42% ImGui::ShowMetricsWindow imgui.lua:20939 + [ ] ImGui::DebugBreakClearData + [ ] ImGui::DebugBreakButtonTooltip + [ ] ImGui::DebugBreakButton + [x] 87% ImGui::DebugNodeColumns imgui.lua:20518 + [x] 48% DebugNodeDockNodeFlags imgui.lua:20706 + [x] 79% ImGui::DebugNodeDockNode imgui.lua:20723 + [x] 28% ImGui::DebugNodeDrawList imgui.lua:20540 + [ ] ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox + [ ] CalcFontGlyphSrcOverlapMask + [x] 60% ImGui::DebugNodeFont imgui.lua:20063 + [x] 70% ImGui::DebugNodeFontGlyphsForSrcMask imgui.lua:20019 + [x] 89% ImGui::DebugNodeFontGlyph imgui.lua:20005 + [x] 37% ImGui::DebugNodeStorage imgui.lua:20528 + [x] 68% ImGui::DebugNodeTabBar imgui.lua:20601 + [x] 62% ImGui::DebugNodeViewport imgui.lua:20856 + [ ] ImGui::DebugNodePlatformMonitor + [x] 70% ImGui::DebugNodeWindow imgui.lua:20767 + [x] 87% ImGui::DebugNodeWindowSettings imgui.lua:20825 + [x] 73% ImGui::DebugNodeWindowsList imgui.lua:20831 + [x] 67% ImGui::DebugNodeWindowsListByBeginStackParent imgui.lua:20842 + + -- DEBUG LOG WINDOW + [x] 5% ImGui::DebugLog imgui.lua:19824 + [ ] ImGui::DebugLogV + [x] 93% SameLineOrWrap imgui.lua:20245 + [x] 61% ShowDebugLogFlag imgui.lua:20252 + [x] 65% ImGui::ShowDebugLogWindow imgui.lua:20265 + [ ] ImGui::DebugTextUnformattedWithLocateItem + + -- OTHER DEBUG TOOLS (ITEM PICKER, ID STACK TOOL) + [ ] ImGui::DebugDrawCursorPos + [ ] ImGui::DebugDrawLineExtents + [ ] ImGui::DebugDrawItemRect + [ ] ImGui::DebugLocateItem + [ ] ImGui::DebugLocateItemOnHover + [ ] ImGui::DebugLocateItemResolveWithLastItem + [ ] ImGui::DebugStartItemPicker + [ ] ImGui::UpdateDebugToolItemPicker + [x] 75% DebugItemPathQuery_UpdateAndGetHookId imgui.lua:20336 + [x] 49% ImGui::UpdateDebugToolItemPathQuery imgui.lua:20365 + [x] 47% ImGui::DebugHookIdInfo imgui.lua:20377 + [ ] DebugItemPathQuery_FormatLevelInfo + [ ] DebugItemPathQuery_GetResultAsPath + [x] 51% ImGui::ShowIDStackToolWindow imgui.lua:20436 + [x] 78% ImGui::ShowFontSelector imgui.lua:19989 + +==================================================================================================== +imgui_widgets.cpp +==================================================================================================== + + -- Widgets: Text, etc. + [x] 80% ImGui::TextEx imgui_widgets.lua:77 + [x] 100% ImGui::TextUnformatted imgui_widgets.lua:192 + [x] 29% ImGui::Text imgui_widgets.lua:212 + [x] 72% ImGui::TextV imgui_widgets.lua:199 + [x] 30% ImGui::TextColored imgui_widgets.lua:223 + [x] 83% ImGui::TextColoredV imgui_widgets.lua:7395 = ImGui . TextColored(...) + [x] 17% ImGui::TextDisabled imgui_widgets.lua:231 + [x] 89% ImGui::TextDisabledV imgui_widgets.lua:7396 = ImGui . TextDisabled(...) + [x] 10% ImGui::TextWrapped imgui_widgets.lua:240 + [x] 91% ImGui::TextWrappedV imgui_widgets.lua:7397 = ImGui . TextWrapped(...) + [x] 1% ImGui::TextAligned imgui_widgets.lua:259 + [x] 67% ImGui::TextAlignedV imgui_widgets.lua:7398 = ImGui . TextAligned(...) + [x] 4% ImGui::LabelText imgui_widgets.lua:295 + [x] 89% ImGui::LabelTextV imgui_widgets.lua:7399 = ImGui . LabelText(...) + [x] 2% ImGui::BulletText imgui_widgets.lua:330 + [x] 86% ImGui::BulletTextV imgui_widgets.lua:7400 = ImGui . BulletText(...) + + -- Widgets: Main + [x] 85% ImGui::ButtonBehavior imgui_widgets.lua:479 + [x] 83% ImGui::ButtonEx imgui_widgets.lua:734 + [x] 100% ImGui::Button imgui_widgets.lua:792 + [x] 99% ImGui::SmallButton imgui_widgets.lua:799 + [x] 72% ImGui::InvisibleButton imgui_widgets.lua:813 + [x] 87% ImGui::ArrowButtonEx imgui_widgets.lua:844 + [x] 97% ImGui::ArrowButton imgui_widgets.lua:876 + [x] 79% ImGui::CloseButton imgui_widgets.lua:885 + [x] 90% ImGui::CollapseButton imgui.lua:4558 + [x] 52% ImGui::GetWindowScrollbarID imgui_widgets.lua:961 + [x] 90% ImGui::GetWindowScrollbarRect imgui_widgets.lua:974 + [x] 99% ImGui::ExtendHitBoxWhenNearViewportEdge imgui_widgets.lua:997 + [x] 88% ImGui::Scrollbar imgui_widgets.lua:1174 + [x] 85% ImGui::ScrollbarEx imgui_widgets.lua:1025 + [x] 84% ImGui::ImageWithBg imgui_widgets.lua:1198 + [x] 28% ImGui::Image imgui_widgets.lua:1236 + [x] 92% ImGui::ImageButtonEx imgui_widgets.lua:1248 + [x] 98% ImGui::ImageButton imgui_widgets.lua:1292 + [x] 81% ImGui::Checkbox imgui_widgets.lua:1307 + [x] 79% ImGui::CheckboxFlagsT imgui_widgets.lua:1421 = ImGui . CheckboxFlags + [x] 7% ImGui::CheckboxFlags imgui_widgets.lua:1400 + [x] 5% ImGui::RadioButton imgui_widgets.lua:1496 + [x] 93% ImGui::ProgressBar imgui_widgets.lua:1508 + [x] 97% ImGui::Bullet imgui_widgets.lua:1571 + [x] 86% ImGui::TextLink imgui_widgets.lua:1598 + [x] 95% ImGui::TextLinkOpenURL imgui_widgets.lua:1653 + + -- Widgets: Low-level Layout helpers + [x] 96% ImGui::Spacing imgui_widgets.lua:1686 + [x] 93% ImGui::Dummy imgui_widgets.lua:1695 + [x] 96% ImGui::NewLine imgui_widgets.lua:1706 + [x] 100% ImGui::AlignTextToFramePadding imgui_widgets.lua:1726 + [x] 91% ImGui::SeparatorEx imgui_widgets.lua:1742 + [x] 87% ImGui::Separator imgui_widgets.lua:1809 + [x] 94% ImGui::SeparatorTextEx imgui_widgets.lua:1836 + [x] 100% ImGui::SeparatorText imgui_widgets.lua:1897 + [x] 82% ImGui::SplitterBehavior imgui.lua:4592 + [ ] ShrinkWidthItemComparer + [x] 58% ImGui::ShrinkWidths imgui_widgets.lua:9317 + + -- Widgets: ComboBox + [x] 100% CalcMaxPopupHeightFromItemCount imgui_widgets.lua:1926 + [x] 80% ImGui::BeginCombo imgui_widgets.lua:1937 + [x] 85% ImGui::BeginComboPopup imgui_widgets.lua:2053 + [x] 65% ImGui::EndCombo imgui_widgets.lua:2126 + [x] 72% ImGui::BeginComboPreview imgui_widgets.lua:2144 + [x] 80% ImGui::EndComboPreview imgui_widgets.lua:2176 + [x] 36% Items_ArrayGetter imgui_widgets.lua:2204 + [x] 41% Items_SingleStringGetter imgui_widgets.lua:2209 + [x] 67% ImGui::Combo imgui_widgets.lua:2252 + + -- Data Type and Data Formatting Helpers [Internal] + [x] 93% ImGui::DataTypeGetInfo imgui_widgets.lua:2352 + [x] 51% ImGui::DataTypeFormatString imgui_widgets.lua:2362 + [x] 65% ImGui::DataTypeApplyOp imgui_widgets.lua:2390 + [x] 69% ImGui::DataTypeApplyFromText imgui_widgets.lua:2455 + [x] 97% DataTypeCompareT imgui_widgets.lua:2516 + [x] 47% ImGui::DataTypeCompare imgui_widgets.lua:2525 + [x] 75% DataTypeClampT imgui_widgets.lua:2544 + [x] 42% ImGui::DataTypeClamp imgui_widgets.lua:2555 + [x] 93% ImGui::DataTypeIsZero imgui_widgets.lua:2571 + [x] 53% GetMinimumStepAtDecimalPrecision imgui_widgets.lua:2582 + [x] 58% ImGui::RoundScalarWithFormatT imgui_widgets.lua:2600 + + -- Widgets: DragScalar, DragFloat, DragInt, etc. + [x] 85% ImGui::DragBehaviorT imgui_widgets.lua:3153 + [ ] ShortcutsForCancel + [x] 59% ImGui::DragBehavior imgui_widgets.lua:3309 + [x] 74% TempInputIsClampEnabled imgui_widgets.lua:3356 + [x] 79% ImGui::DragScalar imgui_widgets.lua:3398 + [x] 70% ImGui::DragScalarN imgui_widgets.lua:3538 + [x] 52% ImGui::DragFloat imgui_widgets.lua:3508 + [x] n/a ImGui::DragFloat2 imgui_widgets.lua:3588 = DragFloatN ( 2 ) + [x] n/a ImGui::DragFloat3 imgui_widgets.lua:3589 = DragFloatN ( 3 ) + [x] n/a ImGui::DragFloat4 imgui_widgets.lua:3590 = DragFloatN ( 4 ) + [x] 67% ImGui::DragFloatRange2 imgui_widgets.lua:3635 + [x] 52% ImGui::DragInt imgui_widgets.lua:3527 + [x] n/a ImGui::DragInt2 imgui_widgets.lua:3591 = DragIntN ( 2 ) + [x] n/a ImGui::DragInt3 imgui_widgets.lua:3592 = DragIntN ( 3 ) + [x] n/a ImGui::DragInt4 imgui_widgets.lua:3593 = DragIntN ( 4 ) + [x] 67% ImGui::DragIntRange2 imgui_widgets.lua:3639 + + -- Widgets: SliderScalar, SliderFloat, SliderInt, etc. + [x] 89% ImGui::ScaleRatioFromValueT imgui_widgets.lua:3673 + [x] 89% ImGui::ScaleValueFromRatioT imgui_widgets.lua:3750 + [x] 88% ImGui::SliderBehaviorT imgui_widgets.lua:3838 + [x] 58% ImGui::SliderBehavior imgui_widgets.lua:4014 + [x] 75% ImGui::SliderScalar imgui_widgets.lua:4067 + [x] 74% ImGui::SliderScalarN imgui_widgets.lua:4180 + [x] 71% ImGui::SliderFloat imgui_widgets.lua:4256 + [x] 100% ImGui::SliderFloat2 imgui_widgets.lua:4226 + [x] 100% ImGui::SliderFloat3 imgui_widgets.lua:4236 + [x] 100% ImGui::SliderFloat4 imgui_widgets.lua:4246 + [x] 74% ImGui::SliderAngle imgui_widgets.lua:4271 + [x] 71% ImGui::SliderInt imgui_widgets.lua:4292 + [x] 95% ImGui::SliderInt2 imgui_widgets.lua:4299 + [x] 95% ImGui::SliderInt3 imgui_widgets.lua:4303 + [x] 95% ImGui::SliderInt4 imgui_widgets.lua:4307 + [x] 80% ImGui::VSliderScalar imgui_widgets.lua:4319 + [x] 84% ImGui::VSliderFloat imgui_widgets.lua:4395 + [x] 84% ImGui::VSliderInt imgui_widgets.lua:4408 + + -- Widgets: InputScalar, InputFloat, InputInt, etc. + [x] 44% ImParseFormatFindStart imgui_widgets.lua:2642 + [x] 46% ImParseFormatFindEnd imgui_widgets.lua:2660 + [x] 55% ImParseFormatTrimDecorations imgui_widgets.lua:2687 + [ ] ImParseFormatSanitizeForPrinting + [x] 61% ImParseFormatSanitizeForScanning imgui_widgets.lua:2703 + [x] 41% ImAtoi imgui_widgets.lua:2733 + [x] 55% ImParseFormatPrecision imgui_widgets.lua:2758 + [x] 88% ImGui::TempInputText imgui_widgets.lua:2799 + [x] 63% ImGui::TempInputScalar imgui_widgets.lua:2843 + [x] 63% ImGui::SetNextItemRefVal imgui_widgets.lua:7404 + [x] 74% ImGui::InputScalar imgui_widgets.lua:2894 + [x] 71% ImGui::InputScalarN imgui_widgets.lua:3011 + [x] 65% ImGui::InputFloat imgui_widgets.lua:3099 + [x] 95% ImGui::InputFloat2 imgui_widgets.lua:3058 + [x] 84% ImGui::InputFloat3 imgui_widgets.lua:3052 + [x] 95% ImGui::InputFloat4 imgui_widgets.lua:3062 + [x] 66% ImGui::InputInt imgui_widgets.lua:3083 + [x] 100% ImGui::InputInt2 imgui_widgets.lua:3066 + [x] 100% ImGui::InputInt3 imgui_widgets.lua:3070 + [x] 100% ImGui::InputInt4 imgui_widgets.lua:3074 + [x] 65% ImGui::InputDouble imgui_widgets.lua:3113 + + -- Widgets: InputText, InputTextMultiline, InputTextWithHint + [x] 77% ImGui::InputText imgui_widgets.lua:4431 + [x] 80% ImGui::InputTextMultiline imgui_widgets.lua:4453 + [x] 77% ImGui::InputTextWithHint imgui_widgets.lua:6277 + [x] 87% InputTextCalcTextSize imgui_widgets.lua:4473 + [x] 100% STB_TEXTEDIT_STRINGLEN imgui_widgets.lua:4489 + [x] 88% STB_TEXTEDIT_GETCHAR imgui_widgets.lua:4493 + [x] 61% STB_TEXTEDIT_GETWIDTH imgui_widgets.lua:4499 + [x] 86% STB_TEXTEDIT_LAYOUTROW imgui_widgets.lua:4504 + [x] 79% IMSTB_TEXTEDIT_GETNEXTCHARINDEX_IMPL imgui_widgets.lua:4517 + [x] 70% IMSTB_TEXTEDIT_GETPREVCHARINDEX_IMPL imgui_widgets.lua:4526 + [x] 23% ImCharIsSeparatorW imgui_widgets.lua:4543 + [x] 66% is_word_boundary_from_right imgui_widgets.lua:4556 + [x] 65% is_word_boundary_from_left imgui_widgets.lua:4575 + [x] 71% STB_TEXTEDIT_MOVEWORDLEFT_IMPL imgui_widgets.lua:4593 + [ ] STB_TEXTEDIT_MOVEWORDRIGHT_MAC + [ ] STB_TEXTEDIT_MOVEWORDRIGHT_WIN + [x] 100% STB_TEXTEDIT_MOVEWORDRIGHT_IMPL imgui_widgets.lua:4625 + [x] 68% STB_TEXTEDIT_MOVELINESTART_IMPL imgui_widgets.lua:4638 + [x] 73% STB_TEXTEDIT_MOVELINEEND_IMPL imgui_widgets.lua:4677 + [x] 79% STB_TEXTEDIT_DELETECHARS imgui_widgets.lua:4710 + [x] 87% STB_TEXTEDIT_INSERTCHARS imgui_widgets.lua:4724 + [x] 81% stb_textedit_replace imgui_widgets.lua:4767 + [x] 12% ImGuiInputTextState::ImGuiInputTextState imgui_internal.lua:1621 + [-] ImGuiInputTextState::~ImGuiInputTextState c++-only + [x] 93% ImGuiInputTextState::OnKeyPressed imgui_widgets.lua:4795 + [x] 63% ImGuiInputTextState::OnCharPressed imgui_widgets.lua:4810 + [x] 100% ImGuiInputTextState::CursorAnimReset imgui_widgets.lua:4822 + [x] 85% ImGuiInputTextState::CursorClamp imgui_widgets.lua:4824 + [x] 94% ImGuiInputTextState::HasSelection imgui_widgets.lua:4830 + [ ] ImGuiInputTextState::ClearSelection + [ ] ImGuiInputTextState::GetCursorPos + [ ] ImGuiInputTextState::GetSelectionStart + [ ] ImGuiInputTextState::GetSelectionEnd + [ ] ImGuiInputTextState::SetSelection + [ ] ImGuiInputTextState::GetPreferredOffsetX + [x] 74% ImGuiInputTextState::SelectAll imgui_widgets.lua:4832 + [ ] ImGuiInputTextState::ReloadUserBufAndSelectAll + [ ] ImGuiInputTextState::ReloadUserBufAndKeepSelection + [ ] ImGuiInputTextState::ReloadUserBufAndMoveToEnd + [x] 18% ImGuiInputTextCallbackData::ImGuiInputTextCallbackData imgui_h.lua:2370 + [x] 61% ImGuiInputTextCallbackData::DeleteChars imgui_h.lua:2374 + [x] 33% ImGuiInputTextCallbackData::InsertChars imgui_h.lua:2391 + [x] 92% ImGui::PushPasswordFont imgui_widgets.lua:4841 + [x] 98% ImGui::PopPasswordFont imgui_widgets.lua:4856 + [x] 80% InputTextFilterCharacter imgui_widgets.lua:4876 + [x] 74% InputTextReconcileUndoState imgui_widgets.lua:5014 + [x] 86% ImGui::InputTextDeactivateHook imgui_widgets.lua:5056 + [x] 74% ImLowerBound imgui_widgets.lua:5158 + [x] 55% InputTextLineIndexBuild imgui_widgets.lua:5089 + [x] 65% InputTextLineIndexGetPosOffset imgui_widgets.lua:5186 + [x] 87% ImGui::InputTextEx imgui_widgets.lua:5231 + [ ] ImGui::DebugNodeInputTextState + + -- Widgets: ColorEdit, ColorPicker, ColorButton, etc. + [x] 54% ImGui::ColorEdit3 imgui_widgets.lua:6634 + [x] 88% ColorEditRestoreH imgui_widgets.lua:6301 + [x] 87% ColorEditRestoreHS imgui_widgets.lua:6318 + [x] 61% ImGui::ColorEdit4 imgui_widgets.lua:6361 + [x] 70% ImGui::ColorPicker3 imgui_widgets.lua:6642 + [x] 98% RenderArrowsForVerticalBar imgui_widgets.lua:6670 + [x] 80% ImGui::ColorPicker4 imgui_widgets.lua:6689 + [x] 64% ImGui::ColorButton imgui_widgets.lua:7116 + [-] ImGui::SetColorEditOptions obsolete + [x] 73% ImGui::ColorTooltip imgui_widgets.lua:7208 + [x] 72% ImGui::ColorEditOptionsPopup imgui_widgets.lua:7252 + [x] 75% ImGui::ColorPickerOptionsPopup imgui_widgets.lua:7328 + + -- Widgets: TreeNode, CollapsingHeader, etc. + [x] 78% ImGui::TreeNode imgui_widgets.lua:7413 + [x] 89% ImGui::TreeNodeV imgui_widgets.lua:7425 + [x] 69% ImGui::TreeNodeEx imgui_widgets.lua:7432 + [x] 68% ImGui::TreeNodeExV imgui_widgets.lua:7446 + [x] 73% ImGui::TreeNodeGetOpen imgui_widgets.lua:7459 + [x] 79% ImGui::TreeNodeSetOpen imgui_widgets.lua:7467 + [x] 82% ImGui::TreeNodeUpdateNextOpen imgui_widgets.lua:7475 + [x] 86% TreeNodeStoreStackData imgui_widgets.lua:7518 + [x] 84% ImGui::TreeNodeBehavior imgui_widgets.lua:7545 + [x] 84% ImGui::TreeNodeDrawLineToChildNode imgui_widgets.lua:7847 + [x] 98% ImGui::TreeNodeDrawLineToTreePop imgui_widgets.lua:7878 + [x] 67% ImGui::TreePush imgui_widgets.lua:7910 + [x] 74% ImGui::TreePushOverrideID imgui_widgets.lua:7918 + [x] 84% ImGui::TreePop imgui_widgets.lua:7926 + [x] 100% ImGui::GetTreeNodeToLabelSpacing imgui_widgets.lua:7975 + [x] 77% ImGui::SetNextItemOpen imgui_widgets.lua:7962 + [x] 85% ImGui::SetNextItemStorageID imgui_widgets.lua:7982 + [x] 81% ImGui::CollapsingHeader imgui_widgets.lua:8001 + + -- Widgets: Selectable + [x] 83% ImGui::Selectable imgui_widgets.lua:8058 + + -- Widgets: Typing-Select support + [ ] ImGui::GetTypingSelectRequest + [ ] ImStrimatchlen + [ ] ImGui::TypingSelectFindMatch + [ ] ImGui::TypingSelectFindNextSingleCharMatch + [ ] ImGui::TypingSelectFindBestLeadingMatch + [ ] ImGui::DebugNodeTypingSelectState + + -- Widgets: Box-Select support + [ ] BoxSelectPreStartDrag + [ ] BoxSelectActivateDrag + [ ] BoxSelectDeactivateDrag + [ ] BoxSelectScrollWithMouseDrag + [ ] ImGui::BeginBoxSelect + [ ] ImGui::EndBoxSelect + + -- Widgets: Multi-Select support + [ ] DebugLogMultiSelectRequests + [ ] CalcScopeRect + [ ] ImGui::BeginMultiSelect + [ ] ImGui::EndMultiSelect + [ ] ImGui::SetNextItemSelectionUserData + [ ] ImGui::MultiSelectItemHeader + [ ] ImGui::MultiSelectItemFooter + [ ] ImGui::MultiSelectAddSetAll + [ ] ImGui::MultiSelectAddSetRange + [ ] ImGui::DebugNodeMultiSelectState + + -- Widgets: Multi-Select helpers + [ ] ImGuiSelectionBasicStorage::ImGuiSelectionBasicStorage + [ ] ImGuiSelectionBasicStorage::Clear + [ ] ImGuiSelectionBasicStorage::Swap + [ ] ImGuiSelectionBasicStorage::Contains + [ ] PairComparerByValueInt + [ ] ImGuiSelectionBasicStorage::GetNextSelectedItem + [ ] ImGuiSelectionBasicStorage::SetItemSelected + [ ] ImGuiSelectionBasicStorage_BatchSetItemSelected + [ ] ImGuiSelectionBasicStorage_BatchFinish + [ ] ImGuiSelectionBasicStorage::ApplyRequests + [ ] ImGuiSelectionExternalStorage::ImGuiSelectionExternalStorage + [ ] ImGuiSelectionExternalStorage::ApplyRequests + + -- Widgets: ListBox + [x] 92% ImGui::BeginListBox imgui_widgets.lua:8284 + [x] 78% ImGui::EndListBox imgui_widgets.lua:8325 + [x] 63% ImGui::ListBox imgui_widgets.lua:8340 + + -- Widgets: PlotLines, PlotHistogram + [x] 89% ImGui::PlotEx imgui_widgets.lua:8412 + [x] 86% ImGuiPlotArrayGetterData::ImGuiPlotArrayGetterData imgui_widgets.lua:8542 + [x] 48% Plot_ArrayGetter imgui_widgets.lua:8553 + [x] 41% ImGui::PlotLines imgui_widgets.lua:8567 + [x] 41% ImGui::PlotHistogram imgui_widgets.lua:8593 + + -- Widgets: Value helpers + [x] 21% ImGui::Value imgui_widgets.lua:375 + + -- MenuItem, BeginMenu, EndMenu, etc. + [x] 49% ImGuiMenuColumns::Update imgui_widgets.lua:8625 + [x] 77% ImGuiMenuColumns::CalcNextTotalWidth imgui_widgets.lua:8637 + [x] 64% ImGuiMenuColumns::DeclColumns imgui_widgets.lua:8660 + [x] 91% ImGui::BeginMenuBar imgui_widgets.lua:8673 + [x] 92% ImGui::EndMenuBar imgui_widgets.lua:8707 + [x] 85% ImGui::BeginViewportSideBar imgui_widgets.lua:8770 + [x] 90% ImGui::BeginMainMenuBar imgui_widgets.lua:8806 + [x] 90% ImGui::EndMainMenuBar imgui_widgets.lua:8832 + [x] 91% IsRootOfOpenMenuSet imgui_widgets.lua:8848 + [x] 89% ImGui::BeginMenuEx imgui_widgets.lua:8876 + [x] 67% ImGui::BeginMenu imgui_widgets.lua:9107 + [x] 92% ImGui::EndMenu imgui_widgets.lua:9113 + [x] 85% ImGui::MenuItemEx imgui_widgets.lua:9137 + [x] 67% ImGui::MenuItem imgui_widgets.lua:9244 + + -- Widgets: BeginTabBar, EndTabBar, etc. + [x] 19% ImGuiTabBarSection::ImGuiTabBarSection imgui_widgets.lua:9312 + [x] 16% ImGuiTabBar::ImGuiTabBar imgui_internal.lua:1966 + [x] 65% TabItemGetSectionIdx imgui_widgets.lua:9279 + [ ] TabItemComparerBySection + [ ] TabItemComparerByBeginOrder + [ ] GetTabBarFromTabBarRef + [ ] GetTabBarRefFromTabBar + [x] 60% ImGui::TabBarFindByID imgui_widgets.lua:9400 + [x] 77% ImGui::TabBarRemove imgui_widgets.lua:9406 + [x] 92% ImGui::BeginTabBar imgui_widgets.lua:9411 + [x] 82% ImGui::BeginTabBarEx imgui_widgets.lua:9429 + [x] 90% ImGui::EndTabBar imgui_widgets.lua:9493 + [x] 68% TabBarCalcScrollableWidth imgui_widgets.lua:9305 + [x] 81% ImGui::TabBarLayout imgui_widgets.lua:9528 + [x] 75% ImGui::TabBarCalcTabID imgui_widgets.lua:9799 + [x] 62% ImGui::TabBarCalcMaxTabWidth imgui_widgets.lua:9809 + [x] 71% ImGui::TabBarFindTabByID imgui_widgets.lua:9813 + [x] 90% ImGui::TabBarFindTabByOrder imgui_widgets.lua:9825 + [x] 85% ImGui::TabBarFindMostRecentlySelectedTabForActiveWindow imgui_widgets.lua:9837 + [x] 93% ImGui::TabBarGetCurrentTab imgui_widgets.lua:9848 + [x] 55% ImGui::TabBarGetTabName imgui_widgets.lua:9853 + [x] 89% ImGui::TabBarGetTabPos imgui_widgets.lua:9859 + [x] 92% ImGui::TabBarAddTab imgui_widgets.lua:9868 + [x] 91% ImGui::TabBarRemoveTab imgui_widgets.lua:9885 + [x] 92% ImGui::TabBarCloseTab imgui_widgets.lua:9894 + [x] 97% ImGui::TabBarScrollClamp imgui_widgets.lua:9912 + [x] 89% ImGui::TabBarScrollToTab imgui_widgets.lua:9918 + [x] 67% ImGui::TabBarQueueFocus imgui_widgets.lua:9956 + [x] 100% ImGui::TabBarQueueReorder imgui_widgets.lua:9965 + [x] 85% ImGui::TabBarQueueReorderFromMousePos imgui_widgets.lua:9972 + [x] 64% ImGui::TabBarProcessReorder imgui_widgets.lua:10006 + [x] 85% ImGui::TabBarScrollingButtons imgui_widgets.lua:10029 + [x] 80% ImGui::TabBarTabListPopupButton imgui_widgets.lua:10089 + + -- Widgets: BeginTabItem, EndTabItem, etc. + [x] 78% ImGui::BeginTabItem imgui_widgets.lua:10137 + [x] 85% ImGui::EndTabItem imgui_widgets.lua:10156 + [x] 81% ImGui::TabItemButton imgui_widgets.lua:10170 + [x] 84% ImGui::TabItemSpacing imgui_widgets.lua:10180 + [x] 79% ImGui::TabItemEx imgui_widgets.lua:10191 + [x] 88% ImGui::SetTabItemClosed imgui_widgets.lua:10477 + [x] 79% ImGui::TabItemCalcSize imgui_widgets.lua:10499 + [x] 91% ImGui::TabItemBackground imgui_widgets.lua:10515 + [x] 86% ImGui::TabItemLabelAndCloseButton imgui_widgets.lua:10536 + +==================================================================================================== +imgui_draw.cpp +==================================================================================================== + + -- Style functions + [x] 81% ImGui::StyleColorsDark imgui_draw.lua:130 + [x] 81% ImGui::StyleColorsClassic imgui_draw.lua:200 + [x] 82% ImGui::StyleColorsLight imgui_draw.lua:271 + + -- ImDrawList + [x] 30% ImDrawListSharedData::ImDrawListSharedData imgui_internal.lua:1050 + [-] ImDrawListSharedData::~ImDrawListSharedData c++-only + [x] 57% ImDrawListSharedData::SetCircleTessellationMaxError imgui_draw.lua:3564 + [x] 7% ImDrawList::ImDrawList imgui_h.lua:653 + [-] ImDrawList::~ImDrawList c++-only + [x] 88% ImDrawList::_SetDrawListSharedData imgui_draw.lua:3581 + [x] 39% ImDrawList::_ResetForNewFrame imgui_draw.lua:3594 + [x] 61% ImDrawList::_ClearFreeMemory imgui_draw.lua:3621 + [ ] ImDrawList::CloneOutput + [x] 93% ImDrawList::AddDrawCmd imgui_draw.lua:3639 + [x] 88% ImDrawList::_PopUnusedDrawCmd imgui_draw.lua:3653 + [x] 57% ImDrawList::AddCallback imgui_draw.lua:3667 + [x] 41% ImDrawList::_TryMergeDrawCmds imgui_draw.lua:3740 + [x] 37% ImDrawList::_OnChangedClipRect imgui_draw.lua:3752 + [x] 56% ImDrawList::_OnChangedTexture imgui_draw.lua:3775 + [x] 91% ImDrawList::_OnChangedVtxOffset imgui_draw.lua:3801 + [x] 57% ImDrawList::_CalcCircleAutoSegmentCount imgui_draw.lua:4825 + [x] 97% ImDrawList::PushClipRect imgui_draw.lua:4837 + [ ] ImDrawList::PushClipRectFullScreen + [x] 60% ImDrawList::PopClipRect imgui_draw.lua:4857 + [x] 67% ImDrawList::PushTexture imgui_draw.lua:4091 + [x] 81% ImDrawList::PopTexture imgui_draw.lua:4100 + [ ] ImDrawList::PushDrawFlag + [ ] ImDrawList::PopDrawFlag + [x] 83% ImDrawList::_SetTexture imgui_draw.lua:4107 + [ ] ImDrawList::_SetPixelDensity + [x] 72% ImDrawList::PrimReserve imgui_draw.lua:4120 + [x] 68% ImDrawList::PrimUnreserve imgui_draw.lua:4145 + [x] 10% ImDrawList::PrimRect imgui_draw.lua:4163 + [x] 13% ImDrawList::PrimRectUV imgui_draw.lua:4195 + [ ] ImDrawList::PrimQuadUV + [ ] ImDrawList::_CalculateCenterBiasedOffset + [ ] ImAlphaMultiply + [ ] ImDrawList::_SelectLineTexture + [ ] ImDrawList::_AddPolyline + [x] 29% ImDrawList::AddConvexPolyFilled imgui_draw.lua:4006 + [ ] CalcCornerArcStepAndCount + [x] 72% ImDrawList::_PathArcToFastEx imgui_draw.lua:4873 + [x] 85% ImDrawList::_PathArcToN imgui_draw.lua:4983 + [x] 88% ImDrawList::PathArcToFast imgui_draw.lua:4969 + [x] 87% ImDrawList::PathArcTo imgui_draw.lua:5003 + [x] 61% ImDrawList::PathEllipticalArcTo imgui_draw.lua:5585 + [x] 88% ImBezierCubicCalc imgui_draw.lua:5597 + [x] 89% ImBezierQuadraticCalc imgui_draw.lua:5603 + [x] 85% PathBezierCubicCurveToCasteljau imgui_draw.lua:5610 + [x] 90% PathBezierQuadraticCurveToCasteljau imgui_draw.lua:5628 + [x] 81% ImDrawList::PathBezierCubicCurveTo imgui_draw.lua:5642 + [x] 78% ImDrawList::PathBezierQuadraticCurveTo imgui_draw.lua:5652 + [x] 74% ImDrawList::PathRect imgui_draw.lua:4460 + [ ] ImDrawList::_AddLine + [x] 37% ImDrawList::AddLine imgui_draw.lua:4574 + [x] 23% ImDrawList::AddLineH imgui_draw.lua:4587 + [x] 23% ImDrawList::AddLineV imgui_draw.lua:4603 + [ ] ImDrawList::_AddRectBaked + [ ] ImDrawList::_AddRectTinyRounding + [x] 12% ImDrawList::AddRect imgui_draw.lua:4536 + [ ] ImDrawList::_AddRectFilledBaked + [x] 14% ImDrawList::AddRectFilled imgui_draw.lua:4490 + [x] 87% ImDrawList::AddRectFilledMultiColor imgui_draw.lua:4513 + [x] 43% ImDrawList::AddQuad imgui_draw.lua:4625 + [x] 55% ImDrawList::AddQuadFilled imgui_draw.lua:4636 + [x] 47% ImDrawList::AddTriangle imgui_draw.lua:4614 + [x] 56% ImDrawList::AddTriangleFilled imgui_draw.lua:4646 + [ ] ApproxApothem + [x] 40% ImDrawList::AddCircle imgui_draw.lua:4660 + [x] 62% ImDrawList::AddCircleFilled imgui_draw.lua:4688 + [x] 34% ImDrawList::AddNgon imgui_draw.lua:5663 + [x] 65% ImDrawList::AddNgonFilled imgui_draw.lua:5673 + [x] 47% ImDrawList::AddEllipse imgui_draw.lua:5682 + [x] 53% ImDrawList::AddEllipseFilled imgui_draw.lua:5693 + [x] 83% ImDrawList::AddBezierCubic imgui_draw.lua:5704 + [x] 82% ImDrawList::AddBezierQuadratic imgui_draw.lua:5712 + [x] 73% ImDrawList::AddText imgui_draw.lua:4721 + [x] 69% ImDrawList::AddImage imgui_draw.lua:4763 + [ ] ImDrawList::AddImageQuad + [x] 83% ImDrawList::AddImageRounded imgui_draw.lua:4793 + + -- ImTriangulator, ImDrawList concave polygon fill + [ ] ImTriangulatorNode::Unlink + [ ] ImTriangulatorNodeSpan::push_back + [ ] ImTriangulatorNodeSpan::find_erase_unsorted + [ ] ImTriangulator::EstimateTriangleCount + [ ] ImTriangulator::EstimateScratchBufferSize + [ ] ImTriangulator::Init + [ ] ImTriangulator::BuildNodes + [ ] ImTriangulator::BuildReflexes + [ ] ImTriangulator::BuildEars + [ ] ImTriangulator::GetNextTriangle + [ ] ImTriangulator::FlipNodeList + [ ] ImTriangulator::IsEar + [ ] ImTriangulator::ReclassifyNode + [x] 17% ImDrawList::AddConcavePolyFilled imgui_draw.lua:5721 + + -- ImDrawListSplitter + [x] 58% ImDrawListSplitter::ClearFreeMemory imgui_draw.lua:3836 + [x] 65% ImDrawListSplitter::Split imgui_draw.lua:3854 + [x] 54% ImDrawListSplitter::Merge imgui_draw.lua:3880 + [x] 45% ImDrawListSplitter::SetCurrentChannel imgui_draw.lua:3965 + + -- ImDrawData + [x] 60% ImDrawData::Clear imgui_draw.lua:3513 + [x] 66% ImGui::AddDrawListToDrawDataEx imgui_draw.lua:3526 + [x] 94% ImDrawData::AddDrawList imgui_draw.lua:3548 + [ ] ImDrawData::DeIndexAllBuffers + [ ] ImDrawData::ScaleClipRects + + -- Helpers ShadeVertsXXX functions + [x] 36% ImGui::ShadeVertsLinearColorGradientKeepAlpha imgui_draw.lua:352 + [x] 54% ImGui::ShadeVertsLinearUV imgui_draw.lua:399 + [x] 16% ImGui::ShadeVertsTransformPos imgui_draw.lua:379 + + -- ImFontConfig + [x] 20% ImFontConfig::ImFontConfig imgui_h.lua:951 + + -- ImTextureData + [x] 76% ImTextureDataGetFormatBytesPerPixel imgui_draw.lua:2365 + [ ] ImTextureDataGetStatusName + [ ] ImTextureDataGetFormatName + [x] 80% ImTextureData::Create imgui_draw.lua:2375 + [x] 71% ImTextureData::DestroyPixels imgui_draw.lua:2360 + + -- ImFontAtlas, ImFontAtlasBuilder + [x] 39% ImFontAtlas::ImFontAtlas imgui_h.lua:1032 + [-] ImFontAtlas::~ImFontAtlas c++-only + [x] 93% ImFontAtlas::Clear imgui_draw.lua:569 + [x] 76% ImFontAtlas::ClearFonts imgui_draw.lua:614 + [x] 69% ImFontAtlas::ClearInputData imgui_draw.lua:582 + [x] 70% ImFontAtlas::ClearTexData imgui_draw.lua:600 + [x] 100% ImFontAtlas::CompactCache imgui_draw.lua:610 + [x] 100% ImFontAtlas::SetFontLoader imgui_draw.lua:578 + [x] 81% ImFontAtlasBuildUpdateRendererHasTexturesFromContext imgui_draw.lua:1885 + [x] 78% ImFontAtlasUpdateNewFrame imgui_draw.lua:688 + [x] 93% ImTextureDataUpdateNewFrame imgui_draw.lua:638 + [x] 44% ImFontAtlasTextureBlockConvert imgui_draw.lua:779 + [x] 100% ImFontAtlasTextureBlockPostProcess imgui_draw.lua:824 + [x] 48% ImFontAtlasTextureBlockPostProcessMultiply imgui_draw.lua:833 + [ ] ImFontAtlasTextureBlockFill + [x] 87% ImFontAtlasTextureBlockCopy imgui_draw.lua:875 + [x] 100% ImFontAtlasTextureBlockQueueUpload imgui_draw.lua:924 + [x] 99% ImTextureDataQueueUpload imgui_draw.lua:895 + [-] GetTexDataAsFormat obsolete + [-] ImFontAtlas::GetTexDataAsAlpha8 obsolete + [-] ImFontAtlas::GetTexDataAsRGBA32 obsolete + [-] ImFontAtlas::Build obsolete + [x] 83% ImFontAtlas::AddFont imgui_draw.lua:3208 + [ ] Decode85Byte + [ ] Decode85 + [x] 35% GetExpectedContextFontSize imgui_draw.lua:3296 + [x] 97% ImFontAtlas::AddFontDefault imgui_draw.lua:3304 + [x] 68% ImFontAtlas::AddFontDefaultBitmap imgui_draw.lua:3371 + [x] 66% ImFontAtlas::AddFontDefaultVector imgui_draw.lua:3393 + [x] 56% ImFontAtlas::AddFontFromFileTTF imgui_draw.lua:3331 + [x] 90% ImFontAtlas::AddFontFromMemoryTTF imgui_draw.lua:3312 + [~] 0% ImFontAtlas::AddFontFromMemoryCompressedTTF imgui_draw.lua:3327 stub + [ ] ImFontAtlas::AddFontFromMemoryCompressedBase85TTF + [x] 92% ImFontAtlasBuildNotifySetFont imgui_draw.lua:2287 + [ ] ImFontAtlas::RemoveFont + [x] 93% ImFontAtlas::AddCustomRect imgui_draw.lua:3460 + [ ] ImFontAtlas::RemoveCustomRect + [-] ImFontAtlas::AddCustomRectFontGlyph obsolete + [-] ImFontAtlas::AddCustomRectFontGlyphForSize obsolete + [x] 93% ImFontAtlas::GetCustomRect imgui_draw.lua:3412 + [x] 78% ImFontAtlasGetMouseCursorTexData imgui_draw.lua:3437 + [x] 87% ImFontAtlasBuildMain imgui_draw.lua:2329 + [x] 80% ImFontAtlasBuildGetOversampleFactors imgui_draw.lua:949 + [x] 91% ImFontAtlasBuildSetupFontLoader imgui_draw.lua:1855 + [ ] ImFontAtlasBuildLegacyPreloadAllGlyphRanges + [~] 0% ImFontAtlasBuildUpdatePointers imgui_draw.lua:1901 stub + [x] 52% ImFontAtlasBuildRenderBitmapFromString imgui_draw.lua:2157 + [x] 91% ImFontAtlasBuildUpdateTexDataBasic imgui_draw.lua:2188 + [ ] InitCornerGeometry + [ ] SampleConvex + [ ] SampleCornerFillOrStroke + [ ] ImFontAtlasBuildUpdateTexDataCorners + [x] 50% ImFontAtlasBuildUpdateTexDataLines imgui_draw.lua:2079 + [x] 89% ImFontAtlasFontInitOutput imgui_draw.lua:1679 + [x] 86% ImFontAtlasFontDestroyOutput imgui_draw.lua:1691 + [ ] ImFontAtlasFontRebuildOutput + [x] 94% ImFontAtlasFontSourceInit imgui_draw.lua:1704 + [x] 95% ImFontAtlasFontSourceAddToFont imgui_draw.lua:1715 + [x] 54% ImFontAtlasFontDestroySourceData imgui_draw.lua:1728 + [x] 95% ImFontAtlasBuildSetupFontBakedEllipsis imgui_draw.lua:1790 + [x] 91% ImFontAtlasBuildSetupFontBakedFallback imgui_draw.lua:1834 + [x] 88% ImFontAtlasBuildSetupFontBakedBlanks imgui_draw.lua:1526 + [x] 90% ImFontAtlasBuildSetupFontSpecialGlyphs imgui_draw.lua:1746 + [ ] ImFontAtlasBakedDiscardFontGlyph + [x] 81% ImFontAtlasBakedAdd imgui_draw.lua:1549 + [x] 89% ImFontAtlasBakedGetClosestMatch imgui_draw.lua:1586 + [x] 74% ImFontAtlasBakedDiscard imgui_draw.lua:1628 + [x] 83% ImFontAtlasFontDiscardBakes imgui_draw.lua:1657 + [x] 83% ImFontAtlasBuildDiscardBakes imgui_draw.lua:966 + [x] 92% ImFontAtlasAddDrawListSharedData imgui_draw.lua:989 + [x] 92% ImFontAtlasRemoveDrawListSharedData imgui_draw.lua:996 + [x] 79% ImFontAtlasUpdateDrawListsTextures imgui_draw.lua:1914 + [x] 76% ImFontAtlasUpdateDrawListsSharedData imgui_draw.lua:2219 + [x] 98% ImFontAtlasBuildSetTexture imgui_draw.lua:1943 + [x] 40% ImFontAtlasBuildUpdateTexData imgui_draw.lua:1953 + [x] 91% ImFontAtlasTextureAdd imgui_draw.lua:1959 + [-] ImFontAtlasDebugWriteTexToDisk if0 + [x] 91% ImFontAtlasTextureRepack imgui_draw.lua:1004 + [x] 94% ImFontAtlasTextureGrow imgui_draw.lua:1086 + [x] 99% ImFontAtlasTextureMakeSpace imgui_draw.lua:1125 + [x] 96% ImFontAtlasTextureGetSizeEstimate imgui_draw.lua:1994 + [x] 85% ImFontAtlasBuildClear imgui_draw.lua:2029 + [x] 95% ImFontAtlasTextureCompact imgui_draw.lua:2047 + [x] 93% ImFontAtlasBuildInit imgui_draw.lua:2229 + [x] 91% ImFontAtlasBuildDestroy imgui_draw.lua:2271 + [x] 75% ImFontAtlasPackInit imgui_draw.lua:2062 + [x] 85% ImFontAtlasPackAllocRectEntry imgui_draw.lua:1142 + [x] 93% ImFontAtlasPackReuseRectEntry imgui_draw.lua:1166 + [x] 82% ImFontAtlasPackDiscardRect imgui_draw.lua:1176 + [x] 91% ImFontAtlasPackAddRect imgui_draw.lua:1204 + [x] 75% ImFontAtlasPackGetRect imgui_draw.lua:1255 + [x] 82% ImFontAtlasPackGetRectSafe imgui_draw.lua:1270 + [x] 66% ImFontAtlasBuildAcceptCodepointForSource imgui_draw.lua:1295 + [x] 97% ImFontBaked_BuildGrowIndex imgui_draw.lua:1313 + [ ] ImFont::AddRemapCodepoint + [ ] ImFont::AddRemapCodepointToGlyphIndex + [x] 29% ImFontAtlas_FontHookRemapCodepoint imgui_draw.lua:2637 + [x] 70% ImFontBaked_BuildLoadGlyph imgui_draw.lua:2652 + [x] 77% ImFontBaked_BuildLoadGlyphAdvanceX imgui_draw.lua:2732 + [x] 67% BuildLoadGlyphGetAdvanceOrFallback imgui_draw.lua:2777 + [ ] ImFontAtlasDebugLogTextureRequests + + -- ImFontAtlas: backend for stb_truetype + [x] 84% ImGui_ImplStbTrueType_FontSrcInit imgui_draw.lua:1349 + [x] 53% ImGui_ImplStbTrueType_FontSrcDestroy imgui_draw.lua:1384 + [ ] ImGui_ImplStbTrueType_FontSrcGetGlyphIndexFromCodepoint + [x] 43% ImGui_ImplStbTrueType_FontSrcContainsGlyph imgui_draw.lua:1389 + [x] 88% ImGui_ImplStbTrueType_FontBakedInit imgui_draw.lua:1398 + [x] 85% ImGui_ImplStbTrueType_FontBakedLoadGlyph imgui_draw.lua:1425 + [x] 74% ImFontAtlasGetFontLoaderForStbTruetype imgui_draw.lua:1509 + + -- ImFontAtlas: glyph ranges helpers + [ ] ImFontAtlas::GetGlyphRangesDefault + [-] ImFontAtlas::GetGlyphRangesGreek obsolete + [-] ImFontAtlas::GetGlyphRangesKorean obsolete + [-] ImFontAtlas::GetGlyphRangesChineseFull obsolete + [-] UnpackAccumulativeOffsetsIntoRanges obsolete + [-] ImFontAtlas::GetGlyphRangesChineseSimplifiedCommon obsolete + [-] ImFontAtlas::GetGlyphRangesJapanese obsolete + [-] ImFontAtlas::GetGlyphRangesCyrillic obsolete + [-] ImFontAtlas::GetGlyphRangesThai obsolete + [-] ImFontAtlas::GetGlyphRangesVietnamese obsolete + + -- ImFontGlyphRangesBuilder + [ ] ImFontGlyphRangesBuilder::AddText + [ ] ImFontGlyphRangesBuilder::AddRanges + [ ] ImFontGlyphRangesBuilder::BuildRanges + + -- ImFontBaked, ImFont + [x] 12% ImFontBaked::ImFontBaked imgui_h.lua:838 + [x] 79% ImFontBaked::ClearOutputData imgui_draw.lua:2400 + [x] 10% ImFont::ImFont imgui_h.lua:895 + [-] ImFont::~ImFont c++-only + [x] 49% ImFont::ClearOutputData imgui_draw.lua:2454 + [ ] ImFont::IsGlyphRangeUnused + [x] 87% ImFontAtlasBakedAddFontGlyph imgui_draw.lua:2520 + [x] 87% ImFontAtlasBakedAddFontGlyphAdvancedX imgui_draw.lua:2578 + [x] 84% ImFontAtlasBakedSetFontGlyphBitmap imgui_draw.lua:938 + [x] 85% ImFontBaked::FindGlyph imgui_draw.lua:2414 + [x] 88% ImFontBaked::FindGlyphNoFallback imgui_draw.lua:2437 + [x] 49% ImFontBaked::IsGlyphLoaded imgui_draw.lua:2429 + [x] 50% ImFont::IsGlyphInFont imgui_draw.lua:2749 + [x] 86% ImFontBaked::GetCharAdvance imgui_draw.lua:2765 + [x] 46% ImFontAtlasBakedGetId imgui_draw.lua:2469 + [x] 92% ImFont::GetFontBaked imgui_draw.lua:2603 + [x] 91% ImFontAtlasBakedGetOrAdd imgui_draw.lua:2479 + [x] 55% ImTextCalcWordWrapNextLineStart imgui_draw.lua:2787 + [x] 81% ImTextClassifierClear imgui_draw.lua:2807 + [x] 53% ImTextClassifierSetCharClass imgui_draw.lua:2818 + [x] 60% ImTextClassifierSetCharClassFromStr imgui_draw.lua:2826 + [x] 88% ImTextInitClassifiers imgui_draw.lua:2844 + [x] 77% ImFontCalcWordWrapPositionEx imgui_draw.lua:2872 + [ ] ImFont::CalcWordWrapPosition + [x] 63% ImFontCalcTextSizeEx imgui_draw.lua:3013 + [x] 91% ImFont::CalcTextSizeA imgui_draw.lua:3147 + [x] 95% ImFont::RenderChar imgui_draw.lua:3158 + [x] 66% ImFont::RenderText imgui_draw.lua:5061 + + -- ImGui Internal Render Helpers + [x] 58% ImGui::RenderArrow imgui_draw.lua:5306 + [x] 88% ImGui::RenderBullet imgui_draw.lua:5338 + [x] 87% ImGui::RenderCheckMark imgui_draw.lua:5348 + [x] 90% ImGui::RenderArrowPointingAt imgui_draw.lua:5369 + [x] 93% ImGui::RenderArrowDockMenu imgui.lua:4551 + [x] 100% ImAcos01 imgui_draw.lua:5382 + [x] 95% ImGui::RenderRectFilledInRangeH imgui_draw.lua:5398 + [x] 75% ImGui::RenderRectFilledWithHole imgui_draw.lua:5562 + [x] 76% ImGui::CalcRoundingFlagsForRectInRect imgui_draw.lua:5453 + [x] 68% ImGui::RenderColorRectWithAlphaCheckerboard imgui_draw.lua:5489 + + -- Decompression code + [ ] stb_decompress_length + [ ] stb__match + [ ] stb__lit + [ ] stb_decompress_token + [ ] stb_adler32 + [ ] stb_decompress + + -- Default font data (ProggyClean.ttf) + [ ] ImGui_GetDefaultCompressedFontDataProggyClean + + -- Default font data (ProggyForever-Regular-minimal.ttf) + [ ] ImGui_GetDefaultCompressedFontDataProggyForever + +==================================================================================================== +imgui_tables.cpp +==================================================================================================== + + -- Tables: Main code + [x] 67% TableFixFlags imgui_tables.lua:391 + [x] 95% ImGui::TableFindByID imgui_tables.lua:430 + [x] 100% ImGui::BeginTable imgui_tables.lua:454 + [x] 77% ImGui::BeginTableEx imgui_tables.lua:459 + [x] 26% ImGui::TableBeginInitMemory imgui_tables.lua:792 + [x] 72% ImGui::TableApplyQueuedRequests imgui_tables.lua:810 + [x] 76% ImGui::TableSetColumnDisplayOrder imgui_tables.lua:870 + [x] 82% TableGetMaxDisplayOrderAllowed imgui_tables.lua:898 + [x] 82% ImGui::TableQueueSetColumnDisplayOrder imgui_tables.lua:924 + [x] 62% TableSetupColumnFlags imgui_tables.lua:936 + [x] 82% ImGui::TableUpdateLayout imgui_tables.lua:995 + [x] 84% ImGui::TableApplyExternalUnclipRect imgui_tables.lua:1554 + [x] 77% ImGui::TableUpdateBorders imgui_tables.lua:1570 + [x] 81% ImGui::EndTable imgui_tables.lua:1632 + [x] 70% ImGui::TableInitColumnDefaults imgui_tables.lua:1850 + [x] 74% TableSetupColumnApply imgui_tables.lua:1880 + [x] 59% ImGui::TableSetupColumn imgui_tables.lua:1912 + [x] 60% ImGui::TableReconcileColumns imgui_tables.lua:1968 + [x] 77% ImGui::TableSetupScrollFreeze imgui_tables.lua:2034 + + -- Tables: Simple accessors + [x] 69% ImGui::TableGetColumnCount imgui_tables.lua:2075 + [x] 53% ImGui::TableGetColumnName imgui_tables.lua:2082 + [x] 83% ImGui::TableSetColumnEnabled imgui_tables.lua:2113 + [x] 78% ImGui::TableGetColumnFlags imgui_tables.lua:2127 + [x] 89% ImGui::TableGetCellBgRect imgui_tables.lua:2149 + [x] 74% ImGui::TableGetColumnResizeID imgui_tables.lua:2163 + [x] 81% ImGui::TableGetHoveredColumn imgui_tables.lua:2171 + [x] 81% ImGui::TableGetHoveredRow imgui_tables.lua:2183 + [x] 78% ImGui::TableSetBgColor imgui_tables.lua:2193 + + -- Tables: Row changes + [x] 80% ImGui::TableGetRowIndex imgui_tables.lua:2243 + [x] 68% ImGui::TableNextRow imgui_tables.lua:2255 + [x] 77% ImGui::TableBeginRow imgui_tables.lua:2285 + [x] 80% ImGui::TableEndRow imgui_tables.lua:2325 + + -- Tables: Columns changes + [x] 80% ImGui::TableGetColumnIndex imgui_tables.lua:2487 + [x] 77% ImGui::TableSetColumnIndex imgui_tables.lua:2497 + [x] 76% ImGui::TableNextColumn imgui_tables.lua:2521 + [x] 93% ImGui::TableBeginCell imgui_tables.lua:2546 + [x] 58% ImGui::TableEndCell imgui_tables.lua:2597 + + -- Tables: Columns width management + [x] 80% ImGui::TableCalcMaxColumnWidth imgui_tables.lua:2638 + [x] 87% ImGui::TableGetColumnWidthAuto imgui_tables.lua:2665 + [x] 89% ImGui::TableSetColumnWidth imgui_tables.lua:2684 + [x] 82% ImGui::TableSetColumnWidthAutoSingle imgui_tables.lua:2770 + [x] 71% ImGui::TableSetColumnWidthAutoAll imgui_tables.lua:2780 + [x] 78% ImGui::TableUpdateColumnsWeightFromWidth imgui_tables.lua:2790 + + -- Tables: Drawing + [x] 79% ImGui::TablePushBackgroundChannel imgui_tables.lua:2834 + [x] 82% ImGui::TablePopBackgroundChannel imgui_tables.lua:2845 + [x] 83% ImGui::TablePushColumnChannel imgui_tables.lua:2856 + [x] 82% ImGui::TablePopColumnChannel imgui_tables.lua:2870 + [x] 69% ImGui::TableSetupDrawChannels imgui_tables.lua:2900 + [x] 60% ImGui::TableMergeDrawChannels imgui_tables.lua:2973 + [x] 81% TableGetColumnBorderCol imgui_tables.lua:3128 + [x] 83% ImGui::TableDrawBorders imgui_tables.lua:3142 + + -- Tables: Sorting + [x] 71% ImGui::TableGetSortSpecs imgui_tables.lua:3250 + [x] 74% TableGetColumnAvailSortDirection imgui_tables.lua:3266 + [x] 90% ImGui::TableFixColumnSortDirection imgui_tables.lua:3272 + [x] 91% ImGui::TableGetColumnNextSortDirection imgui_tables.lua:3283 + [x] 83% ImGui::TableSetColumnSortDirection imgui_tables.lua:3299 + [x] 73% ImGui::TableSortSpecsSanitize imgui_tables.lua:3336 + [x] 66% ImGui::TableSortSpecsBuild imgui_tables.lua:3408 + + -- Tables: Headers + [x] 80% ImGui::TableGetHeaderRowHeight imgui_tables.lua:3460 + [x] 79% ImGui::TableGetHeaderAngledMaxLabelWidth imgui_tables.lua:3478 + [x] 81% ImGui::TableHeadersRow imgui_tables.lua:3499 + [x] 88% ImGui::TableHeader imgui_tables.lua:3541 + [x] 79% ImGui::TableAngledHeadersRow imgui_tables.lua:3685 + [x] 87% ImGui::TableAngledHeadersRowEx imgui_tables.lua:3732 + + -- Tables: Context Menu + [x] 78% ImGui::TableOpenContextMenu imgui_tables.lua:3879 + [x] 83% ImGui::TableBeginContextMenuPopup imgui_tables.lua:3899 + [x] 88% MenuItemForColumnReorder imgui_tables.lua:3912 + [x] 78% ImGui::TableDrawDefaultContextMenu imgui_tables.lua:3948 + + -- Tables: Settings (.ini data) + [x] 62% TableSettingsInit imgui_tables.lua:4096 + [ ] TableSettingsCalcChunkSize + [x] 88% ImGui::TableSettingsCreate imgui_tables.lua:4107 + [x] 65% ImGui::TableSettingsFindByID imgui_tables.lua:4124 + [x] 86% ImGui::TableGetBoundSettings imgui_tables.lua:4141 + [x] 79% ImGui::TableResetSettings imgui_tables.lua:4152 + [x] 77% ImGui::TableSaveSettings imgui_tables.lua:4159 + [x] 73% ImGui::TableLoadSettings imgui_tables.lua:4221 + [x] 76% ImGui::TableLoadSettingsForColumns imgui_tables.lua:4248 + [x] 85% ImGui::TableLoadSettingsForColumn imgui_tables.lua:4309 + [ ] TableFixDisplayOrderComparer + [x] 40% ImGui::TableFixDisplayOrder imgui_tables.lua:4334 + [x] 65% TableSettingsHandler_ClearAll imgui_tables.lua:4373 + [ ] TableSettingsHandler_Cleanup + [x] 64% TableSettingsHandler_ApplyAll imgui_tables.lua:4380 + [x] 65% TableSettingsHandler_ReadOpen imgui_tables.lua:4388 + [x] 35% TableSettingsHandler_ReadLine imgui_tables.lua:4403 + [x] 80% TableSettingsHandler_WriteAll imgui_tables.lua:4443 + [x] 90% ImGui::TableSettingsAddSettingsHandler imgui_tables.lua:4482 + + -- Tables: Garbage Collection + [x] 79% ImGui::TableRemove imgui_tables.lua:4503 + [x] 60% ImGui::TableGcCompactTransientBuffers imgui_tables.lua:4513 + [x] 36% ImGui::TableGcCompactSettings imgui_tables.lua:4537 + + -- Tables: Debugging + [ ] DebugNodeTableGetSizingPolicyDesc + [x] 16% ImGui::DebugNodeTable imgui.lua:20659 + [x] 69% ImGui::DebugNodeTableSettings imgui.lua:20641 + + -- Columns, BeginColumns, EndColumns, etc. + [x] 88% ImGui::SetWindowClipRectBeforeSetChannel imgui_tables.lua:2068 + [x] 92% ImGui::GetColumnIndex imgui_tables.lua:4578 + [x] 92% ImGui::GetColumnsCount imgui_tables.lua:4583 + [x] 100% ImGui::GetColumnOffsetFromNorm imgui_tables.lua:4588 + [x] 100% ImGui::GetColumnNormFromOffset imgui_tables.lua:4592 + [x] 96% GetDraggedColumnOffset imgui_tables.lua:4598 + [x] 89% ImGui::GetColumnOffset imgui_tables.lua:4615 + [x] 64% GetColumnWidthEx imgui_tables.lua:4633 + [x] 72% ImGui::GetColumnWidth imgui_tables.lua:4648 + [x] 93% ImGui::SetColumnOffset imgui_tables.lua:4664 + [x] 97% ImGui::SetColumnWidth imgui_tables.lua:4688 + [x] 92% ImGui::PushColumnClipRect imgui_tables.lua:4699 + [x] 93% ImGui::PushColumnsBackground imgui_tables.lua:4711 + [x] 97% ImGui::PopColumnsBackground imgui_tables.lua:4724 + [x] 55% ImGui::FindOrCreateColumns imgui_tables.lua:4736 + [x] 80% ImGui::GetColumnsID imgui_tables.lua:4750 + [x] 94% ImGui::BeginColumns imgui_tables.lua:4762 + [x] 95% ImGui::NextColumn imgui_tables.lua:4837 + [x] 88% ImGui::EndColumns imgui_tables.lua:4891 + [x] 83% ImGui::Columns imgui_tables.lua:4970 + +==================================================================================================== +imgui_demo.cpp +==================================================================================================== + + -- Helpers + [x] 97% HelpMarker imgui_demo.lua:125 + [x] 85% ShowDockingDisabledMessage imgui_demo.lua:135 + + -- Demo Window / ShowDemoWindow() + [-] ImGuiDemoWindowData::~ImGuiDemoWindowData c++-only + [x] 47% ImGui::ShowDemoWindow imgui_demo.lua:795 + + -- DemoWindowMenuBar() + [x] 54% DemoWindowMenuBar imgui_demo.lua:500 + + -- Helpers: ExampleTreeNode, ExampleMemberInfo (for use by Property Editor & Multi-Select demos) + [x] 52% ExampleTree_CreateNode imgui_demo.lua:335 + [x] 0% ExampleTree_DestroyNode imgui_demo.lua:347 + [x] 69% ExampleTree_CreateDemoTree imgui_demo.lua:352 + + -- Helpers: ExampleImageViewer + [x] 89% ExampleImageViewer_DrawOptions imgui_demo.lua:399 + [x] 91% ExampleImageViewer_DrawCanvas imgui_demo.lua:412 + + -- DemoWindowWidgetsBasic() + [x] 70% DemoWindowWidgetsBasic imgui_demo.lua:6010 + + -- DemoWindowWidgetsBullets() + [x] 89% DemoWindowWidgetsBullets imgui_demo.lua:6113 + + -- DemoWindowWidgetsCollapsingHeaders() + [x] 68% DemoWindowWidgetsCollapsingHeaders imgui_demo.lua:6127 + + -- DemoWindowWidgetsColorAndPickers() + [x] 63% DemoWindowWidgetsColorAndPickers imgui_demo.lua:6158 + + -- DemoWindowWidgetsComboBoxes() + [x] 57% DemoWindowWidgetsComboBoxes imgui_demo.lua:6306 + + -- DemoWindowWidgetsDataTypes() + [x] 27% DemoWindowWidgetsDataTypes imgui_demo.lua:6389 + + -- DemoWindowWidgetsDisableBlocks() + [x] 76% DemoWindowWidgetsDisableBlocks imgui_demo.lua:6476 + + -- DemoWindowWidgetsDragAndDrop() + [x] 73% DemoWindowWidgetsDragAndDrop imgui_demo.lua:6490 + + -- DemoWindowWidgetsDragsAndSliders() + [x] 54% DemoWindowWidgetsDragsAndSliders imgui_demo.lua:6593 + + -- DemoWindowWidgetsFonts() + [x] 39% DemoWindowWidgetsFonts imgui_demo.lua:6638 + + -- DemoWindowWidgetsImages() + [x] 67% DemoWindowWidgetsImages imgui_demo.lua:6650 + + -- DemoWindowWidgetsListBoxes() + [x] 79% DemoWindowWidgetsListBoxes imgui_demo.lua:6713 + + -- DemoWindowWidgetsLiveEdit() + [x] 72% DemoWindowWidgetsLiveEdit imgui_demo.lua:6759 + + -- DemoWindowWidgetsMixedValues() + [x] 60% DemoWindowWidgetsMixedValues imgui_demo.lua:6786 + + -- DemoWindowWidgetsMultiComponents() + [x] 44% DemoWindowWidgetsMultiComponents imgui_demo.lua:6832 + + -- DemoWindowWidgetsPlotting() + [x] 66% DemoWindowWidgetsPlotting imgui_demo.lua:6864 + + -- DemoWindowWidgetsProgressBars() + [x] 60% DemoWindowWidgetsProgressBars imgui_demo.lua:6916 + + -- DemoWindowWidgetsQueryingStatuses() + [x] 59% DemoWindowWidgetsQueryingStatuses imgui_demo.lua:6956 + + -- DemoWindowWidgetsSelectables() + [x] 53% DemoWindowWidgetsSelectables imgui_demo.lua:7108 + + -- DemoWindowWidgetsSelectionAndMultiSelect() + [ ] ExampleSelectionWithDeletion::ApplyDeletionPreLoop + [ ] ExampleSelectionWithDeletion::ApplyDeletionPostLoop + [ ] ExampleDualListBox::MoveAll + [ ] ExampleDualListBox::MoveSelected + [ ] ExampleDualListBox::ApplySelectionRequests + [ ] ExampleDualListBox::CompareItemsByValue + [ ] ExampleDualListBox::SortItems + [ ] ExampleDualListBox::Show + [ ] DemoWindowWidgetsSelectionAndMultiSelect + + -- DemoWindowWidgetsTabs() + [x] 16% EditTabBarFittingPolicyFlags imgui_demo.lua:7238 + [x] 54% DemoWindowWidgetsTabs imgui_demo.lua:7252 + + -- DemoWindowWidgetsText() + [x] 87% DemoWindowWidgetsText imgui_demo.lua:7367 + + -- DemoWindowWidgetsTextFilter() + [x] 72% DemoWindowWidgetsTextFilter imgui_demo.lua:7457 + + -- DemoWindowWidgetsTextInput() + [x] 40% DemoWindowWidgetsTextInput imgui_demo.lua:7491 + + -- DemoWindowWidgetsTooltips() + [x] 80% DemoWindowWidgetsTooltips imgui_demo.lua:7610 + + -- DemoWindowWidgetsTreeNodes() + [x] 54% DemoWindowWidgetsTreeNodes imgui_demo.lua:7686 + + -- DemoWindowWidgetsVerticalSliders() + [x] 82% DemoWindowWidgetsVerticalSliders imgui_demo.lua:7830 + + -- DemoWindowWidgets() + [x] 19% DemoWindowWidgets imgui_demo.lua:960 + + -- DemoWindowLayout() + [x] 71% DemoWindowLayout imgui_demo.lua:1982 + + -- DemoWindowPopups() + [x] 55% DemoWindowPopups imgui_demo.lua:2252 + [ ] MyItem::SortWithSortSpecs + [ ] MyItem::CompareWithSortSpecs + [x] 96% PushStyleCompact imgui_demo.lua:2357 + [x] 100% PopStyleCompact imgui_demo.lua:2363 + [x] 69% EditTableSizingFlags imgui_demo.lua:2369 + [x] 50% EditTableColumnsFlags imgui_demo.lua:2411 + [x] 100% ShowTableColumnsStatusFlags imgui_demo.lua:2438 + + -- DemoWindowTables() + [x] 6% DemoWindowTables imgui_demo.lua:4302 + +==================================================================================================== +imgui.h +==================================================================================================== + + -- Forward declarations and basic types + [x] 0% IM_MSVC_RUNTIME_CHECKS_OFF::ImVec2 imgui_h.lua:290 + [x] 0% ImVec4::ImVec4 imgui_h.lua:356 + + -- Texture identifiers (ImTextureID, ImTextureRef) + [x] 60% IM_MSVC_RUNTIME_CHECKS_OFF::ImTextureRef imgui_h.lua:801 + + -- Tables API flags and structures (ImGuiTableFlags, ImGuiTableColumnFlags, ImGuiTableRowFlags, ImGuiTableBgTarget, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs) + [x] 35% ImGuiTableSortSpecs::ImGuiTableSortSpecs imgui_tables.lua:231 + [x] 17% ImGuiTableColumnSortSpecs::ImGuiTableColumnSortSpecs imgui_tables.lua:222 + + -- Helpers: Debug log, memory allocations macros, ImVector<> + [-] operatornew c++-only + [-] operatordelete c++-only + [x] 26% IM_DELETE imgui_h.lua:130 + [x] 37% IM_MSVC_RUNTIME_CHECKS_OFF::ImVector imgui_h.lua:412 + [-] IM_MSVC_RUNTIME_CHECKS_OFF::operator= c++-only + [-] IM_MSVC_RUNTIME_CHECKS_OFF::~ImVector c++-only + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::clear + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::clear_delete + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::clear_destruct + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::empty + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::size + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::size_in_bytes + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::max_size + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::capacity + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::begin + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::end + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::front + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::back + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::swap + [x] 65% IM_MSVC_RUNTIME_CHECKS_OFF::_grow_capacity imgui_h.lua:406 + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::resize + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::shrink + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::reserve + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::reserve_discard + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::push_back + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::pop_back + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::push_front + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::erase + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::erase_unsorted + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::insert + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::contains + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::find + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::find_index + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::find_erase + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::find_erase_unsorted + [ ] IM_MSVC_RUNTIME_CHECKS_OFF::index_from_ptr + + -- Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload) + [x] 80% ImGuiInputTextCallbackData::SelectAll imgui_h.lua:2420 + [ ] ImGuiInputTextCallbackData::SetSelection + [x] 83% ImGuiInputTextCallbackData::ClearSelection imgui_h.lua:2421 + [x] 89% ImGuiInputTextCallbackData::HasSelection imgui_h.lua:2422 + [x] 29% ImGuiWindowClass::ImGuiWindowClass imgui_h.lua:2286 + [x] 0% ImGuiPayload::ImGuiPayload imgui_h.lua:2630 + [x] 61% ImGuiPayload::Clear imgui_h.lua:2626 + [x] 55% ImGuiPayload::IsDataType imgui_h.lua:2627 + [x] 100% ImGuiPayload::IsPreview imgui_h.lua:2628 + [x] 100% ImGuiPayload::IsDelivery imgui_h.lua:2629 + + -- Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, Math Operators, ImColor) + [ ] ImGuiOnceUponAFrame::ImGuiOnceUponAFrame + [-] ImGuiOnceUponAFrame::operatorbool c++-only + [x] 80% ImGuiTextFilter::Clear imgui.lua:19272 + [x] 100% ImGuiTextFilter::IsActive imgui.lua:19273 + [-] ImGuiTextFilter::Draw obsolete + [x] 0% ImGuiTextBuffer::ImGuiTextBuffer imgui_h.lua:2647 + [ ] ImGuiTextBuffer::begin + [ ] ImGuiTextBuffer::end + [x] 14% ImGuiTextBuffer::size imgui_h.lua:2653 + [x] 33% ImGuiTextBuffer::empty imgui_h.lua:2649 + [x] 40% ImGuiTextBuffer::clear imgui_h.lua:2648 + [ ] ImGuiTextBuffer::resize + [ ] ImGuiTextBuffer::reserve + [x] 31% ImGuiTextBuffer::c_str imgui_h.lua:2652 + [ ] ImGuiStoragePair::ImGuiStoragePair + [ ] ImGuiStorage::Clear + [x] 100% ImGuiListClipper::IncludeItemByIndex imgui.lua:19503 + [-] operator+ c++-only + [-] operator- c++-only + [-] operator* c++-only + [-] operator/ c++-only + [-] operator+= c++-only + [-] operator-= c++-only + [-] operator*= c++-only + [-] operator/= c++-only + [-] operator== c++-only + [-] operator!= c++-only + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::ImColor + [-] IM_MSVC_RUNTIME_CHECKS_RESTORE::operatorImU32 c++-only + [-] IM_MSVC_RUNTIME_CHECKS_RESTORE::operatorImVec4 c++-only + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::SetHSV + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::HSV + + -- Multi-Select API flags and structures (ImGuiMultiSelectFlags, ImGuiSelectionRequestType, ImGuiSelectionRequest, ImGuiMultiSelectIO, ImGuiSelectionBasicStorage) + [ ] ImGuiSelectionBasicStorage::GetStorageIdFromIndex + + -- Drawing API (ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawFlags, ImDrawList, ImDrawData) + [x] 14% ImDrawCmd::ImDrawCmd imgui_h.lua:506 + [x] 18% ImDrawListSplitter::ImDrawListSplitter imgui_h.lua:593 + [-] ImDrawListSplitter::~ImDrawListSplitter c++-only + [x] 92% ImDrawListSplitter::Clear imgui_draw.lua:3831 + [ ] ImDrawList::GetClipRectMin + [ ] ImDrawList::GetClipRectMax + [x] 1% ImDrawList::AddPolyline imgui_draw.lua:4225 + [x] 29% ImDrawList::PathClear imgui_internal.lua:982 + [x] 86% ImDrawList::PathLineTo imgui_internal.lua:986 + [x] 48% ImDrawList::PathLineToMergeDuplicate imgui_internal.lua:988 + [x] 88% ImDrawList::PathFillConvex imgui_internal.lua:996 + [x] 94% ImDrawList::PathFillConcave imgui_draw.lua:5762 + [x] 67% ImDrawList::PathStroke imgui_internal.lua:1004 + [x] 89% ImDrawList::ChannelsSplit imgui_draw.lua:3995 + [x] 80% ImDrawList::ChannelsMerge imgui_draw.lua:3996 + [x] 89% ImDrawList::ChannelsSetCurrent imgui_draw.lua:3998 + [x] 16% ImDrawList::PrimWriteVtx imgui_h.lua:627 + [x] 44% ImDrawList::PrimWriteIdx imgui_h.lua:637 + [x] 89% ImDrawList::PrimVtx imgui_h.lua:645 + [-] ImDrawList::AddRect obsolete + [-] ImDrawList::PushTextureID obsolete + [-] ImDrawList::PopTextureID obsolete + [x] 12% ImDrawData::ImDrawData imgui_h.lua:701 + + -- Texture API (ImTextureFormat, ImTextureStatus, ImTextureRect, ImTextureData) + [x] 14% ImTextureData::ImTextureData imgui_h.lua:745 + [-] ImTextureData::~ImTextureData c++-only + [ ] ImTextureData::GetPixels + [x] 58% ImTextureData::GetPixelsAt imgui_h.lua:772 + [ ] ImTextureData::GetSizeInBytes + [x] 86% ImTextureData::GetPitch imgui_h.lua:776 + [ ] ImTextureData::GetTexRef + [x] 100% ImTextureData::GetTexID imgui_h.lua:777 + [x] 100% ImTextureData::SetTexID imgui_h.lua:780 + [x] 95% ImTextureData::SetStatus imgui_h.lua:783 + + -- Font API (ImFontConfig, ImFontGlyph, ImFontAtlasFlags, ImFontAtlas, ImFontGlyphRangesBuilder, ImFont) + [x] 21% ImFontGlyph::ImFontGlyph imgui_h.lua:1120 + [ ] ImFontGlyphRangesBuilder::ImFontGlyphRangesBuilder + [ ] ImFontGlyphRangesBuilder::Clear + [ ] ImFontGlyphRangesBuilder::GetBit + [ ] ImFontGlyphRangesBuilder::SetBit + [ ] ImFontGlyphRangesBuilder::AddChar + [x] 14% ImFontAtlasRect::ImFontAtlasRect imgui_h.lua:1092 + [-] ImFontAtlas::SetTexID obsolete + [-] ImFontAtlas::IsBuilt obsolete + [-] ImFontAtlas::AddCustomRectRegular obsolete + [-] ImFontAtlas::GetCustomRectByIndex obsolete + [-] ImFontAtlas::CalcCustomRectUV obsolete + [x] 100% ImFont::IsLoaded imgui_h.lua:890 + [x] 58% ImFont::GetDebugName imgui_h.lua:891 + [-] ImFont::CalcWordWrapPositionA obsolete + [ ] ImTextureRef::GetTexID + [ ] ImDrawCmd::GetTexID + + -- Viewports + [x] 7% ImGuiViewport::ImGuiViewport imgui_h.lua:1453 + [-] ImGuiViewport::~ImGuiViewport c++-only + [x] 90% ImGuiViewport::GetCenter imgui_h.lua:1443 + [x] 90% ImGuiViewport::GetWorkCenter imgui_h.lua:1447 + + -- ImGuiPlatformIO + other Platform Dependent Interfaces (ImGuiPlatformMonitor, ImGuiPlatformImeData) + [x] 42% ImGuiPlatformMonitor::ImGuiPlatformMonitor imgui_h.lua:1547 + [x] 24% ImGuiPlatformImeData::ImGuiPlatformImeData imgui_h.lua:1353 + + -- Obsolete functions and types + [-] PushFont obsolete + [-] PushButtonRepeat obsolete + [-] PopButtonRepeat obsolete + [-] PushTabStop obsolete + [-] PopTabStop obsolete + +==================================================================================================== +imgui_internal.h +==================================================================================================== + + -- Generic helpers + [x] 50% ImQsort imgui_internal.lua:210 + [x] 92% ImIsPowerOfTwo imgui_internal.lua:263 + [x] 35% ImUpperPowerOfTwo imgui_internal.lua:267 + [x] 82% ImCountSetBits imgui_internal.lua:282 + [ ] ImToUpper + [x] 75% ImCharIsBlankA imgui_internal.lua:655 + [x] 83% ImCharIsBlankW imgui_internal.lua:658 + [ ] ImCharIsXdigitA + [x] 0% ImFileOpen imgui.lua:4702 + [x] 0% ImFileClose imgui.lua:4719 + [x] 67% ImFileGetSize imgui.lua:4720 + [x] 4% ImFileRead imgui.lua:4725 + [ ] ImFileWrite + [x] n/a ImPow imgui_internal.lua:150 = math . pow + [x] n/a ImLog imgui_internal.lua:151 = math . log + [x] n/a ImAbs imgui_internal.lua:152 = math . abs + [ ] ImSign + [x] 40% ImRsqrt imgui_internal.lua:254 + [ ] ImRsqrtPrecise + [ ] ImSwap + [x] 100% ImAddClampOverflow imgui_internal.lua:171 + [x] 100% ImSubClampOverflow imgui_internal.lua:183 + [x] 47% ImMin imgui_internal.lua:193 + [x] 47% ImMax imgui_internal.lua:201 + [x] 25% ImClamp imgui_internal.lua:215 + [x] 45% ImLerp imgui_internal.lua:225 + [x] 77% ImSaturate imgui_internal.lua:379 + [x] 67% ImLengthSqr imgui_internal.lua:416 + [ ] ImInvLength + [x] 24% ImTrunc imgui_internal.lua:236 + [x] 69% ImFloor imgui_internal.lua:259 + [x] 15% ImTrunc64 imgui_internal.lua:242 = _Trunc + [ ] ImRoundPositive64 + [ ] ImRoundSigned64 + [x] 42% ImCeilFast imgui_internal.lua:246 + [ ] ImModPositive + [x] 100% ImDot imgui_internal.lua:429 + [x] 98% ImRotate imgui_internal.lua:423 + [x] 100% ImLinearSweep imgui_widgets.lua:9273 + [ ] ImLinearRemapClamp + [x] 97% ImMul imgui_internal.lua:436 + [ ] ImIsFloatAboveGuaranteedIntegerPrecision + [x] 71% ImExponentialMovingAverage imgui_internal.lua:295 + [ ] ImIsTruncated + [ ] ImIsTruncated4 + [ ] ImTriangleArea + [ ] ImTriangleIsClockwise + [x] 0% IM_MSVC_RUNTIME_CHECKS_OFF::ImVec1 imgui_internal.lua:760 + [ ] ImVec2i::ImVec2i + [ ] ImVec2ih::ImVec2ih + [x] 0% ImRect::ImRect imgui_internal.lua:790 + [x] 90% ImRect::GetCenter imgui_internal.lua:820 + [x] 89% ImRect::GetSize imgui_internal.lua:825 + [x] 94% ImRect::GetWidth imgui_internal.lua:821 + [x] 94% ImRect::GetHeight imgui_internal.lua:822 + [x] 91% ImRect::GetArea imgui_internal.lua:904 + [x] 33% ImRect::GetTL imgui_internal.lua:828 + [x] 89% ImRect::GetTR imgui_internal.lua:830 + [x] 89% ImRect::GetBL imgui_internal.lua:832 + [x] 33% ImRect::GetBR imgui_internal.lua:834 + [x] 43% ImRect::Contains imgui_internal.lua:797 + [x] 96% ImRect::ContainsWithPad imgui_internal.lua:809 + [x] 14% ImRect::Overlaps imgui_internal.lua:815 + [x] 59% ImRect::Add imgui_internal.lua:852 + [ ] ImRect::AddX + [ ] ImRect::AddY + [x] 38% ImRect::Expand imgui_internal.lua:870 + [x] 64% ImRect::Translate imgui_internal.lua:887 + [x] 55% ImRect::TranslateX imgui_internal.lua:893 + [x] 55% ImRect::TranslateY imgui_internal.lua:898 + [x] 74% ImRect::ClipWith imgui_internal.lua:839 + [x] 81% ImRect::ClipWithFull imgui_internal.lua:846 + [x] 91% ImRect::IsInverted imgui_internal.lua:902 + [x] 94% ImRect::ToVec4 imgui_internal.lua:881 + [x] 36% ImRect::AsVec4 imgui_internal.lua:907 + [ ] ImBitArrayGetStorageSizeInBytes + [ ] ImBitArrayClearAllBits + [ ] ImBitArrayTestBit + [ ] ImBitArrayClearBit + [x] 34% ImBitArraySetBit imgui_internal.lua:942 + [ ] ImBitArraySetBitRange + [ ] ImBitVector::Create + [ ] ImBitVector::Clear + [ ] ImBitVector::TestBit + [ ] ImBitVector::SetBit + [ ] ImBitVector::ClearBit + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::ImSpan + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::set + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::clear + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::empty + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::size + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::size_in_bytes + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::begin + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::end + [ ] IM_MSVC_RUNTIME_CHECKS_RESTORE::index_from_ptr + [ ] template::ImSpanAllocator + [ ] template::Reserve + [ ] template::GetArenaSizeInBytes + [ ] template::SetArenaBasePtr + [ ] template::GetSpanPtrBegin + [ ] template::GetSpanPtrEnd + [ ] template::GetSpan + [-] template::~ImStableVector c++-only + [ ] template::clear + [ ] template::resize + [ ] template::reserve + [ ] template::push_back + [x] 33% template::ImPool imgui_internal.lua:71 + [-] template::~ImPool c++-only + [ ] template::GetByKey + [ ] template::GetByIndex + [ ] template::GetIndex + [ ] template::GetOrAddByKey + [ ] template::Contains + [ ] template::Clear + [ ] template::Add + [ ] template::Remove + [ ] template::GetAliveCount + [ ] template::GetBufSize + [ ] template::GetMapSize + [ ] template::TryGetMapData + [ ] template::empty + [ ] template::size + [ ] template::alloc_chunk + [ ] template::begin + [ ] template::next_chunk + [ ] template::chunk_size + [ ] template::end + [ ] template::offset_from_ptr + [ ] template::ptr_from_offset + [ ] template::swap + [x] 83% ImGuiTextIndex::clear imgui_internal.lua:1735 + [ ] ImGuiTextIndex::size + [x] 81% ImGuiTextIndex::get_line_begin imgui_internal.lua:1737 + [x] 85% ImGuiTextIndex::get_line_end imgui_internal.lua:1741 + [ ] ImGuiTextFilterItem::ImGuiTextFilterItem + [ ] ImGuiPackedDate::ImGuiPackedDate + [ ] ImGuiPackedDate::IsValid + [ ] ImGuiPackedDate::Unpack + [ ] ImGuiPackedDate::SubtractMonths + + -- ImDrawList support + [x] 27% ImDrawDataBuilder::ImDrawDataBuilder imgui_internal.lua:2752 + + -- Style support + [ ] ImGuiStyleVarInfo::GetVarPtr + [x] 39% ImGuiStyleMod::ImGuiStyleMod imgui_internal.lua:1187 + + -- Widgets support: flags, enums, data structures + [x] 21% ImGuiComboPreviewData::ImGuiComboPreviewData imgui_internal.lua:1581 + [x] 12% ImGuiMenuColumns::ImGuiMenuColumns imgui_internal.lua:2419 + [x] 20% ImGuiInputTextDeactivatedState::ImGuiInputTextDeactivatedState imgui_internal.lua:1667 + [ ] ImGuiInputTextDeactivatedState::ClearFreeMemory + [ ] ImGuiInputTextState::ClearText + [ ] ImGuiInputTextState::ClearFreeMemory + [ ] ImGuiInputTextState::GetText + [x] 3% ImGuiNextWindowData::ImGuiNextWindowData imgui_internal.lua:1352 + [ ] ImGuiNextWindowData::ClearFlags + [x] 20% ImGuiNextItemData::ImGuiNextItemData imgui_internal.lua:1304 + [ ] ImGuiNextItemData::ClearFlags + [x] 11% ImGuiLastItemData::ImGuiLastItemData imgui_internal.lua:1224 + [x] 8% ImGuiErrorRecoveryState::ImGuiErrorRecoveryState imgui.lua:19700 + [ ] ImGuiPtrOrIndex::ImGuiPtrOrIndex + + -- Popup support + [x] 36% ImGuiPopupData::ImGuiPopupData imgui_internal.lua:3306 + + -- Inputs support + [x] 9% ImGuiInputEvent::ImGuiInputEvent imgui_internal.lua:3100 + [x] 73% ImGuiKeyRoutingData::ImGuiKeyRoutingData imgui_internal.lua:1688 + [x] 10% ImGuiKeyRoutingTable::ImGuiKeyRoutingTable imgui_internal.lua:1715 + [ ] ImGuiKeyRoutingTable::Clear + [x] 64% ImGuiKeyOwnerData::ImGuiKeyOwnerData imgui_internal.lua:616 + + -- Clipper support + [ ] ImGuiListClipperRange::FromIndices + [ ] ImGuiListClipperRange::FromPositions + [ ] ImGuiListClipperData::ImGuiListClipperData + [ ] ImGuiListClipperData::Reset + + -- Navigation support + [x] 13% ImGuiNavItemData::ImGuiNavItemData imgui_internal.lua:1819 + [ ] ImGuiNavItemData::Clear + + -- Typing-select support + [ ] ImGuiTypingSelectState::ImGuiTypingSelectState + [ ] ImGuiTypingSelectState::Clear + + -- Columns support + [x] 19% ImGuiOldColumnData::ImGuiOldColumnData imgui_tables.lua:339 + [x] 5% ImGuiOldColumns::ImGuiOldColumns imgui_tables.lua:344 + + -- Box-select support + [ ] ImGuiBoxSelectState::ImGuiBoxSelectState + + -- Multi-select support + [ ] ImGuiMultiSelectTempData::ImGuiMultiSelectTempData + [ ] ImGuiMultiSelectTempData::Clear + [ ] ImGuiMultiSelectTempData::ClearIO + [ ] ImGuiMultiSelectState::ImGuiMultiSelectState + + -- Docking support + [x] 100% ImGuiDockNode::IsRootNode imgui.lua:1095 + [x] 88% ImGuiDockNode::IsDockSpace imgui.lua:1096 + [x] 88% ImGuiDockNode::IsFloatingNode imgui.lua:1097 + [x] 88% ImGuiDockNode::IsCentralNode imgui.lua:1098 + [x] 88% ImGuiDockNode::IsHiddenTabBar imgui.lua:1099 + [x] 88% ImGuiDockNode::IsNoTabBar imgui.lua:1100 + [x] 100% ImGuiDockNode::IsSplitNode imgui.lua:1101 + [x] 100% ImGuiDockNode::IsLeafNode imgui.lua:1102 + [x] 96% ImGuiDockNode::IsEmpty imgui.lua:1103 + [x] 92% ImGuiDockNode::Rect imgui.lua:1104 + [x] 100% ImGuiDockNode::SetLocalFlags imgui.lua:1105 + [x] 67% ImGuiDockNode::UpdateMergedFlags imgui.lua:1106 + [x] 20% ImGuiDockContext::ImGuiDockContext imgui.lua:1040 + + -- Viewport support + [x] 36% ImGuiViewportP::ImGuiViewportP imgui_internal.lua:2839 + [-] ImGuiViewportP::~ImGuiViewportP c++-only + [x] 78% ImGuiViewportP::ClearRequestFlags imgui_internal.lua:2794 + [x] 94% ImGuiViewportP::CalcWorkRectPos imgui_internal.lua:2801 + [x] 98% ImGuiViewportP::CalcWorkRectSize imgui_internal.lua:2805 + [x] 87% ImGuiViewportP::UpdateWorkRect imgui_internal.lua:2810 + [x] 92% ImGuiViewportP::GetMainRect imgui_internal.lua:2817 + [x] 92% ImGuiViewportP::GetWorkRect imgui_internal.lua:2824 + [x] 96% ImGuiViewportP::GetBuildWorkRect imgui_internal.lua:2831 + + -- Settings support + [x] 18% ImGuiWindowSettings::ImGuiWindowSettings imgui_internal.lua:2386 + [ ] ImGuiWindowSettings::GetName + [x] 13% ImGuiSettingsHandler::ImGuiSettingsHandler imgui_h.lua:2658 + + -- Metrics, Debug Tools + [x] 7% ImGuiDebugAllocInfo::ImGuiDebugAllocInfo imgui_internal.lua:1767 + [ ] ImGuiStackLevelInfo::ImGuiStackLevelInfo + [ ] ImGuiDebugItemPathQuery::ImGuiDebugItemPathQuery + [ ] ImGuiIDStackTool::ImGuiIDStackTool + + -- Generic context hooks + [ ] ImGuiContextHook::ImGuiContextHook + + -- ImGuiWindowTempData, ImGuiWindow + [x] 92% ImGuiWindow::Rect imgui_internal.lua:2560 + [x] 84% ImGuiWindow::TitleBarRect imgui_internal.lua:2566 + [x] 91% ImGuiWindow::MenuBarRect imgui_internal.lua:2572 + + -- Tab bar, Tab item support + [x] 50% ImGuiTabItem::ImGuiTabItem imgui_internal.lua:1947 + + -- Table support + internal API + [x] 28% ImGuiTableColumn::ImGuiTableColumn imgui_tables.lua:239 + [x] 76% ImGuiTableInstanceData::ImGuiTableInstanceData imgui_tables.lua:270 + [x] 2% ImGuiTable::ImGuiTable imgui_tables.lua:293 + [-] ImGuiTable::~ImGuiTable c++-only + [x] 14% ImGuiTableTempData::ImGuiTableTempData imgui_tables.lua:279 + [x] 85% ImGuiTableColumnSettings::ImGuiTableColumnSettings imgui_tables.lua:326 + [x] 11% ImGuiTableSettings::ImGuiTableSettings imgui_tables.lua:333 + [ ] ImGuiTableSettings::GetColumnSettings + [ ] GetCurrentTable + [x] 73% TableGetInstanceData imgui_tables.lua:437 + [x] 86% TableGetInstanceID imgui_tables.lua:444 + + -- ImGui internal API + [x] 100% GetScale imgui.lua:13519 + [x] 100% GetCurrentWindowRead imgui.lua:13525 + [x] 100% GetCurrentWindow imgui.lua:13532 + [ ] SetWindowParentWindowForFocusRoute + [x] 99% WindowRectAbsToRel imgui_internal.lua:633 + [x] 99% WindowRectRelToAbs imgui_internal.lua:638 + [x] 98% WindowPosAbsToRel imgui_internal.lua:651 + [ ] WindowPosRelToAbs + [ ] GetPixelDensity + [x] 55% GetRoundedFontSize imgui_internal.lua:627 + [x] 15% GetForegroundDrawList imgui.lua:13601 + [x] 80% LocalizeGetMsg imgui_internal.lua:3410 + [ ] ScrollToBringRectIntoView + [ ] GetItemStatusFlags + [ ] GetActiveID + [ ] GetFocusID + [x] 2% ItemSize imgui.lua:6484 + [x] 100% IsNamedKey imgui_internal.lua:541 + [x] 75% IsNamedKeyOrMod imgui_internal.lua:572 + [ ] IsLegacyKey + [x] 60% IsKeyboardKey imgui_internal.lua:546 + [x] 60% IsGamepadKey imgui_internal.lua:551 + [x] 60% IsMouseKey imgui_internal.lua:556 + [x] 60% IsAliasKey imgui_internal.lua:561 + [x] 100% IsLRModKey imgui_internal.lua:566 + [x] 76% ConvertSingleModFlagToKey imgui_internal.lua:578 + [x] 17% GetKeyData imgui.lua:8405 + [x] 97% MouseButtonToKey imgui_internal.lua:538 + [x] 81% IsActiveIdUsingNavDir imgui_internal.lua:642 + [x] 88% GetKeyOwnerData imgui_internal.lua:604 + [x] 100% DockNodeGetRootNode imgui.lua:4488 + [x] 100% DockNodeIsInHierarchyOf imgui.lua:4493 + [x] 86% DockNodeGetDepth imgui.lua:4501 + [x] 89% DockNodeGetWindowMenuButtonId imgui.lua:4507 + [ ] GetWindowDockNode + [x] 97% DockBuilderGetCentralNode imgui.lua:3661 + [ ] GetCurrentFocusScope + [ ] GetBoxSelectState + [ ] GetMultiSelectState + [ ] GetCurrentTabBar + [x] 35% TabBarGetTabOrder imgui_widgets.lua:9831 + [-] RenderNavHighlight obsolete + [x] 100% TempInputIsActive imgui_internal.lua:3417 + [x] 88% GetInputTextState imgui_internal.lua:3425 + [ ] IsItemActiveAsInputText + [x] 80% SetNextItemColorMarker imgui_internal.lua:1013 + + -- ImFontLoader + [x] 6% ImFontLoader::ImFontLoader imgui_internal.lua:2901 + + -- ImFontAtlas internal API + [-] operator== c++-only + [-] operator!= c++-only + [x] 75% ImFontAtlasRectId_GetIndex imgui_internal.lua:2953 + [x] 62% ImFontAtlasRectId_GetGeneration imgui_internal.lua:2957 + [x] 77% ImFontAtlasRectId_Make imgui_internal.lua:2962 + [x] 19% ImFontAtlasBuilder::ImFontAtlasBuilder imgui_internal.lua:1111 + +==================================================================================================== +API declarations not ported (by upstream line) +==================================================================================================== + + Public API (imgui.h, namespace ImGui): 365 / 376 + -- Dear ImGui end-user API functions + [ ] ImGui::BeginMultiSelect + [ ] ImGui::EndMultiSelect + [ ] ImGui::SetNextItemSelectionUserData + [ ] ImGui::SetTooltipV + [ ] ImGui::SetItemTooltipV + [ ] ImGui::DebugFlashStyleColor + [ ] ImGui::DebugStartItemPicker + [ ] ImGui::DebugCheckVersionAndDataLayout + [ ] ImGui::DebugLogV + [ ] ImGui::GetAllocatorFunctions + [ ] ImGui::FindViewportByPlatformHandle + + Internal API (imgui_internal.h, namespace ImGui): 405 / 443 + -- ImGui internal API + [ ] ImGui::RegisterUserTexture + [ ] ImGui::UnregisterUserTexture + [ ] ImGui::SetPixelDensity + [ ] ImGui::SetContextName + [ ] ImGui::AddContextHook + [ ] ImGui::RemoveContextHook + [ ] ImGui::CallContextHooks + [ ] ImGui::TestShortcutRouting + [ ] ImGui::GetTypingSelectRequest + [ ] ImGui::TypingSelectFindMatch + [ ] ImGui::TypingSelectFindNextSingleCharMatch + [ ] ImGui::TypingSelectFindBestLeadingMatch + [ ] ImGui::BeginBoxSelect + [ ] ImGui::EndBoxSelect + [ ] ImGui::MultiSelectItemHeader + [ ] ImGui::MultiSelectItemFooter + [ ] ImGui::MultiSelectAddSetAll + [ ] ImGui::MultiSelectAddSetRange + [ ] ImGui::GetWindowResizeCornerID + [ ] ImGui::GetWindowResizeBorderID + [ ] ImGui::DemoMarker + [ ] ImGui::DebugDrawCursorPos + [ ] ImGui::DebugDrawLineExtents + [ ] ImGui::DebugDrawItemRect + [ ] ImGui::DebugTextUnformattedWithLocateItem + [ ] ImGui::DebugLocateItem + [ ] ImGui::DebugLocateItemOnHover + [ ] ImGui::DebugLocateItemResolveWithLastItem + [ ] ImGui::DebugBreakClearData + [ ] ImGui::DebugBreakButton + [ ] ImGui::DebugBreakButtonTooltip + [ ] ImGui::DebugTextureIDToU64 + [ ] ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox + [ ] ImGui::DebugNodeInputTextState + [ ] ImGui::DebugNodeTypingSelectState + [ ] ImGui::DebugNodeMultiSelectState + [ ] ImGui::DebugNodePlatformMonitor + [ ] ImGui::DebugRenderKeyboardPreview + +==================================================================================================== +Enums (values ported / total; missing listed) +==================================================================================================== + ImDrawFlags_ 3 / 31 missing: ImDrawFlags_RoundTopLeft, ImDrawFlags_RoundTopRight, ImDrawFlags_RoundBottomLeft, ImDrawFlags_RoundBottomRight, ImDrawFlags_RoundNone, ImDrawFlags_RoundAll, ImDrawFlags_RoundTop, ImDrawFlags_RoundBottom, ImDrawFlags_RoundLeft, ImDrawFlags_RoundRight, ImDrawFlags_JoinMiter, ImDrawFlags_CapSquare, ImDrawFlags_AAFill, ImDrawFlags_AALines, ImDrawFlags_AALineEnds, ImDrawFlags_StrokeInside, ImDrawFlags_StrokeCenter, ImDrawFlags_StrokeCenterBiased, ImDrawFlags_StrokeOutside, ImDrawFlags_StrokeLegacy, ImDrawFlags_TextNoPixelSnap, ImDrawFlags_UseTexForRoundCorners, ImDrawFlags_UseVtxOffset, ImDrawFlags_AllowTexForRoundCorners_, ImDrawFlags_RoundMask_, ImDrawFlags_AllowInPushScope_, ImDrawFlags_AllowInFrameScope_, ImDrawFlags_StrokeMask_ + ImDrawTextFlags_ 4 / 4 + ImFontAtlasFlags_ 4 / 5 missing: ImFontAtlasFlags_NoBakedRoundCorners + ImFontFlags_ 5 / 5 + ImGuiActivateFlags_ 7 / 7 + ImGuiAxis 3 / 3 + ImGuiBackendFlags_ 10 / 10 + ImGuiButtonFlagsPrivate_ 17 / 17 + ImGuiButtonFlags_ 7 / 7 + ImGuiChildFlags_ 10 / 10 + ImGuiCol_ 64 / 64 + ImGuiColorEditFlags_ 33 / 33 + ImGuiComboFlags_ 10 / 10 + ImGuiCond_ 5 / 5 + ImGuiConfigFlags_ 10 / 10 + ImGuiContextHookType 0 / 8 missing: ImGuiContextHookType_NewFramePre, ImGuiContextHookType_NewFramePost, ImGuiContextHookType_EndFramePre, ImGuiContextHookType_EndFramePost, ImGuiContextHookType_RenderPre, ImGuiContextHookType_RenderPost, ImGuiContextHookType_Shutdown, ImGuiContextHookType_PendingRemoval_ + ImGuiDataAuthority_ 3 / 3 + ImGuiDataTypePrivate_ 2 / 2 + ImGuiDataType_ 11 / 13 missing: ImGuiDataType_S64, ImGuiDataType_U64 + ImGuiDebugLogFlags_ 18 / 18 + ImGuiDir 6 / 6 + ImGuiDockNodeFlagsPrivate_ 13 / 18 missing: ImGuiDockNodeFlags_NoDocking, ImGuiDockNodeFlags_SharedFlagsInheritMask_, ImGuiDockNodeFlags_NoResizeFlagsMask_, ImGuiDockNodeFlags_LocalFlagsTransferMask_, ImGuiDockNodeFlags_SavedFlagsMask_ + ImGuiDockNodeFlags_ 8 / 8 + ImGuiDockNodeState 4 / 4 + ImGuiDockRequestType 4 / 4 + ImGuiDragDropFlags_ 14 / 14 + ImGuiFocusRequestFlags_ 3 / 3 + ImGuiFocusedFlags_ 7 / 7 + ImGuiHoveredFlagsPrivate_ 3 / 3 + ImGuiHoveredFlags_ 21 / 21 + ImGuiInputEventType 9 / 9 + ImGuiInputFlagsPrivate_ 24 / 24 + ImGuiInputFlags_ 11 / 11 + ImGuiInputSource 5 / 5 + ImGuiInputTextFlagsPrivate_ 3 / 3 + ImGuiInputTextFlags_ 26 / 26 + ImGuiItemFlagsPrivate_ 10 / 10 + ImGuiItemFlags_ 12 / 12 + ImGuiItemStatusFlags_ 13 / 13 + ImGuiKey 155 / 165 missing: ImGuiKey_0, ImGuiKey_1, ImGuiKey_2, ImGuiKey_3, ImGuiKey_4, ImGuiKey_5, ImGuiKey_6, ImGuiKey_7, ImGuiKey_8, ImGuiKey_9 + ImGuiLayoutType_ 2 / 2 + ImGuiListClipperFlags_ 0 / 2 missing: ImGuiListClipperFlags_None, ImGuiListClipperFlags_NoSetTableRowCounters + ImGuiLocKey 16 / 16 + ImGuiLogFlags_ 0 / 6 missing: ImGuiLogFlags_None, ImGuiLogFlags_OutputTTY, ImGuiLogFlags_OutputFile, ImGuiLogFlags_OutputBuffer, ImGuiLogFlags_OutputClipboard, ImGuiLogFlags_OutputMask_ + ImGuiMouseButton_ 4 / 4 + ImGuiMouseCursor_ 13 / 13 + ImGuiMouseSource 4 / 4 + ImGuiMultiSelectFlags_ 0 / 21 missing: ImGuiMultiSelectFlags_None, ImGuiMultiSelectFlags_SingleSelect, ImGuiMultiSelectFlags_NoSelectAll, ImGuiMultiSelectFlags_NoRangeSelect, ImGuiMultiSelectFlags_NoAutoSelect, ImGuiMultiSelectFlags_NoAutoClear, ImGuiMultiSelectFlags_NoAutoClearOnReselect, ImGuiMultiSelectFlags_BoxSelect1d, ImGuiMultiSelectFlags_BoxSelect2d, ImGuiMultiSelectFlags_BoxSelectNoScroll, ImGuiMultiSelectFlags_ClearOnEscape, ImGuiMultiSelectFlags_ClearOnClickVoid, ImGuiMultiSelectFlags_ScopeWindow, ImGuiMultiSelectFlags_ScopeRect, ImGuiMultiSelectFlags_SelectOnAuto, ImGuiMultiSelectFlags_SelectOnClickAlways, ImGuiMultiSelectFlags_SelectOnClickRelease, ImGuiMultiSelectFlags_NavWrapX, ImGuiMultiSelectFlags_NoSelectOnRightClick, ImGuiMultiSelectFlags_SelectOnMask_, ImGuiMultiSelectFlags_CheckboxMode_ + ImGuiNavLayer 3 / 3 + ImGuiNavMoveFlags_ 18 / 18 + ImGuiNavRenderCursorFlags_ 3 / 3 + ImGuiNextItemDataFlags_ 7 / 7 + ImGuiNextWindowDataFlags_ 15 / 15 + ImGuiOldColumnFlags_ 0 / 6 missing: ImGuiOldColumnFlags_None, ImGuiOldColumnFlags_NoBorder, ImGuiOldColumnFlags_NoResize, ImGuiOldColumnFlags_NoPreserveWidths, ImGuiOldColumnFlags_NoForceWithinWindow, ImGuiOldColumnFlags_GrowParentContentsSize + ImGuiPlotType 2 / 2 + ImGuiPopupFlags_ 13 / 13 + ImGuiPopupPositionPolicy 3 / 3 + ImGuiScrollFlags_ 10 / 10 + ImGuiSelectableFlagsPrivate_ 7 / 7 + ImGuiSelectableFlags_ 8 / 8 + ImGuiSelectionRequestType 0 / 3 missing: ImGuiSelectionRequestType_None, ImGuiSelectionRequestType_SetAll, ImGuiSelectionRequestType_SetRange + ImGuiSeparatorFlags_ 4 / 4 + ImGuiSliderFlagsPrivate_ 2 / 2 + ImGuiSliderFlags_ 11 / 11 + ImGuiSortDirection 3 / 3 + ImGuiStyleVar_ 44 / 46 missing: ImGuiStyleVar_SeparatorSize, ImGuiStyleVar_DockingSeparatorSize + ImGuiTabBarFlagsPrivate_ 3 / 3 + ImGuiTabBarFlags_ 13 / 13 + ImGuiTabItemFlagsPrivate_ 5 / 5 + ImGuiTabItemFlags_ 10 / 10 + ImGuiTableBgTarget_ 4 / 4 + ImGuiTableColumnFlags_ 28 / 28 + ImGuiTableFlags_ 37 / 37 + ImGuiTableRowFlags_ 2 / 2 + ImGuiTextFlags_ 2 / 2 + ImGuiTooltipFlags_ 2 / 2 + ImGuiTreeNodeFlagsPrivate_ 5 / 5 + ImGuiTreeNodeFlags_ 22 / 22 + ImGuiTypingSelectFlags_ 0 / 3 missing: ImGuiTypingSelectFlags_None, ImGuiTypingSelectFlags_AllowBackspace, ImGuiTypingSelectFlags_AllowSingleCharMode + ImGuiViewportFlags_ 15 / 15 + ImGuiWindowBgClickFlags_ 2 / 2 + ImGuiWindowDockStyleCol 10 / 10 + ImGuiWindowFlags_ 30 / 30 + ImGuiWindowRefreshFlags_ 4 / 4 + ImTextureFormat 2 / 2 + ImTextureStatus 5 / 5 + ImTriangulatorNodeType 0 / 3 missing: ImTriangulatorNodeType_Convex, ImTriangulatorNodeType_Ear, ImTriangulatorNodeType_Reflex + ImWcharClass 3 / 3 + MyItemColumnID 0 / 5 missing: MyItemColumnID_ID, MyItemColumnID_Name, MyItemColumnID_Action, MyItemColumnID_Quantity, MyItemColumnID_Description + +==================================================================================================== +Struct fields (name found in the port / total; missing listed). Field names are matched globally, so common names may over-count. +==================================================================================================== + ExampleDualListBox 1 / 3 missing: Selections, OptKeepSorted + ExampleImageViewerData 8 / 8 + ExampleMemberInfo 4 / 4 + ExampleTreeNode 9 / 9 + IM_MSVC_RUNTIME_CHECKS_OFF 7 / 7 + IM_MSVC_RUNTIME_CHECKS_RESTORE 79 / 81 missing: CurveTessellationMaxError, DataEnd + ImBitVector 0 / 1 missing: Storage + ImDrawChannel 2 / 2 + ImDrawCmd 9 / 9 + ImDrawCmdHeader 3 / 3 + ImDrawData 10 / 10 + ImDrawDataBuilder 2 / 2 + ImDrawList 16 / 19 missing: _DrawFlagsStack, _InvFringeScale, _FringeScaleIsInteger + ImDrawListSharedData 14 / 17 missing: TexUvCorners, CurveTessellationMaxError, InitialDrawFlags + ImDrawListSplitter 3 / 3 + ImDrawVert 1 / 3 missing: uv, col + ImFont 11 / 11 + ImFontAtlas 30 / 30 + ImFontAtlasBuilder 21 / 24 missing: PackIdLineFractTexData, PackIdCornersTexData, TexUvCorners + ImFontAtlasPostProcessData 10 / 10 + ImFontAtlasRect 6 / 6 + ImFontAtlasRectEntry 3 / 3 + ImFontBaked 17 / 17 + ImFontConfig 25 / 25 + ImFontGlyph 14 / 14 + ImFontGlyphRangesBuilder 0 / 1 missing: UsedChars + ImFontLoader 2 / 2 + ImFontStackData 3 / 3 + ImGuiBoxSelectState 3 / 16 missing: IsActive, IsStarting, IsStartedFromVoid, IsStartedSetNavIdOnce, RequestClear, StartPosRel, EndPosRel, ScrollAccum, UnclipMode, UnclipRect, UnclipRects, BoxSelectRectPrev, BoxSelectRectCurr + ImGuiColorMod 2 / 2 + ImGuiComboPreviewData 6 / 9 missing: BackupWorkRectMaxX, BackupContentRectMaxX, WithinPreview + ImGuiContext 305 / 338 missing: TestEngineHookItems, CurrentPixelDensity, TestEngine, InputEventsTrail, MixedValueLabel, DebugBreakInShortcutRouting, DebugLocateId, NavJustMovedToIsInit, DragDropPayloadBufHeap, DragDropPayloadBufLocal, BoxSelectState, CurrentMultiSelect, MultiSelectTempDataStacked, MultiSelectTempData, MultiSelectStorage, ClipboardHandlerData, TypingSelectState, SessionDate, DemoMarkerCallback, DebugLogIndex, DebugLogSkippedErrors, DebugLocateFrames, DebugBreakInLocateId, DebugBreakKeyChord, DebugBeginReturnValueCullDepth, DebugItemPickerActive, DebugItemPickerMouseButton, DebugItemPickerBreakId, DebugFlashStyleColorTime, DebugFlashStyleColorBackup, DebugDrawIdConflictsAliveCount, DebugDrawIdConflictsHighlightSet, TempKeychordName + ImGuiContextHook 2 / 5 missing: HookId, Owner, Callback + ImGuiDataTypeInfo 4 / 4 + ImGuiDataTypeStorage 1 / 1 + ImGuiDeactivatedItemData 4 / 4 + ImGuiDebugAllocEntry 3 / 3 + ImGuiDebugAllocInfo 4 / 4 + ImGuiDebugItemPathQuery 5 / 7 missing: ResultsDescBuf, ResultPathBuf + ImGuiDemoWindowData 25 / 25 + ImGuiDockContext 4 / 4 + ImGuiDockContextPruneNodeData 4 / 4 + ImGuiDockNode 42 / 42 + ImGuiDockNodeSettings 10 / 10 + ImGuiDockNodeTreeInfo 3 / 3 + ImGuiDockPreviewData 9 / 9 + ImGuiDockRequest 9 / 9 + ImGuiErrorRecoveryState 11 / 11 + ImGuiFocusScopeData 2 / 2 + ImGuiGroupData 14 / 14 + ImGuiIDStackTool 4 / 4 + ImGuiIO 96 / 117 missing: FontAllowUserScaling, ConfigNavSwapGamepadButtons, ConfigNavMoveSetMousePos, ConfigNavCaptureKeyboard, ConfigNavEscapeClearFocusItem, ConfigNavEscapeClearFocusWindow, ConfigDpiScaleFonts, ConfigDpiScaleViewports, ConfigInputTextCursorBlink, ConfigInputTextEnterKeepActive, ConfigDragClickToInputText, ConfigScrollbarScrollByPage, ConfigIniSettingsSaveLastUsedDate, ConfigIniSettingsAutoDiscardMonths, ConfigDebugIsDebuggerPresent, ConfigDebugBeginReturnValueOnce, ConfigDebugIgnoreFocusLoss, BackendPlatformName, BackendRendererName, BackendLanguageUserData, PenPressure + ImGuiInputEvent 10 / 11 missing: AddedByTestEngine + ImGuiInputEventAppFocused 1 / 1 + ImGuiInputEventKey 3 / 3 + ImGuiInputEventMouseButton 3 / 3 + ImGuiInputEventMousePos 3 / 3 + ImGuiInputEventMouseViewport 1 / 1 + ImGuiInputEventMouseWheel 3 / 3 + ImGuiInputEventText 1 / 1 + ImGuiInputTextCallbackData 15 / 15 + ImGuiInputTextDeactivatedState 3 / 3 + ImGuiInputTextState 21 / 24 missing: ValidatedThisFrame, ReloadSelectionStart, ReloadSelectionEnd + ImGuiKeyData 4 / 4 + ImGuiKeyOwnerData 4 / 4 + ImGuiKeyRoutingData 6 / 6 + ImGuiKeyRoutingTable 3 / 3 + ImGuiLastItemData 8 / 8 + ImGuiListClipper 10 / 10 + ImGuiListClipperData 5 / 5 + ImGuiListClipperRange 5 / 5 + ImGuiLocEntry 2 / 2 + ImGuiMenuColumns 8 / 8 + ImGuiMetricsConfig 15 / 17 missing: SettingsDiscardMonths, SettingsHighlightOldEntries + ImGuiMultiSelectIO 2 / 6 missing: RangeSrcItem, NavIdItem, NavIdSelected, RangeSrcReset + ImGuiMultiSelectState 3 / 8 missing: LastSelectionSize, RangeSelected, NavIdSelected, RangeSrcItem, NavIdItem + ImGuiMultiSelectTempData 6 / 16 missing: Storage, ScopeRectMin, BoxSelectId, LoopRequestSetAll, IsEndIO, IsKeyboardSetRange, NavIdPassedBy, RangeSrcPassedBy, RangeDstPassedBy, IsSoleOrUnknownSelectionSize + ImGuiNavItemData 9 / 9 + ImGuiNextItemData 12 / 12 + ImGuiNextWindowData 25 / 25 + ImGuiOldColumnData 4 / 4 + ImGuiOldColumns 17 / 17 + ImGuiOnceUponAFrame 0 / 1 missing: RefFrame + ImGuiPackedDate 0 / 3 missing: Year, Month, Day + ImGuiPayload 8 / 8 + ImGuiPlatformIO 10 / 15 missing: Platform_SessionDate, DrawCallback_ResetRenderState, DrawCallback_SetSamplerLinear, DrawCallback_SetSamplerNearest, DrawCallback_SetSamplerFromTex + ImGuiPlatformImeData 5 / 5 + ImGuiPlatformMonitor 6 / 6 + ImGuiPlotArrayGetterData 2 / 2 + ImGuiPopupData 8 / 8 + ImGuiPtrOrIndex 1 / 2 missing: Ptr + ImGuiResizeBorderDef 4 / 4 + ImGuiResizeGripDef 4 / 4 + ImGuiSelectionBasicStorage 2 / 5 missing: PreserveOrder, _SelectionOrder, _Storage + ImGuiSelectionExternalStorage 1 / 1 + ImGuiSelectionRequest 2 / 5 missing: RangeDirection, RangeFirstItem, RangeLastItem + ImGuiSettingsCleanupArgs 0 / 7 missing: TypeHashFilter, DiscardOlderThanMonths, DiscardWhenMissingDate, DiscardAll, SetCurrentSessionDateToAll, SetCurrentSessionDateWhenMissingDate, _DiscardOlderThanDate + ImGuiSettingsHandler 3 / 3 + ImGuiShrinkWidthItem 3 / 3 + ImGuiSizeCallbackData 4 / 4 + ImGuiStackLevelInfo 4 / 5 missing: DescOffset + ImGuiStorage 1 / 1 + ImGuiStoragePair 1 / 4 missing: val_i, val_f, val_p + ImGuiStyleMod 1 / 3 missing: BackupInt, BackupFloat + ImGuiStyleVarInfo 3 / 3 + ImGuiTabBar 36 / 37 missing: TabsNames + ImGuiTabBarSection 4 / 4 + ImGuiTabItem 13 / 13 + ImGuiTable 118 / 118 + ImGuiTableCellData 2 / 2 + ImGuiTableColumn 47 / 47 + ImGuiTableColumnSettings 9 / 9 + ImGuiTableColumnSortSpecs 4 / 4 + ImGuiTableFixDisplayOrderColumnData 1 / 2 missing: Table + ImGuiTableHeaderData 4 / 4 + ImGuiTableInstanceData 6 / 6 + ImGuiTableReconcileColumnData 8 / 8 + ImGuiTableSettings 7 / 7 + ImGuiTableSortSpecs 3 / 3 + ImGuiTableTempData 18 / 18 + ImGuiTextBuffer 1 / 2 missing: EmptyString + ImGuiTextFilter 3 / 3 + ImGuiTextFilterItem 1 / 4 missing: Begin, Len, MatchIncludesMask + ImGuiTextIndex 2 / 2 + ImGuiTreeNodeStackData 7 / 7 + ImGuiTypingSelectRequest 1 / 6 missing: SearchBufferLen, SearchBuffer, SelectRequest, SingleCharMode, SingleCharSize + ImGuiTypingSelectState 0 / 6 missing: Request, SearchBuffer, FocusScope, LastRequestFrame, LastRequestTime, SingleCharModeLock + ImGuiViewport 19 / 20 missing: PlatformIconData + ImGuiViewportP 22 / 23 missing: BgFgDrawListsLastFrameActive + ImGuiWindow 124 / 125 missing: NameBufLen + ImGuiWindowClass 9 / 10 missing: PlatformIconData + ImGuiWindowDockStyle 1 / 1 + ImGuiWindowSettings 13 / 13 + ImGuiWindowStackData 5 / 6 missing: ParentLastComboPreviewRect + ImGuiWindowTempData 43 / 43 + ImGui_ImplStbTrueType_FontSrcData 2 / 2 + ImRect 2 / 2 + ImTextureData 16 / 17 missing: QueueUserData + ImTextureRect 4 / 4 + ImTriangulator 0 / 4 missing: _TrianglesLeft, _Nodes, _Ears, _Reflexes + ImTriangulatorNode 3 / 5 missing: Next, Prev + ImTriangulatorNodeSpan 2 / 2 + ImVec2i 2 / 2 + ImVec2ih 2 / 2 + ImVec4 4 / 4 + MyItem 3 / 3 + stbrp_context_opaque 1 / 1 + template 7 / 12 missing: BasePtr, CurrOff, CurrIdx, Sizes, Blocks diff --git a/tools/compare_upstream.py b/tools/compare_upstream.py new file mode 100644 index 0000000..b7bad01 --- /dev/null +++ b/tools/compare_upstream.py @@ -0,0 +1,559 @@ +#!/usr/bin/env python3 +# Compares the port against upstream Dear ImGui (tools/test/upstream/*) and writes docs/PORT_STATUS.txt. +# python3 tools/compare_upstream.py # print summary, write docs/PORT_STATUS.txt +# Ported %: upstream functions (by qualified name, overloads merged) that have a port definition; enum values; struct fields; +# public/internal API declarations in imgui.h / imgui_internal.h (namespace ImGui). +# Similarity %: for each ported function, both bodies are normalized to a common token stream (comments/types/punctuation +# dropped, C++ operators and names mapped to Lua: -> :: . ! && || _Flag) and compared with difflib ratio. +# File figures are weighted by upstream body size. Matching is by name, so it's an estimate, not a proof. +# Excluded from the %: C++-only (operators, destructors), #if 0, IMGUI_DISABLE_OBSOLETE_FUNCTIONS, OS-specific (#ifdef _WIN32...), +# test engine. They're listed separately in the report. +import os, re, sys +from difflib import SequenceMatcher +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from minify import TOKEN as LUA_TOKEN + +ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +UP = os.path.join(ROOT, "tools", "test", "upstream") +CPP_FILES = ["imgui.cpp", "imgui_widgets.cpp", "imgui_draw.cpp", "imgui_tables.cpp", "imgui_demo.cpp", "imgui.h", "imgui_internal.h"] +PORT_FILES = sorted(f for f in os.listdir(ROOT) if f.endswith(".lua")) +LUA_CLASS_ALIAS = {"IM_RECT": "ImRect", "IM_VECTOR": "ImVector", "IM_POOL": "ImPool", "IMGUI_VIEWPORT_P": "ImGuiViewportP", + "ImGuiTextBufferMT": "ImGuiTextBuffer", "IMGUI_TEXT_INDEX": "ImGuiTextIndex", "IM_PAYLOAD": "ImGuiPayload", + "DN": "ImGuiDockNode", "IM_VTXBUF": "ImVector"} + +# --------------------------------------------------------------------------------------------------------------------- +# C++ side +# --------------------------------------------------------------------------------------------------------------------- +CPP_TOKEN = re.compile(r""" + (?P\n) +| (?P[ \t\r\f\v]+|\\\n) +| (?P//[^\n]*|/\*.*?\*/) +| (?P\#(?:[^\n\\]|\\.|\\\n)*) +| (?P(?:u8|u|U|L)?"(?:\\.|[^"\\\n])*"|'(?:\\.|[^'\\\n])*') +| (?P0[xX][0-9a-fA-F']+[uUlL]*|(?:\d[\d']*\.?\d*|\.\d+)(?:[eE][+-]?\d+)?[fFuUlL]*) +| (?P[A-Za-z_]\w*) +| (?P->\*?|::|<<=|>>=|<<|>>|&&|\|\||==|!=|<=|>=|\+\+|--|[-+*/%&|^]=|\.\.\.|.) +""", re.S | re.X) + +EXCLUDE_PP = [("if0", re.compile(r"^\s*#\s*if\s+0\b")), + ("obsolete", re.compile(r"#\s*ifndef\s+IMGUI_DISABLE_OBSOLETE_FUNCTIONS|#\s*if\s+!defined\(IMGUI_DISABLE_OBSOLETE")), + ("os-specific", re.compile(r"_WIN32|__APPLE__|__linux__|_MSC_VER|__EMSCRIPTEN__|IMGUI_DISABLE_WIN32|__ANDROID__|_XBOX|__MINGW")), + ("test-engine", re.compile(r"IMGUI_ENABLE_TEST_ENGINE"))] + +def cpp_tokens(src): + """[(kind, text, line, excl)] without whitespace/comments; excl = exclusion tag from enclosing #if, or None.""" + out, line, stack, sections = [], 1, [], [] + for m in CPP_TOKEN.finditer(src): + kind, text = m.lastgroup, m.group(0) + if kind == "nl": line += 1; continue + if kind == "com": + s = re.match(r"//\s*\[SECTION\]\s*(.+)", text) + if s: sections.append((line, s.group(1).strip())) + line += text.count("\n"); continue + if kind == "ws": line += text.count("\n"); continue + if kind == "pp": + d = re.match(r"#\s*(\w+)", text); d = d.group(1) if d else "" + if d in ("if", "ifdef", "ifndef"): + stack.append(next((t for t, r in EXCLUDE_PP if r.search(text)), None)) + elif d in ("else", "elif") and stack: + stack[-1] = None if stack[-1] in ("if0", "obsolete") else stack[-1] # #else of `#if 0` / obsolete is the live path + elif d == "endif" and stack: + stack.pop() + line += text.count("\n"); continue + out.append((kind, text, line, next((x for x in reversed(stack) if x), None))) + return out, sections + +CTRL = {"if", "for", "while", "switch", "catch", "sizeof", "return", "alignof", "decltype", "IM_ASSERT", "defined"} + +def match_back(toks, i, close, open_): + depth = 0 + while i >= 0: + t = toks[i][1] + if t == close: depth += 1 + elif t == open_: + depth -= 1 + if depth == 0: return i + i -= 1 + return -1 + +def match_fwd(toks, i): + depth = 0 + pairs = {"{": "}", "(": ")", "[": "]"} + open_ = toks[i][1]; close = pairs[open_] + while i < len(toks): + t = toks[i][1] + if t == open_: depth += 1 + elif t == close: + depth -= 1 + if depth == 0: return i + i += 1 + return len(toks) - 1 + +def func_head(toks, i): + """toks[i] is '{'. If it opens a function body, return (class, name, name_tok_index, cpp_only) else None.""" + j = i - 1 + while j >= 0 and toks[j][1] in ("const", "noexcept", "override", "final", "IM_FMTARGS", "IM_FMTLIST"): + j -= 1 + if j >= 0 and toks[j][1] == ")" and toks[match_back(toks, j, ")", "(") - 1][1] in ("IM_FMTARGS", "IM_FMTLIST"): + j = match_back(toks, j, ")", "(") - 2 + # constructor initializer list: Foo::Foo(...) : a(1), b{2} { + k = j + while k >= 0 and toks[k][1] in (")", "}"): + o = match_back(toks, k, toks[k][1], "(" if toks[k][1] == ")" else "{") + if o <= 1: break + if toks[o - 2][1] in (",",) or (toks[o - 2][1] == ":" ): + if toks[o - 2][1] == ":": j = o - 3; break + k = o - 3; continue + break + if j < 0 or toks[j][1] != ")": return None + o = match_back(toks, j, ")", "(") + if o <= 0: return None + n = o - 1 + name = toks[n][1] + cpp_only = False + if toks[n - 1][1] == "operator" or (n >= 1 and toks[n][0] == "op" and toks[n - 1][1] == "operator"): + return (None, "operator" + name, n, True) + if toks[n][0] == "op" and n >= 2 and toks[n - 1][1] == "operator": return (None, "operator", n, True) + if toks[n][0] != "name" or name in CTRL: return None + if toks[n - 1][1] == "~": cpp_only = True; name = "~" + name + cls = None + if toks[n - 1][1] == "::" or (cpp_only and toks[n - 2][1] == "::"): + q = n - 2 if not cpp_only else n - 3 + cls = toks[q][1] + if toks[n - 1][1] == "operator": return (cls, "operator", n, True) + return (cls, name, n, cpp_only) + +class UpFunc: + def __init__(s, file, cls, name, line, body, section, excl): + s.file, s.cls, s.name, s.line, s.body, s.section, s.excl = file, cls, name, line, body, section, excl + @property + def key(s): return "%s::%s" % (s.cls, s.name) if s.cls else s.name + +def parse_cpp(fname): + src = open(os.path.join(UP, fname), encoding="utf-8", errors="replace").read() + toks, sections = cpp_tokens(src) + funcs, enums, structs, decls = [], {}, {}, {} # decls: namespace ImGui declarations (name -> line) + + def section_at(line): + cur = "" + for l, s in sections: + if l <= line and l > 120: cur = s # skip the index at the top of each file + return cur + + def scan(a, b, cls, ns): + i = a + stmt_start = a + while i < b: + k, t, line, excl = toks[i] + if t == "{": + head = func_head(toks, i) + e = match_fwd(toks, i) + pre = [x[1] for x in toks[stmt_start:i]] + if head: + hc, hn, ni, cpp_only = head + c = hc or cls + if cls and hn == cls: c = cls # inline ctor in struct + ex = "c++-only" if cpp_only or hn.startswith("~") else toks[ni][3] + if c and hn == c and fname.endswith(".h") and e - i < 4: ex = ex # trivial ctor kept + funcs.append(UpFunc(fname, c, hn, toks[ni][2], toks[i + 1:e], section_at(toks[ni][2]), ex)) + elif "namespace" in pre: + q = pre.index("namespace") + scan(i + 1, e, cls, (pre[q + 1] if len(pre) > q + 1 else "")) + elif "enum" in pre: + nm = next((x for x in pre[pre.index("enum") + 1:] if re.match(r"[A-Za-z_]\w*$", x) and x not in ("class", "int")), None) + vals, j, depth = [], i + 1, 0 + expect = True + while j < e: + tt = toks[j][1] + if tt in "([{": depth += 1 + elif tt in ")]}": depth -= 1 + elif depth == 0 and tt == ",": expect = True + elif expect and depth == 0 and toks[j][0] == "name": + vals.append((tt, toks[j][2], toks[j][3])); expect = False + j += 1 + if nm: enums[nm] = (vals, line, section_at(line)) + elif any(x in ("struct", "class", "union") for x in pre) and "=" not in pre: + names = [x for x in pre if re.match(r"[A-Za-z_]\w*$", x) and x not in ("struct", "class", "union", "IMGUI_API", "typedef", "final", "public", "private", "alignas")] + nm = names[0] if names else cls + if nm and "union" not in pre: structs.setdefault(nm, ([], line, section_at(line))) + scan(i + 1, e, nm, ns) + if nm and pre[:1] != ["union"] and toks[e + 1][1] != ";" and toks[e + 1][0] == "name" and cls: + pass + i = e + 1 + if i < b and toks[i][1] == ";": i += 1 + stmt_start = i + continue + if t == ";": + st = toks[stmt_start:i] + txt = [x[1] for x in st] + if txt and txt[0] in ("public", "private", "protected") and len(txt) > 1 and txt[1] == ":": st, txt = st[2:], txt[2:] + if txt and ns == "ImGui" and cls is None and "(" in txt and txt[0] not in ("typedef", "struct", "enum", "using"): + p = txt.index("(") + if p > 0 and st[p - 1][0] == "name" and txt[p - 1] not in CTRL: + decls.setdefault(txt[p - 1], (st[p - 1][2], st[p - 1][3], section_at(st[p - 1][2]))) + elif txt and cls and txt[0] not in ("typedef", "friend", "static", "using", "enum", "struct", "class", "template", "IM_MSVC_RUNTIME_CHECKS_OFF", "IM_MSVC_RUNTIME_CHECKS_RESTORE"): + eq = txt.index("=") if "=" in txt else len(txt) + pa = txt.index("(") if "(" in txt else len(txt) + if pa >= eq: # not a method declaration + depth = 0 + for j, x in enumerate(txt[:eq] + [";"]): + if x in ("<", "(", "["): depth += 1 + elif x in (">", ")", "]"): depth -= 1 + elif depth == 0 and x in (",", ";", ":") or (depth == 0 and x == "[" ): + if j > 0 and re.match(r"[A-Za-z_]\w*$", txt[j - 1]) and txt[j - 1] not in ("const", "unsigned", "int", "float"): + structs.setdefault(cls, ([], 0, ""))[0].append((txt[j - 1], st[j - 1][2], st[j - 1][3])) + if x == "[" and depth == 1 and j > 0 and re.match(r"[A-Za-z_]\w*$", txt[j - 1]): + structs.setdefault(cls, ([], 0, ""))[0].append((txt[j - 1], st[j - 1][2], st[j - 1][3])) + if eq < len(txt) and re.match(r"[A-Za-z_]\w*$", txt[eq - 1]): + structs.setdefault(cls, ([], 0, ""))[0].append((txt[eq - 1], st[eq - 1][2], st[eq - 1][3])) + stmt_start = i + 1 + i += 1 + scan(0, len(toks), None, "") + for k in structs: # dedupe fields + seen, out = set(), [] + for f in structs[k][0]: + if f[0] not in seen: seen.add(f[0]); out.append(f) + structs[k] = (out,) + structs[k][1:] + return funcs, enums, structs, decls + +# --------------------------------------------------------------------------------------------------------------------- +# Lua side +# --------------------------------------------------------------------------------------------------------------------- +def lua_tokens(src): + out, line, pos = [], 1, 0 + while pos < len(src): + m = LUA_TOKEN.match(src, pos) + kind, text = m.lastgroup, m.group(0) + if kind in ("ceq", "seq"): kind = "lcom" if text.startswith("--") else "lstr" + if kind not in ("ws", "com", "lcom"): + out.append(("str" if kind in ("str", "lstr") else kind, text, line)) + line += text.count("\n"); pos = m.end() + return out + +OPENERS = {"function", "if", "do", "repeat"} +CLOSERS = {"end", "until"} + +class PortFunc: + alias = None + def __init__(s, file, cls, name, line, body): + s.file, s.cls, s.name, s.line, s.body = file, cls, name, line, body + +def parse_lua(): + defs, enum_keys, globals_, fields = [], set(), set(), set() + for f in PORT_FILES: + toks = lua_tokens(open(os.path.join(ROOT, f), encoding="utf-8").read()) + n = len(toks) + for i, (k, t, line) in enumerate(toks): + chain, start = None, None + if t == "function" and i + 1 < n and toks[i + 1][0] == "name": + j = i + 1; chain = [toks[j][1]] + while j + 2 < n and toks[j + 1][1] in (".", ":") and toks[j + 2][0] == "name": + chain.append(toks[j + 2][1]); j += 2 + if j + 1 < n and toks[j + 1][1] == "(": start = j + 1 + else: chain = None + elif k == "name" and i + 3 < n and toks[i + 1][1] == "=" and toks[i + 2][1] == "function" and toks[i + 3][1] == "(": + j = i; chain = [t] + while j >= 2 and toks[j - 1][1] == "." and toks[j - 2][0] == "name": + chain.insert(0, toks[j - 2][1]); j -= 2 + start = i + 3; i0 = i + 2 + if chain is None: continue + # body: from start's ')' to matching end + j = start + while toks[j][1] != ")": j += 1 + body_start, depth, j = j + 1, 1, j + 1 + while j < n and depth > 0: + tt = toks[j][1] + if tt in OPENERS and toks[j][0] == "name": depth += 1 + elif tt in CLOSERS and toks[j][0] == "name": depth -= 1 + j += 1 + name = chain[-1] + cls = LUA_CLASS_ALIAS.get(chain[-2], chain[-2]) if len(chain) > 1 else None + pf = PortFunc(f, cls, name, line, toks[body_start:j - 1]) + bt = [x[1] for x in pf.body] + if len(bt) >= 5 and bt[0] == "return" and bt[-3:] == ["(", "...", ")"] and all(x[0] == "name" or x[1] in (".", ":") for x in pf.body[1:-3]): + pf.alias = " ".join(bt[1:-3]) + "(...)"; pf.body = pf.body[1:-3] # forwarder: function(...) return ImGui.X(...) end + defs.append(pf) + # aliases / factories: ImGui.DragFloat2 = DragFloatN(2) ImFormatString = string.format ImGui.LogTextV = ImGui.LogText + for i, (k, t, line) in enumerate(toks): + if k != "name" or (i and toks[i - 1][2] == line) or t == "local": continue + j, chain = i, [t] + while j + 2 < n and toks[j + 1][1] == "." and toks[j + 2][0] == "name": + chain.append(toks[j + 2][1]); j += 2 + if j + 2 >= n or toks[j + 1][1] != "=" or toks[j + 2][0] != "name" or toks[j + 2][1] in ("function", "nil", "true", "false", "not"): continue + if len(chain) == 1 and not re.match(r"(Im|STB|IMSTB|stb)", t): continue + if len(chain) > 1 and chain[0] not in ("ImGui", "ImStd", "ImStb", "MT") and chain[-2] not in LUA_CLASS_ALIAS: continue + rhs = [x for x in toks[j + 2:] if x[2] == toks[j + 2][2]] + cls = LUA_CLASS_ALIAS.get(chain[-2], chain[-2]) if len(chain) > 1 else None + pf = PortFunc(f, cls, chain[-1], line, rhs); pf.alias = " ".join(x[1] for x in rhs[:6]) + defs.append(pf) + # enum tables / globals / fields + depth_stack = [] + for i, (k, t, line) in enumerate(toks): + if t == "{": + owner = None + if i >= 2 and toks[i - 1][1] == "=" and toks[i - 2][0] == "name": owner = toks[i - 2][1] + depth_stack.append(owner) + elif t == "}": + if depth_stack: depth_stack.pop() + elif k == "name" and i + 1 < n and toks[i + 1][1] == "=": + prev = toks[i - 1][1] if i else "" + if prev in ("{", ",", ";") or (prev == "." ) or (prev not in ("local", "for") and toks[i - 1][0] != "name" and prev not in ("]", ")")): + fields.add(t) + if prev in ("{", ",") and depth_stack and depth_stack[-1]: enum_keys.add((depth_stack[-1], t)) + if prev == "." and i >= 2: enum_keys.add((toks[i - 2][1], t)) + if prev not in (".", "local", ",") and not depth_stack: globals_.add(t) + elif k == "str" and i >= 1 and toks[i - 1][1] == "[" and i + 2 < n and toks[i + 1][1] == "]" and toks[i + 2][1] == "=" and depth_stack and depth_stack[-1]: + enum_keys.add((depth_stack[-1], toks[i][1].strip("\"'"))) + return defs, enum_keys, globals_, fields + +# --------------------------------------------------------------------------------------------------------------------- +# Normalization + similarity +# --------------------------------------------------------------------------------------------------------------------- +CPP_DROP = {"const", "static", "float", "int", "unsigned", "signed", "bool", "char", "void", "auto", "double", "size_t", "short", "long", + "ImU8", "ImU16", "ImU32", "ImU64", "ImS8", "ImS16", "ImS32", "ImS64", "ImWchar", "ImGuiID", "struct", "inline", "IMGUI_API", + "constexpr", "template", "typename", "IM_UNUSED", "this", ";", "{", "}", "(", ")", "&", "*", "ImGuiContext", "ImGuiWindow", "ImGuiStyle", + "ImGuiIO", "ImDrawList", "ImFont", "ImRect", "ImVec2", "ImVec4", "case", "break", "default", ":", "[", "]"} +LUA_DROP = {"local", "then", "do", "end", "self", "(", ")", ";", "{", "}", "&", "*", "[", "]", ":", "bit32", "math", "string", "table"} +LUA_MAP = {"~=": "!=", "not": "!", "and": "&&", "or": "||", "nil": "NULL", "elseif": "else if", "band": "&", "bor": "|", "bxor": "^", + "bnot": "~", "lshift": "<<", "rshift": ">>", "btest": "&", "ImMax": "ImMax", "ImMin": "ImMin"} +CPP_MAP = {"->": ".", "::": ".", "nullptr": "NULL", "++": "+=", "--": "-=", "IM_COUNTOF": "#", "IM_ARRAYSIZE": "#", "true": "true", "false": "false"} + +def norm_num(t): + try: + if t.lower().startswith("0x"): return str(int(t.rstrip("uUlL").replace("'", ""), 16)) + return repr(float(t.rstrip("fFuUlL").replace("'", ""))) + except ValueError: return t + +def split_enum(t): + m = re.match(r"(Im[A-Za-z]+)_(\w+)$", t) + return [m.group(1), ".", m.group(2)] if m and not t.endswith("_") else [t] + +def norm_cpp(body): + out = [] + for k, t, _, _ in body: + if k == "num": out.append(norm_num(t)); continue + if k == "str": out.append("S"); continue + t = CPP_MAP.get(t, t) + if t in CPP_DROP: continue + out.extend(split_enum(t) if k == "name" else [t]) + o2 = [] + for i, t in enumerate(out): # drop the implicit ImGui:: qualifier (C++ calls inside the namespace omit it) + if t == "ImGui" and i + 1 < len(out) and out[i + 1] == ".": continue + if t == "." and o2 and o2[-1] in (".",): continue + o2.append(t) + return [t for i, t in enumerate(o2) if not (t == "." and (i == 0 or o2[i - 1] in ("(", ",", "=", "return")))] + +def norm_lua(body): + out = [] + for k, t, _ in body: + if k == "num": out.append(norm_num(t)); continue + if k == "str": out.append("S"); continue + if t in LUA_DROP: continue + t = LUA_MAP.get(t, t) + out.extend(t.split(" ") if " " in t else [t]) + o2 = [] + for i, t in enumerate(out): + if t == "ImGui" and i + 1 < len(out) and out[i + 1] == ".": continue + if t == "." and (not o2 or o2[-1] in ("&", "|", "^", "~", "<<", ">>", "=", ",", "return", "if", "while", "!")): continue + o2.append(t) + return o2 + +def similarity(a, b): + if not a and not b: return 1.0 + return SequenceMatcher(None, a, b, autojunk=False).ratio() + +def is_stub(port_norm, up_norm): + real = [t for t in port_norm if t not in ("return", "NULL", "false", "true", "0.0", "S", "IM_ASSERT", "!", ",", "=", "0")] + return len(up_norm) > 12 and (len(real) < 3 or not any(re.match(r"[A-Za-z_]\w*$", t) for t in real)) + +# --------------------------------------------------------------------------------------------------------------------- +def main(): + defs, enum_keys, lua_globals, lua_fields = parse_lua() + by_name = {} + for d in sorted(defs, key=lambda d: d.alias is not None): by_name.setdefault(d.name, []).append(d) + port_classes = {d.cls for d in defs if d.cls} + + def find(u): + m = re.match(r"I?M?STB_TEXTEDIT_(\w+?)(_IMPL)?$", u.name) + if m: # STB_TEXTEDIT_INSERTCHARS / IMSTB_TEXTEDIT_GETNEXTCHARINDEX_IMPL -> ImStb.TEXTEDIT_* + c = [d for d in by_name.get("TEXTEDIT_" + m.group(1), []) if d.cls == "ImStb"] + return c[0] if c else None + cands = by_name.get(u.name, []) + if u.cls and u.cls not in ("ImGui",): + exact = [d for d in cands if d.cls == u.cls] + if exact: return exact[0] + if u.name == u.cls: # constructor: function ImGuiStyle() / MT.X.new + c = [d for d in cands if d.cls is None] or [d for d in by_name.get("new", []) if d.cls == u.cls] + return c[0] if c else None + if u.cls in port_classes: return None + loose = [d for d in cands if d.cls in (None, "ImGui")] if len(cands) == 1 else [] + return loose[0] if loose else None + pref = [d for d in cands if d.cls == "ImGui"] + [d for d in cands if d.cls is None] + [d for d in cands if d.cls in ("ImStd", "ImStb")] + return pref[0] if pref else None + + up_names = set() + for f in CPP_FILES: + for u in parse_cpp(f)[0]: up_names.add(u.name) + def expand(p, depth=0, seen=()): + """Port body with calls to port-only helpers in the same file inlined (the port splits some big functions).""" + out, body = [], p.body + for i, x in enumerate(body): + out.append(x) + if depth < 3 and x[0] == "name" and i + 1 < len(body) and body[i + 1][1] == "(" and x[1] not in up_names and (i == 0 or body[i - 1][1] not in (".", ":")): + h = [d for d in by_name.get(x[1], []) if d.file == p.file and not d.alias and d is not p and d.name not in seen] + if h: out.extend(expand(h[0], depth + 1, seen + (p.name,))) + return out + + report, summary = [], [] + all_up = {} + enums_all, structs_all, decls_by_file = {}, {}, {} + for f in CPP_FILES: + funcs, enums, structs, decls = parse_cpp(f) + merged = {} + for u in funcs: # merge overloads (keep the largest body for similarity) + if u.key not in merged or len(u.body) > len(merged[u.key].body): + if u.key in merged and merged[u.key].excl is None: u.excl = None + merged[u.key] = u + elif u.excl is None: merged[u.key].excl = None + all_up[f] = list(merged.values()) + for k, v in enums.items(): enums_all.setdefault(k, v) + for k, v in structs.items(): + if k in structs_all: structs_all[k][0].extend(x for x in v[0] if x[0] not in {y[0] for y in structs_all[k][0]}) + else: structs_all[k] = v + decls_by_file[f] = decls + + tot = {"n": 0, "have": 0, "stub": 0, "size": 0, "size_have": 0, "simw": 0.0, "size_sim": 0} + for f in CPP_FILES: + rows = [] + st = {"n": 0, "have": 0, "stub": 0, "size": 0, "size_have": 0, "simw": 0.0, "size_sim": 0} + for u in sorted(all_up[f], key=lambda u: u.line): + un = norm_cpp(u.body) + if u.excl: + rows.append((u.section, "[-]", "", u, None, u.excl)); continue + st["n"] += 1; st["size"] += len(un) + p = find(u) + if p is None: + rows.append((u.section, "[ ]", "", u, None, "")); continue + body = p.body + if p.alias: # ImGui.X = ImGui.Y / Factory(n): compare against the target's body when it is a plain reference + tgt = [x[1] for x in p.body if x[0] == "name"] + t = by_name.get(tgt[-1]) if tgt and all(x[1] == "." or x[0] == "name" for x in p.body) else None + t = [d for d in (t or []) if not d.alias] + body = t[0].body if t else None + if body is None: # alias of a Lua builtin / factory: ported, but no body to compare + st["have"] += 1; st["size_have"] += len(un) + rows.append((u.section, "[x]", " n/a", u, p, "= " + p.alias)); continue + pn = norm_lua(expand(p) if not p.alias else body) + sim = similarity(un, pn) + stub = is_stub(pn, un) and not p.alias + st["have"] += 1; st["size_have"] += len(un); st["simw"] += sim * len(un); st["size_sim"] += len(un) + if stub: st["stub"] += 1 + rows.append((u.section, "[~]" if stub else "[x]", "%3.0f%%" % (100 * sim), u, p, "stub" if stub else ("= " + p.alias if p.alias else ""))) + for k in tot: tot[k] += st[k] + summary.append((f, st)) + report.append((f, rows)) + + def pct(a, b): return "%5.1f%%" % (100.0 * a / b) if b else " - " + + # enums / fields / API declarations + enum_rows, enum_n, enum_have = [], 0, 0 + for nm, (vals, line, sec) in sorted(enums_all.items(), key=lambda x: x[0]): + base = re.sub(r"(Private)?_$", "", nm) + missing, have, counted = [], 0, 0 + for v, vline, excl in vals: + if excl or v.endswith("_COUNT") and False: continue + pre, _, key = v.partition("_") + ok = v in lua_globals or (pre, key) in enum_keys or (base, key) in enum_keys or (nm, v) in enum_keys or (base, v) in enum_keys + if not ok and not key: ok = v in lua_globals + enum_n += 1; counted += 1 + if ok: have += 1; enum_have += 1 + else: missing.append(v) + enum_rows.append((nm, have, counted, missing)) + + field_rows, field_n, field_have = [], 0, 0 + for nm, (fl, line, sec) in sorted(structs_all.items()): + fl = [x for x in fl if not x[2]] + if not fl: continue + missing = [x[0] for x in fl if x[0] not in lua_fields] + field_n += len(fl); field_have += len(fl) - len(missing) + field_rows.append((nm, len(fl) - len(missing), len(fl), missing)) + + api_rows = [] + port_names = set(by_name) + for f, label in (("imgui.h", "Public API (imgui.h, namespace ImGui)"), ("imgui_internal.h", "Internal API (imgui_internal.h, namespace ImGui)")): + d = {k: v for k, v in decls_by_file[f].items() if not v[1]} + have = [k for k in d if k in port_names] + api_rows.append((label, len(have), len(d), sorted((k for k in d if k not in port_names), key=lambda k: d[k][0]), d)) + + # ------------------------------------------------------------------ summary (stdout + file) + head = [] + head.append("%-22s %9s %9s %9s %11s %9s" % ("upstream file", "funcs", "ported", "by size", "similarity", "stubs")) + for f, s in summary: + head.append("%-22s %9d %9s %9s %11s %9d" % (f, s["n"], pct(s["have"], s["n"]), pct(s["size_have"], s["size"]), + pct(s["simw"], s["size_sim"]), s["stub"])) + head.append("%-22s %9d %9s %9s %11s %9d" % ("TOTAL", tot["n"], pct(tot["have"], tot["n"]), pct(tot["size_have"], tot["size"]), + pct(tot["simw"], tot["size_sim"]), tot["stub"])) + head.append("") + head.append("upstream code reproduced (similarity x ported size / all upstream size): %s" % pct(tot["simw"] / max(1, tot["size_sim"]) * tot["size_have"], tot["size"])) + for label, h, n, _, _ in api_rows: head.append("%-52s %4d / %4d %s" % (label, h, n, pct(h, n))) + head.append("%-52s %4d / %4d %s" % ("Enum values (imgui.h + imgui_internal.h)", enum_have, enum_n, pct(enum_have, enum_n))) + head.append("%-52s %4d / %4d %s" % ("Struct fields (imgui.h + imgui_internal.h)", field_have, field_n, pct(field_have, field_n))) + print("\n".join(head)) + + L = [] + L.append("PORT STATUS: imgui-luau vs upstream Dear ImGui (docking, %s)" % re.search(r'IMGUI_VERSION\s+"([^"]+)"', open(os.path.join(UP, "imgui.h")).read()).group(1)) + L.append("Generated by tools/compare_upstream.py - do not edit. Upstream sources: tools/test/upstream/.") + L.append("") + L.append("Columns: funcs = upstream function definitions (overloads merged), excluding [-] rows") + L.append(" ported = share that has a port definition with the same name") + L.append(" by size = same, weighted by upstream body size (tokens)") + L.append(" similarity = normalized token similarity of the ported bodies (difflib ratio), weighted by size") + L.append(" stubs = ported but (nearly) empty in the port") + L.append("Name-based matching: a renamed port function shows as [ ], a same-named one counts even if it differs. Treat as estimates.") + L.append("Port-only helpers called from a ported function (same file) are inlined before comparing, since the port splits some big functions.") + L.append("Known low scores that are not missing code: data-driven port code (e.g. DemoWindowTables' section table), the older 1.92") + L.append("polyline stroker (AddPolyline), Lua-native replacements (ImGuiStorage, ImStr*, ImFormatString -> string.format).") + L.append("") + L += head + L.append("") + L.append("Legend: [x] ported (sim %) [~] stub [ ] not ported [-] excluded (c++-only / obsolete / os-specific / #if 0 / test-engine)") + for f, rows in report: + L.append("") + L.append("=" * 100) + L.append("%s" % f) + L.append("=" * 100) + cur = None + for sec, mark, sim, u, p, note in rows: + if sec != cur: + cur = sec; L.append(""); L.append(" -- %s" % (sec or "(top)")) + where = "%s:%d" % (p.file, p.line) if p else "" + L.append(" %s %5s %-58s %-32s %s" % (mark, sim, u.key, where, note)) + L.append("") + L.append("=" * 100) + L.append("API declarations not ported (by upstream line)") + L.append("=" * 100) + for label, h, n, missing, d in api_rows: + L.append(""); L.append(" %s: %d / %d" % (label, h, n)) + cur = None + for k in missing: + if d[k][2] != cur: cur = d[k][2]; L.append(" -- %s" % (cur or "(top)")) + L.append(" [ ] ImGui::%s" % k) + L.append("") + L.append("=" * 100) + L.append("Enums (values ported / total; missing listed)") + L.append("=" * 100) + for nm, h, n, missing in enum_rows: + if not n: continue + L.append(" %-40s %4d / %4d%s" % (nm, h, n, (" missing: " + ", ".join(missing)) if missing else "")) + L.append("") + L.append("=" * 100) + L.append("Struct fields (name found in the port / total; missing listed). Field names are matched globally, so common names may over-count.") + L.append("=" * 100) + for nm, h, n, missing in field_rows: + L.append(" %-40s %4d / %4d%s" % (nm, h, n, (" missing: " + ", ".join(missing)) if missing else "")) + out = os.path.join(ROOT, "docs", "PORT_STATUS.txt") + open(out, "w").write("\n".join(L) + "\n") + print("\nwrote docs/PORT_STATUS.txt") + +if __name__ == "__main__": + main()