Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
docs: cce-ui shapes text with cosmic-text directly, not glyphon
glyphon was a wgpu text renderer; with the wgpu path retired, none of its own
API was reachable and every item cce-ui used from it was a cosmic-text
re-export. cce-ui now depends on cosmic-text directly (pinned to the version
glyphon resolved to) and re-exports it for clients, which takes wgpu out of
the DE build entirely. No compositor code change — its own text path is
fontdue, as this file says.
Co-Authored-By: Claude <[email protected]>
WORKSPACE.md | 4 +++-
src/server/text.rs | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/WORKSPACE.md b/WORKSPACE.md
index 0935fa1..7bf166d 100644
--- a/WORKSPACE.md
+++ b/WORKSPACE.md
@@ -128,7 +128,9 @@ framework. Understanding it is the prerequisite for touching any client.
- **Transport**: raw `wayland-client` 0.31 + `smithay-client-toolkit` 0.19, driven by a
`calloop` event loop. Clients are real Wayland surfaces, not toolkit windows.
- **Rendering**: raw Vulkan via **ash** (`cce-ui/src/vk/` — `VkRenderer`; the wgpu
- path was retired), with **glyphon**/cosmic-text for text shaping. Widgets emit
+ path was retired), with **cosmic-text** for text shaping (depended on directly
+ since the wgpu retirement — it used to be reached through glyphon, whose only
+ other export was the wgpu renderer nothing here used). Widgets emit
vertex batches (quads, rounded rects, vectors, arcs, circles) — see the re-export
list in `cce-ui/src/engine.rs`. There is no HTML/DOM; the UI is drawn as GPU
primitives.
diff --git a/src/server/text.rs b/src/server/text.rs
index 8430c6b..1b82acf 100644
--- a/src/server/text.rs
+++ b/src/server/text.rs
@@ -1,7 +1,7 @@
//! Minimal CPU text rendering, for the desktop-grid square labels.
//!
//! The compositor has no toolkit — clients own their own text (cce-ui does
-//! Vulkan + glyphon). The one thing the compositor itself has to letter is the
+//! Vulkan + cosmic-text). The one thing the compositor itself has to letter is the
//! desktop grid, so this is deliberately the smallest thing that works:
//! fontdue rasterizes a short ASCII label into an ARGB8888 buffer, which
//! `river_data_buffer_create` wraps as a `wlr_buffer` for a scene node.