3c59faa506
Stage-10 editor-UX follow-up ("typing the path by hand is very hard to
use"). Both project dialogs gain a Browse… button that opens the native
folder picker via rfd's xdg-portal backend — pure Rust, one build works
on Wayland and X11 through xdg-desktop-portal. The dialog runs on a
helper thread reporting over an mpsc channel (polled once per frame in
Shell::build), so the editor keeps rendering while the picker is up;
one pick at a time, and the typed path field remains as a fallback for
portal-less environments.
GUI piece — needs an eye-check (on both Wayland and Xorg) before
promotion to main.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
86 lines
2.3 KiB
TOML
86 lines
2.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"engine",
|
|
"engine-derive",
|
|
"physics",
|
|
"script",
|
|
"editor",
|
|
"examples",
|
|
"tests",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["Jaroslav Beneš"]
|
|
license = "MIT"
|
|
rust-version = "1.75"
|
|
|
|
[workspace.dependencies]
|
|
# Math
|
|
glam = { version = "0.28", features = ["serde"] }
|
|
|
|
# ECS
|
|
hecs = "0.10"
|
|
|
|
# Windowing & graphics
|
|
# Linux is the primary target on BOTH Wayland and Xorg (X11): keep both winit
|
|
# backends explicitly enabled so neither can be dropped by a default-feature
|
|
# change. (On by default today; listing them makes the contract explicit —
|
|
# see PLAN.md "Platform & Target Strategy".)
|
|
winit = { version = "0.30", features = ["x11", "wayland", "serde"] }
|
|
wgpu = "29"
|
|
pollster = "0.4"
|
|
# Plain-old-data casting for GPU vertex/uniform buffers.
|
|
bytemuck = { version = "1", features = ["derive"] }
|
|
# glTF import (static meshes). `utils` enables the attribute reader helpers.
|
|
gltf = { version = "1.4", features = ["utils"] }
|
|
|
|
# TrueType / OpenType font parsing + glyph outline rasterization for the
|
|
# Stage-8 in-game UI text system. Chosen over `fontdue` for its minimal
|
|
# scope (parsing + rasterization only) — the engine writes its own atlas,
|
|
# layout, wrapping, and alignment on top, which keeps the door open for
|
|
# richer text features in later pieces (editor caret, rich markup, SDF).
|
|
ab_glyph = "0.2"
|
|
|
|
# Editor UI (egui — integrated into oxide-editor only)
|
|
# Native file/folder dialogs (New/Open Project). The default `xdg-portal`
|
|
# backend is pure Rust and talks to xdg-desktop-portal over D-Bus, so one
|
|
# build serves both Wayland and X11 with no GTK link-time dependency.
|
|
rfd = "0.15"
|
|
egui = "0.34"
|
|
egui-wgpu = "0.34"
|
|
egui-winit = "0.34"
|
|
egui_dock = "0.19"
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
|
|
# Error handling
|
|
anyhow = "1"
|
|
thiserror = "2"
|
|
|
|
# Serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
ron = "0.8"
|
|
|
|
# Proc-macro toolkit for `oxide-engine-derive` (the `#[derive(Reflect)]` macro
|
|
# behind the reflection-driven editor inspector — Stage 8.5).
|
|
syn = { version = "2", features = ["full"] }
|
|
quote = "1"
|
|
proc-macro2 = "1"
|
|
|
|
# Filesystem change events (Stage 6 file-watcher foundation; Stage 10 hot-reload).
|
|
notify = "8"
|
|
|
|
# Benchmarking
|
|
criterion = "0.5"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|