Skip to main content

Crate llimphi_hal

Crate llimphi_hal 

Source
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§

BlurCompositor
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.
ColorFilterCompositor
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 de BlurCompositor pero 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. Device y Queue son Arc internamente, así que clonar es barato.
OverlayCompositor
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 de gpu_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::Surface creada desde handles raw (sin winit::Window): la usa el backend wlr-layer-shell de pata para pintar en una layer surface de Wayland (barras/paneles al nivel de eww/waybar). Misma mecánica que WinitSurface —intermedia Rgba8Unorm + blit al swapchain— pero el tamaño se pasa explícito porque no hay ventana que consultar. La wgpu::Surface la crea el caller (típicamente con instance.create_surface_unsafe desde los punteros wl_display/wl_surface).
WinitSurface
Surface basada en winit::window::Window. Mantiene una textura intermedia Rgba8Unorm con storage binding (donde pinta vello) y un TextureBlitter que la copia al swapchain al presentar.

Enums§

HalError
Errores al construir Hal o crear una Surface.
SurfaceError
Errores al adquirir un frame de la superficie.

Traits§

Surface
Superficie gráfica donde llimphi pinta.