99 lines
3.0 KiB
Markdown
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.
|