Bug 1325320 - change SVGGeometryElement::GetOrBuildPath to take DrawTarget as a pointer since all its callers have drawTarget as a pointer themselves.

This is consistent with most other methods that take a drawTarget parameter r=dholbert

--HG--
extra : amend_source : 77aa7f7d9cb19f9aa08014fff3b209dc151b75f3
This commit is contained in:
Robert Longson 2018-03-09 07:36:13 +00:00
Родитель 9cfc993eff
Коммит 81b5779eda
4 изменённых файлов: 12 добавлений и 12 удалений

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

@ -98,11 +98,11 @@ SVGGeometryElement::GetMarkPoints(nsTArray<nsSVGMark> *aMarks)
}
already_AddRefed<Path>
SVGGeometryElement::GetOrBuildPath(const DrawTarget& aDrawTarget,
SVGGeometryElement::GetOrBuildPath(const DrawTarget* aDrawTarget,
FillRule aFillRule)
{
// We only cache the path if it matches the backend used for screen painting:
bool cacheable = aDrawTarget.GetBackendType() ==
bool cacheable = aDrawTarget->GetBackendType() ==
gfxPlatform::GetPlatform()->GetDefaultContentBackend();
// Checking for and returning mCachedPath before checking the pref means
@ -110,11 +110,11 @@ SVGGeometryElement::GetOrBuildPath(const DrawTarget& aDrawTarget,
// chrome). The benefit is that we avoid causing a CPU memory cache miss by
// looking at the global variable that the pref's stored in.
if (cacheable && mCachedPath && mCachedPath->GetFillRule() == aFillRule &&
aDrawTarget.GetBackendType() == mCachedPath->GetBackendType()) {
aDrawTarget->GetBackendType() == mCachedPath->GetBackendType()) {
RefPtr<Path> path(mCachedPath);
return path.forget();
}
RefPtr<PathBuilder> builder = aDrawTarget.CreatePathBuilder(aFillRule);
RefPtr<PathBuilder> builder = aDrawTarget->CreatePathBuilder(aFillRule);
RefPtr<Path> path = BuildPath(builder);
if (cacheable && NS_SVGPathCachingEnabled()) {
mCachedPath = path;

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

@ -174,7 +174,7 @@ public:
* this element. May return nullptr if there is no [valid] path. The path
* that is created may be cached and returned on subsequent calls.
*/
virtual already_AddRefed<Path> GetOrBuildPath(const DrawTarget& aDrawTarget,
virtual already_AddRefed<Path> GetOrBuildPath(const DrawTarget* aDrawTarget,
FillRule fillRule);
/**

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

@ -340,7 +340,7 @@ SVGGeometryFrame::GetFrameForPoint(const gfxPoint& aPoint)
// so that we get more consistent/backwards compatible results?
RefPtr<DrawTarget> drawTarget =
gfxPlatform::GetPlatform()->ScreenReferenceDrawTarget();
RefPtr<Path> path = content->GetOrBuildPath(*drawTarget, fillRule);
RefPtr<Path> path = content->GetOrBuildPath(drawTarget, fillRule);
if (!path) {
return nullptr; // no path, so we don't paint anything that can be hit
}
@ -547,7 +547,7 @@ SVGGeometryFrame::GetBBoxContribution(const Matrix &aToBBoxUserspace,
(GetStateBits() & NS_STATE_SVG_CLIPPATH_CHILD)
? StyleSVG()->mClipRule
: StyleSVG()->mFillRule);
RefPtr<Path> pathInUserSpace = element->GetOrBuildPath(*tmpDT, fillRule);
RefPtr<Path> pathInUserSpace = element->GetOrBuildPath(tmpDT, fillRule);
if (!pathInUserSpace) {
return bbox;
}
@ -772,7 +772,7 @@ SVGGeometryFrame::Render(gfxContext* aContext,
if (GetStateBits() & NS_STATE_SVG_CLIPPATH_CHILD) {
// We don't complicate this code with GetAsSimplePath since the cost of
// masking will dwarf Path creation overhead anyway.
RefPtr<Path> path = element->GetOrBuildPath(*drawTarget, fillRule);
RefPtr<Path> path = element->GetOrBuildPath(drawTarget, fillRule);
if (path) {
ColorPattern white(ToDeviceColor(Color(1.0f, 1.0f, 1.0f, 1.0f)));
drawTarget->Fill(path, white,
@ -786,7 +786,7 @@ SVGGeometryFrame::Render(gfxContext* aContext,
element->GetAsSimplePath(&simplePath);
if (!simplePath.IsPath()) {
path = element->GetOrBuildPath(*drawTarget, fillRule);
path = element->GetOrBuildPath(drawTarget, fillRule);
if (!path) {
return;
}
@ -817,7 +817,7 @@ SVGGeometryFrame::Render(gfxContext* aContext,
// A simple Rect can't be transformed with rotate/skew, so let's switch
// to using a real path:
if (!path) {
path = element->GetOrBuildPath(*drawTarget, fillRule);
path = element->GetOrBuildPath(drawTarget, fillRule);
if (!path) {
return;
}

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

@ -41,7 +41,7 @@ nsSVGClipPathFrame::ApplyClipPath(gfxContext& aContext,
{
MOZ_ASSERT(IsTrivial(), "Caller needs to use GetClipMask");
DrawTarget& aDrawTarget = *aContext.GetDrawTarget();
const DrawTarget* drawTarget = aContext.GetDrawTarget();
// No need for AutoReferenceChainGuard since simple clip paths by definition
// don't reference another clip path.
@ -68,7 +68,7 @@ nsSVGClipPathFrame::ApplyClipPath(gfxContext& aContext,
aContext.SetMatrixDouble(newMatrix);
FillRule clipRule =
nsSVGUtils::ToFillRule(pathFrame->StyleSVG()->mClipRule);
clipPath = pathElement->GetOrBuildPath(aDrawTarget, clipRule);
clipPath = pathElement->GetOrBuildPath(drawTarget, clipRule);
}
}
}