MetaCore/docs/setup-windows.md
2026-03-19 18:01:50 +08:00

3.0 KiB

Windows setup notes

Current scaffold assumptions

  • Visual Studio 2022 is available
  • CMake is available
  • vcpkg may not be installed yet
  • Panda3D C++ SDK may not be installed yet

Bootstrap

cd D:\MetaCore
.\scripts\bootstrap_vcpkg.ps1
.\scripts\detect_panda_sdk.ps1
cmake --preset vs2022-debug
cmake --build --preset build-debug
ctest --preset test-debug

Integration build on this machine

Installed/confirmed dependencies:

  • Panda3D SDK: D:\PythonProject\Panda3D-1.10.16-x64
  • vcpkg: D:\vcpkg
  • imgui
  • imguizmo
  • rmlui
  • fmt

Integration configure/build/test:

cd D:\MetaCore
cmake --preset vs2022-integration-debug
cmake --build --preset build-integration-debug
ctest --preset test-integration-debug

Confirmed Panda3D SDK path on this machine

Current detected candidate:

  • D:\PythonProject\Panda3D-1.10.16-x64

The project also exposes METACORE_PANDA3D_ROOT as a CMake cache path so the Panda backend integration can use this installation directly once the stub backend is replaced.

External integrations still stubbed

  • Panda3D window/context creation and message loop
  • Dear ImGui renderer/backend pair
  • ImGuizmo viewport manipulator binding
  • RmlUi backend renderer and input bridge

These are already isolated behind the current app and engine interfaces, so the next implementation step is to replace the no-op/stub logic rather than redesign the domain model.

Editor shell abstraction

MetaEditor now uses:

  • IEditorShell as the stable shell interface
  • NullEditorShell as the default no-dependency implementation
  • DearImGuiEditorShell as the future Dear ImGui docking implementation

When METACORE_ENABLE_IMGUI is enabled and the real Dear ImGui integration is added, the editor can swap shell implementations without changing EditorApplication, presenter logic, or the editor-domain services.

DearImGuiEditorShell is now the handoff point for:

  • main menu construction
  • toolbar group construction
  • dock section composition
  • inspector field presentation
  • shell debug export for layout verification

Current runtime behavior:

  • NullEditorShell is the stable default path
  • DearImGuiEditorShell is selectable with METACORE_EDITOR_SHELL=dearimgui
  • DearImGuiEditorShell defaults to a stable non-rendering mode
  • experimental headless ImGui frame generation can be enabled with METACORE_ENABLE_HEADLESS_IMGUI=1
  • the experimental headless ImGui mode is not yet considered stable
  • when METACORE_ENABLE_PANDA_WINDOW=1 and no frame budget is provided, MetaEditor stays open until the Panda window closes
  • METACORE_EDITOR_FRAME_COUNT can be set to bound editor runtime during probes and CI-like runs

Optional GUI feature toggles

The project already exposes these CMake options:

  • METACORE_ENABLE_PANDA3D
  • METACORE_ENABLE_IMGUI
  • METACORE_ENABLE_IMGUIZMO
  • METACORE_ENABLE_RMLUI

They currently act as compile-time integration flags and are safe to leave OFF until the matching SDKs are installed.