Index: src/ports/SkFontConfigParser_android.h |
diff --git a/src/ports/SkFontConfigParser_android.h b/src/ports/SkFontConfigParser_android.h |
index 40b645287a4039d7a2d885fccb147c0fe0e36a5f..117a1086fb90872303f467f9152f223d8ad18319 100644 |
--- a/src/ports/SkFontConfigParser_android.h |
+++ b/src/ports/SkFontConfigParser_android.h |
@@ -8,18 +8,62 @@ |
#ifndef SKFONTCONFIGPARSER_ANDROID_H_ |
#define SKFONTCONFIGPARSER_ANDROID_H_ |
-#include "SkTypes.h" |
- |
-#include "SkPaintOptionsAndroid.h" |
#include "SkString.h" |
#include "SkTDArray.h" |
+/** \class SkLanguage |
+ |
+ The SkLanguage class represents a human written language, and is used by |
+ text draw operations to determine which glyph to draw when drawing |
+ characters with variants (ie Han-derived characters). |
+*/ |
+class SkLanguage { |
+public: |
+ SkLanguage() { } |
+ SkLanguage(const SkString& tag) : fTag(tag) { } |
+ SkLanguage(const char* tag) : fTag(tag) { } |
+ SkLanguage(const char* tag, size_t len) : fTag(tag, len) { } |
+ SkLanguage(const SkLanguage& b) : fTag(b.fTag) { } |
+ |
+ /** Gets a BCP 47 language identifier for this SkLanguage. |
+ @return a BCP 47 language identifier representing this language |
+ */ |
+ const SkString& getTag() const { return fTag; } |
+ |
+ /** Performs BCP 47 fallback to return an SkLanguage one step more general. |
+ @return an SkLanguage one step more general |
+ */ |
+ SkLanguage getParent() const; |
+ |
+ bool operator==(const SkLanguage& b) const { |
+ return fTag == b.fTag; |
+ } |
+ bool operator!=(const SkLanguage& b) const { |
+ return fTag != b.fTag; |
+ } |
+ SkLanguage& operator=(const SkLanguage& b) { |
+ fTag = b.fTag; |
+ return *this; |
+ } |
+ |
+private: |
+ //! BCP 47 language identifier |
+ SkString fTag; |
+}; |
+ |
+enum FontVariants { |
+ kDefault_FontVariant = 0x01, |
+ kCompact_FontVariant = 0x02, |
+ kElegant_FontVariant = 0x04, |
+ kLast_FontVariant = kElegant_FontVariant, |
+}; |
+typedef uint32_t FontVariant; |
tomhudson
2014/08/13 19:52:28
Why are these a bitfield masquerading as an enum?
djsollen
2014/08/13 20:00:22
The initial intent was to match the values used by
|
+ |
struct FontFileInfo { |
FontFileInfo() : fIndex(0), fWeight(0) { } |
SkString fFileName; |
int fIndex; |
- SkPaintOptionsAndroid fPaintOptions; |
int fWeight; |
}; |
@@ -32,14 +76,14 @@ struct FontFileInfo { |
*/ |
struct FontFamily { |
FontFamily() |
- : fVariant(SkPaintOptionsAndroid::kDefault_Variant) |
+ : fVariant(kDefault_FontVariant) |
, fOrder(-1) |
, fIsFallbackFont(false) { } |
SkTArray<SkString> fNames; |
SkTArray<FontFileInfo> fFonts; |
SkLanguage fLanguage; |
- SkPaintOptionsAndroid::FontVariant fVariant; |
+ FontVariant fVariant; |
int fOrder; // internal to SkFontConfigParser |
bool fIsFallbackFont; |
}; |