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

Reland "Sequester all Skia<->DL interactions into the skia sub-module" #40114

Merged
merged 3 commits into from
Mar 7, 2023

Conversation

flar
Copy link
Contributor

@flar flar commented Mar 7, 2023

The original version of this PR (#40083) ran afoul of some customer tests due to confusion about the last parameter of drawImageRect. It used to use SkCanvas::SrcRectConstraint, but was switched to a bool during 40083 in order to remove the minor dependency on Skia types. Unfortunately, since the SKCanvas enums are base enums, they willfully implicitly cast back and forth with numeric types like "bool", so some call sites that were using the Sk values were not detected during testing. To make matters worse, bool(0) == false represents "don't enforce the src rect edges" whereas `SrcRectConstraint(0) == kStrict" which means "do enforce the edges".

The solution is to make the DlCanvas and DlOpReceiver versions of [dD]rawImageRect take a new DlCanvas::SrcRectConstraint which is a type-safe enum class. Lots of lines changed and call sites get more verbose, but the type safety is worth it in the long run.

@flar flar added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 7, 2023
@auto-submit auto-submit bot merged commit d034050 into flutter:main Mar 7, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 7, 2023
flar added a commit that referenced this pull request Mar 9, 2023
auto-submit bot pushed a commit that referenced this pull request Mar 9, 2023
…b-module" (#40114)" (#40161)

Revert "Reland "Sequester all Skia<->DL interactions into the skia sub-module""
CaseyHillers added a commit that referenced this pull request Mar 9, 2023
CaseyHillers pushed a commit to CaseyHillers/engine that referenced this pull request Mar 9, 2023
…b-module" (flutter#40114)" (flutter#40161)

Revert "Reland "Sequester all Skia<->DL interactions into the skia sub-module""
CaseyHillers pushed a commit that referenced this pull request Mar 9, 2023
…ia sub-module" (#40114)" (#40161) (#40187)

Revert "Reland "Sequester all Skia<->DL interactions into the skia sub-module""

Co-authored-by: Jim Graham <[email protected]>
@flar
Copy link
Contributor Author

flar commented Mar 10, 2023

Also, note performance regression related to gradients (likely due to data copying in the ToSk(gradient) code):
https://flutter-flutter-perf.skia.org/e/?begin=1677571681&end=1678478237&keys=X7adea47f12a68fe0a90611307934ee77&requestType=0&xbaroffset=33677

@flar
Copy link
Contributor Author

flar commented Mar 10, 2023

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
autosubmit Merge PR when tree becomes green via auto submit App
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants