5#include "flutter/display_list/effects/dl_image_filter.h"
24 if (!
matrix.isScaleTranslate()) {
33 return std::make_shared<DlLocalMatrixImageFilter>(
matrix,
shared());
37 SkRect& output_bounds)
const {
38 SkRect cur_bounds = input_bounds;
39 SkRect* ret = &output_bounds;
41 output_bounds = input_bounds;
43 if (!inner_->map_local_bounds(cur_bounds, output_bounds)) {
46 cur_bounds = output_bounds;
49 if (!outer_->map_local_bounds(cur_bounds, output_bounds)) {
59 SkIRect cur_bounds = input_bounds;
62 output_bounds = input_bounds;
64 if (!inner_->map_device_bounds(cur_bounds, ctm, output_bounds)) {
67 cur_bounds = output_bounds;
70 if (!outer_->map_device_bounds(cur_bounds, ctm, output_bounds)) {
81 SkIRect cur_bounds = output_bounds;
84 input_bounds = output_bounds;
86 if (!outer_->get_input_device_bounds(cur_bounds, ctm, input_bounds)) {
89 cur_bounds = input_bounds;
92 if (!inner_->get_input_device_bounds(cur_bounds, ctm, input_bounds)) {
virtual std::shared_ptr< DlImageFilter > shared() const=0
SkIRect * get_input_device_bounds(const SkIRect &output_bounds, const SkMatrix &ctm, SkIRect &input_bounds) const override
SkRect * map_local_bounds(const SkRect &input_bounds, SkRect &output_bounds) const override
SkIRect * map_device_bounds(const SkIRect &input_bounds, const SkMatrix &ctm, SkIRect &output_bounds) const override
virtual MatrixCapability matrix_capability() const
virtual std::shared_ptr< DlImageFilter > makeWithLocalMatrix(const SkMatrix &matrix) const
unsigned useCenter Optional< SkMatrix > matrix