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

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

Issue 488143002: Replace SkTypeface::Style with SkFontStyle. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Add expectations, remove whitespace. Created 6 years, 2 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 | « include/core/SkFontStyle.h ('k') | include/ports/SkFontStyle.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkTypeface_DEFINED 10 #ifndef SkTypeface_DEFINED
11 #define SkTypeface_DEFINED 11 #define SkTypeface_DEFINED
12 12
13 #include "SkAdvancedTypefaceMetrics.h" 13 #include "SkAdvancedTypefaceMetrics.h"
14 #include "SkFontStyle.h"
14 #include "SkWeakRefCnt.h" 15 #include "SkWeakRefCnt.h"
15 16
16 class SkDescriptor; 17 class SkDescriptor;
17 class SkFontDescriptor; 18 class SkFontDescriptor;
18 class SkScalerContext; 19 class SkScalerContext;
19 struct SkScalerContextRec; 20 struct SkScalerContextRec;
20 class SkStream; 21 class SkStream;
21 class SkAdvancedTypefaceMetrics; 22 class SkAdvancedTypefaceMetrics;
22 class SkWStream; 23 class SkWStream;
23 24
(...skipping 18 matching lines...) Expand all
42 */ 43 */
43 enum Style { 44 enum Style {
44 kNormal = 0, 45 kNormal = 0,
45 kBold = 0x01, 46 kBold = 0x01,
46 kItalic = 0x02, 47 kItalic = 0x02,
47 48
48 // helpers 49 // helpers
49 kBoldItalic = 0x03 50 kBoldItalic = 0x03
50 }; 51 };
51 52
52 /** Returns the typeface's intrinsic style attributes 53 /** Returns the typeface's intrinsic style attributes. */
53 */ 54 SkFontStyle fontStyle() const {
54 Style style() const { return fStyle; } 55 return fStyle;
56 }
55 57
56 /** Returns true if getStyle() has the kBold bit set. 58 /** Returns the typeface's intrinsic style attributes.
57 */ 59 * @deprecated use fontStyle() instead.
58 bool isBold() const { return (fStyle & kBold) != 0; } 60 */
61 Style style() const {
62 return static_cast<Style>(
63 (fStyle.weight() >= SkFontStyle::kSemiBold_Weight ? kBold : kNormal) |
64 (fStyle.slant() != SkFontStyle::kUpright_Slant ? kItalic : kNormal) );
65 }
59 66
60 /** Returns true if getStyle() has the kItalic bit set. 67 /** Returns true if style() has the kBold bit set. */
61 */ 68 bool isBold() const { return fStyle.weight() >= SkFontStyle::kSemiBold_Weigh t; }
62 bool isItalic() const { return (fStyle & kItalic) != 0; } 69
70 /** Returns true if style() has the kItalic bit set. */
71 bool isItalic() const { return fStyle.slant() != SkFontStyle::kUpright_Slant ; }
63 72
64 /** Returns true if the typeface claims to be fixed-pitch. 73 /** Returns true if the typeface claims to be fixed-pitch.
65 * This is a style bit, advance widths may vary even if this returns true. 74 * This is a style bit, advance widths may vary even if this returns true.
66 */ 75 */
67 bool isFixedPitch() const { return fIsFixedPitch; } 76 bool isFixedPitch() const { return fIsFixedPitch; }
68 77
69 /** Return a 32bit value for this typeface, unique for the underlying font 78 /** Return a 32bit value for this typeface, unique for the underlying font
70 data. Will never return 0. 79 data. Will never return 0.
71 */ 80 */
72 SkFontID uniqueID() const { return fUniqueID; } 81 SkFontID uniqueID() const { return fUniqueID; }
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 this->onFilterRec(rec); 287 this->onFilterRec(rec);
279 } 288 }
280 // PRIVATE / EXPERIMENTAL -- do not call 289 // PRIVATE / EXPERIMENTAL -- do not call
281 void getFontDescriptor(SkFontDescriptor* desc, bool* isLocal) const { 290 void getFontDescriptor(SkFontDescriptor* desc, bool* isLocal) const {
282 this->onGetFontDescriptor(desc, isLocal); 291 this->onGetFontDescriptor(desc, isLocal);
283 } 292 }
284 293
285 protected: 294 protected:
286 /** uniqueID must be unique and non-zero 295 /** uniqueID must be unique and non-zero
287 */ 296 */
288 SkTypeface(Style style, SkFontID uniqueID, bool isFixedPitch = false); 297 SkTypeface(const SkFontStyle& style, SkFontID uniqueID, bool isFixedPitch = false);
289 virtual ~SkTypeface(); 298 virtual ~SkTypeface();
290 299
291 /** Sets the fixedPitch bit. If used, must be called in the constructor. */ 300 /** Sets the fixedPitch bit. If used, must be called in the constructor. */
292 void setIsFixedPitch(bool isFixedPitch) { fIsFixedPitch = isFixedPitch; } 301 void setIsFixedPitch(bool isFixedPitch) { fIsFixedPitch = isFixedPitch; }
293 302
294 friend class SkScalerContext; 303 friend class SkScalerContext;
295 static SkTypeface* GetDefaultTypeface(Style style = SkTypeface::kNormal); 304 static SkTypeface* GetDefaultTypeface(Style style = SkTypeface::kNormal);
296 305
297 virtual SkScalerContext* onCreateScalerContext(const SkDescriptor*) const = 0; 306 virtual SkScalerContext* onCreateScalerContext(const SkDescriptor*) const = 0;
298 virtual void onFilterRec(SkScalerContextRec*) const = 0; 307 virtual void onFilterRec(SkScalerContextRec*) const = 0;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 SkAdvancedTypefaceMetrics* getAdvancedTypefaceMetrics( 353 SkAdvancedTypefaceMetrics* getAdvancedTypefaceMetrics(
345 SkAdvancedTypefaceMetrics::PerGlyphInfo perGlyphInfo, 354 SkAdvancedTypefaceMetrics::PerGlyphInfo perGlyphInfo,
346 const uint32_t* glyphIDs = NULL, 355 const uint32_t* glyphIDs = NULL,
347 uint32_t glyphIDsCount = 0) const; 356 uint32_t glyphIDsCount = 0) const;
348 357
349 private: 358 private:
350 static SkTypeface* CreateDefault(int style); // SkLazyPtr requires an int, not a Style. 359 static SkTypeface* CreateDefault(int style); // SkLazyPtr requires an int, not a Style.
351 static void DeleteDefault(SkTypeface*); 360 static void DeleteDefault(SkTypeface*);
352 361
353 SkFontID fUniqueID; 362 SkFontID fUniqueID;
354 Style fStyle; 363 SkFontStyle fStyle;
355 bool fIsFixedPitch; 364 bool fIsFixedPitch;
356 365
357 friend class SkPaint; 366 friend class SkPaint;
358 friend class SkGlyphCache; // GetDefaultTypeface 367 friend class SkGlyphCache; // GetDefaultTypeface
359 // just so deprecated fonthost can call protected methods 368 // just so deprecated fonthost can call protected methods
360 friend class SkFontHost; 369 friend class SkFontHost;
361 370
362 typedef SkWeakRefCnt INHERITED; 371 typedef SkWeakRefCnt INHERITED;
363 }; 372 };
364 373
365 #endif 374 #endif
OLDNEW
« no previous file with comments | « include/core/SkFontStyle.h ('k') | include/ports/SkFontStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698