Open tinchodias opened 12 months ago
In fact, there are more possibilities in Cairo for the "extend mode", more than "repeat":
See the class comment of AeCairoExtendMode:
I am a Cairo FFI binding for cairo_extend_t.
It is used to describe how pattern color/alpha will be determined for areas "outside" the pattern's natural area, (for example, outside the surface bounds or outside the gradient geometry).
Mesh patterns are not affected by the extend mode.
The default extend mode is CAIRO_EXTEND_NONE for surface patterns and CAIRO_EXTEND_PAD for gradient patterns.
Members:
• CAIRO_EXTEND_NONE: pixels outside of the source pattern are fully transparent (Since 1.0)
• CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating (Since 1.0)
• CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting at the edges (Since 1.0; but only implemented for surface patterns since 1.6)
• CAIRO_EXTEND_PAD: pixels outside of the pattern copy the closest pixel from the source (Since 1.2; but only implemented for surface patterns since 1.6)
See: https://www.cairographics.org/manual/cairo-cairo-pattern-t.html#cairo-extend-t
To form patterns such as:
Source: https://stackoverflow.com/questions/28755265/cairo-fill-a-polygon-with-a-hatch-pattern
In cairo it's simple to do it. Alexandrie-Cairo provides bindings to cairo API:
AeCairoExtendMode repeat
.