Flutter Engine
The Flutter Engine
blur_alpha_img.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(blur_alpha_img, 256, 256, false, 0) {
5sk_sp<SkImage> foo() {
6 int w = 240, h = 240;
7 SkScalar scale = 10.0f;
9 static const int8_t pts[] = {2, 2, 1, 3, 0, 3, 2, 1, 3, 1, 4, 0, 4, 1,
10 5, 1, 4, 2, 4, 3, 2, 5, 2, 4, 3, 3, 2, 3};
11 path.moveTo(2 * scale, 3 * scale);
12 for (size_t i = 0; i < sizeof(pts) / sizeof(pts[0]); i += 2) {
13 path.lineTo(pts[i] * scale, pts[i + 1] * scale);
14 }
15 path.close();
19 paint.setAntiAlias(true);
20 SkRect bounds{-4 * scale, -4 * scale, (float)w, (float)h};
21 SkBitmap bm;
23 SkCanvas c(bm);
24 c.clear(0);
26 return bm.asImage();
27}
28
29void draw(SkCanvas* canvas) {
30 auto a8img = foo();
32 paint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, 2.0f, 0));
33 paint.setColor(0xFF008000);
34 canvas->drawImage(a8img, 8, 8, SkSamplingOptions(), &paint);
35}
36} // END FIDDLE
@ kNormal_SkBlurStyle
fuzzy inside and outside
Definition: SkBlurTypes.h:12
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition: aaclip.cpp:27
REG_FIDDLE(blur_alpha_img, 256, 256, false, 0)
void allocPixels(const SkImageInfo &info, size_t rowBytes)
Definition: SkBitmap.cpp:258
sk_sp< SkImage > asImage() const
Definition: SkBitmap.cpp:645
void drawRect(const SkRect &rect, const SkPaint &paint)
Definition: SkCanvas.cpp:1673
void clear(SkColor color)
Definition: SkCanvas.h:1199
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
Definition: SkCanvas.h:1528
static sk_sp< SkMaskFilter > MakeBlur(SkBlurStyle style, SkScalar sigma, bool respectCTM=true)
static SkMatrix Scale(SkScalar sx, SkScalar sy)
Definition: SkMatrix.h:75
static sk_sp< SkPathEffect > Make(const SkMatrix &matrix, const SkPath &path)
Definition: SkPath.h:59
const Paint & paint
Definition: color_source.cc:38
float SkScalar
Definition: extension.cpp:12
unsigned useCenter Optional< SkMatrix > matrix
Definition: SkRecords.h:258
Optional< SkRect > bounds
Definition: SkRecords.h:189
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition: switches.h:57
SkSamplingOptions(SkFilterMode::kLinear))
SkScalar w
SkScalar h
const Scalar scale
static SkImageInfo MakeA8(int width, int height)