gaaclarke d73fc34a73
[CP] all jittery glyph fixes (#163058)
This is a cherry-pick for all the changes that went into fixing https://github.com/flutter/flutter/issues/149652

It looks like a lot but most of it is testing and refactoring.

## PRs included
- https://github.com/flutter/flutter/pull/161625
- https://github.com/flutter/flutter/pull/162351
- https://github.com/flutter/flutter/pull/162415
- https://github.com/flutter/flutter/pull/162555
- https://github.com/flutter/flutter/pull/162824

## Impacted Users

All users of Impeller.

## Impact Description

Animating text with translations and scales can cause:
  - jitter between glyphs
  - jitter between glyphs and the baseline
  - artifacts when rendering glyphs at non integer scales

## Workaround

Use skia.

## Risk

Since this edits how text is rendered, the risk is pretty high.  The actual changes are small and there are unit tests for them.  Golden test coverage for cherry-picks is not complete and text rendering golden coverage for android is problematic.

## Test Coverage

Yes.

## Validation Steps

The reproduction code in https://github.com/flutter/flutter/issues/149652 is good.
2025-02-20 04:49:11 +00:00
..

Flutter Engine

gclient bootstrap

Flutter engine uses gclient to manage dependencies.

If you've already cloned the flutter repository:

  1. Copy one of the engine/scripts/*.gclient to the root folder as .gclient:
    1. Googlers: copy rbe.gclient to enable faster builds with RBE
    2. Everyone else: copy standard.gclient
  2. run gclient sync from the root folder