Issue #1925 - Remove use of NS_CORNER_{TOP|BOTTOM}_{LEFT|RIGHT} macros.

This commit is contained in:
Moonchild 2024-08-02 06:08:29 +02:00 • committed by roytam1
commit d73f8c2e84
10 changed files with 96 additions and 93 deletions

View file

@ -414,11 +414,6 @@ enum Corner {
eCornerBottomLeft = 3 eCornerBottomLeft = 3
}; };
#define NS_CORNER_TOP_LEFT mozilla::eCornerTopLeft
#define NS_CORNER_TOP_RIGHT mozilla::eCornerTopRight
#define NS_CORNER_BOTTOM_RIGHT mozilla::eCornerBottomRight
#define NS_CORNER_BOTTOM_LEFT mozilla::eCornerBottomLeft
// Creates a for loop that walks over the four mozilla::Corner values. This // Creates a for loop that walks over the four mozilla::Corner values. This
// implementation uses the same technique as NS_FOR_CSS_SIDES. // implementation uses the same technique as NS_FOR_CSS_SIDES.
#define NS_FOR_CSS_FULL_CORNERS(var_) \ #define NS_FOR_CSS_FULL_CORNERS(var_) \

View file

@ -24,17 +24,25 @@ struct RoundedRect {
rect.width = std::max(0., rect.width - aLeftWidth - aRightWidth); rect.width = std::max(0., rect.width - aLeftWidth - aRightWidth);
rect.height = std::max(0., rect.height - aTopWidth - aBottomWidth); rect.height = std::max(0., rect.height - aTopWidth - aBottomWidth);
corners.radii[NS_CORNER_TOP_LEFT].width = std::max(0., corners.radii[NS_CORNER_TOP_LEFT].width - aLeftWidth); corners.radii[mozilla::eCornerTopLeft].width =
corners.radii[NS_CORNER_TOP_LEFT].height = std::max(0., corners.radii[NS_CORNER_TOP_LEFT].height - aTopWidth); std::max(0., corners.radii[mozilla::eCornerTopLeft].width - aLeftWidth);
corners.radii[mozilla::eCornerTopLeft].height =
std::max(0., corners.radii[mozilla::eCornerTopLeft].height - aTopWidth);
corners.radii[NS_CORNER_TOP_RIGHT].width = std::max(0., corners.radii[NS_CORNER_TOP_RIGHT].width - aRightWidth); corners.radii[mozilla::eCornerTopRight].width =
corners.radii[NS_CORNER_TOP_RIGHT].height = std::max(0., corners.radii[NS_CORNER_TOP_RIGHT].height - aTopWidth); std::max(0., corners.radii[mozilla::eCornerTopRight].width - aRightWidth);
corners.radii[mozilla::eCornerTopRight].height =
std::max(0., corners.radii[mozilla::eCornerTopRight].height - aTopWidth);
corners.radii[NS_CORNER_BOTTOM_LEFT].width = std::max(0., corners.radii[NS_CORNER_BOTTOM_LEFT].width - aLeftWidth); corners.radii[mozilla::eCornerBottomLeft].width =
corners.radii[NS_CORNER_BOTTOM_LEFT].height = std::max(0., corners.radii[NS_CORNER_BOTTOM_LEFT].height - aBottomWidth); std::max(0., corners.radii[mozilla::eCornerBottomLeft].width - aLeftWidth);
corners.radii[mozilla::eCornerBottomLeft].height =
std::max(0., corners.radii[mozilla::eCornerBottomLeft].height - aBottomWidth);
corners.radii[NS_CORNER_BOTTOM_RIGHT].width = std::max(0., corners.radii[NS_CORNER_BOTTOM_RIGHT].width - aRightWidth); corners.radii[mozilla::eCornerBottomRight].width =
corners.radii[NS_CORNER_BOTTOM_RIGHT].height = std::max(0., corners.radii[NS_CORNER_BOTTOM_RIGHT].height - aBottomWidth); std::max(0., corners.radii[mozilla::eCornerBottomRight].width - aRightWidth);
corners.radii[mozilla::eCornerBottomRight].height =
std::max(0., corners.radii[mozilla::eCornerBottomRight].height - aBottomWidth);
} }
gfxRect rect; gfxRect rect;
RectCornerRadii corners; RectCornerRadii corners;

View file

@ -47,10 +47,10 @@ struct gfxRect :
gfxPoint AtCorner(mozilla::Corner corner) const { gfxPoint AtCorner(mozilla::Corner corner) const {
switch (corner) { switch (corner) {
case NS_CORNER_TOP_LEFT: return TopLeft(); case mozilla::eCornerTopLeft: return TopLeft();
case NS_CORNER_TOP_RIGHT: return TopRight(); case mozilla::eCornerTopRight: return TopRight();
case NS_CORNER_BOTTOM_RIGHT: return BottomRight(); case mozilla::eCornerBottomRight: return BottomRight();
case NS_CORNER_BOTTOM_LEFT: return BottomLeft(); case mozilla::eCornerBottomLeft: return BottomLeft();
} }
return gfxPoint(0.0, 0.0); return gfxPoint(0.0, 0.0);
} }

View file

@ -10,10 +10,10 @@
#define DOT_LENGTH 1 // square #define DOT_LENGTH 1 // square
#define DASH_LENGTH 3 // 3 times longer than dot #define DASH_LENGTH 3 // 3 times longer than dot
#define C_TL NS_CORNER_TOP_LEFT #define C_TL mozilla::eCornerTopLeft
#define C_TR NS_CORNER_TOP_RIGHT #define C_TR mozilla::eCornerTopRight
#define C_BR NS_CORNER_BOTTOM_RIGHT #define C_BR mozilla::eCornerBottomRight
#define C_BL NS_CORNER_BOTTOM_LEFT #define C_BL mozilla::eCornerBottomLeft
#define BORDER_SEGMENT_COUNT_MAX 100 #define BORDER_SEGMENT_COUNT_MAX 100
#define BORDER_DOTTED_CORNER_MAX_RADIUS 100000 #define BORDER_DOTTED_CORNER_MAX_RADIUS 100000

View file

@ -107,10 +107,10 @@ IsZeroSize(const Size& sz) {
static bool static bool
AllCornersZeroSize(const RectCornerRadii& corners) { AllCornersZeroSize(const RectCornerRadii& corners) {
return IsZeroSize(corners[NS_CORNER_TOP_LEFT]) && return IsZeroSize(corners[eCornerTopLeft]) &&
IsZeroSize(corners[NS_CORNER_TOP_RIGHT]) && IsZeroSize(corners[eCornerTopRight]) &&
IsZeroSize(corners[NS_CORNER_BOTTOM_RIGHT]) && IsZeroSize(corners[eCornerBottomRight]) &&
IsZeroSize(corners[NS_CORNER_BOTTOM_LEFT]); IsZeroSize(corners[eCornerBottomLeft]);
} }
static mozilla::Side static mozilla::Side
@ -340,11 +340,11 @@ nsCSSBorderRenderer::IsSolidCornerStyle(uint8_t aStyle, mozilla::Corner aCorner)
case NS_STYLE_BORDER_STYLE_INSET: case NS_STYLE_BORDER_STYLE_INSET:
case NS_STYLE_BORDER_STYLE_OUTSET: case NS_STYLE_BORDER_STYLE_OUTSET:
return (aCorner == NS_CORNER_TOP_LEFT || aCorner == NS_CORNER_BOTTOM_RIGHT); return (aCorner == eCornerTopLeft || aCorner == eCornerBottomRight);
case NS_STYLE_BORDER_STYLE_GROOVE: case NS_STYLE_BORDER_STYLE_GROOVE:
case NS_STYLE_BORDER_STYLE_RIDGE: case NS_STYLE_BORDER_STYLE_RIDGE:
return mOneUnitBorder && (aCorner == NS_CORNER_TOP_LEFT || aCorner == NS_CORNER_BOTTOM_RIGHT); return mOneUnitBorder && (aCorner == eCornerTopLeft || aCorner == eCornerBottomRight);
case NS_STYLE_BORDER_STYLE_DOUBLE: case NS_STYLE_BORDER_STYLE_DOUBLE:
return mOneUnitBorder; return mOneUnitBorder;
@ -416,17 +416,17 @@ nsCSSBorderRenderer::BorderColorStyleForSolidCorner(uint8_t aStyle, mozilla::Cor
case NS_STYLE_BORDER_STYLE_INSET: case NS_STYLE_BORDER_STYLE_INSET:
case NS_STYLE_BORDER_STYLE_GROOVE: case NS_STYLE_BORDER_STYLE_GROOVE:
if (aCorner == NS_CORNER_TOP_LEFT) if (aCorner == eCornerTopLeft)
return BorderColorStyleDark; return BorderColorStyleDark;
else if (aCorner == NS_CORNER_BOTTOM_RIGHT) else if (aCorner == eCornerBottomRight)
return BorderColorStyleLight; return BorderColorStyleLight;
break; break;
case NS_STYLE_BORDER_STYLE_OUTSET: case NS_STYLE_BORDER_STYLE_OUTSET:
case NS_STYLE_BORDER_STYLE_RIDGE: case NS_STYLE_BORDER_STYLE_RIDGE:
if (aCorner == NS_CORNER_TOP_LEFT) if (aCorner == eCornerTopLeft)
return BorderColorStyleLight; return BorderColorStyleLight;
else if (aCorner == NS_CORNER_BOTTOM_RIGHT) else if (aCorner == eCornerBottomRight)
return BorderColorStyleDark; return BorderColorStyleDark;
break; break;
} }
@ -3392,7 +3392,7 @@ nsCSSBorderRenderer::DrawBorders()
continue; continue;
if (mBorderWidths[sides[0]] == 1.0 && mBorderWidths[sides[1]] == 1.0) { if (mBorderWidths[sides[0]] == 1.0 && mBorderWidths[sides[1]] == 1.0) {
if (corner == NS_CORNER_TOP_LEFT || corner == NS_CORNER_TOP_RIGHT) if (corner == eCornerTopLeft || corner == eCornerTopRight)
mBorderCornerDimensions[corner].width = 0.0; mBorderCornerDimensions[corner].width = 0.0;
else else
mBorderCornerDimensions[corner].height = 0.0; mBorderCornerDimensions[corner].height = 0.0;

View file

@ -6789,14 +6789,14 @@ nsLayoutUtils::HasNonZeroCorner(const nsStyleCorners& aCorners)
// aCorner is a "full corner" value, i.e. NS_CORNER_TOP_LEFT etc // aCorner is a "full corner" value, i.e. NS_CORNER_TOP_LEFT etc
static bool IsCornerAdjacentToSide(uint8_t aCorner, Side aSide) static bool IsCornerAdjacentToSide(uint8_t aCorner, Side aSide)
{ {
static_assert((int)eSideTop == NS_CORNER_TOP_LEFT, "Check for Full Corner"); static_assert((int)eSideTop == eCornerTopLeft, "Check for Full Corner");
static_assert((int)eSideRight == NS_CORNER_TOP_RIGHT, "Check for Full Corner"); static_assert((int)eSideRight == eCornerTopRight, "Check for Full Corner");
static_assert((int)eSideBottom == NS_CORNER_BOTTOM_RIGHT, "Check for Full Corner"); static_assert((int)eSideBottom == eCornerBottomRight, "Check for Full Corner");
static_assert((int)eSideLeft == NS_CORNER_BOTTOM_LEFT, "Check for Full Corner"); static_assert((int)eSideLeft == eCornerBottomLeft, "Check for Full Corner");
static_assert((int)eSideTop == ((NS_CORNER_TOP_RIGHT - 1)&3), "Check for Full Corner"); static_assert((int)eSideTop == ((eCornerTopRight - 1)&3), "Check for Full Corner");
static_assert((int)eSideRight == ((NS_CORNER_BOTTOM_RIGHT - 1)&3), "Check for Full Corner"); static_assert((int)eSideRight == ((eCornerBottomRight - 1)&3), "Check for Full Corner");
static_assert((int)eSideBottom == ((NS_CORNER_BOTTOM_LEFT - 1)&3), "Check for Full Corner"); static_assert((int)eSideBottom == ((eCornerBottomLeft - 1)&3), "Check for Full Corner");
static_assert((int)eSideLeft == ((NS_CORNER_TOP_LEFT - 1)&3), "Check for Full Corner"); static_assert((int)eSideLeft == ((eCornerTopLeft - 1)&3), "Check for Full Corner");
return aSide == aCorner || aSide == ((aCorner - 1)&3); return aSide == aCorner || aSide == ((aCorner - 1)&3);
} }
@ -6805,14 +6805,14 @@ static bool IsCornerAdjacentToSide(uint8_t aCorner, Side aSide)
nsLayoutUtils::HasNonZeroCornerOnSide(const nsStyleCorners& aCorners, nsLayoutUtils::HasNonZeroCornerOnSide(const nsStyleCorners& aCorners,
Side aSide) Side aSide)
{ {
static_assert(NS_CORNER_TOP_LEFT_X/2 == NS_CORNER_TOP_LEFT, "Check for Non Zero on side"); static_assert(NS_CORNER_TOP_LEFT_X/2 == eCornerTopLeft, "Check for Non Zero on side");
static_assert(NS_CORNER_TOP_LEFT_Y/2 == NS_CORNER_TOP_LEFT, "Check for Non Zero on side"); static_assert(NS_CORNER_TOP_LEFT_Y/2 == eCornerTopLeft, "Check for Non Zero on side");
static_assert(NS_CORNER_TOP_RIGHT_X/2 == NS_CORNER_TOP_RIGHT, "Check for Non Zero on side"); static_assert(NS_CORNER_TOP_RIGHT_X/2 == eCornerTopRight, "Check for Non Zero on side");
static_assert(NS_CORNER_TOP_RIGHT_Y/2 == NS_CORNER_TOP_RIGHT, "Check for Non Zero on side"); static_assert(NS_CORNER_TOP_RIGHT_Y/2 == eCornerTopRight, "Check for Non Zero on side");
static_assert(NS_CORNER_BOTTOM_RIGHT_X/2 == NS_CORNER_BOTTOM_RIGHT, "Check for Non Zero on side"); static_assert(NS_CORNER_BOTTOM_RIGHT_X/2 == eCornerBottomRight, "Check for Non Zero on side");
static_assert(NS_CORNER_BOTTOM_RIGHT_Y/2 == NS_CORNER_BOTTOM_RIGHT, "Check for Non Zero on side"); static_assert(NS_CORNER_BOTTOM_RIGHT_Y/2 == eCornerBottomRight, "Check for Non Zero on side");
static_assert(NS_CORNER_BOTTOM_LEFT_X/2 == NS_CORNER_BOTTOM_LEFT, "Check for Non Zero on side"); static_assert(NS_CORNER_BOTTOM_LEFT_X/2 == eCornerBottomLeft, "Check for Non Zero on side");
static_assert(NS_CORNER_BOTTOM_LEFT_Y/2 == NS_CORNER_BOTTOM_LEFT, "Check for Non Zero on side"); static_assert(NS_CORNER_BOTTOM_LEFT_Y/2 == eCornerBottomLeft, "Check for Non Zero on side");
NS_FOR_CSS_HALF_CORNERS(corner) { NS_FOR_CSS_HALF_CORNERS(corner) {
// corner is a "half corner" value, so dividing by two gives us a // corner is a "half corner" value, so dividing by two gives us a

View file

@ -4389,14 +4389,14 @@ StyleAnimationValue::ExtractComputedValue(nsCSSPropertyID aProperty,
case eStyleAnimType_Corner_BottomRight: case eStyleAnimType_Corner_BottomRight:
case eStyleAnimType_Corner_BottomLeft: { case eStyleAnimType_Corner_BottomLeft: {
static_assert( static_assert(
NS_CORNER_TOP_LEFT == eStyleAnimType_Corner_TopLeft - eCornerTopLeft == eStyleAnimType_Corner_TopLeft -
eStyleAnimType_Corner_TopLeft && eStyleAnimType_Corner_TopLeft &&
NS_CORNER_TOP_RIGHT == eStyleAnimType_Corner_TopRight - eCornerTopRight == eStyleAnimType_Corner_TopRight -
eStyleAnimType_Corner_TopLeft && eStyleAnimType_Corner_TopLeft &&
NS_CORNER_BOTTOM_RIGHT == eStyleAnimType_Corner_BottomRight - eCornerBottomRight == eStyleAnimType_Corner_BottomRight -
eStyleAnimType_Corner_TopLeft && eStyleAnimType_Corner_TopLeft &&
NS_CORNER_BOTTOM_LEFT == eStyleAnimType_Corner_BottomLeft - eCornerBottomLeft == eStyleAnimType_Corner_BottomLeft -
eStyleAnimType_Corner_TopLeft, eStyleAnimType_Corner_TopLeft,
"box corner constants out of sync with animation corner constants"); "box corner constants out of sync with animation corner constants");
const nsStyleCorners& corners = const nsStyleCorners& corners =

View file

@ -3253,8 +3253,8 @@ nsCSSCornerSizes::Reset()
} }
} }
static_assert(NS_CORNER_TOP_LEFT == 0 && NS_CORNER_TOP_RIGHT == 1 && static_assert(eCornerTopLeft == 0 && eCornerTopRight == 1 &&
NS_CORNER_BOTTOM_RIGHT == 2 && NS_CORNER_BOTTOM_LEFT == 3, eCornerBottomRight == 2 && eCornerBottomLeft == 3,
"box corner constants not tl/tr/br/bl == 0/1/2/3"); "box corner constants not tl/tr/br/bl == 0/1/2/3");
/* static */ const nsCSSCornerSizes::corner_type /* static */ const nsCSSCornerSizes::corner_type

View file

@ -3145,28 +3145,28 @@ already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetBorderBottomLeftRadius() nsComputedDOMStyle::DoGetBorderBottomLeftRadius()
{ {
return GetEllipseRadii(StyleBorder()->mBorderRadius, return GetEllipseRadii(StyleBorder()->mBorderRadius,
NS_CORNER_BOTTOM_LEFT); eCornerBottomLeft);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetBorderBottomRightRadius() nsComputedDOMStyle::DoGetBorderBottomRightRadius()
{ {
return GetEllipseRadii(StyleBorder()->mBorderRadius, return GetEllipseRadii(StyleBorder()->mBorderRadius,
NS_CORNER_BOTTOM_RIGHT); eCornerBottomRight);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetBorderTopLeftRadius() nsComputedDOMStyle::DoGetBorderTopLeftRadius()
{ {
return GetEllipseRadii(StyleBorder()->mBorderRadius, return GetEllipseRadii(StyleBorder()->mBorderRadius,
NS_CORNER_TOP_LEFT); eCornerTopLeft);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetBorderTopRightRadius() nsComputedDOMStyle::DoGetBorderTopRightRadius()
{ {
return GetEllipseRadii(StyleBorder()->mBorderRadius, return GetEllipseRadii(StyleBorder()->mBorderRadius,
NS_CORNER_TOP_RIGHT); eCornerTopRight);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
@ -3406,28 +3406,28 @@ already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetOutlineRadiusBottomLeft() nsComputedDOMStyle::DoGetOutlineRadiusBottomLeft()
{ {
return GetEllipseRadii(StyleOutline()->mOutlineRadius, return GetEllipseRadii(StyleOutline()->mOutlineRadius,
NS_CORNER_BOTTOM_LEFT); eCornerBottomLeft);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetOutlineRadiusBottomRight() nsComputedDOMStyle::DoGetOutlineRadiusBottomRight()
{ {
return GetEllipseRadii(StyleOutline()->mOutlineRadius, return GetEllipseRadii(StyleOutline()->mOutlineRadius,
NS_CORNER_BOTTOM_RIGHT); eCornerBottomRight);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetOutlineRadiusTopLeft() nsComputedDOMStyle::DoGetOutlineRadiusTopLeft()
{ {
return GetEllipseRadii(StyleOutline()->mOutlineRadius, return GetEllipseRadii(StyleOutline()->mOutlineRadius,
NS_CORNER_TOP_LEFT); eCornerTopLeft);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>
nsComputedDOMStyle::DoGetOutlineRadiusTopRight() nsComputedDOMStyle::DoGetOutlineRadiusTopRight()
{ {
return GetEllipseRadii(StyleOutline()->mOutlineRadius, return GetEllipseRadii(StyleOutline()->mOutlineRadius,
NS_CORNER_TOP_RIGHT); eCornerTopRight);
} }
already_AddRefed<CSSValue> already_AddRefed<CSSValue>

View file

@ -355,45 +355,45 @@ CASE(NS_CORNER_BOTTOM_LEFT_Y, false);
#define CASE(corner, result) \ #define CASE(corner, result) \
static_assert(NS_HALF_TO_FULL_CORNER(corner) == result, \ static_assert(NS_HALF_TO_FULL_CORNER(corner) == result, \
"NS_HALF_TO_FULL_CORNER is wrong") "NS_HALF_TO_FULL_CORNER is wrong")
CASE(NS_CORNER_TOP_LEFT_X, NS_CORNER_TOP_LEFT); CASE(NS_CORNER_TOP_LEFT_X, eCornerTopLeft);
CASE(NS_CORNER_TOP_LEFT_Y, NS_CORNER_TOP_LEFT); CASE(NS_CORNER_TOP_LEFT_Y, eCornerTopLeft);
CASE(NS_CORNER_TOP_RIGHT_X, NS_CORNER_TOP_RIGHT); CASE(NS_CORNER_TOP_RIGHT_X, eCornerTopRight);
CASE(NS_CORNER_TOP_RIGHT_Y, NS_CORNER_TOP_RIGHT); CASE(NS_CORNER_TOP_RIGHT_Y, eCornerTopRight);
CASE(NS_CORNER_BOTTOM_RIGHT_X, NS_CORNER_BOTTOM_RIGHT); CASE(NS_CORNER_BOTTOM_RIGHT_X, eCornerBottomRight);
CASE(NS_CORNER_BOTTOM_RIGHT_Y, NS_CORNER_BOTTOM_RIGHT); CASE(NS_CORNER_BOTTOM_RIGHT_Y, eCornerBottomRight);
CASE(NS_CORNER_BOTTOM_LEFT_X, NS_CORNER_BOTTOM_LEFT); CASE(NS_CORNER_BOTTOM_LEFT_X, eCornerBottomLeft);
CASE(NS_CORNER_BOTTOM_LEFT_Y, NS_CORNER_BOTTOM_LEFT); CASE(NS_CORNER_BOTTOM_LEFT_Y, eCornerBottomLeft);
#undef CASE #undef CASE
// Validation of NS_FULL_TO_HALF_CORNER. // Validation of NS_FULL_TO_HALF_CORNER.
#define CASE(corner, vert, result) \ #define CASE(corner, vert, result) \
static_assert(NS_FULL_TO_HALF_CORNER(corner, vert) == result, \ static_assert(NS_FULL_TO_HALF_CORNER(corner, vert) == result, \
"NS_FULL_TO_HALF_CORNER is wrong") "NS_FULL_TO_HALF_CORNER is wrong")
CASE(NS_CORNER_TOP_LEFT, false, NS_CORNER_TOP_LEFT_X); CASE(eCornerTopLeft, false, NS_CORNER_TOP_LEFT_X);
CASE(NS_CORNER_TOP_LEFT, true, NS_CORNER_TOP_LEFT_Y); CASE(eCornerTopLeft, true, NS_CORNER_TOP_LEFT_Y);
CASE(NS_CORNER_TOP_RIGHT, false, NS_CORNER_TOP_RIGHT_X); CASE(eCornerTopRight, false, NS_CORNER_TOP_RIGHT_X);
CASE(NS_CORNER_TOP_RIGHT, true, NS_CORNER_TOP_RIGHT_Y); CASE(eCornerTopRight, true, NS_CORNER_TOP_RIGHT_Y);
CASE(NS_CORNER_BOTTOM_RIGHT, false, NS_CORNER_BOTTOM_RIGHT_X); CASE(eCornerBottomRight, false, NS_CORNER_BOTTOM_RIGHT_X);
CASE(NS_CORNER_BOTTOM_RIGHT, true, NS_CORNER_BOTTOM_RIGHT_Y); CASE(eCornerBottomRight, true, NS_CORNER_BOTTOM_RIGHT_Y);
CASE(NS_CORNER_BOTTOM_LEFT, false, NS_CORNER_BOTTOM_LEFT_X); CASE(eCornerBottomLeft, false, NS_CORNER_BOTTOM_LEFT_X);
CASE(NS_CORNER_BOTTOM_LEFT, true, NS_CORNER_BOTTOM_LEFT_Y); CASE(eCornerBottomLeft, true, NS_CORNER_BOTTOM_LEFT_Y);
#undef CASE #undef CASE
// Validation of NS_SIDE_TO_{FULL,HALF}_CORNER. // Validation of NS_SIDE_TO_{FULL,HALF}_CORNER.
#define CASE(side, second, result) \ #define CASE(side, second, result) \
static_assert(NS_SIDE_TO_FULL_CORNER(side, second) == result, \ static_assert(NS_SIDE_TO_FULL_CORNER(side, second) == result, \
"NS_SIDE_TO_FULL_CORNER is wrong") "NS_SIDE_TO_FULL_CORNER is wrong")
CASE(eSideTop, false, NS_CORNER_TOP_LEFT); CASE(eSideTop, false, eCornerTopLeft);
CASE(eSideTop, true, NS_CORNER_TOP_RIGHT); CASE(eSideTop, true, eCornerTopRight);
CASE(eSideRight, false, NS_CORNER_TOP_RIGHT); CASE(eSideRight, false, eCornerTopRight);
CASE(eSideRight, true, NS_CORNER_BOTTOM_RIGHT); CASE(eSideRight, true, eCornerBottomRight);
CASE(eSideBottom, false, NS_CORNER_BOTTOM_RIGHT); CASE(eSideBottom, false, eCornerBottomRight);
CASE(eSideBottom, true, NS_CORNER_BOTTOM_LEFT); CASE(eSideBottom, true, eCornerBottomLeft);
CASE(eSideLeft, false, NS_CORNER_BOTTOM_LEFT); CASE(eSideLeft, false, eCornerBottomLeft);
CASE(eSideLeft, true, NS_CORNER_TOP_LEFT); CASE(eSideLeft, true, eCornerTopLeft);
#undef CASE #undef CASE
#define CASE(side, second, parallel, result) \ #define CASE(side, second, parallel, result) \