11a77c6e06
This adds SK_VERY_LEGACY_CREATE_TYPEFACE which, when defined, provides only the old interface. Ideally, everyone would switch directly to SkFontMgr and use one of the newer calls, but there is currently no path for current users to get there. This updates all the internals to use SkFontStyle, after switching these over the higher level APIs can be switched. The Chromium follow on patch can be seen at https://crrev.com/1877673002 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1873923002 TBR=reed This doesn't really change API, just modernizes it. Review URL: https://codereview.chromium.org/1873923002
73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
/*
|
|
* Copyright 2013 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#ifndef SkFontStyle_DEFINED
|
|
#define SkFontStyle_DEFINED
|
|
|
|
#include "SkTypes.h"
|
|
|
|
class SK_API SkFontStyle {
|
|
public:
|
|
enum Weight {
|
|
kThin_Weight = 100,
|
|
kExtraLight_Weight = 200,
|
|
kLight_Weight = 300,
|
|
kNormal_Weight = 400,
|
|
kMedium_Weight = 500,
|
|
kSemiBold_Weight = 600,
|
|
kBold_Weight = 700,
|
|
kExtraBold_Weight = 800,
|
|
kBlack_Weight = 900
|
|
};
|
|
|
|
enum Width {
|
|
kUltraCondensed_Width = 1,
|
|
kExtraCondensed_Width = 2,
|
|
kCondensed_Width = 3,
|
|
kSemiCondensed_Width = 4,
|
|
kNormal_Width = 5,
|
|
kSemiExpanded_Width = 6,
|
|
kExpanded_Width = 7,
|
|
kExtraExpanded_Width = 8,
|
|
kUltaExpanded_Width = 9
|
|
};
|
|
|
|
enum Slant {
|
|
kUpright_Slant,
|
|
kItalic_Slant,
|
|
};
|
|
|
|
SkFontStyle();
|
|
SkFontStyle(int weight, int width, Slant);
|
|
|
|
static SkFontStyle FromOldStyle(unsigned oldStyle);
|
|
|
|
bool operator==(const SkFontStyle& rhs) const {
|
|
return fUnion.fU32 == rhs.fUnion.fU32;
|
|
}
|
|
|
|
int weight() const { return fUnion.fR.fWeight; }
|
|
int width() const { return fUnion.fR.fWidth; }
|
|
Slant slant() const { return (Slant)fUnion.fR.fSlant; }
|
|
|
|
bool isItalic() const {
|
|
return kItalic_Slant == fUnion.fR.fSlant;
|
|
}
|
|
|
|
private:
|
|
union {
|
|
struct {
|
|
uint16_t fWeight; // 100 .. 900
|
|
uint8_t fWidth; // 1 .. 9
|
|
uint8_t fSlant; // 0 .. 2
|
|
} fR;
|
|
uint32_t fU32;
|
|
} fUnion;
|
|
};
|
|
|
|
#endif
|