tree b0e42d6a9588fc8932e3b9ed5656c322f867516d
parent 35489638f9aff043cac4ec81372d15a1eef3bcae
author gaaclarke <30870216+gaaclarke@users.noreply.github.com> 1743177490 -0700
committer GitHub <noreply@github.com> 1743177490 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJn5scSCRC1aQ7uu5UhlAAAuA0QAEHoCYZ5h099hyZ1wXmo6ewa
 tDREIoIJpGm49wTWaUu6QTK31auKWzZN/fdmV6Z/hZHevfD4c8RhL+M+4+/huOu2
 LR7LVG/ZHQY0MgEGjHBjTGPZZzUxDHzcm58ZxHeRXzzMf9Ka08vlCkcN5vwPBrOF
 OSGHOgb3UgHGs0A8ctxfAZ3YrtSeNgFHSX4Y91dsQedKUiJH1BBgLkrITC8fdjyV
 EGy9ZUt4Aul9DAH491NazGqb/40qT/pbj/Rvi5ZF/KxbEurELPI9G8l2+sKqo0ac
 NPuJKVKYWJHFr8i5qenafa1G6vP1idA4ENsewaPclui20aBgxtBm9kZPiVY9fyJJ
 BG4FRm7tv4+I6Us41hzO9puW4jAQp4s7w/5oXEYDh6vIixibq8XH+XqfQDkTCLti
 eBqFWkVtXZrYYDsgKUt3/vZfAggd370w6khRRbw21Pt9JPu3T0qnQU2kvkhI7v9h
 gvglq0cacgD/Y019Za+U/nnhQnNrB5xS38VQUHqM4rUo/nZMZwcgQ2FvSeBpntPG
 IPh7/fy17Ur1aT6EiOJYXdaOtTPBjj2T6jgVZNSuxIHp/LS1WWtnvtH5zk3lKK70
 SQ5MQmTobfVEDVp2yoeaiTZxSckZAhedL1+pk+xpp1kVP88DIxc5gY2bW/4fVyn8
 BLyMUkUuzwH6hk2hiGK8
 =CN5L
 -----END PGP SIGNATURE-----
 

[stable] Removes assumption that basis scalar and rounded_scalar match (#165428)

## Impacted Users
Impeller, all platforms

## Impact Description
Text that is scaled over 48x will render at the incorrect size and position

## Workaround
Change the font size instead of using a scale, but this isn't always clear from the framework usage.

## Risk
If it is wrong, text will be rendered incorrectly.

## Test Coverage
A golden test was written but they aren't automatically executed on release branches.

## Validation Steps
https://github.com/flutter/flutter/issues/165130 has reproduction code