aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports
diff options
context:
space:
mode:
authorGravatar Ben Wagner <bungeman@google.com>2018-06-12 17:52:29 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-13 15:41:57 +0000
commit6fbafc0afa2f6489a74d62d96351744def4a822d (patch)
tree26f1f8a0d6dcf7794949689c4d605f4544b1a38c /src/ports
parentd34b8a80f30a176ecf1c01ae7220b5f8af636eb8 (diff)
Remove SkMulDiv.
This removes the last use of SkMulDiv. This last use was in the conversion code for FontConfig widths and weights which is modified to use SkScaler instead of SkFixed. Change-Id: Ia20a2066cbc42e986c44fc573829edf86973846e Reviewed-on: https://skia-review.googlesource.com/134426 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
Diffstat (limited to 'src/ports')
-rw-r--r--src/ports/SkFontConfigInterface_direct.cpp127
-rw-r--r--src/ports/SkFontMgr_fontconfig.cpp127
2 files changed, 118 insertions, 136 deletions
diff --git a/src/ports/SkFontConfigInterface_direct.cpp b/src/ports/SkFontConfigInterface_direct.cpp
index 875000daa5..56c8466e03 100644
--- a/src/ports/SkFontConfigInterface_direct.cpp
+++ b/src/ports/SkFontConfigInterface_direct.cpp
@@ -368,21 +368,21 @@ static int get_int(FcPattern* pattern, const char object[], int missing) {
return value;
}
-static int map_range(SkFixed value,
- SkFixed old_min, SkFixed old_max,
- SkFixed new_min, SkFixed new_max)
+static int map_range(SkScalar value,
+ SkScalar old_min, SkScalar old_max,
+ SkScalar new_min, SkScalar new_max)
{
SkASSERT(old_min < old_max);
SkASSERT(new_min <= new_max);
- return new_min + SkMulDiv(value - old_min, new_max - new_min, old_max - old_min);
+ return new_min + ((value - old_min) * (new_max - new_min) / (old_max - old_min));
}
struct MapRanges {
- SkFixed old_val;
- SkFixed new_val;
+ SkScalar old_val;
+ SkScalar new_val;
};
-static SkFixed map_ranges_fixed(SkFixed val, MapRanges const ranges[], int rangesCount) {
+static SkScalar map_ranges(SkScalar val, MapRanges const ranges[], int rangesCount) {
// -Inf to [0]
if (val < ranges[0].old_val) {
return ranges[0].new_val;
@@ -401,15 +401,6 @@ static SkFixed map_ranges_fixed(SkFixed val, MapRanges const ranges[], int range
return ranges[rangesCount-1].new_val;
}
-static int map_ranges(int val, MapRanges const ranges[], int rangesCount) {
- return SkFixedRoundToInt(map_ranges_fixed(SkIntToFixed(val), ranges, rangesCount));
-}
-
-template<int n> struct SkTFixed {
- static_assert(-32768 <= n && n <= 32767, "SkTFixed_n_not_in_range");
- static const SkFixed value = static_cast<SkFixed>(n << 16);
-};
-
#ifndef FC_WEIGHT_DEMILIGHT
#define FC_WEIGHT_DEMILIGHT 65
#endif
@@ -417,36 +408,36 @@ template<int n> struct SkTFixed {
static SkFontStyle skfontstyle_from_fcpattern(FcPattern* pattern) {
typedef SkFontStyle SkFS;
- static const MapRanges weightRanges[] = {
- { SkTFixed<FC_WEIGHT_THIN>::value, SkTFixed<SkFS::kThin_Weight>::value },
- { SkTFixed<FC_WEIGHT_EXTRALIGHT>::value, SkTFixed<SkFS::kExtraLight_Weight>::value },
- { SkTFixed<FC_WEIGHT_LIGHT>::value, SkTFixed<SkFS::kLight_Weight>::value },
- { SkTFixed<FC_WEIGHT_DEMILIGHT>::value, SkTFixed<350>::value },
- { SkTFixed<FC_WEIGHT_BOOK>::value, SkTFixed<380>::value },
- { SkTFixed<FC_WEIGHT_REGULAR>::value, SkTFixed<SkFS::kNormal_Weight>::value },
- { SkTFixed<FC_WEIGHT_MEDIUM>::value, SkTFixed<SkFS::kMedium_Weight>::value },
- { SkTFixed<FC_WEIGHT_DEMIBOLD>::value, SkTFixed<SkFS::kSemiBold_Weight>::value },
- { SkTFixed<FC_WEIGHT_BOLD>::value, SkTFixed<SkFS::kBold_Weight>::value },
- { SkTFixed<FC_WEIGHT_EXTRABOLD>::value, SkTFixed<SkFS::kExtraBold_Weight>::value },
- { SkTFixed<FC_WEIGHT_BLACK>::value, SkTFixed<SkFS::kBlack_Weight>::value },
- { SkTFixed<FC_WEIGHT_EXTRABLACK>::value, SkTFixed<SkFS::kExtraBlack_Weight>::value },
+ static constexpr MapRanges weightRanges[] = {
+ { FC_WEIGHT_THIN, SkFS::kThin_Weight },
+ { FC_WEIGHT_EXTRALIGHT, SkFS::kExtraLight_Weight },
+ { FC_WEIGHT_LIGHT, SkFS::kLight_Weight },
+ { FC_WEIGHT_DEMILIGHT, 350 },
+ { FC_WEIGHT_BOOK, 380 },
+ { FC_WEIGHT_REGULAR, SkFS::kNormal_Weight },
+ { FC_WEIGHT_MEDIUM, SkFS::kMedium_Weight },
+ { FC_WEIGHT_DEMIBOLD, SkFS::kSemiBold_Weight },
+ { FC_WEIGHT_BOLD, SkFS::kBold_Weight },
+ { FC_WEIGHT_EXTRABOLD, SkFS::kExtraBold_Weight },
+ { FC_WEIGHT_BLACK, SkFS::kBlack_Weight },
+ { FC_WEIGHT_EXTRABLACK, SkFS::kExtraBlack_Weight },
};
- int weight = map_ranges(get_int(pattern, FC_WEIGHT, FC_WEIGHT_REGULAR),
- weightRanges, SK_ARRAY_COUNT(weightRanges));
-
- static const MapRanges widthRanges[] = {
- { SkTFixed<FC_WIDTH_ULTRACONDENSED>::value, SkTFixed<SkFS::kUltraCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_EXTRACONDENSED>::value, SkTFixed<SkFS::kExtraCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_CONDENSED>::value, SkTFixed<SkFS::kCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_SEMICONDENSED>::value, SkTFixed<SkFS::kSemiCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_NORMAL>::value, SkTFixed<SkFS::kNormal_Width>::value },
- { SkTFixed<FC_WIDTH_SEMIEXPANDED>::value, SkTFixed<SkFS::kSemiExpanded_Width>::value },
- { SkTFixed<FC_WIDTH_EXPANDED>::value, SkTFixed<SkFS::kExpanded_Width>::value },
- { SkTFixed<FC_WIDTH_EXTRAEXPANDED>::value, SkTFixed<SkFS::kExtraExpanded_Width>::value },
- { SkTFixed<FC_WIDTH_ULTRAEXPANDED>::value, SkTFixed<SkFS::kUltraExpanded_Width>::value },
+ SkScalar weight = map_ranges(get_int(pattern, FC_WEIGHT, FC_WEIGHT_REGULAR),
+ weightRanges, SK_ARRAY_COUNT(weightRanges));
+
+ static constexpr MapRanges widthRanges[] = {
+ { FC_WIDTH_ULTRACONDENSED, SkFS::kUltraCondensed_Width },
+ { FC_WIDTH_EXTRACONDENSED, SkFS::kExtraCondensed_Width },
+ { FC_WIDTH_CONDENSED, SkFS::kCondensed_Width },
+ { FC_WIDTH_SEMICONDENSED, SkFS::kSemiCondensed_Width },
+ { FC_WIDTH_NORMAL, SkFS::kNormal_Width },
+ { FC_WIDTH_SEMIEXPANDED, SkFS::kSemiExpanded_Width },
+ { FC_WIDTH_EXPANDED, SkFS::kExpanded_Width },
+ { FC_WIDTH_EXTRAEXPANDED, SkFS::kExtraExpanded_Width },
+ { FC_WIDTH_ULTRAEXPANDED, SkFS::kUltraExpanded_Width },
};
- int width = map_ranges(get_int(pattern, FC_WIDTH, FC_WIDTH_NORMAL),
- widthRanges, SK_ARRAY_COUNT(widthRanges));
+ SkScalar width = map_ranges(get_int(pattern, FC_WIDTH, FC_WIDTH_NORMAL),
+ widthRanges, SK_ARRAY_COUNT(widthRanges));
SkFS::Slant slant = SkFS::kUpright_Slant;
switch (get_int(pattern, FC_SLANT, FC_SLANT_ROMAN)) {
@@ -456,38 +447,38 @@ static SkFontStyle skfontstyle_from_fcpattern(FcPattern* pattern) {
default: SkASSERT(false); break;
}
- return SkFontStyle(weight, width, slant);
+ return SkFontStyle(SkScalarRoundToInt(weight), SkScalarRoundToInt(width), slant);
}
static void fcpattern_from_skfontstyle(SkFontStyle style, FcPattern* pattern) {
typedef SkFontStyle SkFS;
- static const MapRanges weightRanges[] = {
- { SkTFixed<SkFS::kThin_Weight>::value, SkTFixed<FC_WEIGHT_THIN>::value },
- { SkTFixed<SkFS::kExtraLight_Weight>::value, SkTFixed<FC_WEIGHT_EXTRALIGHT>::value },
- { SkTFixed<SkFS::kLight_Weight>::value, SkTFixed<FC_WEIGHT_LIGHT>::value },
- { SkTFixed<350>::value, SkTFixed<FC_WEIGHT_DEMILIGHT>::value },
- { SkTFixed<380>::value, SkTFixed<FC_WEIGHT_BOOK>::value },
- { SkTFixed<SkFS::kNormal_Weight>::value, SkTFixed<FC_WEIGHT_REGULAR>::value },
- { SkTFixed<SkFS::kMedium_Weight>::value, SkTFixed<FC_WEIGHT_MEDIUM>::value },
- { SkTFixed<SkFS::kSemiBold_Weight>::value, SkTFixed<FC_WEIGHT_DEMIBOLD>::value },
- { SkTFixed<SkFS::kBold_Weight>::value, SkTFixed<FC_WEIGHT_BOLD>::value },
- { SkTFixed<SkFS::kExtraBold_Weight>::value, SkTFixed<FC_WEIGHT_EXTRABOLD>::value },
- { SkTFixed<SkFS::kBlack_Weight>::value, SkTFixed<FC_WEIGHT_BLACK>::value },
- { SkTFixed<SkFS::kExtraBlack_Weight>::value, SkTFixed<FC_WEIGHT_EXTRABLACK>::value },
+ static constexpr MapRanges weightRanges[] = {
+ { SkFS::kThin_Weight, FC_WEIGHT_THIN },
+ { SkFS::kExtraLight_Weight, FC_WEIGHT_EXTRALIGHT },
+ { SkFS::kLight_Weight, FC_WEIGHT_LIGHT },
+ { 350, FC_WEIGHT_DEMILIGHT },
+ { 380, FC_WEIGHT_BOOK },
+ { SkFS::kNormal_Weight, FC_WEIGHT_REGULAR },
+ { SkFS::kMedium_Weight, FC_WEIGHT_MEDIUM },
+ { SkFS::kSemiBold_Weight, FC_WEIGHT_DEMIBOLD },
+ { SkFS::kBold_Weight, FC_WEIGHT_BOLD },
+ { SkFS::kExtraBold_Weight, FC_WEIGHT_EXTRABOLD },
+ { SkFS::kBlack_Weight, FC_WEIGHT_BLACK },
+ { SkFS::kExtraBlack_Weight, FC_WEIGHT_EXTRABLACK },
};
int weight = map_ranges(style.weight(), weightRanges, SK_ARRAY_COUNT(weightRanges));
- static const MapRanges widthRanges[] = {
- { SkTFixed<SkFS::kUltraCondensed_Width>::value, SkTFixed<FC_WIDTH_ULTRACONDENSED>::value },
- { SkTFixed<SkFS::kExtraCondensed_Width>::value, SkTFixed<FC_WIDTH_EXTRACONDENSED>::value },
- { SkTFixed<SkFS::kCondensed_Width>::value, SkTFixed<FC_WIDTH_CONDENSED>::value },
- { SkTFixed<SkFS::kSemiCondensed_Width>::value, SkTFixed<FC_WIDTH_SEMICONDENSED>::value },
- { SkTFixed<SkFS::kNormal_Width>::value, SkTFixed<FC_WIDTH_NORMAL>::value },
- { SkTFixed<SkFS::kSemiExpanded_Width>::value, SkTFixed<FC_WIDTH_SEMIEXPANDED>::value },
- { SkTFixed<SkFS::kExpanded_Width>::value, SkTFixed<FC_WIDTH_EXPANDED>::value },
- { SkTFixed<SkFS::kExtraExpanded_Width>::value, SkTFixed<FC_WIDTH_EXTRAEXPANDED>::value },
- { SkTFixed<SkFS::kUltraExpanded_Width>::value, SkTFixed<FC_WIDTH_ULTRAEXPANDED>::value },
+ static constexpr MapRanges widthRanges[] = {
+ { SkFS::kUltraCondensed_Width, FC_WIDTH_ULTRACONDENSED },
+ { SkFS::kExtraCondensed_Width, FC_WIDTH_EXTRACONDENSED },
+ { SkFS::kCondensed_Width, FC_WIDTH_CONDENSED },
+ { SkFS::kSemiCondensed_Width, FC_WIDTH_SEMICONDENSED },
+ { SkFS::kNormal_Width, FC_WIDTH_NORMAL },
+ { SkFS::kSemiExpanded_Width, FC_WIDTH_SEMIEXPANDED },
+ { SkFS::kExpanded_Width, FC_WIDTH_EXPANDED },
+ { SkFS::kExtraExpanded_Width, FC_WIDTH_EXTRAEXPANDED },
+ { SkFS::kUltraExpanded_Width, FC_WIDTH_ULTRAEXPANDED },
};
int width = map_ranges(style.width(), widthRanges, SK_ARRAY_COUNT(widthRanges));
diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp
index 944f8049b2..f1c2bad355 100644
--- a/src/ports/SkFontMgr_fontconfig.cpp
+++ b/src/ports/SkFontMgr_fontconfig.cpp
@@ -286,21 +286,21 @@ static void remove_weak(FcPattern* pattern, const char object[]) {
}
}
-static int map_range(SkFixed value,
- SkFixed old_min, SkFixed old_max,
- SkFixed new_min, SkFixed new_max)
+static int map_range(SkScalar value,
+ SkScalar old_min, SkScalar old_max,
+ SkScalar new_min, SkScalar new_max)
{
SkASSERT(old_min < old_max);
SkASSERT(new_min <= new_max);
- return new_min + SkMulDiv(value - old_min, new_max - new_min, old_max - old_min);
+ return new_min + ((value - old_min) * (new_max - new_min) / (old_max - old_min));
}
struct MapRanges {
- SkFixed old_val;
- SkFixed new_val;
+ SkScalar old_val;
+ SkScalar new_val;
};
-static SkFixed map_ranges_fixed(SkFixed val, MapRanges const ranges[], int rangesCount) {
+static SkScalar map_ranges(SkScalar val, MapRanges const ranges[], int rangesCount) {
// -Inf to [0]
if (val < ranges[0].old_val) {
return ranges[0].new_val;
@@ -319,15 +319,6 @@ static SkFixed map_ranges_fixed(SkFixed val, MapRanges const ranges[], int range
return ranges[rangesCount-1].new_val;
}
-static int map_ranges(int val, MapRanges const ranges[], int rangesCount) {
- return SkFixedRoundToInt(map_ranges_fixed(SkIntToFixed(val), ranges, rangesCount));
-}
-
-template<int n> struct SkTFixed {
- static_assert(-32768 <= n && n <= 32767, "SkTFixed_n_not_in_range");
- static const SkFixed value = static_cast<SkFixed>(n << 16);
-};
-
#ifndef FC_WEIGHT_DEMILIGHT
#define FC_WEIGHT_DEMILIGHT 65
#endif
@@ -336,36 +327,36 @@ static SkFontStyle skfontstyle_from_fcpattern(FcPattern* pattern) {
typedef SkFontStyle SkFS;
// FcWeightToOpenType was buggy until 2.12.4
- static const MapRanges weightRanges[] = {
- { SkTFixed<FC_WEIGHT_THIN>::value, SkTFixed<SkFS::kThin_Weight>::value },
- { SkTFixed<FC_WEIGHT_EXTRALIGHT>::value, SkTFixed<SkFS::kExtraLight_Weight>::value },
- { SkTFixed<FC_WEIGHT_LIGHT>::value, SkTFixed<SkFS::kLight_Weight>::value },
- { SkTFixed<FC_WEIGHT_DEMILIGHT>::value, SkTFixed<350>::value },
- { SkTFixed<FC_WEIGHT_BOOK>::value, SkTFixed<380>::value },
- { SkTFixed<FC_WEIGHT_REGULAR>::value, SkTFixed<SkFS::kNormal_Weight>::value },
- { SkTFixed<FC_WEIGHT_MEDIUM>::value, SkTFixed<SkFS::kMedium_Weight>::value },
- { SkTFixed<FC_WEIGHT_DEMIBOLD>::value, SkTFixed<SkFS::kSemiBold_Weight>::value },
- { SkTFixed<FC_WEIGHT_BOLD>::value, SkTFixed<SkFS::kBold_Weight>::value },
- { SkTFixed<FC_WEIGHT_EXTRABOLD>::value, SkTFixed<SkFS::kExtraBold_Weight>::value },
- { SkTFixed<FC_WEIGHT_BLACK>::value, SkTFixed<SkFS::kBlack_Weight>::value },
- { SkTFixed<FC_WEIGHT_EXTRABLACK>::value, SkTFixed<SkFS::kExtraBlack_Weight>::value },
+ static constexpr MapRanges weightRanges[] = {
+ { FC_WEIGHT_THIN, SkFS::kThin_Weight },
+ { FC_WEIGHT_EXTRALIGHT, SkFS::kExtraLight_Weight },
+ { FC_WEIGHT_LIGHT, SkFS::kLight_Weight },
+ { FC_WEIGHT_DEMILIGHT, 350 },
+ { FC_WEIGHT_BOOK, 380 },
+ { FC_WEIGHT_REGULAR, SkFS::kNormal_Weight },
+ { FC_WEIGHT_MEDIUM, SkFS::kMedium_Weight },
+ { FC_WEIGHT_DEMIBOLD, SkFS::kSemiBold_Weight },
+ { FC_WEIGHT_BOLD, SkFS::kBold_Weight },
+ { FC_WEIGHT_EXTRABOLD, SkFS::kExtraBold_Weight },
+ { FC_WEIGHT_BLACK, SkFS::kBlack_Weight },
+ { FC_WEIGHT_EXTRABLACK, SkFS::kExtraBlack_Weight },
};
- int weight = map_ranges(get_int(pattern, FC_WEIGHT, FC_WEIGHT_REGULAR),
- weightRanges, SK_ARRAY_COUNT(weightRanges));
-
- static const MapRanges widthRanges[] = {
- { SkTFixed<FC_WIDTH_ULTRACONDENSED>::value, SkTFixed<SkFS::kUltraCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_EXTRACONDENSED>::value, SkTFixed<SkFS::kExtraCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_CONDENSED>::value, SkTFixed<SkFS::kCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_SEMICONDENSED>::value, SkTFixed<SkFS::kSemiCondensed_Width>::value },
- { SkTFixed<FC_WIDTH_NORMAL>::value, SkTFixed<SkFS::kNormal_Width>::value },
- { SkTFixed<FC_WIDTH_SEMIEXPANDED>::value, SkTFixed<SkFS::kSemiExpanded_Width>::value },
- { SkTFixed<FC_WIDTH_EXPANDED>::value, SkTFixed<SkFS::kExpanded_Width>::value },
- { SkTFixed<FC_WIDTH_EXTRAEXPANDED>::value, SkTFixed<SkFS::kExtraExpanded_Width>::value },
- { SkTFixed<FC_WIDTH_ULTRAEXPANDED>::value, SkTFixed<SkFS::kUltraExpanded_Width>::value },
+ SkScalar weight = map_ranges(get_int(pattern, FC_WEIGHT, FC_WEIGHT_REGULAR),
+ weightRanges, SK_ARRAY_COUNT(weightRanges));
+
+ static constexpr MapRanges widthRanges[] = {
+ { FC_WIDTH_ULTRACONDENSED, SkFS::kUltraCondensed_Width },
+ { FC_WIDTH_EXTRACONDENSED, SkFS::kExtraCondensed_Width },
+ { FC_WIDTH_CONDENSED, SkFS::kCondensed_Width },
+ { FC_WIDTH_SEMICONDENSED, SkFS::kSemiCondensed_Width },
+ { FC_WIDTH_NORMAL, SkFS::kNormal_Width },
+ { FC_WIDTH_SEMIEXPANDED, SkFS::kSemiExpanded_Width },
+ { FC_WIDTH_EXPANDED, SkFS::kExpanded_Width },
+ { FC_WIDTH_EXTRAEXPANDED, SkFS::kExtraExpanded_Width },
+ { FC_WIDTH_ULTRAEXPANDED, SkFS::kUltraExpanded_Width },
};
- int width = map_ranges(get_int(pattern, FC_WIDTH, FC_WIDTH_NORMAL),
- widthRanges, SK_ARRAY_COUNT(widthRanges));
+ SkScalar width = map_ranges(get_int(pattern, FC_WIDTH, FC_WIDTH_NORMAL),
+ widthRanges, SK_ARRAY_COUNT(widthRanges));
SkFS::Slant slant = SkFS::kUpright_Slant;
switch (get_int(pattern, FC_SLANT, FC_SLANT_ROMAN)) {
@@ -375,7 +366,7 @@ static SkFontStyle skfontstyle_from_fcpattern(FcPattern* pattern) {
default: SkASSERT(false); break;
}
- return SkFontStyle(weight, width, slant);
+ return SkFontStyle(SkScalarRoundToInt(weight), SkScalarRoundToInt(width), slant);
}
static void fcpattern_from_skfontstyle(SkFontStyle style, FcPattern* pattern) {
@@ -384,32 +375,32 @@ static void fcpattern_from_skfontstyle(SkFontStyle style, FcPattern* pattern) {
typedef SkFontStyle SkFS;
// FcWeightFromOpenType was buggy until 2.12.4
- static const MapRanges weightRanges[] = {
- { SkTFixed<SkFS::kThin_Weight>::value, SkTFixed<FC_WEIGHT_THIN>::value },
- { SkTFixed<SkFS::kExtraLight_Weight>::value, SkTFixed<FC_WEIGHT_EXTRALIGHT>::value },
- { SkTFixed<SkFS::kLight_Weight>::value, SkTFixed<FC_WEIGHT_LIGHT>::value },
- { SkTFixed<350>::value, SkTFixed<FC_WEIGHT_DEMILIGHT>::value },
- { SkTFixed<380>::value, SkTFixed<FC_WEIGHT_BOOK>::value },
- { SkTFixed<SkFS::kNormal_Weight>::value, SkTFixed<FC_WEIGHT_REGULAR>::value },
- { SkTFixed<SkFS::kMedium_Weight>::value, SkTFixed<FC_WEIGHT_MEDIUM>::value },
- { SkTFixed<SkFS::kSemiBold_Weight>::value, SkTFixed<FC_WEIGHT_DEMIBOLD>::value },
- { SkTFixed<SkFS::kBold_Weight>::value, SkTFixed<FC_WEIGHT_BOLD>::value },
- { SkTFixed<SkFS::kExtraBold_Weight>::value, SkTFixed<FC_WEIGHT_EXTRABOLD>::value },
- { SkTFixed<SkFS::kBlack_Weight>::value, SkTFixed<FC_WEIGHT_BLACK>::value },
- { SkTFixed<SkFS::kExtraBlack_Weight>::value, SkTFixed<FC_WEIGHT_EXTRABLACK>::value },
+ static constexpr MapRanges weightRanges[] = {
+ { SkFS::kThin_Weight, FC_WEIGHT_THIN },
+ { SkFS::kExtraLight_Weight, FC_WEIGHT_EXTRALIGHT },
+ { SkFS::kLight_Weight, FC_WEIGHT_LIGHT },
+ { 350, FC_WEIGHT_DEMILIGHT },
+ { 380, FC_WEIGHT_BOOK },
+ { SkFS::kNormal_Weight, FC_WEIGHT_REGULAR },
+ { SkFS::kMedium_Weight, FC_WEIGHT_MEDIUM },
+ { SkFS::kSemiBold_Weight, FC_WEIGHT_DEMIBOLD },
+ { SkFS::kBold_Weight, FC_WEIGHT_BOLD },
+ { SkFS::kExtraBold_Weight, FC_WEIGHT_EXTRABOLD },
+ { SkFS::kBlack_Weight, FC_WEIGHT_BLACK },
+ { SkFS::kExtraBlack_Weight, FC_WEIGHT_EXTRABLACK },
};
int weight = map_ranges(style.weight(), weightRanges, SK_ARRAY_COUNT(weightRanges));
- static const MapRanges widthRanges[] = {
- { SkTFixed<SkFS::kUltraCondensed_Width>::value, SkTFixed<FC_WIDTH_ULTRACONDENSED>::value },
- { SkTFixed<SkFS::kExtraCondensed_Width>::value, SkTFixed<FC_WIDTH_EXTRACONDENSED>::value },
- { SkTFixed<SkFS::kCondensed_Width>::value, SkTFixed<FC_WIDTH_CONDENSED>::value },
- { SkTFixed<SkFS::kSemiCondensed_Width>::value, SkTFixed<FC_WIDTH_SEMICONDENSED>::value },
- { SkTFixed<SkFS::kNormal_Width>::value, SkTFixed<FC_WIDTH_NORMAL>::value },
- { SkTFixed<SkFS::kSemiExpanded_Width>::value, SkTFixed<FC_WIDTH_SEMIEXPANDED>::value },
- { SkTFixed<SkFS::kExpanded_Width>::value, SkTFixed<FC_WIDTH_EXPANDED>::value },
- { SkTFixed<SkFS::kExtraExpanded_Width>::value, SkTFixed<FC_WIDTH_EXTRAEXPANDED>::value },
- { SkTFixed<SkFS::kUltraExpanded_Width>::value, SkTFixed<FC_WIDTH_ULTRAEXPANDED>::value },
+ static constexpr MapRanges widthRanges[] = {
+ { SkFS::kUltraCondensed_Width, FC_WIDTH_ULTRACONDENSED },
+ { SkFS::kExtraCondensed_Width, FC_WIDTH_EXTRACONDENSED },
+ { SkFS::kCondensed_Width, FC_WIDTH_CONDENSED },
+ { SkFS::kSemiCondensed_Width, FC_WIDTH_SEMICONDENSED },
+ { SkFS::kNormal_Width, FC_WIDTH_NORMAL },
+ { SkFS::kSemiExpanded_Width, FC_WIDTH_SEMIEXPANDED },
+ { SkFS::kExpanded_Width, FC_WIDTH_EXPANDED },
+ { SkFS::kExtraExpanded_Width, FC_WIDTH_EXTRAEXPANDED },
+ { SkFS::kUltraExpanded_Width, FC_WIDTH_ULTRAEXPANDED },
};
int width = map_ranges(style.width(), widthRanges, SK_ARRAY_COUNT(widthRanges));