Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit cba8990

Browse files
authored
Adding support for image filtering in CanvasKit backend. (#19035)
1 parent 1c35046 commit cba8990

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

lib/web_ui/lib/src/engine/compositor/painting.dart

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,31 @@ class SkPaint extends SkiaObject implements ui.Paint {
190190

191191
ui.MaskFilter _maskFilter;
192192

193-
// TODO(yjbanov): implement
194193
@override
195194
ui.FilterQuality get filterQuality => _filterQuality;
196195
@override
197196
set filterQuality(ui.FilterQuality value) {
198197
_filterQuality = value;
198+
_syncFilterQuality(skiaObject);
199+
}
200+
201+
void _syncFilterQuality(js.JsObject object) {
202+
js.JsObject skFilterQuality;
203+
switch (_filterQuality) {
204+
case ui.FilterQuality.none:
205+
skFilterQuality = canvasKit['FilterQuality']['None'];
206+
break;
207+
case ui.FilterQuality.low:
208+
skFilterQuality = canvasKit['FilterQuality']['Low'];
209+
break;
210+
case ui.FilterQuality.medium:
211+
skFilterQuality = canvasKit['FilterQuality']['Medium'];
212+
break;
213+
case ui.FilterQuality.high:
214+
skFilterQuality = canvasKit['FilterQuality']['High'];
215+
break;
216+
}
217+
object.callMethod('setFilterQuality', <js.JsObject>[skFilterQuality]);
199218
}
200219

201220
ui.FilterQuality _filterQuality = ui.FilterQuality.none;
@@ -268,6 +287,7 @@ class SkPaint extends SkiaObject implements ui.Paint {
268287
_syncMaskFilter(obj);
269288
_syncColorFilter(obj);
270289
_syncImageFilter(obj);
290+
_syncFilterQuality(obj);
271291
return obj;
272292
}
273293
}

0 commit comments

Comments
 (0)