UsdLayerManager/openspec/changes/archive/2026-05-08-make-imgui-widge.../tasks.md

1.5 KiB

1. Build Configuration

  • 1.1 Verify that third_party/Imgui-1.92.7 source files contain docking APIs (DockSpaceOverViewport, ImGuiConfigFlags_DockingEnable). If not, fetch the docking branch of imgui.
  • 1.2 Add IMGUI_HAS_DOCK compile definition in cmake/modules/FindImgui.cmake via target_compile_definitions on the imgui library target.

2. Runtime Docking Enablement

  • 2.1 In src/ui/ImGuiContext.cpp, add ImGuiConfigFlags_DockingEnable to io.ConfigFlags in the Initialize() method.
  • 2.2 In src/ui/Application.cpp, add ImGui::DockSpaceOverViewport() call in RenderUI() after NewFrame() and before any window/panel Begin/End calls.

3. Panel Migration to Dockable Layout

  • 3.1 Remove all ImGui::SetNextWindowPos() and ImGui::SetNextWindowSize() calls from every panel window in Application::RenderUI() (Scene Hierarchy, Layer Panel, Viewport, Property Panel, Stage Info, Demo Window).
  • 3.2 Add ImGuiWindowFlags_NoCollapse to the four core panels: Scene Hierarchy, Layer Panel, Viewport, Property Panel.
  • 3.3 Verify that the View menu visibility toggles (Stage Info, Demo Window) continue to work with dockable windows.

4. Build and Verification

  • 4.1 Run cmake --preset default and cmake --build to verify the project compiles without errors.
  • 4.2 Launch App.exe and confirm: dockspace fills the window, panels are draggable/dockable/tabbable, layout persists after restart (check imgui.ini), and View menu toggles work correctly.