11#include "tiny_skia/pipeline/Pipeline.h"
16constexpr float kDegenerateThreshold = 1.0f / (1 << 15);
33 Gradient(std::vector<GradientStop> stops, SpreadMode tileMode, Transform transform,
34 Transform pointsToUnit);
36 [[nodiscard]]
bool colorsAreOpaque()
const {
return colorsAreOpaque_; }
38 [[nodiscard]]
bool pushStages(
39 pipeline::RasterPipelineBuilder& p, ColorSpace cs,
40 const std::function<
void(pipeline::RasterPipelineBuilder&)>& pushStagesPre,
41 const std::function<
void(pipeline::RasterPipelineBuilder&)>& pushStagesPost)
const;
45 [[nodiscard]]
bool tryPushFusedLinear2Stop(pipeline::RasterPipelineBuilder& p,
50 [[nodiscard]]
bool tryPushFusedRadial2Stop(pipeline::RasterPipelineBuilder& p,
53 void applyOpacity(
float opacity);
58 std::vector<GradientStop> stops_;
59 SpreadMode tileMode_ = SpreadMode::Pad;
60 Transform pointsToUnit_;
61 bool colorsAreOpaque_ =
true;
62 bool hasUniformStops_ =
true;
Color types (8-bit and floating-point, straight and premultiplied).
2D point (float x, y) with vector math operations.
Floating-point RGBA color [0,1] (straight alpha).
Definition Color.h:88
A float guaranteed to be in [0, 1].
Definition FloatingPoint.h:12
static NormalizedF32 newClamped(float value)
Clamps to [0,1].
A color stop in a gradient.
Definition Gradient.h:19
Color color
Color at this position.
Definition Gradient.h:21
static GradientStop create(float position, Color color)
Creates a stop, clamping position to [0,1].
Definition Gradient.h:24
NormalizedF32 position
Position along the gradient [0,1].
Definition Gradient.h:20