Glenn Watson 6e579c034e Bug 1749380 - Part 2 - Performance and quality fixes for part 1. r=gfx-reviewers,nical
* Add support for local scale factors to a surface, allowing it to
  be rasterized in root coordinate space. This allows snapping to
  work across surfaces where the surface transform is a fractional
  offset.

* Calculate scaling factors per rasterized surface and propagate
  them. Ensures correct scale factor calculations when dealing with
  nested preserve-3d contexts with 90-degree axis rotations.

* Support determining exact surface device rect for 2d surfaces
  with fractional surface transforms.

* Fix line decoration cache key size calculations based on world
  scaling factor.

* Remove `get_clipped_device_rect` usage for calculating clip-mask
  surface allocations, use `surface.get_surface_rect` instead. The
  prior method doesn't correctly account for expanded local regions
  from the current dirty rect, resulting in invalidation issues in
  some animated edge cases. Also unifies the way clip-mask surface
  allocations work with the way general render target surface
  allocations work.

Differential Revision: https://phabricator.services.mozilla.com/D138982
2022-02-23 20:49:27 +00:00
..