commit 2cc0a3813d2ca3948b90744a8111b8f36cff0b19
parent 88bfdb3cdb7de6ed796b7d0c1d5cea130bcde0fc
Author: longsonr <longsonr@gmail.com>
Date: Fri, 9 Jan 2026 13:44:40 +0000
Bug 2009040 - Convert eRenderFill and eRenderStroke to an enum class r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D278200
Diffstat:
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/layout/svg/SVGGeometryFrame.cpp b/layout/svg/SVGGeometryFrame.cpp
@@ -177,17 +177,18 @@ void SVGGeometryFrame::PaintSVG(gfxContext& aContext,
uint32_t paintOrder = StyleSVG()->mPaintOrder;
if (!paintOrder) {
- Render(&aContext, eRenderFill | eRenderStroke, newMatrix, aImgParams);
+ Render(&aContext, RenderFlags(RenderFlag::Fill, RenderFlag::Stroke),
+ newMatrix, aImgParams);
PaintMarkers(aContext, aTransform, aImgParams);
} else {
while (paintOrder) {
auto component = StylePaintOrder(paintOrder & kPaintOrderMask);
switch (component) {
case StylePaintOrder::Fill:
- Render(&aContext, eRenderFill, newMatrix, aImgParams);
+ Render(&aContext, RenderFlag::Fill, newMatrix, aImgParams);
break;
case StylePaintOrder::Stroke:
- Render(&aContext, eRenderStroke, newMatrix, aImgParams);
+ Render(&aContext, RenderFlag::Stroke, newMatrix, aImgParams);
break;
case StylePaintOrder::Markers:
PaintMarkers(aContext, aTransform, aImgParams);
@@ -550,7 +551,8 @@ gfxMatrix SVGGeometryFrame::GetCanvasTM() {
return content->ChildToUserSpaceTransform() * parent->GetCanvasTM();
}
-void SVGGeometryFrame::Render(gfxContext* aContext, uint32_t aRenderComponents,
+void SVGGeometryFrame::Render(gfxContext* aContext,
+ RenderFlags aRenderComponents,
const gfxMatrix& aTransform,
imgDrawingParams& aImgParams) {
MOZ_ASSERT(!aTransform.IsSingular());
@@ -602,7 +604,7 @@ void SVGGeometryFrame::Render(gfxContext* aContext, uint32_t aRenderComponents,
SVGContextPaint* contextPaint =
SVGContextPaint::GetContextPaint(GetContent());
- if (aRenderComponents & eRenderFill) {
+ if (aRenderComponents.contains(RenderFlag::Fill)) {
GeneralPattern fillPattern;
SVGUtils::MakeFillPatternFor(this, aContext, &fillPattern, aImgParams,
contextPaint);
@@ -617,7 +619,7 @@ void SVGGeometryFrame::Render(gfxContext* aContext, uint32_t aRenderComponents,
}
}
- if ((aRenderComponents & eRenderStroke) &&
+ if (aRenderComponents.contains(RenderFlag::Stroke) &&
SVGUtils::HasStroke(this, contextPaint)) {
// Account for vector-effect:non-scaling-stroke:
gfxMatrix userToOuterSVG;
diff --git a/layout/svg/SVGGeometryFrame.h b/layout/svg/SVGGeometryFrame.h
@@ -10,6 +10,7 @@
#include "gfxMatrix.h"
#include "gfxRect.h"
#include "mozilla/DisplaySVGItem.h"
+#include "mozilla/EnumSet.h"
#include "mozilla/ISVGDisplayableFrame.h"
#include "nsIFrame.h"
@@ -96,8 +97,9 @@ class SVGGeometryFrame final : public nsIFrame, public ISVGDisplayableFrame {
uint32_t aFlags) override;
bool IsDisplayContainer() override { return false; }
- enum { eRenderFill = 1, eRenderStroke = 2 };
- void Render(gfxContext* aContext, uint32_t aRenderComponents,
+ enum class RenderFlag { Fill, Stroke };
+ using RenderFlags = EnumSet<RenderFlag>;
+ void Render(gfxContext* aContext, RenderFlags aRenderComponents,
const gfxMatrix& aTransform, imgDrawingParams& aImgParams);
bool CreateWebRenderCommands(