87 lines
2.5 KiB
TOML
87 lines
2.5 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"lightningbeam-editor",
|
|
"lightningbeam-core",
|
|
"beamdsp",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
# UI Framework (using eframe for simplified integration)
|
|
# Note: Upgraded from 0.29 to 0.31 to fix Linux IME/keyboard input issues
|
|
# See: https://github.com/emilk/egui/pull/5198
|
|
# Upgraded to 0.33 for shader editor (egui_code_editor) and continued bug fixes
|
|
egui = "0.33.3"
|
|
eframe = { version = "0.33.3", default-features = true, features = ["wgpu"] }
|
|
egui_extras = { version = "0.33.3", features = ["image", "svg", "syntect"] }
|
|
egui-wgpu = "0.33.3"
|
|
egui_code_editor = "0.2"
|
|
|
|
# GPU Rendering
|
|
# vello from git uses wgpu 27, matching eframe 0.33
|
|
vello = { git = "https://github.com/linebender/vello", branch = "main" }
|
|
wgpu = { version = "27", features = ["vulkan", "metal"] }
|
|
kurbo = { version = "0.12", features = ["serde"] }
|
|
peniko = "0.5"
|
|
|
|
# Windowing
|
|
winit = "0.30"
|
|
|
|
# Native menus
|
|
muda = "0.15"
|
|
|
|
# Serialization
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
|
|
# Image loading
|
|
image = "0.25"
|
|
resvg = "0.42"
|
|
|
|
# Utilities
|
|
pollster = "0.3"
|
|
|
|
# Desktop notifications
|
|
notify-rust = "4.11"
|
|
|
|
# Optimize the audio backend even in debug builds — the audio callback
|
|
# runs on a real-time thread with ~1.5ms deadlines at small buffer sizes,
|
|
# so it cannot tolerate unoptimized code.
|
|
[profile.dev.package.daw-backend]
|
|
opt-level = 2
|
|
|
|
[profile.dev.package.beamdsp]
|
|
opt-level = 2
|
|
|
|
# Also optimize symphonia (audio decoder) and cpal (audio I/O) — these
|
|
# run in the audio callback path and are heavily numeric.
|
|
[profile.dev.package.symphonia]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-core]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-bundle-mp3]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-bundle-flac]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-format-ogg]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-codec-vorbis]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-codec-aac]
|
|
opt-level = 2
|
|
[profile.dev.package.symphonia-format-isomp4]
|
|
opt-level = 2
|
|
[profile.dev.package.cpal]
|
|
opt-level = 2
|
|
|
|
# Use local egui fork with ibus/Wayland text input fix
|
|
[patch.crates-io]
|
|
egui = { path = "../../egui-fork/crates/egui" }
|
|
eframe = { path = "../../egui-fork/crates/eframe" }
|
|
egui_extras = { path = "../../egui-fork/crates/egui_extras" }
|
|
egui-wgpu = { path = "../../egui-fork/crates/egui-wgpu" }
|
|
egui-winit = { path = "../../egui-fork/crates/egui-winit" }
|
|
epaint = { path = "../../egui-fork/crates/epaint" }
|
|
ecolor = { path = "../../egui-fork/crates/ecolor" }
|
|
emath = { path = "../../egui-fork/crates/emath" }
|