Expand description
Compositing pipeline — replaces SplashPipe and its pipeRun* family.
The C++ design uses a struct with a function-pointer field (pipe->run) selected at
pipeInit time. Here each paint operation calls a span-level function that is
monomorphized over P: Pixel at compile time, eliminating per-pixel vtable overhead.
§Three pipeline variants
| Variant | When selected | C++ equivalent |
|---|---|---|
simple | a_input == 255, no soft mask, BlendMode::Normal | pipeRunSimple* |
aa | shape byte present, no soft mask, BlendMode::Normal, no group correction | pipeRunAA* |
general | everything else — soft mask, blend mode, non-isolated/knockout groups | pipeRun |
Modules§
- aa
- AA pipe: shape byte present,
BlendMode::Normal, no soft mask, isolated group. - blend
- PDF blend modes (PDF spec §11.3.5).
- general
- General pipe: soft mask, non-normal blend modes, non-isolated/knockout groups.
- simple
- Simple pipe:
a_input == 255,BlendMode::Normal, no soft mask, no shape.
Structs§
- Pipe
State - Immutable parameters for one paint operation, built once per fill/stroke/glyph call.
Enums§
- PipeSrc
- Source colour for a single paint operation.
Traits§
- Pattern
- A source of per-pixel colour for use with the compositing pipeline.
Functions§
- render_
span - Select and run the appropriate pipeline variant for a horizontal span.