Expand description
llimphi-hal — Puente al Silicio.
Aísla el motor del sistema operativo. Pinta en ventana Wayland/X11
(vía mirada en producción, vía winit en dev) o framebuffer directo
del kernel wawa (TODO). Trait Surface abstracto + struct Hal
que posee Instance/Adapter/Device/Queue de wgpu.
Re-exports§
pub use raw_window_handle;pub use wgpu;pub use winit;
Structs§
- Blur
Compositor - Gaussian backdrop blur sobre la intermediate (la textura donde vello pinta
la UI). El compositor empuja dos render passes separables (horizontal +
vertical) restringidas por scissor al rect del nodo
.backdrop_blur(sigma), usando una textura scratch interna del mismo tamaño que la intermediate. - Color
Filter Compositor - Aplica una matriz de color 4×5 (CSS
filter: brightness/contrast/ grayscale/sepia/saturate/invert/hue-rotate/opacity) sobre un rect de la intermediate. Espejo deBlurCompositorpero con un fragment shader que multiplica cada píxel por la matriz:out = M·rgba + bias, clampeado a[0,1]. Dos pases (target→scratch aplicando la matriz, scratch→target copia identidad) por la misma razón que el blur: un render pass no puede leer y escribir la misma textura. Fase 7.1233. - Frame
- Frame en curso.
view()devuelve la textura intermedia (Rgba8Unorm, STORAGE_BINDING) lista para que vello escriba sobre ella. - Hal
- Estado wgpu compartido. Una instancia por proceso.
DeviceyQueuesonArcinternamente, así que clonar es barato. - Overlay
Compositor - Compositor de la capa de overlay: alpha-blittea una textura source (el
overlay rasterizado por vello sobre fondo transparente) SOBRE una textura
target (la intermedia, que ya tiene la UI principal + el video pintado por
gpu_paint). Resuelve el z-order: sin esto, el blit degpu_paint(video) queda encima de la capa vello del overlay y los menús se ven por debajo del video. - RawSurface
- Surface sobre una
wgpu::Surfacecreada desde handles raw (sinwinit::Window): la usa el backendwlr-layer-shelldepatapara pintar en una layer surface de Wayland (barras/paneles al nivel de eww/waybar). Misma mecánica queWinitSurface—intermediaRgba8Unorm+ blit al swapchain— pero el tamaño se pasa explícito porque no hay ventana que consultar. Lawgpu::Surfacela crea el caller (típicamente coninstance.create_surface_unsafedesde los punteroswl_display/wl_surface). - Winit
Surface - Surface basada en
winit::window::Window. Mantiene una textura intermediaRgba8Unormcon storage binding (donde pinta vello) y unTextureBlitterque la copia al swapchain al presentar.
Enums§
- HalError
- Errores al construir Hal o crear una Surface.
- Surface
Error - Errores al adquirir un frame de la superficie.
Traits§
- Surface
- Superficie gráfica donde llimphi pinta.