Bug 1611044 - Convert stroke-linejoin #defines to an enum class. r=emilio

Differential Revision: https://phabricator.services.mozilla.com/D60865

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Martin McNickle 2020-01-23 17:19:27 +00:00
parent 34f2de9959
commit 56f3626ca9
7 changed files with 13 additions and 9 deletions

View File

@ -286,13 +286,13 @@ void SVGContentUtils::GetStrokeOptions(AutoStrokeOptions* aStrokeOptions,
aStrokeOptions->mMiterLimit = Float(styleSVG->mStrokeMiterlimit);
switch (styleSVG->mStrokeLinejoin) {
case NS_STYLE_STROKE_LINEJOIN_MITER:
case StyleStrokeLinejoin::Miter:
aStrokeOptions->mLineJoin = JoinStyle::MITER_OR_BEVEL;
break;
case NS_STYLE_STROKE_LINEJOIN_ROUND:
case StyleStrokeLinejoin::Round:
aStrokeOptions->mLineJoin = JoinStyle::ROUND;
break;
case NS_STYLE_STROKE_LINEJOIN_BEVEL:
case StyleStrokeLinejoin::Bevel:
aStrokeOptions->mLineJoin = JoinStyle::BEVEL;
break;
}

View File

@ -134,6 +134,7 @@ rusty-enums = [
"mozilla::StyleColorAdjust",
"mozilla::StyleFlexDirection",
"mozilla::StyleStrokeLinecap",
"mozilla::StyleStrokeLinejoin",
"mozilla::StyleFlexWrap",
"mozilla::StyleTextDecorationSkipInk",
"mozilla::StyleTextDecorationLength",

View File

@ -769,9 +769,11 @@ enum class StyleStrokeLinecap : uint8_t {
};
// stroke-linejoin
#define NS_STYLE_STROKE_LINEJOIN_MITER 0
#define NS_STYLE_STROKE_LINEJOIN_ROUND 1
#define NS_STYLE_STROKE_LINEJOIN_BEVEL 2
enum class StyleStrokeLinejoin : uint8_t {
Miter,
Round,
Bevel,
};
// text-anchor
enum class StyleTextAnchor : uint8_t {

View File

@ -770,7 +770,7 @@ nsStyleSVG::nsStyleSVG(const Document& aDocument)
mPaintOrder(0),
mShapeRendering(StyleShapeRendering::Auto),
mStrokeLinecap(StyleStrokeLinecap::Butt),
mStrokeLinejoin(NS_STYLE_STROKE_LINEJOIN_MITER),
mStrokeLinejoin(StyleStrokeLinejoin::Miter),
mDominantBaseline(NS_STYLE_DOMINANT_BASELINE_AUTO),
mTextAnchor(StyleTextAnchor::Start),
mContextFlags(

View File

@ -2093,7 +2093,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleSVG {
mozilla::StyleSVGPaintOrder mPaintOrder;
mozilla::StyleShapeRendering mShapeRendering;
mozilla::StyleStrokeLinecap mStrokeLinecap;
uint8_t mStrokeLinejoin; // NS_STYLE_STROKE_LINEJOIN_*
mozilla::StyleStrokeLinejoin mStrokeLinejoin;
uint8_t mDominantBaseline; // NS_STYLE_DOMINANT_BASELINE_*
mozilla::StyleTextAnchor mTextAnchor;

View File

@ -1302,7 +1302,7 @@ gfxRect nsSVGUtils::PathExtentsToMaxStrokeExtents(const gfxRect& aPathExtents,
if (affectedByMiterlimit) {
const nsStyleSVG* style = aFrame->StyleSVG();
if (style->mStrokeLinejoin == NS_STYLE_STROKE_LINEJOIN_MITER &&
if (style->mStrokeLinejoin == StyleStrokeLinejoin::Miter &&
styleExpansionFactor < style->mStrokeMiterlimit / 2.0) {
styleExpansionFactor = style->mStrokeMiterlimit / 2.0;
}

View File

@ -118,6 +118,7 @@ ${helpers.single_keyword(
engines="gecko",
animation_value_type="discrete",
spec="https://www.w3.org/TR/SVG11/painting.html#StrokeLinejoinProperty",
gecko_enum_prefix = "StyleStrokeLinejoin",
)}
${helpers.predefined_type(