mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Bug 1301551 - Don't do anti-alias if 'imageSmoothingEnabled' is false. r=bas
This commit is contained in:
parent
048198ad45
commit
bb3e5efbec
@ -2991,10 +2991,13 @@ CanvasRenderingContext2D::FillRect(double aX, double aY, double aW,
|
||||
bounds = mTarget->GetTransform().TransformBounds(fillRect);
|
||||
}
|
||||
|
||||
AntialiasMode antialiasMode = CurrentState().imageSmoothingEnabled ?
|
||||
AntialiasMode::DEFAULT : AntialiasMode::NONE;
|
||||
|
||||
AdjustedTarget(this, bounds.IsEmpty() ? nullptr : &bounds)->
|
||||
FillRect(gfx::Rect(aX, aY, aW, aH),
|
||||
CanvasGeneralPattern().ForStyle(this, Style::FILL, mTarget),
|
||||
DrawOptions(state.globalAlpha, op));
|
||||
DrawOptions(state.globalAlpha, op, antialiasMode));
|
||||
|
||||
RedrawUser(gfxRect(aX, aY, aW, aH));
|
||||
}
|
||||
@ -4888,6 +4891,9 @@ CanvasRenderingContext2D::DrawImage(const CanvasImageSource& aImage,
|
||||
|
||||
if (!res.mSourceSurface) {
|
||||
res = nsLayoutUtils::SurfaceFromElement(element, sfeFlags, mTarget);
|
||||
if (res.mSourceSurface) {
|
||||
gfxUtils::WriteAsPNG(res.mSourceSurface, "/Volumes/firefoxos/Dev/mozilla-git/temp.png");
|
||||
}
|
||||
}
|
||||
|
||||
if (!res.mSourceSurface && !res.mDrawInfo.mImgContainer) {
|
||||
@ -4953,11 +4959,15 @@ CanvasRenderingContext2D::DrawImage(const CanvasImageSource& aImage,
|
||||
}
|
||||
|
||||
SamplingFilter samplingFilter;
|
||||
AntialiasMode antialiasMode;
|
||||
|
||||
if (CurrentState().imageSmoothingEnabled)
|
||||
if (CurrentState().imageSmoothingEnabled) {
|
||||
samplingFilter = gfx::SamplingFilter::LINEAR;
|
||||
else
|
||||
antialiasMode = AntialiasMode::DEFAULT;
|
||||
} else {
|
||||
samplingFilter = gfx::SamplingFilter::POINT;
|
||||
antialiasMode = AntialiasMode::NONE;
|
||||
}
|
||||
|
||||
gfx::Rect bounds;
|
||||
|
||||
@ -4980,8 +4990,8 @@ CanvasRenderingContext2D::DrawImage(const CanvasImageSource& aImage,
|
||||
DrawSurface(srcSurf,
|
||||
gfx::Rect(aDx, aDy, aDw, aDh),
|
||||
sourceRect,
|
||||
DrawSurfaceOptions(samplingFilter),
|
||||
DrawOptions(CurrentState().globalAlpha, UsedOperation()));
|
||||
DrawSurfaceOptions(samplingFilter, SamplingBounds::UNBOUNDED),
|
||||
DrawOptions(CurrentState().globalAlpha, UsedOperation(), antialiasMode));
|
||||
} else {
|
||||
DrawDirectlyToCanvas(drawInfo, &bounds,
|
||||
gfx::Rect(aDx, aDy, aDw, aDh),
|
||||
|
Loading…
Reference in New Issue
Block a user