Bug 598736 - Use bilinear image scaling when NEON is available [r=jrmuizel]

This commit is contained in:
Matt Brubeck 2011-04-08 10:15:37 -07:00
Родитель cd1948f484
Коммит d4862ec52d
2 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -38,6 +38,7 @@
#include "gfxASurface.h"
#include "gfxContext.h"
#include "gfxPlatform.h"
#include "mozilla/arm.h"
#ifdef MOZ_X11
#include "cairo.h"
#include "gfxXlibSurface.h"
@ -173,7 +174,9 @@ gfxSurfaceDrawable::Draw(gfxContext* aContext,
surfaceType, currentTarget, filter);
}
#ifdef MOZ_GFX_OPTIMIZE_MOBILE
pattern->SetFilter(gfxPattern::FILTER_FAST);
if (!mozilla::supports_neon()) {
pattern->SetFilter(gfxPattern::FILTER_FAST);
}
#endif
pattern->SetMatrix(gfxMatrix(aTransform).Multiply(mTransform));
aContext->NewPath();

Просмотреть файл

@ -92,6 +92,7 @@
#include "nsCOMPtr.h"
#include "nsListControlFrame.h"
#include "ImageLayers.h"
#include "mozilla/arm.h"
#include "mozilla/dom/Element.h"
#include "nsCanvasFrame.h"
#include "gfxDrawable.h"
@ -3061,10 +3062,11 @@ nsLayoutUtils::GetClosestLayer(nsIFrame* aFrame)
GraphicsFilter
nsLayoutUtils::GetGraphicsFilterForFrame(nsIFrame* aForFrame)
{
#ifdef MOZ_GFX_OPTIMIZE_MOBILE
GraphicsFilter defaultFilter = gfxPattern::FILTER_NEAREST;
#else
GraphicsFilter defaultFilter = gfxPattern::FILTER_GOOD;
#ifdef MOZ_GFX_OPTIMIZE_MOBILE
if (!mozilla::supports_neon()) {
defaultFilter = gfxPattern::FILTER_NEAREST;
}
#endif
#ifdef MOZ_SVG
nsIFrame *frame = nsCSSRendering::IsCanvasFrame(aForFrame) ?