Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Image_makeWithFilter.cpp
Go to the documentation of this file.
1// Copyright 2019 Google LLC.
2// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
4// HASH=85a76163138a2720ac003691d6363938
5REG_FIDDLE(Image_makeWithFilter, 256, 256, false, 5) {
6void draw(SkCanvas* canvas) {
8 -10.0f * frame, 5.0f * frame, 3.0f, 3.0f, SK_ColorBLUE, nullptr);
9 sk_sp<SkImageFilter> offsetFilter = SkImageFilters::Offset(40, 40, shadowFilter, nullptr);
10 SkIRect subset = image->bounds();
11 SkIRect clipBounds = image->bounds();
12 clipBounds.outset(60, 60);
13 SkIRect outSubset;
15 sk_sp<SkImage> filtered;
16
17 if (auto rContext = canvas->recordingContext()) {
18 filtered = SkImages::MakeWithFilter(rContext, image, offsetFilter.get(),
19 subset, clipBounds, &outSubset, &offset);
20 } else {
21 filtered = SkImages::MakeWithFilter(image, offsetFilter.get(),
22 subset, clipBounds, &outSubset, &offset);
23 }
24
26 paint.setAntiAlias(true);
28 canvas->drawLine(0, 0, offset.fX, offset.fY, paint);
29 canvas->translate(offset.fX, offset.fY);
30 canvas->drawImage(filtered, 0, 0);
31 canvas->drawRect(SkRect::Make(outSubset), paint);
32}
33} // END FIDDLE
constexpr SkColor SK_ColorBLUE
Definition SkColor.h:135
static void draw(SkCanvas *canvas, SkRect &target, int x, int y)
Definition aaclip.cpp:27
void drawRect(const SkRect &rect, const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
virtual GrRecordingContext * recordingContext() const
void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint &paint)
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
Definition SkCanvas.h:1528
static sk_sp< SkImageFilter > DropShadow(SkScalar dx, SkScalar dy, SkScalar sigmaX, SkScalar sigmaY, SkColor color, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Offset(SkScalar dx, SkScalar dy, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
SkIRect bounds() const
Definition SkImage.h:303
@ kStroke_Style
set to stroke geometry
Definition SkPaint.h:194
T * get() const
Definition SkRefCnt.h:303
const Paint & paint
sk_sp< SkImage > image
Definition examples.cpp:29
double frame
Definition examples.cpp:31
#define REG_FIDDLE(NAME, W, H, TEXT, I)
Definition examples.h:60
SK_API sk_sp< SkImage > MakeWithFilter(sk_sp< SkImage > src, const SkImageFilter *filter, const SkIRect &subset, const SkIRect &clipBounds, SkIRect *outSubset, SkIPoint *offset)
Point offset
void outset(int32_t dx, int32_t dy)
Definition SkRect.h:428
static SkRect Make(const SkISize &size)
Definition SkRect.h:669