OLD | NEW |
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 #include <vector> | 9 #include <vector> |
10 #ifdef SK_BUILD_FOR_MAC | 10 #ifdef SK_BUILD_FOR_MAC |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 size_t length, void* data) const SK_OVERRIDE; | 460 size_t length, void* data) const SK_OVERRIDE; |
461 virtual SkScalerContext* onCreateScalerContext(const SkDescriptor*) const SK
_OVERRIDE; | 461 virtual SkScalerContext* onCreateScalerContext(const SkDescriptor*) const SK
_OVERRIDE; |
462 virtual void onFilterRec(SkScalerContextRec*) const SK_OVERRIDE; | 462 virtual void onFilterRec(SkScalerContextRec*) const SK_OVERRIDE; |
463 virtual void onGetFontDescriptor(SkFontDescriptor*, bool*) const SK_OVERRIDE
; | 463 virtual void onGetFontDescriptor(SkFontDescriptor*, bool*) const SK_OVERRIDE
; |
464 virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( | 464 virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( |
465 SkAdvancedTypefaceMetrics::PerGlyphInfo, | 465 SkAdvancedTypefaceMetrics::PerGlyphInfo, |
466 const uint32_t*, uint32_t) const SK_OVERRIDE; | 466 const uint32_t*, uint32_t) const SK_OVERRIDE; |
467 virtual int onCharsToGlyphs(const void* chars, Encoding, uint16_t glyphs[], | 467 virtual int onCharsToGlyphs(const void* chars, Encoding, uint16_t glyphs[], |
468 int glyphCount) const SK_OVERRIDE; | 468 int glyphCount) const SK_OVERRIDE; |
469 virtual int onCountGlyphs() const SK_OVERRIDE; | 469 virtual int onCountGlyphs() const SK_OVERRIDE; |
470 virtual SkTypeface* onRefMatchingStyle(Style) const SK_OVERRIDE; | |
471 | 470 |
472 private: | 471 private: |
473 | 472 |
474 typedef SkTypeface INHERITED; | 473 typedef SkTypeface INHERITED; |
475 }; | 474 }; |
476 | 475 |
477 static SkTypeface* NewFromFontRef(CTFontRef fontRef, const char name[]) { | 476 static SkTypeface* NewFromFontRef(CTFontRef fontRef, const char name[]) { |
478 SkASSERT(fontRef); | 477 SkASSERT(fontRef); |
479 bool isFixedPitch; | 478 bool isFixedPitch; |
480 SkTypeface::Style style = computeStyleBits(fontRef, &isFixedPitch); | 479 SkTypeface::Style style = computeStyleBits(fontRef, &isFixedPitch); |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 if (face) { | 625 if (face) { |
627 SkTypefaceCache::Add(face, style); | 626 SkTypefaceCache::Add(face, style); |
628 } else { | 627 } else { |
629 face = GetDefaultFace(); | 628 face = GetDefaultFace(); |
630 face->ref(); | 629 face->ref(); |
631 } | 630 } |
632 } | 631 } |
633 return face; | 632 return face; |
634 } | 633 } |
635 | 634 |
636 SkTypeface* SkTypeface_Mac::onRefMatchingStyle(Style styleBits) const { | |
637 return create_typeface(this, NULL, styleBits); | |
638 } | |
639 | |
640 /////////////////////////////////////////////////////////////////////////////// | 635 /////////////////////////////////////////////////////////////////////////////// |
641 | 636 |
642 /** GlyphRect is in FUnits (em space, y up). */ | 637 /** GlyphRect is in FUnits (em space, y up). */ |
643 struct GlyphRect { | 638 struct GlyphRect { |
644 int16_t fMinX; | 639 int16_t fMinX; |
645 int16_t fMinY; | 640 int16_t fMinY; |
646 int16_t fMaxX; | 641 int16_t fMaxX; |
647 int16_t fMaxY; | 642 int16_t fMaxY; |
648 }; | 643 }; |
649 | 644 |
(...skipping 1658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2308 } | 2303 } |
2309 | 2304 |
2310 virtual SkTypeface* onLegacyCreateTypeface(const char familyName[], | 2305 virtual SkTypeface* onLegacyCreateTypeface(const char familyName[], |
2311 unsigned styleBits) SK_OVERRIDE { | 2306 unsigned styleBits) SK_OVERRIDE { |
2312 return create_typeface(NULL, familyName, (SkTypeface::Style)styleBits); | 2307 return create_typeface(NULL, familyName, (SkTypeface::Style)styleBits); |
2313 } | 2308 } |
2314 }; | 2309 }; |
2315 | 2310 |
2316 /////////////////////////////////////////////////////////////////////////////// | 2311 /////////////////////////////////////////////////////////////////////////////// |
2317 | 2312 |
2318 #ifndef SK_FONTHOST_USES_FONTMGR | |
2319 | |
2320 SkTypeface* SkFontHost::CreateTypeface(const SkTypeface* familyFace, | |
2321 const char familyName[], | |
2322 SkTypeface::Style style) { | |
2323 return create_typeface(familyFace, familyName, style); | |
2324 } | |
2325 | |
2326 SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) { | |
2327 AutoCFRelease<CGDataProviderRef> provider(SkCreateDataProviderFromStream(str
eam)); | |
2328 if (NULL == provider) { | |
2329 return NULL; | |
2330 } | |
2331 return create_from_dataProvider(provider); | |
2332 } | |
2333 | |
2334 SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) { | |
2335 AutoCFRelease<CGDataProviderRef> provider(CGDataProviderCreateWithFilename(p
ath)); | |
2336 if (NULL == provider) { | |
2337 return NULL; | |
2338 } | |
2339 return create_from_dataProvider(provider); | |
2340 } | |
2341 | |
2342 #endif | |
2343 | |
2344 SkFontMgr* SkFontMgr::Factory() { | 2313 SkFontMgr* SkFontMgr::Factory() { |
2345 return SkNEW(SkFontMgr_Mac); | 2314 return SkNEW(SkFontMgr_Mac); |
2346 } | 2315 } |
2347 #endif | 2316 #endif |
OLD | NEW |