denise-winit
The desktop development and preview backend for Denise, a direct-rendering UI toolkit in Rust for embedded Linux and systems without a desktop environment.
This is not a deployment target. It exists so the core abstraction can be proven — and iterated on — without a Raspberry Pi on the desk. Shipping Denise on a desktop means shipping a compositor you did not need.
use ;
use Canvas;
use ;
;
#
Why it earns its place
Because the alternative is developing blind. A backend that produces the same
InputEvents and honours the same Surface contract as DRM means a panel can be
written and reviewed on a laptop and then run unchanged on the hardware — and when
it does not, the difference is in the backend rather than in the abstraction, which
is a far smaller place to look.
It also keeps the contract honest: two independent implementations of Surface is
the minimum at which "the trait describes the problem" stops being an assertion.
Runs on Linux, macOS and Windows, on winit and softbuffer — the only two dependencies in the whole workspace that are there purely for convenience.
Where this sits
Implements denise::Surface and denise::InputSource. Swap it for
denise-drm plus
denise-evdev to ship, usually behind one
cfg in the application.
For putting a Denise panel inside an existing desktop application, this is the
wrong crate — see denise-win32,
denise-macos or
denise-activex, which embed rather
than own the window.
Status
M0 complete, and used continuously since. Part of Denise — see the repository README for the whole picture.
MIT licensed.