Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: src/ports/SkFontConfigParser_android.h

Issue 447873003: Remove SkPaintOptionsAndroid (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: typo Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The Android Open Source Project 2 * Copyright 2011 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SKFONTCONFIGPARSER_ANDROID_H_ 8 #ifndef SKFONTCONFIGPARSER_ANDROID_H_
9 #define SKFONTCONFIGPARSER_ANDROID_H_ 9 #define SKFONTCONFIGPARSER_ANDROID_H_
10 10
11 #include "SkTypes.h"
12
13 #include "SkPaintOptionsAndroid.h"
14 #include "SkString.h" 11 #include "SkString.h"
15 #include "SkTDArray.h" 12 #include "SkTDArray.h"
16 13
14 /** \class SkLanguage
15
16 The SkLanguage class represents a human written language, and is used by
17 text draw operations to determine which glyph to draw when drawing
18 characters with variants (ie Han-derived characters).
19 */
20 class SkLanguage {
21 public:
22 SkLanguage() { }
23 SkLanguage(const SkString& tag) : fTag(tag) { }
24 SkLanguage(const char* tag) : fTag(tag) { }
25 SkLanguage(const char* tag, size_t len) : fTag(tag, len) { }
26 SkLanguage(const SkLanguage& b) : fTag(b.fTag) { }
27
28 /** Gets a BCP 47 language identifier for this SkLanguage.
29 @return a BCP 47 language identifier representing this language
30 */
31 const SkString& getTag() const { return fTag; }
32
33 /** Performs BCP 47 fallback to return an SkLanguage one step more general.
34 @return an SkLanguage one step more general
35 */
36 SkLanguage getParent() const;
37
38 bool operator==(const SkLanguage& b) const {
39 return fTag == b.fTag;
40 }
41 bool operator!=(const SkLanguage& b) const {
42 return fTag != b.fTag;
43 }
44 SkLanguage& operator=(const SkLanguage& b) {
45 fTag = b.fTag;
46 return *this;
47 }
48
49 private:
50 //! BCP 47 language identifier
51 SkString fTag;
52 };
53
54 enum FontVariants {
55 kDefault_FontVariant = 0x01,
56 kCompact_FontVariant = 0x02,
57 kElegant_FontVariant = 0x04,
58 kLast_FontVariant = kElegant_FontVariant,
59 };
60 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
61
17 struct FontFileInfo { 62 struct FontFileInfo {
18 FontFileInfo() : fIndex(0), fWeight(0) { } 63 FontFileInfo() : fIndex(0), fWeight(0) { }
19 64
20 SkString fFileName; 65 SkString fFileName;
21 int fIndex; 66 int fIndex;
22 SkPaintOptionsAndroid fPaintOptions;
23 int fWeight; 67 int fWeight;
24 }; 68 };
25 69
26 /** 70 /**
27 * A font family provides one or more names for a collection of fonts, each of 71 * A font family provides one or more names for a collection of fonts, each of
28 * which has a different style (normal, italic) or weight (thin, light, bold, 72 * which has a different style (normal, italic) or weight (thin, light, bold,
29 * etc). 73 * etc).
30 * Some fonts may occur in compact variants for use in the user interface. 74 * Some fonts may occur in compact variants for use in the user interface.
31 * Android distinguishes "fallback" fonts to support non-ASCII character sets. 75 * Android distinguishes "fallback" fonts to support non-ASCII character sets.
32 */ 76 */
33 struct FontFamily { 77 struct FontFamily {
34 FontFamily() 78 FontFamily()
35 : fVariant(SkPaintOptionsAndroid::kDefault_Variant) 79 : fVariant(kDefault_FontVariant)
36 , fOrder(-1) 80 , fOrder(-1)
37 , fIsFallbackFont(false) { } 81 , fIsFallbackFont(false) { }
38 82
39 SkTArray<SkString> fNames; 83 SkTArray<SkString> fNames;
40 SkTArray<FontFileInfo> fFonts; 84 SkTArray<FontFileInfo> fFonts;
41 SkLanguage fLanguage; 85 SkLanguage fLanguage;
42 SkPaintOptionsAndroid::FontVariant fVariant; 86 FontVariant fVariant;
43 int fOrder; // internal to SkFontConfigParser 87 int fOrder; // internal to SkFontConfigParser
44 bool fIsFallbackFont; 88 bool fIsFallbackFont;
45 }; 89 };
46 90
47 namespace SkFontConfigParser { 91 namespace SkFontConfigParser {
48 92
49 /** 93 /**
50 * Parses all system font configuration files and returns the results in an 94 * Parses all system font configuration files and returns the results in an
51 * array of FontFamily structures. 95 * array of FontFamily structures.
52 */ 96 */
53 void GetFontFamilies(SkTDArray<FontFamily*> &fontFamilies); 97 void GetFontFamilies(SkTDArray<FontFamily*> &fontFamilies);
54 98
55 /** 99 /**
56 * Parses all test font configuration files and returns the results in an 100 * Parses all test font configuration files and returns the results in an
57 * array of FontFamily structures. 101 * array of FontFamily structures.
58 */ 102 */
59 void GetTestFontFamilies(SkTDArray<FontFamily*> &fontFamilies, 103 void GetTestFontFamilies(SkTDArray<FontFamily*> &fontFamilies,
60 const char* testMainConfigFile, 104 const char* testMainConfigFile,
61 const char* testFallbackConfigFile); 105 const char* testFallbackConfigFile);
62 106
63 } // SkFontConfigParser namespace 107 } // SkFontConfigParser namespace
64 108
65 #endif /* SKFONTCONFIGPARSER_ANDROID_H_ */ 109 #endif /* SKFONTCONFIGPARSER_ANDROID_H_ */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698