Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
alphaimage_shader_colorfilter.cpp
Go to the documentation of this file.
1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
4REG_FIDDLE(alphaimage_shader_colorfilter, 256, 256, false, 0) {
5sk_sp<SkImage> alpha_image() {
7 s->getCanvas()->clear(SkColorSetARGB(0x80, 0x00, 0x00, 0x00));
8 return s->makeImageSnapshot();
9}
10sk_sp<SkShader> linear_gradient() {
11 SkPoint gpts[2] = {{0, 0}, {64, 64}};
13 return SkGradientShader::MakeLinear(gpts, gc, nullptr, 3, (SkTileMode)0);
14}
16 SkScalar colorMatrix[20] = {
17 1, 0, 0, 0, 0,
18 0, 0, 1, 0, 0,
19 0, 1, 0, 0, 0,
20 0, 0, 0, 1, 0};
21 return SkColorFilters::Matrix(colorMatrix);
22}
23void draw(SkCanvas* canvas) {
24 SkPaint p;
25 p.setShader(linear_gradient());
26 p.setColorFilter(color_filter());
27 auto i = alpha_image();
28 canvas->scale(2, 2);
29 canvas->drawImage(i.get(), 32, 32, SkSamplingOptions(), &p);
30}
31} // END FIDDLE
constexpr SkColor SK_ColorMAGENTA
Definition SkColor.h:147
uint32_t SkColor
Definition SkColor.h:37
constexpr SkColor SK_ColorRED
Definition SkColor.h:126
static constexpr SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
Definition SkColor.h:49
constexpr SkColor SK_ColorGREEN
Definition SkColor.h:131
static sk_sp< SkImage > color_filter(const SkImage *image, SkColorFilter *colorFilter)
SkTileMode
Definition SkTileMode.h:13
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition aaclip.cpp:27
void scale(SkScalar sx, SkScalar sy)
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
Definition SkCanvas.h:1528
static sk_sp< SkColorFilter > Matrix(const SkColorMatrix &)
static sk_sp< SkShader > MakeLinear(const SkPoint pts[2], const SkColor colors[], const SkScalar pos[], int count, SkTileMode mode, uint32_t flags=0, const SkMatrix *localMatrix=nullptr)
#define REG_FIDDLE(NAME, W, H, TEXT, I)
Definition examples.h:60
float SkScalar
Definition extension.cpp:12
struct MyStruct s
SK_API sk_sp< SkSurface > Raster(const SkImageInfo &imageInfo, size_t rowBytes, const SkSurfaceProps *surfaceProps)
static SkImageInfo MakeA8(int width, int height)