Priority: P2: Important
Affects Version/s: 6.2, 6.3
Fix Version/s: None
Component/s: GUI: Painting
QRasterPaintEngine::drawImage() checks a number of factors to compute "exceedsPrecision", a flag to decide whether it can use the faster scale/transform functions. However, it will sometimes get it wrong, ref. the linked bug(s).
The decision logic seems to be a bit ad hoc; it is not clear what the actual limits of the underlying fast functions are. Also:
- The dimensions of "r" are checked, but not "sr" (source rect), even that is also passed
- The amount of scaling in s->matrix is checked, but not the implicit scaling from the target rect having a different size than the source
- Not clear if the same limits should apply to simple scaling as to more general transform
- upscaling is limited, but not downscaling.