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

Side by Side Diff: include/core/SkTypeface.h

Issue 1818043002: SkTypeface::MakeFromName to take SkFontStyle. (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: CL rebased. Created 4 years, 7 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
« no previous file with comments | « no previous file | src/core/SkTypeface.cpp » ('j') | src/core/SkTypeface.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 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 SkTypeface_DEFINED 8 #ifndef SkTypeface_DEFINED
9 #define SkTypeface_DEFINED 9 #define SkTypeface_DEFINED
10 10
(...skipping 11 matching lines...) Expand all
22 struct SkScalerContextEffects; 22 struct SkScalerContextEffects;
23 class SkStream; 23 class SkStream;
24 class SkStreamAsset; 24 class SkStreamAsset;
25 class SkAdvancedTypefaceMetrics; 25 class SkAdvancedTypefaceMetrics;
26 class SkWStream; 26 class SkWStream;
27 27
28 typedef uint32_t SkFontID; 28 typedef uint32_t SkFontID;
29 /** Machine endian. */ 29 /** Machine endian. */
30 typedef uint32_t SkFontTableTag; 30 typedef uint32_t SkFontTableTag;
31 31
32 #ifdef SK_INTERNAL
33 #ifndef SK_DONT_USE_LEGACY_TYPEFACE_MAKE_FROM_NAME
34 #define SK_DONT_USE_LEGACY_TYPEFACE_MAKE_FROM_NAME
35 #endif
36 #endif
37
32 /** \class SkTypeface 38 /** \class SkTypeface
33 39
34 The SkTypeface class specifies the typeface and intrinsic style of a font. 40 The SkTypeface class specifies the typeface and intrinsic style of a font.
35 This is used in the paint, along with optionally algorithmic settings like 41 This is used in the paint, along with optionally algorithmic settings like
36 textSize, textSkewX, textScaleX, kFakeBoldText_Mask, to specify 42 textSize, textSkewX, textScaleX, kFakeBoldText_Mask, to specify
37 how text appears when drawn (and measured). 43 how text appears when drawn (and measured).
38 44
39 Typeface objects are immutable, and so they can be shared between threads. 45 Typeface objects are immutable, and so they can be shared between threads.
40 */ 46 */
41 class SK_API SkTypeface : public SkWeakRefCnt { 47 class SK_API SkTypeface : public SkWeakRefCnt {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 static bool Equal(const SkTypeface* facea, const SkTypeface* faceb); 99 static bool Equal(const SkTypeface* facea, const SkTypeface* faceb);
94 100
95 /** Returns the default typeface, which is never nullptr. */ 101 /** Returns the default typeface, which is never nullptr. */
96 static sk_sp<SkTypeface> MakeDefault(Style style = SkTypeface::kNormal); 102 static sk_sp<SkTypeface> MakeDefault(Style style = SkTypeface::kNormal);
97 #ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR 103 #ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR
98 static SkTypeface* RefDefault(Style style = SkTypeface::kNormal) { 104 static SkTypeface* RefDefault(Style style = SkTypeface::kNormal) {
99 return MakeDefault(style).release(); 105 return MakeDefault(style).release();
100 } 106 }
101 #endif 107 #endif
102 108
109 /** Creates a new reference to the typeface that most closely matches the
110 requested familyName and fontStyle. This method allows extended font
111 face specifiers as in the SkFontStyle type. Will never return null.
112
113 @param familyName May be NULL. The name of the font family.
114 @param fontStyle The style of the typeface.
115 @return reference to the closest-matching typeface. Call must call
116 unref() when they are done.
117 */
118 static sk_sp<SkTypeface> MakeFromName(const char familyName[],
119 SkFontStyle fontStyle);
120
121 #ifndef SK_DONT_USE_LEGACY_TYPEFACE_MAKE_FROM_NAME
103 /** Return the typeface that most closely matches the requested familyName a nd style. 122 /** Return the typeface that most closely matches the requested familyName a nd style.
104 Pass nullptr as the familyName to request the default font for the reque sted style. 123 Pass nullptr as the familyName to request the default font for the reque sted style.
105 Will never return nullptr. 124 Will never return nullptr.
106 125
107 @param familyName May be NULL. The name of the font family. 126 @param familyName May be NULL. The name of the font family.
108 @param style The style (normal, bold, italic) of the typeface. 127 @param style The style (normal, bold, italic) of the typeface.
109 @return the closest-matching typeface. 128 @return the closest-matching typeface.
110 */ 129 */
111 static sk_sp<SkTypeface> MakeFromName(const char familyName[], Style style); 130 static sk_sp<SkTypeface> MakeFromName(const char familyName[], Style style);
131 #endif
112 #ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR 132 #ifdef SK_SUPPORT_LEGACY_TYPEFACE_PTR
113 static SkTypeface* CreateFromName(const char familyName[], Style style) { 133 static SkTypeface* CreateFromName(const char familyName[], Style style) {
114 return MakeFromName(familyName, style).release(); 134 return MakeFromName(familyName, SkFontStyle::FromOldStyle(style)).releas e();
115 } 135 }
116 #endif 136 #endif
117 137
118 /** Return the typeface that most closely matches the requested typeface and style. 138 /** Return the typeface that most closely matches the requested typeface and style.
119 Use this to pick a new style from the same family of the existing typefa ce. 139 Use this to pick a new style from the same family of the existing typefa ce.
120 If family is nullptr, this selects from the default font's family. 140 If family is nullptr, this selects from the default font's family.
121 141
122 @param family May be NULL. The name of the existing type face. 142 @param family May be NULL. The name of the existing type face.
123 @param s The style (normal, bold, italic) of the type face. 143 @param s The style (normal, bold, italic) of the type face.
124 @return the closest-matching typeface. 144 @return the closest-matching typeface.
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 mutable SkOnce fBoundsOnce; 449 mutable SkOnce fBoundsOnce;
430 bool fIsFixedPitch; 450 bool fIsFixedPitch;
431 451
432 friend class SkPaint; 452 friend class SkPaint;
433 friend class SkGlyphCache; // GetDefaultTypeface 453 friend class SkGlyphCache; // GetDefaultTypeface
434 454
435 typedef SkWeakRefCnt INHERITED; 455 typedef SkWeakRefCnt INHERITED;
436 }; 456 };
437 457
438 #endif 458 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkTypeface.cpp » ('j') | src/core/SkTypeface.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698