230 {
232
235
238 true);
240
241
242
248 canvas->
drawImage(fSrc, 0, 0, sampling, &blenderPaint);
250
252
253
258 nullptr,
260 canvas->
drawImage(fDst, 0, 0, sampling, &imageFilterPaint);
261
263
264
267 shaderBlendPaint.
setShader(SkShaders::Blend(blender, fDstShader, fSrcShader));
268 canvas->
drawRect(rect, shaderBlendPaint);
269
271
272
277 canvas->
drawRect(rect, runtimePaint);
278 }
static sk_sp< SkBlender > Arithmetic(float k1, float k2, float k3, float k4, bool enforcePremul)
int saveLayer(const SkRect *bounds, const SkPaint *paint)
void drawRect(const SkRect &rect, const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
static sk_sp< SkImageFilter > Image(sk_sp< SkImage > image, const SkRect &srcRect, const SkRect &dstRect, const SkSamplingOptions &sampling)
static sk_sp< SkImageFilter > Blend(SkBlendMode mode, sk_sp< SkImageFilter > background, sk_sp< SkImageFilter > foreground=nullptr, const CropRect &cropRect={})
void setImageFilter(sk_sp< SkImageFilter > imageFilter)
void setShader(sk_sp< SkShader > shader)
void setBlender(sk_sp< SkBlender > blender)
sk_sp< SkShader > makeShader(sk_sp< const SkData > uniforms, sk_sp< SkShader > children[], size_t childCount, const SkMatrix *localMatrix=nullptr) const
sk_sp< SkBlender > blender SkRect rect
SkSamplingOptions sampling
static constexpr SkRect MakeWH(float w, float h)