More optimizations for CropToRect, for axis-aligned quads that have not been inverted
More optimizations for CropToRect, for axis-aligned quads that have not been inverted

Prior to CropToRect(), GrRTC::crop_filled_rect only operated on SkRects. The
quad cropping code generalized the optimization to any axis-aligned quad, but
a consequence of this is the code had to be robust to flips and 90 degree
rotations. While it can handle more cases, it has lead to a 1-10% performance
regression on cropped-rectangle-heavy perf tests in chromium.

This change brings back the simplest cropping solution when the axis-aligned
quads have not been flipped/rotated, but the general version still exists for
the other class of quads as well.

Bug: chromium:980608
Change-Id: I83d71075cacc3d849fd9aac6436ea3244a0ae4b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225724
Commit-Queue: Brian Salomon <61fabaaf0876044aeedfd8e351e485c028d69e7b@google.com>
Auto-Submit: Michael Ludwig <cb1f3dd24de0f0b611b26bc28bec758a551d9b7d@google.com>
Reviewed-by: Brian Salomon <61fabaaf0876044aeedfd8e351e485c028d69e7b@google.com>

google/skia,google/skia,google/skia,aosp-mirror/platform_external_skia,HalCanary/skia-hc,aosp-mirror/platform_external_skia,google/skia,aosp-mirror/platform_external_skia,google/skia,HalCanary/skia-hc,HalCanary/skia-hc,aosp-mirror/platform_external_skia,HalCanary/skia-hc,aosp-mirror/platform_external_skia,HalCanary/skia-hc,google/skia,HalCanary/skia-hc,aosp-mirror/platform_external_skia,google/skia,HalCanary/skia-hc,aosp-mirror/platform_external_skia,google/skia,google/skia,HalCanary/skia-hc,google/skia,HalCanary/skia-hc,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,HalCanary/skia-hc