Skip to main content

Crate oxiui_render_soft

Crate oxiui_render_soft 

Source
Expand description

softbuffer CPU framebuffer backend — headless / ffi-audit / embedded path.

Use --no-default-features --features software for the GPU-free audit build.

§Headless rendering

The headless module provides headless::render_headless_once and headless::RgbaBuffer for CI/ffi-audit usage without any display.

Re-exports§

pub use headless::render_headless_once;
pub use headless::render_headless_scene;
pub use headless::PixelFormat;
pub use headless::RgbaBuffer;
pub use headless::HEADLESS_BG_COLOR;
pub use framebuffer::Framebuffer;
pub use clip::ClipRect;
pub use clip::ClipStack;
pub use draw::Canvas;
pub use draw::SrcImage;
pub use gradient::lerp_color;
pub use gradient::GradientStop;
pub use gradient::LinearGradient;
pub use gradient::RadialGradient;
pub use blend::blend_mode;
pub use blend::blend_pixel;
pub use blend::composite_into;
pub use blend::BlendMode;
pub use blend::RgbaUnit;
pub use scanline::fill_polygon;
pub use scanline::fill_triangle;
pub use scanline::FillRule;
pub use path::Cap;
pub use path::Join;
pub use path::Path;
pub use path::PathBuilder;
pub use path::StrokeStyle;
pub use shadow::box_shadow;
pub use shadow::gaussian_blur_alpha;
pub use shadow::GaussianCache;
pub use dither::ordered_dither_rgba;
pub use dither::BayerMatrix;
pub use tile::collect_tiles;
pub use tile::render_tiles;
pub use tile::tiles_for;
pub use tile::DirtyRegion;
pub use tile::Tile;
pub use tile::TileIter;
pub use tile::DEFAULT_TILE_SIZE;
pub use backend::blit_glyph_bitmap;
pub use backend::SoftBackend;
pub use simd_fill::alpha_blend_row;
pub use simd_fill::fill_solid;
pub use simd_fill::gradient_row_horizontal;
pub use fft_blur::gaussian_blur_alpha_fft;
pub use fft_blur::should_use_fft_blur;
pub use fft_blur::FFT_BLUR_MIN_RADIUS;
pub use backend_switch::BackendKind;
pub use backend_switch::DynBackend;
pub use canvas_upload::framebuffer_to_rgba8;
pub use canvas_upload::upload_framebuffer;
pub use canvas_upload::upload_rgba;

Modules§

backend
CPU framebuffer backend implementing oxiui_core::paint::RenderBackend. SoftBackend: a oxiui_core::paint::RenderBackend implementation that replays a oxiui_core::paint::DrawList onto a CPU Framebuffer through a single Canvas.
backend_switch
Runtime CPU/GPU backend switching via shared oxiui_core::paint::DrawList.
blend
Extended blend modes (multiply / screen / overlay / darken / lighten) and premultiplied-alpha helpers — additive over Framebuffer::blend. Extended compositing helpers: blend modes + premultiplied-alpha utilities.
canvas_upload
Canvas 2D pixel upload path for wasm32 targets.
clip
Rectangular clip-region stack. Rectangular clip-region stack.
dither
Bayer-matrix ordered dithering for reduced-bit output paths. Bayer-matrix ordered dithering for reduced-bit output paths.
draw
Drawing primitives: rectangles, lines, circles, rounded rects, blits. Drawing primitives operating on a Framebuffer through a clip stack.
fft_blur
FFT-accelerated Gaussian blur for large kernels (OxiFFT, COOLJAPAN ecosystem).
framebuffer
CPU pixel framebuffer (0xAARRGGBB) with blending and RGBA export. CPU pixel framebuffer in 0xAARRGGBB (non-premultiplied) format.
gradient
Linear and radial gradient fills with sRGB colour interpolation. Linear and radial gradient fills with multiple colour stops (sRGB interpolation).
headless
Headless rendering helpers: RgbaBuffer, render_headless_once, and PNG save.
path
2D paths with Bezier flattening, fill (via scanline), and stroke. 2D path representation with Bézier flattening, fill, and stroke.
scanline
Active-Edge-Table scanline polygon / triangle fill with vertical- supersample coverage AA. Supports even-odd and non-zero winding. Active-Edge-Table (AET) scanline rasteriser for polygon and triangle fill.
shadow
Box shadow via separable 1-D Gaussian blur with a kernel cache. Box-shadow via separable 1-D Gaussian blur with a cached kernel.
simd_fill
SIMD-accelerated bulk pixel operations (Pure-Rust wide crate).
tile
64×64 render-tile iterator (rayon-ready; serial driver only this run). 64×64 render-tile iterator.

Structs§

SoftRenderQuality
Combined quality preset for SoftBackend::with_quality.
SoftRenderer
CPU-based software renderer using a raw pixel framebuffer.

Enums§

AaMode
Anti-aliasing mode for the software renderer.
ShadowQuality
Shadow render quality.
SoftRenderError
Errors specific to the soft-render backend.