Dan Field 6c1b2e158b [Impeller] Fix text scaling issues again, this time with perspective when a save layer is involved (flutter/engine#43695)
Alternative to https://github.com/flutter/engine/pull/43662

Records the basis vector of the current CTM into text contents and reuses that rather than trying to get it again at render time. That method breaks if perspective is involved in the CTM and a subpass gets translated, which can modify the scale (and rotation) of the matrix.

We're definitely not doing things quite right with perspective here, but the real fix to that is to either record the fully transformed glyph into the atlas or to use SDF/path based rendering.

Fixes https://github.com/flutter/flutter/issues/130476

I still have some concerns about how `EntityPass::Render` is a mix of mutations and constness but we can try to address that independently. 

I expect this to re-improve the regression noted in https://github.com/flutter/flutter/issues/130594
2023-07-14 22:41:02 +00:00
..