Initial commit: Odin editor client + Kotlin daemon prototype
Native SDL3 editor written in Odin with a piece-table buffer core, backed by a Kotlin/JVM daemon speaking newline-delimited JSON over localhost TCP for Gradle import, Kotlin/Java diagnostics, and heuristic completion/hover/definition/references/rename. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
commit
4a15350860
21 changed files with 8112 additions and 0 deletions
40
docs/shader-toolchain.md
Normal file
40
docs/shader-toolchain.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# SDL3 GPU Shader Toolchain
|
||||
|
||||
SDL3 GPU accepts different shader formats depending on the selected backend:
|
||||
|
||||
- Vulkan: SPIR-V
|
||||
- D3D12: DXBC or DXIL
|
||||
- Metal: MSL or metallib
|
||||
|
||||
For this Linux-first prototype, use GLSL compiled to SPIR-V with `glslc` from shaderc.
|
||||
|
||||
```sh
|
||||
scripts/compile-shaders.sh
|
||||
```
|
||||
|
||||
Outputs are written to `client/odin/shaders/compiled/` and intentionally ignored by git.
|
||||
|
||||
Fedora install:
|
||||
|
||||
```sh
|
||||
sudo dnf install glslc
|
||||
```
|
||||
|
||||
Cross-platform path later:
|
||||
|
||||
- Use SDL_shadercross for offline conversion from SPIR-V or HLSL to backend-specific shader formats.
|
||||
- Keep source shaders in git.
|
||||
- Generate SPIR-V/DXIL/MSL in CI or release packaging.
|
||||
- At runtime, choose the shader blob matching `SDL.GetGPUDeviceDriver(device)` or `SDL.GetGPUShaderFormats(device)`.
|
||||
|
||||
Current recommendation:
|
||||
|
||||
- Build Linux/Vulkan first with checked-in GLSL sources and generated SPIR-V as build artifacts.
|
||||
- Add SDL_shadercross only when Windows/macOS backends matter.
|
||||
|
||||
Current renderer state:
|
||||
|
||||
- The editor loads `rect.vert.spv` and `rect.frag.spv` for the direct SDL3 GPU path.
|
||||
- The editor loads `text.vert.spv` and `text.frag.spv` for font-atlas text.
|
||||
- Text is rendered from a baked `stb_truetype` atlas using `/usr/share/fonts/google-noto/NotoSansMono-Regular.ttf`.
|
||||
- A later portability step should bundle a project font or add configurable font discovery.
|
||||
Loading…
Add table
Add a link
Reference in a new issue