Spaces:
Sleeping
Sleeping
Client: size canvas to viewport, 100% zoom, patch blit no longer clears the screen
Browse files
README.md
CHANGED
|
@@ -80,8 +80,13 @@ v3 instead:
|
|
| 80 |
4. **Binary frames.** `[MAGIC][type][u32 hlen][json][webp]` — no base64 (+33%
|
| 81 |
removal), no JSON-wrapping of image data.
|
| 82 |
5. **Zero CDN / zero framework.** `index.html` is ~7.8 KB, no external requests.
|
| 83 |
-
6. **
|
| 84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
|
| 86 |
Measured (see below): interaction cost is a `LayerStack` build of **~0.15 ms**
|
| 87 |
and a **~1.9 ms** frame, with **0 cache misses** once warm.
|
|
|
|
| 80 |
4. **Binary frames.** `[MAGIC][type][u32 hlen][json][webp]` — no base64 (+33%
|
| 81 |
removal), no JSON-wrapping of image data.
|
| 82 |
5. **Zero CDN / zero framework.** `index.html` is ~7.8 KB, no external requests.
|
| 83 |
+
6. **100% adaptive viewport.** The canvas backing store is sized to the viewport
|
| 84 |
+
at startup and the framebuffer is drawn at **100% zoom** (one fb pixel per CSS
|
| 85 |
+
pixel); it only shrinks to fit a smaller window, never magnifies. Partial
|
| 86 |
+
patches repaint **only** their own region, so the rest of the desktop stays
|
| 87 |
+
intact (the earlier `blit` cleared the whole canvas on every patch).
|
| 88 |
+
7. **Async refinement.** Window content is generated off the input critical path.
|
| 89 |
+
8. **A blocking `Queue.get()`** replaces the old 50 ms busy-wait poll.
|
| 90 |
|
| 91 |
Measured (see below): interaction cost is a `LayerStack` build of **~0.15 ms**
|
| 92 |
and a **~1.9 ms** frame, with **0 cache misses** once warm.
|