⎇ dc8554d1231f9f351385afa13d82d56504b6309f
crates/modules/pineal/phosphor/src/lib.rs
History
Who touched what
raw
refactor(monorepo): reorganización lógica + renames + SDDs + split CHANGELOG
1//! `pineal-phosphor` — decoración CRT sobre `pineal_core::RingBuffer`.
2//!
3//! El "real" oscilloscope-trail effect de la sección 4.3 del
4//! ARCHITECTURE.md renderea cada sample como **2 vértices**
5//! (top y bottom, offset ±half_width) atados a un triangle strip
6//! con per-vertex color. GPUI 0.2 no expone triangle strips con
7//! atributos de vértice de forma directa.
8//!
9//! v0.1 implementa el efecto con un approach distinto pero
10//! visualmente similar: el trail se divide en N **segmentos**
11//! consecutivos del ring, cada uno se pinta como una `stroke_polyline`
12//! con alpha decreciente del más nuevo (1.0) al más viejo (≈ 0).
13//! Cada segmento incluye el primer sample del siguiente para no
14//! dejar gaps visibles entre tramos.
15//!
16//! Coste: N draw calls por frame en lugar de 2 del stream simple.
17//! Para N = 16 y ring cap = 512 son sub-millisecond en cualquier
18//! laptop moderna.
19//!
20//! Cuando GPUI/wgpu expongan triangle strip + per-vertex color,
21//! la siguiente fase reemplaza esta impl por la canónica.
22
23#![forbid(unsafe_code)]
24#![allow(dead_code)]
25
26pub mod ghost {}
27pub mod magnetic_anchor {}
28
29#[cfg(feature = "gpui")]
30pub mod element;
31
32#[cfg(feature = "gpui")]
33pub use element::{pineal_phosphor, LapalomaPhosphorElement};