Expand description
§raster
Pure software rasterizer for PDF page content — no I/O, no PDF parsing, no SIMD (Phase 1).
§Phase 1 scope
Foundation types only: pixel buffers, path geometry, edge tables, clip regions, halftone screens, and graphics state. Rendering (pipe, fill, stroke, image, shading, glyph, transparency) is Phase 2.
§Module layout
types— raster-local enums and constants (re-exportscolortypes)bitmap—Bitmap<P>andAaBufpath—Path,PathBuilder, Bezier flattening, stroke adjustmentxpath—XPathedge table (flattened, matrix-transformed segments)scanner—XPathScannerandcrate::ScanIterator(scanline span emission)clip—Clip(rect + arbitrary path clip stack)screen—HalftoneScreen(Bayer / stochastic threshold matrix)state—GraphicsStateandStateStackpipe— compositing pipeline (simple, AA, general; blend modes; Pattern trait)
Re-exports§
pub use bitmap::AaBuf;pub use bitmap::Bitmap;pub use clip::Clip;pub use clip::ClipResult;pub use fill::eo_fill;pub use fill::fill;pub use glyph::GlyphBitmap;pub use glyph::blit_glyph;pub use glyph::fill_glyph;pub use image::ImageResult;pub use image::ImageSource;pub use image::MaskSource;pub use image::draw_image;pub use image::fill_image_mask;pub use path::Path;pub use path::PathBuilder;pub use path::PathFlags;pub use path::PathPoint;pub use path::StrokeAdjustHint;pub use pipe::Pattern;pub use pipe::PipeSrc;pub use pipe::PipeState;pub use scanner::iter::ScanIterator;pub use scanner::Intersect;pub use scanner::XPathScanner;pub use screen::HalftoneScreen;pub use shading::axial::AxialPattern;pub use shading::function::FunctionPattern;pub use shading::gouraud::GouraudVertex;pub use shading::gouraud::gouraud_triangle_fill;pub use shading::radial::RadialPattern;pub use shading::shaded_fill;pub use simd::blend_solid_gray8;pub use simd::blend_solid_rgb8;pub use simd::composite_aa_rgb8_opaque;pub use simd::unpack_mono_row;pub use state::GraphicsState;pub use state::StateStack;pub use state::TransferSet;pub use stroke::StrokeParams;pub use stroke::stroke;pub use tiling::TiledPattern;pub use xpath::XPath;pub use xpath::XPathFlags;pub use xpath::XPathSeg;pub use types::*;
Modules§
- bitmap
- Pixel buffers and the anti-aliasing scratch buffer.
- clip
- Clip region: an axis-aligned rectangle intersected with zero or more arbitrary path clip regions.
- fill
- Filled-path rasterization — replaces
Splash::fill,Splash::eoFill, and the core ofSplash::fillWithPattern. - glyph
- Glyph bitmap blitting — replaces
Splash::fillGlyph2. - image
- Image and image-mask rendering — replaces
Splash::fillImageMask,Splash::drawImage, and the fourscaleImage*/scaleMask*helpers. - path
- PDF path geometry: points, flags, subpath state machine, and builder API.
- pipe
- Compositing pipeline — replaces
SplashPipeand itspipeRun*family. - scanner
- Scanline intersection lists for path fill and clip.
- screen
- Halftone threshold screen for Mono1 (1-bit) output.
- shading
- Shaded fills — gradient patterns and Gouraud-shaded triangles.
- simd
- SIMD-accelerated hot paths for the rasterizer.
- state
- Graphics state and save/restore stack.
- stroke
- Stroke rasterization.
- tiling
- Tiling pattern source for the compositing pipeline.
- transparency
- Transparency group compositing — replaces
Splash::beginTransparencyGroup,Splash::endTransparencyGroup, andSplash::paintTransparencyGroup. - types
- Raster-local enums and workspace-wide constants.
- xpath
- Flattened, matrix-transformed path edge table.