mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Backed out changeset c43fa1320372 (bug 1258510)
This commit is contained in:
parent
4ee5e3ab50
commit
96d9ab7d51
@ -51,7 +51,6 @@
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
using namespace mozilla::gfx;
|
||||
using namespace mozilla::image;
|
||||
|
||||
// ============================================================================
|
||||
// Utility functions
|
||||
@ -3200,8 +3199,7 @@ nsDisplaySVGText::Paint(nsDisplayListBuilder* aBuilder,
|
||||
|
||||
gfxContext* ctx = aCtx->ThebesContext();
|
||||
ctx->Save();
|
||||
DrawResult result = static_cast<SVGTextFrame*>(mFrame)->PaintSVG(*ctx, tm);
|
||||
nsDisplayItemGenericImageGeometry::UpdateDrawResult(this, result);
|
||||
static_cast<SVGTextFrame*>(mFrame)->PaintSVG(*ctx, tm);
|
||||
ctx->Restore();
|
||||
}
|
||||
|
||||
@ -3637,7 +3635,7 @@ ShouldPaintCaret(const TextRenderedRun& aThisRun, nsCaret* aCaret)
|
||||
return false;
|
||||
}
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
SVGTextFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect)
|
||||
@ -3646,7 +3644,7 @@ SVGTextFrame::PaintSVG(gfxContext& aContext,
|
||||
|
||||
nsIFrame* kid = PrincipalChildList().FirstChild();
|
||||
if (!kid)
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
|
||||
nsPresContext* presContext = PresContext();
|
||||
|
||||
@ -3659,7 +3657,7 @@ SVGTextFrame::PaintSVG(gfxContext& aContext,
|
||||
// dirty.
|
||||
if (presContext->PresShell()->InDrawWindowNotFlushing() &&
|
||||
NS_SUBTREE_DIRTY(this)) {
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
// Text frames inside <clipPath>, <mask>, etc. will never have had
|
||||
// ReflowSVG called on them, so call UpdateGlyphPositioning to do this now.
|
||||
@ -3668,12 +3666,12 @@ SVGTextFrame::PaintSVG(gfxContext& aContext,
|
||||
// If we are asked to paint before reflow has recomputed mPositions etc.
|
||||
// directly via PaintSVG, rather than via a display list, then we need
|
||||
// to bail out here too.
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (aTransform.IsSingular()) {
|
||||
NS_WARNING("Can't render text element!");
|
||||
return DrawResult::BAD_ARGS;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
gfxMatrix matrixForPaintServers = aTransform * initialMatrix;
|
||||
@ -3695,7 +3693,7 @@ SVGTextFrame::PaintSVG(gfxContext& aContext,
|
||||
nsRect canvasRect = nsLayoutUtils::RoundGfxRectToAppRect(
|
||||
GetCanvasTM().TransformBounds(frameRect), 1);
|
||||
if (!canvasRect.Intersects(dirtyRect)) {
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3782,7 +3780,7 @@ SVGTextFrame::PaintSVG(gfxContext& aContext,
|
||||
run = it.Next();
|
||||
}
|
||||
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -263,7 +263,6 @@ class SVGTextFrame final : public nsSVGDisplayContainerFrame
|
||||
typedef mozilla::gfx::Path Path;
|
||||
typedef mozilla::gfx::Point Point;
|
||||
typedef mozilla::SVGTextContextPaint SVGTextContextPaint;
|
||||
typedef mozilla::image::DrawResult DrawResult;
|
||||
|
||||
protected:
|
||||
explicit SVGTextFrame(nsStyleContext* aContext)
|
||||
@ -326,9 +325,9 @@ public:
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual void NotifySVGChanged(uint32_t aFlags) override;
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
|
||||
virtual void ReflowSVG() override;
|
||||
virtual nsRect GetCoveredRegion() override;
|
||||
|
@ -43,7 +43,6 @@ public:
|
||||
typedef mozilla::SVGAnimatedLengthList SVGAnimatedLengthList;
|
||||
typedef mozilla::SVGLengthList SVGLengthList;
|
||||
typedef mozilla::SVGUserUnitList SVGUserUnitList;
|
||||
typedef mozilla::image::DrawResult DrawResult;
|
||||
|
||||
NS_DECL_QUERYFRAME_TARGET(nsISVGChildFrame)
|
||||
|
||||
@ -74,9 +73,9 @@ public:
|
||||
* @param aDirtyRect The area being redrawn, in frame offset pixel
|
||||
* coordinates.
|
||||
*/
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) = 0;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) = 0;
|
||||
|
||||
/**
|
||||
* Returns the frame that should handle pointer events at aPoint. aPoint is
|
||||
|
@ -248,7 +248,7 @@ nsSVGDisplayContainerFrame::IsSVGTransformed(gfx::Matrix *aOwnTransform,
|
||||
//----------------------------------------------------------------------
|
||||
// nsISVGChildFrame methods
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGDisplayContainerFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect)
|
||||
@ -260,7 +260,7 @@ nsSVGDisplayContainerFrame::PaintSVG(gfxContext& aContext,
|
||||
"SVG should take this code path");
|
||||
|
||||
if (StyleEffects()->mOpacity == 0.0) {
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
gfxMatrix matrix = aTransform;
|
||||
@ -268,7 +268,7 @@ nsSVGDisplayContainerFrame::PaintSVG(gfxContext& aContext,
|
||||
matrix = static_cast<const nsSVGElement*>(GetContent())->
|
||||
PrependLocalTransformsTo(matrix, eChildToUserSpace);
|
||||
if (matrix.IsSingular()) {
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,7 +291,7 @@ nsSVGDisplayContainerFrame::PaintSVG(gfxContext& aContext,
|
||||
nsSVGUtils::PaintFrameWithEffects(kid, aContext, m, aDirtyRect);
|
||||
}
|
||||
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -140,9 +140,9 @@ public:
|
||||
Matrix *aFromParentTransform = nullptr) const override;
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect = nullptr) override;
|
||||
virtual nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
|
||||
virtual nsRect GetCoveredRegion() override;
|
||||
virtual void ReflowSVG() override;
|
||||
|
@ -198,7 +198,7 @@ nsSVGForeignObjectFrame::IsSVGTransformed(Matrix *aOwnTransform,
|
||||
return foundTransform;
|
||||
}
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGForeignObjectFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect)
|
||||
@ -209,15 +209,15 @@ nsSVGForeignObjectFrame::PaintSVG(gfxContext& aContext,
|
||||
"SVG should take this code path");
|
||||
|
||||
if (IsDisabled())
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
|
||||
nsIFrame* kid = PrincipalChildList().FirstChild();
|
||||
if (!kid)
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
|
||||
if (aTransform.IsSingular()) {
|
||||
NS_WARNING("Can't render foreignObject element!");
|
||||
return DrawResult::BAD_ARGS;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsRect kidDirtyRect = kid->GetVisualOverflowRect();
|
||||
@ -245,7 +245,7 @@ nsSVGForeignObjectFrame::PaintSVG(gfxContext& aContext,
|
||||
// int32_t appUnitsPerDevPx = PresContext()->AppUnitsPerDevPixel();
|
||||
// mRect.ToOutsidePixels(appUnitsPerDevPx).Intersects(*aDirtyRect)
|
||||
if (kidDirtyRect.IsEmpty())
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
aContext.Save();
|
||||
@ -276,16 +276,14 @@ nsSVGForeignObjectFrame::PaintSVG(gfxContext& aContext,
|
||||
flags |= PaintFrameFlags::PAINT_TO_WINDOW;
|
||||
}
|
||||
nsRenderingContext rendCtx(&aContext);
|
||||
nsLayoutUtils::PaintFrame(&rendCtx, kid, nsRegion(kidDirtyRect),
|
||||
NS_RGBA(0,0,0,0),
|
||||
nsDisplayListBuilderMode::PAINTING, flags);
|
||||
nsresult rv = nsLayoutUtils::PaintFrame(&rendCtx, kid, nsRegion(kidDirtyRect),
|
||||
NS_RGBA(0,0,0,0),
|
||||
nsDisplayListBuilderMode::PAINTING,
|
||||
flags);
|
||||
NS_RGBA(0,0,0,0),
|
||||
nsDisplayListBuilderMode::PAINTING,
|
||||
flags);
|
||||
|
||||
aContext.Restore();
|
||||
|
||||
return NS_FAILED(rv) ? DrawResult::BAD_ARGS : DrawResult::SUCCESS;
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -74,9 +74,9 @@ public:
|
||||
#endif
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
|
||||
virtual nsRect GetCoveredRegion() override;
|
||||
virtual void ReflowSVG() override;
|
||||
|
@ -26,7 +26,6 @@
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
using namespace mozilla::gfx;
|
||||
using namespace mozilla::image;
|
||||
|
||||
class nsSVGImageFrame;
|
||||
|
||||
@ -66,9 +65,9 @@ public:
|
||||
NS_DECL_FRAMEARENA_HELPERS
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
|
||||
virtual void ReflowSVG() override;
|
||||
|
||||
@ -325,13 +324,15 @@ nsSVGImageFrame::TransformContextForPainting(gfxContext* aGfxContext,
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// nsISVGChildFrame methods:
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGImageFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
if (!StyleVisibility()->IsVisible())
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
|
||||
float x, y, width, height;
|
||||
SVGImageElement *imgElem = static_cast<SVGImageElement*>(mContent);
|
||||
@ -350,7 +351,6 @@ nsSVGImageFrame::PaintSVG(gfxContext& aContext,
|
||||
currentRequest->GetImage(getter_AddRefs(mImageContainer));
|
||||
}
|
||||
|
||||
DrawResult result = DrawResult::SUCCESS;
|
||||
if (mImageContainer) {
|
||||
gfxContextAutoSaveRestore autoRestorer(&aContext);
|
||||
|
||||
@ -361,7 +361,7 @@ nsSVGImageFrame::PaintSVG(gfxContext& aContext,
|
||||
}
|
||||
|
||||
if (!TransformContextForPainting(&aContext, aTransform)) {
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// fill-opacity doesn't affect <image>, so if we're allowed to
|
||||
@ -417,7 +417,8 @@ nsSVGImageFrame::PaintSVG(gfxContext& aContext,
|
||||
// Note: Can't use DrawSingleUnscaledImage for the TYPE_VECTOR case.
|
||||
// That method needs our image to have a fixed native width & height,
|
||||
// and that's not always true for TYPE_VECTOR images.
|
||||
result = nsLayoutUtils::DrawSingleImage(
|
||||
// FIXME We should use the return value, see bug 1258510.
|
||||
Unused << nsLayoutUtils::DrawSingleImage(
|
||||
aContext,
|
||||
PresContext(),
|
||||
mImageContainer,
|
||||
@ -427,7 +428,8 @@ nsSVGImageFrame::PaintSVG(gfxContext& aContext,
|
||||
&context,
|
||||
drawFlags);
|
||||
} else { // mImageContainer->GetType() == TYPE_RASTER
|
||||
result = nsLayoutUtils::DrawSingleUnscaledImage(
|
||||
// FIXME We should use the return value, see bug 1258510.
|
||||
Unused << nsLayoutUtils::DrawSingleUnscaledImage(
|
||||
aContext,
|
||||
PresContext(),
|
||||
mImageContainer,
|
||||
@ -443,7 +445,7 @@ nsSVGImageFrame::PaintSVG(gfxContext& aContext,
|
||||
// gfxContextAutoSaveRestore goes out of scope & cleans up our gfxContext
|
||||
}
|
||||
|
||||
return result;
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -18,7 +18,6 @@
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
using namespace mozilla::gfx;
|
||||
using namespace mozilla::image;
|
||||
|
||||
nsIFrame*
|
||||
NS_NewSVGInnerSVGFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
|
||||
@ -58,7 +57,7 @@ nsSVGInnerSVGFrame::GetType() const
|
||||
//----------------------------------------------------------------------
|
||||
// nsISVGChildFrame methods
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGInnerSVGFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect)
|
||||
@ -76,7 +75,7 @@ nsSVGInnerSVGFrame::PaintSVG(gfxContext& aContext,
|
||||
GetAnimatedLengthValues(&x, &y, &width, &height, nullptr);
|
||||
|
||||
if (width <= 0 || height <= 0) {
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
autoSR.SetContext(&aContext);
|
||||
|
@ -52,9 +52,9 @@ public:
|
||||
int32_t aModType) override;
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect *aDirtyRect = nullptr) override;
|
||||
virtual nsRect GetCoveredRegion() override;
|
||||
virtual void ReflowSVG() override;
|
||||
virtual void NotifySVGChanged(uint32_t aFlags) override;
|
||||
|
@ -823,7 +823,7 @@ nsSVGOuterSVGFrame::NotifyViewportOrTransformChanged(uint32_t aFlags)
|
||||
//----------------------------------------------------------------------
|
||||
// nsISVGChildFrame methods:
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGOuterSVGFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect)
|
||||
|
@ -114,9 +114,9 @@ public:
|
||||
virtual void NotifyViewportOrTransformChanged(uint32_t aFlags) override;
|
||||
|
||||
// nsISVGChildFrame methods:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual SVGBBox GetBBoxContribution(const Matrix &aToBBoxUserspace,
|
||||
uint32_t aFlags) override;
|
||||
|
||||
|
@ -31,7 +31,6 @@
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::gfx;
|
||||
using namespace mozilla::image;
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Implementation
|
||||
@ -112,10 +111,7 @@ nsDisplaySVGPathGeometry::Paint(nsDisplayListBuilder* aBuilder,
|
||||
|
||||
gfxMatrix tm = nsSVGIntegrationUtils::GetCSSPxToDevPxMatrix(mFrame) *
|
||||
gfxMatrix::Translation(devPixelOffset);
|
||||
DrawResult result =
|
||||
static_cast<nsSVGPathGeometryFrame*>(mFrame)->PaintSVG(*aCtx->ThebesContext(), tm);
|
||||
|
||||
nsDisplayItemGenericImageGeometry::UpdateDrawResult(this, result);
|
||||
static_cast<nsSVGPathGeometryFrame*>(mFrame)->PaintSVG(*aCtx->ThebesContext(), tm);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
@ -246,19 +242,19 @@ nsSVGPathGeometryFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
||||
//----------------------------------------------------------------------
|
||||
// nsISVGChildFrame methods
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGPathGeometryFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect)
|
||||
{
|
||||
if (!StyleVisibility()->IsVisible())
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
|
||||
// Matrix to the geometry's user space:
|
||||
gfxMatrix newMatrix =
|
||||
aContext.CurrentMatrix().PreMultiply(aTransform).NudgeToIntegers();
|
||||
if (newMatrix.IsSingular()) {
|
||||
return DrawResult::BAD_ARGS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
uint32_t paintOrder = StyleSVG()->mPaintOrder;
|
||||
@ -284,7 +280,7 @@ nsSVGPathGeometryFrame::PaintSVG(gfxContext& aContext,
|
||||
}
|
||||
}
|
||||
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -95,9 +95,9 @@ public:
|
||||
gfxMatrix GetCanvasTM();
|
||||
protected:
|
||||
// nsISVGChildFrame interface:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
|
||||
virtual nsRect GetCoveredRegion() override;
|
||||
virtual void ReflowSVG() override;
|
||||
|
@ -48,9 +48,9 @@ public:
|
||||
const nsDisplayListSet& aLists) override;
|
||||
|
||||
// nsISVGChildFrame interface:
|
||||
virtual DrawResult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
virtual nsresult PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect = nullptr) override;
|
||||
nsIFrame* GetFrameForPoint(const gfxPoint& aPoint) override;
|
||||
nsRect GetCoveredRegion() override;
|
||||
virtual void ReflowSVG() override;
|
||||
@ -102,7 +102,7 @@ nsSVGSwitchFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
||||
}
|
||||
}
|
||||
|
||||
DrawResult
|
||||
nsresult
|
||||
nsSVGSwitchFrame::PaintSVG(gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
const nsIntRect* aDirtyRect)
|
||||
@ -113,7 +113,7 @@ nsSVGSwitchFrame::PaintSVG(gfxContext& aContext,
|
||||
"SVG should take this code path");
|
||||
|
||||
if (StyleEffects()->mOpacity == 0.0)
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
|
||||
nsIFrame *kid = GetActiveChildFrame();
|
||||
if (kid) {
|
||||
@ -124,7 +124,7 @@ nsSVGSwitchFrame::PaintSVG(gfxContext& aContext,
|
||||
}
|
||||
nsSVGUtils::PaintFrameWithEffects(kid, aContext, tm, aDirtyRect);
|
||||
}
|
||||
return DrawResult::SUCCESS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -486,7 +486,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
DrawResult
|
||||
void
|
||||
nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
@ -500,16 +500,16 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
|
||||
nsISVGChildFrame *svgChildFrame = do_QueryFrame(aFrame);
|
||||
if (!svgChildFrame)
|
||||
return DrawResult::BAD_ARGS;
|
||||
return;
|
||||
|
||||
float opacity = aFrame->StyleEffects()->mOpacity;
|
||||
if (opacity == 0.0f)
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
|
||||
const nsIContent* content = aFrame->GetContent();
|
||||
if (content->IsSVGElement() &&
|
||||
!static_cast<const nsSVGElement*>(content)->HasValidDimensions()) {
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Properties are added lazily and may have been removed by a restyle,
|
||||
@ -541,7 +541,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
HasChildrenOnlyTransform(&childrenOnlyTM)) {
|
||||
// Undo the children-only transform:
|
||||
if (!childrenOnlyTM.Invert()) {
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
}
|
||||
tm = ThebesMatrix(childrenOnlyTM) * tm;
|
||||
}
|
||||
@ -550,7 +550,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
tm, aFrame->PresContext()).
|
||||
ToOutsidePixels(appUnitsPerDevPx);
|
||||
if (!aDirtyRect->Intersects(bounds)) {
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -583,7 +583,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
|
||||
if (!isOK) {
|
||||
// Some resource is invalid. We shouldn't paint anything.
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
}
|
||||
|
||||
// These are used if we require a temporary surface for a custom blend mode.
|
||||
@ -604,7 +604,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
|
||||
if (maskFrame && !maskSurface) {
|
||||
// Entire surface is clipped out.
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
}
|
||||
|
||||
aContext.Save();
|
||||
@ -642,7 +642,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
target = gfxContext::CreateOrNull(targetDT);
|
||||
if (!target) {
|
||||
gfxDevCrash(LogReason::InvalidContext) << "SVGPaintWithEffects context problem " << gfx::hexa(targetDT);
|
||||
return DrawResult::TEMPORARY_ERROR;
|
||||
return;
|
||||
}
|
||||
target->SetMatrix(aContext.CurrentMatrix() * gfxMatrix::Translation(-drawRect.TopLeft()));
|
||||
targetOffset = drawRect.TopLeft();
|
||||
@ -672,8 +672,6 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
clipPathFrame->ApplyClipPath(aContext, aFrame, aTransform);
|
||||
}
|
||||
|
||||
DrawResult result = DrawResult::SUCCESS;
|
||||
|
||||
/* Paint the child */
|
||||
if (effectProperties.HasValidFilter()) {
|
||||
nsRegion* dirtyRegion = nullptr;
|
||||
@ -683,7 +681,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
// it in frame space.
|
||||
gfxMatrix userToDeviceSpace = GetUserToCanvasTM(aFrame);
|
||||
if (userToDeviceSpace.IsSingular()) {
|
||||
return DrawResult::SUCCESS;
|
||||
return;
|
||||
}
|
||||
gfxMatrix deviceToUserSpace = userToDeviceSpace;
|
||||
deviceToUserSpace.Invert();
|
||||
@ -701,7 +699,7 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
aTransform, &paintCallback,
|
||||
dirtyRegion);
|
||||
} else {
|
||||
result = svgChildFrame->PaintSVG(*target, aTransform, aDirtyRect);
|
||||
svgChildFrame->PaintSVG(*target, aTransform, aDirtyRect);
|
||||
}
|
||||
|
||||
if (clipPathFrame && isTrivialClip) {
|
||||
@ -710,8 +708,8 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
|
||||
/* No more effects, we're done. */
|
||||
if (!complexEffects)
|
||||
return result;
|
||||
|
||||
return;
|
||||
|
||||
if (opacity != 1.0f || maskFrame || (clipPathFrame && !isTrivialClip)) {
|
||||
target->PopGroupAndBlend();
|
||||
}
|
||||
@ -728,7 +726,6 @@ nsSVGUtils::PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
}
|
||||
|
||||
aContext.Restore();
|
||||
return result;
|
||||
}
|
||||
|
||||
bool
|
||||
@ -1788,8 +1785,8 @@ nsSVGUtils::PaintSVGGlyph(Element* aElement, gfxContext* aContext,
|
||||
m = static_cast<nsSVGElement*>(frame->GetContent())->
|
||||
PrependLocalTransformsTo(gfxMatrix(), eUserSpaceToParent);
|
||||
}
|
||||
DrawResult result = svgFrame->PaintSVG(*aContext, m);
|
||||
return (result == DrawResult::SUCCESS);
|
||||
nsresult rv = svgFrame->PaintSVG(*aContext, m);
|
||||
return NS_SUCCEEDED(rv);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -185,7 +185,6 @@ public:
|
||||
typedef mozilla::gfx::GeneralPattern GeneralPattern;
|
||||
typedef mozilla::gfx::Size Size;
|
||||
typedef mozilla::SVGTextContextPaint SVGTextContextPaint;
|
||||
typedef mozilla::image::DrawResult DrawResult;
|
||||
|
||||
static void Init();
|
||||
|
||||
@ -283,7 +282,7 @@ public:
|
||||
|
||||
/* Paint SVG frame with SVG effects - aDirtyRect is the area being
|
||||
* redrawn, in device pixel coordinates relative to the outer svg */
|
||||
static DrawResult
|
||||
static void
|
||||
PaintFrameWithEffects(nsIFrame *aFrame,
|
||||
gfxContext& aContext,
|
||||
const gfxMatrix& aTransform,
|
||||
|
Loading…
Reference in New Issue
Block a user