This repository was archived by the owner on Feb 25, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +13
-2
lines changed
Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -83,8 +83,14 @@ void ImageFilter::initColorFilter(ColorFilter* colorFilter) {
8383
8484void ImageFilter::initComposeFilter (ImageFilter* outer, ImageFilter* inner) {
8585 FML_DCHECK (outer && inner);
86- filter_ = std::make_shared<DlComposeImageFilter>(outer->dl_filter (),
87- inner->dl_filter ());
86+ if (!outer->dl_filter ()) {
87+ filter_ = inner->filter ();
88+ } else if (!inner->dl_filter ()) {
89+ filter_ = outer->filter ();
90+ } else {
91+ filter_ = std::make_shared<DlComposeImageFilter>(outer->dl_filter (),
92+ inner->dl_filter ());
93+ }
8894}
8995
9096} // namespace flutter
Original file line number Diff line number Diff line change @@ -113,6 +113,11 @@ void testNoCrashes() {
113113
114114 // Regression test for https://github.com/flutter/flutter/issues/115143
115115 testCanvas ((Canvas canvas) => canvas.drawPaint (Paint ()..imageFilter = const ColorFilter .mode (Color (0x00000000 ), BlendMode .xor)));
116+
117+ // Regression test for https://github.com/flutter/flutter/issues/120278
118+ testCanvas ((Canvas canvas) => canvas.drawPaint (Paint ()..imageFilter = ImageFilter .compose (
119+ outer: ImageFilter .matrix (Matrix4 .identity ().storage),
120+ inner: ImageFilter .blur ())));
116121 });
117122}
118123
You can’t perform that action at this time.
0 commit comments