Studio: verify & harden Windows runtime (project open, PlayMode, asset paths)
Goal
Follow-up to #119 (closed) (closed). #119 (closed) got the Studio + CLI building, launching, and releasing on Windows (the editor UI renders under Wine on D3D12, full SDK now ships CLI + Studio). This issue tracks verifying and hardening the actual Windows runtime — the parts #119 (closed) did not verify beyond first paint.
Verified so far (in #119 (closed))
- Studio compiles for
x86_64-windows-gnuand the editor UI renders (Wine/D3D12), with a clean shutdown. - GPU backend prefers Vulkan, falls back to D3D12/Metal (
studio/Main.ziginitBackend). - Cross-platform
DynLibloader added (studio/scene-view/DynLib.zig) —std.DynLibhas no Windows support in Zig 0.16. - CI compile-checks the full Windows Studio; Windows release ships CLI + Studio.
Not yet verified / to do
- Open a real project on Windows: asset scan, scene view with content, inspector, save/load scenes.
- PlayMode on Windows:
editor/build/PlayBuild.zigcompiles alibturian_play.dllvia azigsubprocess, thenDynLibloads it. End-to-end path (build → dlopen → resolve symbols → run/stop) is untested on Windows. - CLI on Windows:
turian-cli new-project/buildend-to-end (game build viaGameBuild/codegen). - Input handling: keyboard/mouse/gamepad in the editor and in Play (only a static screenshot was captured so far).
- POSIX path-assumption audit across
studio/+editor/. Known concrete issue:editor/build/codegen/BuildZigCodegen.zig:441hardcodeslib/{target}/libsnd.so(should resolve.dll/.libon Windows). Asset paths mostly rely on/→canonical normalization (CodegenShared/PlayBuildreplaceOwned("\\","/")) but need a pass. - 3D viewport on Windows without Vulkan: the viewport (
GpuRenderer) is SPIRV-only, so it shows "unavailable" on the D3D12 fallback. Needs DXIL shaders (or a shader-cross step) to work on Vulkan-less Windows machines. This is a sizeable rendering task — split into its own issue if it grows.
Testing notes
- Real Windows 10/11 testing (primary).
- Linux + Wine cross-check: build
zig build -Dtarget=x86_64-windows-gnu -Dno-test, run the.exeunder Wine.TURIAN_CAPTURE_AFTER_MS+TURIAN_CAPTURE_QUITgive one-shot screenshots. Note: Wine's ws2_32 rejectsSO_REUSE_UNICASTPORT, so the debug server can't bind under Wine (works on real Windows 10+).
Acceptance
- Project open, scene edit + save, asset import, PlayMode, and CLI game build all work on Windows 10/11.
- No POSIX-only path assumptions remain in the studio/editor runtime paths.