62 lines
2.8 KiB
TOML
62 lines
2.8 KiB
TOML
# The Observatory: the calendar rendered on a GPU, with one observer thread
|
|
# per logical CPU behind the picture. Not published — it is a binary, and it
|
|
# goes out attached to a release beside the oracle.
|
|
[package]
|
|
name = "loic-gui"
|
|
version.workspace = true
|
|
edition = "2024"
|
|
authors.workspace = true
|
|
repository.workspace = true
|
|
license-file.workspace = true
|
|
description = "A temporal meditation interface for the Loic Calendar"
|
|
publish = false
|
|
|
|
# What the Observatory stands on. Each dependency is here for one stated
|
|
# reason, and the reason is stated beside it.
|
|
[dependencies]
|
|
# The calendar, at the workspace's one version. Every observer thread and
|
|
# the main thread's one observation per frame call into it, and nothing on
|
|
# the screen is derived from anything else.
|
|
loic.workspace = true
|
|
|
|
# The GPU: surfaces, pipelines, buffers and shaders, through which every
|
|
# pixel of the Observatory is drawn.
|
|
wgpu = "30"
|
|
# The window and its events, Wayland only. `winit`'s `x11` feature would
|
|
# pull in `libX11`, `x11rb` and their kin as build dependencies, and so it
|
|
# is not enabled: the Observatory links only against Wayland. X11 is not
|
|
# where desktop Linux is going, and a project that refuses floating-point in
|
|
# a timestamp is not going to make its first compromise for a display
|
|
# server. `wayland-dlopen` loads the Wayland client library at run time
|
|
# rather than at link time; `wayland-csd-adwaita` draws the window's own
|
|
# decorations on compositors that decline to draw them; `rwh_06` is the
|
|
# `raw-window-handle` 0.6 handle wgpu asks for when it makes a surface of
|
|
# the window.
|
|
winit = { version = "0.30", default-features = false, features = ["wayland", "wayland-dlopen", "wayland-csd-adwaita", "rwh_06"] }
|
|
|
|
# `block_on` for the two asynchronous requests wgpu insists on — an adapter,
|
|
# then a device — run to completion on the calling thread, without an async
|
|
# runtime brought in to wait for two things.
|
|
pollster = "1"
|
|
|
|
# For `setpriority(2)`: the Observatory asks for nice -11 before it looses
|
|
# its observers, and threads inherit the value at creation, so one call
|
|
# before the spawn is one call for all of them.
|
|
libc = "0.2"
|
|
|
|
# `Pod` and `Zeroable`, derived, for the structures that cross to the GPU as
|
|
# bare bytes: the derive proves at compile time that a structure has no
|
|
# padding it would be undefined to read, which is the only kind of proof a
|
|
# vertex deserves.
|
|
bytemuck = { version = "1.25", features = ["derive"] }
|
|
|
|
# Audio output, for the quantum hum. Audio synthesis is the one place in the
|
|
# workspace where floating-point arithmetic is tolerated, on the grounds
|
|
# that a loudspeaker is an analog device and nothing it renders was ever
|
|
# exact to begin with.
|
|
rodio = "0.22"
|
|
|
|
# The binary target, named and placed explicitly rather than inferred.
|
|
[[bin]]
|
|
name = "loic-gui"
|
|
path = "src/main.rs"
|