tiny-skia-cpp
A C++20 2D rendering library (port of tiny-skia)
Loading...
Searching...
No Matches
Pattern.h
Go to the documentation of this file.
1#pragma once
2
5
7#include "tiny_skia/Color.h"
8#include "tiny_skia/Pixmap.h"
9#include "tiny_skia/pipeline/Pipeline.h"
10
11namespace tiny_skia {
12
14enum class FilterQuality {
15 Nearest,
16 Bilinear,
17 Bicubic,
18};
19
22 float opacity = 1.0f;
23 BlendMode blendMode = BlendMode::SourceOver;
24 FilterQuality quality = FilterQuality::Nearest;
25 bool unpremulStore = false;
26};
27
31class Pattern {
32 public:
33 Pattern(PixmapView pixmap, SpreadMode spreadMode, FilterQuality quality, float opacity,
34 Transform transform);
35
36 [[nodiscard]] bool isOpaque() const;
37
39 [[nodiscard]] bool pushStages(ColorSpace cs, pipeline::RasterPipelineBuilder& p) const;
40
42 PixmapView pixmap_;
44 NormalizedF32 opacity_;
46 Transform transform_;
47
48 private:
49 FilterQuality quality_;
50 SpreadMode spreadMode_;
51};
52
53} // namespace tiny_skia
Porter-Duff and advanced blend modes.
BlendMode
Blend mode for compositing source over destination. Includes Porter-Duff modes and advanced (separabl...
Definition BlendMode.h:14
Color types (8-bit and floating-point, straight and premultiplied).
ColorSpace
Colorspace for gamma-correct blending.
Definition Color.h:167
FilterQuality
Filter quality for pattern/pixmap sampling.
Definition Pattern.h:14
@ Nearest
Nearest-neighbor (pixelated).
@ Bicubic
Bicubic interpolation (highest quality).
@ Bilinear
Bilinear interpolation.
Pixel buffers and views for RGBA image data.
A float guaranteed to be in [0, 1].
Definition FloatingPoint.h:12
Pixmap-based pattern shader.
Definition Pattern.h:31
Immutable view into RGBA pixel data. Does not own memory.
Definition Pixmap.h:26
2D affine transformation: [sx kx tx; ky sy ty; 0 0 1].
Definition Transform.h:17
Paint settings for Painter::drawPixmap.
Definition Pattern.h:21
bool unpremulStore
Store as straight alpha.
Definition Pattern.h:25
BlendMode blendMode
Blend mode.
Definition Pattern.h:23
FilterQuality quality
Sampling filter.
Definition Pattern.h:24
float opacity
Opacity [0,1].
Definition Pattern.h:22