Files
Homer 3c59faa506 Editor: native folder picker for New/Open Project
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>
2026-07-10 20:47:12 +02:00

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