Skip to main content

Module pipe

Module pipe 

Source
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

VariantWhen selectedC++ equivalent
simplea_input == 255, no soft mask, BlendMode::NormalpipeRunSimple*
aashape byte present, no soft mask, BlendMode::Normal, no group correctionpipeRunAA*
generaleverything else — soft mask, blend mode, non-isolated/knockout groupspipeRun

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§

PipeState
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.