[skif] Use optionals to track unbounded input/output bounds
Instead of using SkRectPriv::MakeILarge() throughout, infinite output
is tracked explicitly as an empty optional. This should help avoid
cases where image filters inadvertently overflow calculations on a
child that reported infinite output and they should instead simply
continue propagating infinite output as well.
This also updates the handling of contentBounds to use the same
mechanism. There are other issues with content bounds propagation
that will be handled in another CL, but this needs to come first.
Currently we treat the desiredOutput as the content bounds when it's
unknown, which is incorrect. But using SkRectPriv::MakeILarge() leads
to overflow issues. Cleaning up the rest of the content propagation
logic will be possible on top of this change.
Bug: b/40040615
Bug: b/40040586
Change-Id: I42ace02930f4700d854c675a7ba622873709aad4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/757217
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
26 files changed