diff --git a/README.md b/README.md index 95ff1ea..649a385 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,8 @@ The config window edits the same file: Settings at the foot of the control centr `appearance.surface.design` picks what the island, the pills, the tray menu, the control centre and its popups are made of: `solid` (the wallpaper's gradient with an accent glow), `frosted` (a thin tint, a hairline white rim, a sheen along the top, a soft shadow) or `liquid` (clear glass, denser toward the bottom right, a light-catching edge, the accent's glow). Each design's opacity, rim and light are settings of their own (`appearance.solid|frosted|liquid.*`); the look itself is `src/surface.rs`, drawn by one shader (`src/surface.wgsl`: the shadow, the fill and the sheen or lit edge in one pass; the rim stays a border). On see-through glass a face fades with `.opacity()` instead of a veil, a GPU layer only while it fades. +Screenshots of each design, from when they were made: `docs/design/` (`base-solid-card.png`, `base-glass-0.5-card.png` for solid below 1, `frosted-0.62-card.png`, `liquid-0.4-card.png`, and a board for each glass design: the card three times side by side, with the pills below). + ### Performance Amane draws rectangles, borders, letters and pictures as cheap quads, and gradients, shadows and `Canvas` paths with vello, which renders over the whole window and then lays the result on top. vello keeps a result between frames only when its shapes didn't change and hold no gradient, so anything drawn with it on every frame costs a pass over the whole window. What redraws every frame is therefore kept off vello: the surfaces are a shader, the pill's bars are rounded rectangles, the candle ring and the equalizer's curve are shaders (`src/ring.wgsl`, `src/curve.wgsl`). A shader's file is written to `$XDG_RUNTIME_DIR/magic-island/` when it is first drawn. A shader must not contain the word `time`, or amane redraws its window on every frame. diff --git a/docs/design/base-glass-0.5-card.png b/docs/design/base-glass-0.5-card.png new file mode 100644 index 0000000..a2f307c Binary files /dev/null and b/docs/design/base-glass-0.5-card.png differ diff --git a/docs/design/base-solid-card.png b/docs/design/base-solid-card.png new file mode 100644 index 0000000..d186ddf Binary files /dev/null and b/docs/design/base-solid-card.png differ diff --git a/docs/design/frosted-0.62-card.png b/docs/design/frosted-0.62-card.png new file mode 100644 index 0000000..30d1ede Binary files /dev/null and b/docs/design/frosted-0.62-card.png differ diff --git a/docs/design/frosted-board.png b/docs/design/frosted-board.png new file mode 100644 index 0000000..0b3155d Binary files /dev/null and b/docs/design/frosted-board.png differ diff --git a/docs/design/liquid-0.4-card.png b/docs/design/liquid-0.4-card.png new file mode 100644 index 0000000..48c2f86 Binary files /dev/null and b/docs/design/liquid-0.4-card.png differ diff --git a/docs/design/liquid-board.png b/docs/design/liquid-board.png new file mode 100644 index 0000000..e2b505c Binary files /dev/null and b/docs/design/liquid-board.png differ