[BREAKING CHANGE] Default clipBehavior of ClipRect to hardEdge

21 views
Skip to first unread message

Gary Qian

unread,
Sep 11, 2018, 5:40:26 PM9/11/18
to flutt...@googlegroups.com

Breaking change proposal: Default clipBehavior of ClipRect to hardEdge

Using antiAlias as default is now slow since flutter/engine#6199 enables AA.

Background:
Previously, the engine did not properly pass the AA flag on ClipRect.clipBehavior. flutter/engine#6199 fixes this and enables AA. However, default AA on clipRects has caused severe regressions in benchmark performance.

To maintain expected performance, we should now default the clipBehavior to hardEdge to disable default AA. This is consistent with any flutter projects that did not previously explicitly set the clipBehavior and should not change app appearance.

Migration:

  • If you left clipBehavior as default: Nothing!
  • If you explicitly set clipBehavior as hardEdge: Nothing!
  • If you explicitly set clipBehavior as antiAlias or antiAliasWithSaveLayer: Your application will now actually perform the specified AA. It is up to you to decide if the performance is worth the visual improvement.
  • If you left clipBehavior as default and expected AA: explicitly set clipBehavior to Clip.antiAlias and verify that the performance is acceptable to your application.

For the most part, there should be minimal if any need to migrate code, but I will be glad to assist anyone to achieve the expected clipping behavior.

Summary:
clipBehavior is now properly respected instead of always hardEdge. Any expectation of anti-aliasing should be re-evaluated in regards to performance.

Issue: #21702

PR: flutter/flutter/pull/21703

Reply all
Reply to author
Forward
0 new messages