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

99 lines
3.0 KiB
Markdown

# 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
```powershell
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:
```powershell
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.