From 890fc2ed6c2f16fefe746f4e9fb7262c489d523c Mon Sep 17 00:00:00 2001 From: Daniel Holbert Date: Mon, 11 Oct 2010 13:08:07 -0700 Subject: [PATCH] Bug 598798 patch 4: Remove hard-coded GraphicsFilter from nsLayoutUtils::DrawSingleUnscaledImage, and make its dirty-rect argument optional. r=roc a=blocking-betaN --- layout/base/nsLayoutUtils.cpp | 8 +++++--- layout/base/nsLayoutUtils.h | 6 ++++-- layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp | 6 ++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp index 40ae2b9cd1b8..445ab28e27b5 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -3117,8 +3117,9 @@ nsLayoutUtils::DrawPixelSnapped(nsIRenderingContext* aRenderingContext, /* static */ nsresult nsLayoutUtils::DrawSingleUnscaledImage(nsIRenderingContext* aRenderingContext, imgIContainer* aImage, + GraphicsFilter aGraphicsFilter, const nsPoint& aDest, - const nsRect& aDirty, + const nsRect* aDirty, PRUint32 aImageFlags, const nsRect* aSourceArea) { @@ -3144,8 +3145,9 @@ nsLayoutUtils::DrawSingleUnscaledImage(nsIRenderingContext* aRenderingContext, // outside the image bounds, we want to honor the aSourceArea-to-aDest // translation but we don't want to actually tile the image. fill.IntersectRect(fill, dest); - return DrawImageInternal(aRenderingContext, aImage, gfxPattern::FILTER_NEAREST, - dest, fill, aDest, aDirty, imageSize, aImageFlags); + return DrawImageInternal(aRenderingContext, aImage, aGraphicsFilter, + dest, fill, aDest, aDirty ? *aDirty : dest, + imageSize, aImageFlags); } /* static */ nsresult diff --git a/layout/base/nsLayoutUtils.h b/layout/base/nsLayoutUtils.h index 938e92632332..642d51be37ec 100644 --- a/layout/base/nsLayoutUtils.h +++ b/layout/base/nsLayoutUtils.h @@ -996,7 +996,8 @@ public: * app units. * @param aImage The image. * @param aDest The top-left where the image should be drawn - * @param aDirty Pixels outside this area may be skipped. + * @param aDirty If non-null, then pixels outside this area may + * be skipped. * @param aImageFlags Image flags of the imgIContainer::FLAG_* variety * @param aSourceArea If non-null, this area is extracted from * the image and drawn at aDest. It's @@ -1005,8 +1006,9 @@ public: */ static nsresult DrawSingleUnscaledImage(nsIRenderingContext* aRenderingContext, imgIContainer* aImage, + GraphicsFilter aGraphicsFilter, const nsPoint& aDest, - const nsRect& aDirty, + const nsRect* aDirty, PRUint32 aImageFlags, const nsRect* aSourceArea = nsnull); diff --git a/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp b/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp index 7fb29e8cd27d..031f331f1e71 100644 --- a/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp +++ b/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp @@ -3385,7 +3385,8 @@ nsTreeBodyFrame::PaintTwisty(PRInt32 aRowIndex, // Paint the image. nsLayoutUtils::DrawSingleUnscaledImage(&aRenderingContext, image, - pt, aDirtyRect, imgIContainer::FLAG_NONE, &imageSize); + gfxPattern::FILTER_NEAREST, pt, &aDirtyRect, + imgIContainer::FLAG_NONE, &imageSize); } } } @@ -3693,7 +3694,8 @@ nsTreeBodyFrame::PaintCheckbox(PRInt32 aRowIndex, // Paint the image. nsLayoutUtils::DrawSingleUnscaledImage(&aRenderingContext, image, - pt, aDirtyRect, imgIContainer::FLAG_NONE, &imageSize); + gfxPattern::FILTER_NEAREST, pt, &aDirtyRect, + imgIContainer::FLAG_NONE, &imageSize); } }