56 const float tint_matrix[] = {
57 0, 0, 0, (r_hi - r_lo) / 255.0f,
SkIntToScalar(r_lo) / 255.0f,
58 0, 0, 0, (g_hi - g_lo) / 255.0f,
SkIntToScalar(g_lo) / 255.0f,
59 0, 0, 0, (b_hi - b_lo) / 255.0f,
SkIntToScalar(b_lo) / 255.0f,
60 0, 0, 0, (a_hi - a_lo) / 255.0f,
SkIntToScalar(a_lo) / 255.0f,
69 uniform colorFilter inner;
70 uniform colorFilter outer;
71 half4 main(half4 c) { return outer.eval(inner.eval(c)); }
75 return effect->makeColorFilter(
nullptr, children, std::size(children));
77 return outer->makeComposed(inner);
87 50, 50, gradient_colors,
nullptr, std::size(gradient_colors)));
90 for (
bool useSkSL : {
false,
true}) {
94 paint.setColorFilter(cf0);
95 canvas->drawRect({0, 0, 100, 100},
paint);
96 canvas->translate(100, 0);
98 paint.setColorFilter(cf1);
99 canvas->drawRect({0, 0, 100, 100},
paint);
102 canvas->translate(0, 100);
121 canvas->clipRect({0, 0, 200, 200});
124 p.setColorFilter(cf);
125 canvas->drawPaint(p);
128 canvas->translate(202, 0);
131 canvas->clipRect({0, 0, 200, 200});
133 p.setImageFilter(directCompose);
134 canvas->drawPaint(p);
137 canvas->translate(202, 0);
141 canvas->clipRect({0, 0, 200, 200});
143 p.setImageFilter(indirectCompose);
144 canvas->drawPaint(p);
#define SkColorGetR(color)
#define SkColorGetG(color)
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorGREEN
#define SkColorGetA(color)
#define SkColorGetB(color)
static sk_sp< SkColorFilter > Matrix(const SkColorMatrix &)
static sk_sp< SkShader > MakeSweep(SkScalar cx, SkScalar cy, const SkColor colors[], const SkScalar pos[], int count, SkTileMode mode, SkScalar startAngle, SkScalar endAngle, uint32_t flags, const SkMatrix *localMatrix)
static sk_sp< SkImageFilter > ColorFilter(sk_sp< SkColorFilter > cf, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Compose(sk_sp< SkImageFilter > outer, sk_sp< SkImageFilter > inner)
static sk_sp< SkImageFilter > Shader(sk_sp< SkShader > shader, const CropRect &cropRect={})
static Result MakeForColorFilter(SkString sksl, const Options &)
static sk_sp< SkColorFilter > MakeTintColorFilter(SkColor lo, SkColor hi, bool useSkSL)
const uint8_t uint32_t uint32_t GError ** error
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
SK_API sk_sp< SkShader > MakeTurbulence(SkScalar baseFrequencyX, SkScalar baseFrequencyY, int numOctaves, SkScalar seed, const SkISize *tileSize=nullptr)
static sk_sp< SkColorFilter > Make()