DownscalerInvalidRect Downscaler::TakeInvalidRect() { if (MOZ_UNLIKELY(!HasInvalidation())) { return DownscalerInvalidRect(); } DownscalerInvalidRect invalidRect; // Compute the target size invalid rect. if (mFlipVertically) { // We need to flip it. This will implicitly flip the original size invalid // rect, since we compute it by scaling this rect. invalidRect.mTargetSizeRect = IntRect(0, mTargetSize.height - mCurrentOutLine, mTargetSize.width, mCurrentOutLine - mPrevInvalidatedLine); } else { invalidRect.mTargetSizeRect = IntRect(0, mPrevInvalidatedLine, mTargetSize.width, mCurrentOutLine - mPrevInvalidatedLine); } mPrevInvalidatedLine = mCurrentOutLine; // Compute the original size invalid rect. invalidRect.mOriginalSizeRect = invalidRect.mTargetSizeRect; invalidRect.mOriginalSizeRect.ScaleRoundOut(mScale.width, mScale.height); return invalidRect; }
DownscalerInvalidRect Downscaler::TakeInvalidRect() { if (MOZ_UNLIKELY(!HasInvalidation())) { return DownscalerInvalidRect(); } DownscalerInvalidRect invalidRect; // Compute the target size invalid rect. invalidRect.mTargetSizeRect = nsIntRect(0, mPrevInvalidatedLine, mTargetSize.width, mCurrentOutLine - mPrevInvalidatedLine); mPrevInvalidatedLine = mCurrentOutLine; // Compute the original size invalid rect. invalidRect.mOriginalSizeRect = invalidRect.mTargetSizeRect; invalidRect.mOriginalSizeRect.ScaleRoundOut(mScale.width, mScale.height); return invalidRect; }