OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 The Android Open Source Project | 3 * Copyright 2011 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 #include "SkFontHost.h" | 10 #include "SkFontHost.h" |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 detach_and_delete_family(family); | 253 detach_and_delete_family(family); |
254 } | 254 } |
255 } | 255 } |
256 | 256 |
257 bool isSysFont() const { return fIsSysFont; } | 257 bool isSysFont() const { return fIsSysFont; } |
258 | 258 |
259 virtual SkStream* openStream() = 0; | 259 virtual SkStream* openStream() = 0; |
260 virtual const char* getUniqueString() const = 0; | 260 virtual const char* getUniqueString() const = 0; |
261 virtual const char* getFilePath() const = 0; | 261 virtual const char* getFilePath() const = 0; |
262 | 262 |
| 263 protected: |
| 264 virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( |
| 265 SkAdvancedTypefaceMetrics::PerGlyphInfo, |
| 266 const uint32_t*, |
| 267 uint32_t) const SK_OVERRIDE { |
| 268 return NULL; |
| 269 } |
| 270 |
263 private: | 271 private: |
264 bool fIsSysFont; | 272 bool fIsSysFont; |
265 | 273 |
266 typedef SkTypeface INHERITED; | 274 typedef SkTypeface INHERITED; |
267 }; | 275 }; |
268 | 276 |
269 /////////////////////////////////////////////////////////////////////////////// | 277 /////////////////////////////////////////////////////////////////////////////// |
270 | 278 |
271 class StreamTypeface : public FamilyTypeface { | 279 class StreamTypeface : public FamilyTypeface { |
272 public: | 280 public: |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 FamilyTypeface* tf = (FamilyTypeface*)find_from_uniqueID(fontID); | 553 FamilyTypeface* tf = (FamilyTypeface*)find_from_uniqueID(fontID); |
546 SkStream* stream = tf ? tf->openStream() : NULL; | 554 SkStream* stream = tf ? tf->openStream() : NULL; |
547 | 555 |
548 if (stream && stream->getLength() == 0) { | 556 if (stream && stream->getLength() == 0) { |
549 stream->unref(); | 557 stream->unref(); |
550 stream = NULL; | 558 stream = NULL; |
551 } | 559 } |
552 return stream; | 560 return stream; |
553 } | 561 } |
554 | 562 |
555 #if 0 | |
556 SkAdvancedTypefaceMetrics* SkFontHost::GetAdvancedTypefaceMetrics( | |
557 uint32_t fontID, | |
558 SkAdvancedTypefaceMetrics::PerGlyphInfo perGlyphInfo, | |
559 const uint32_t* glyphIDs, | |
560 uint32_t glyphIDsCount) { | |
561 SkDEBUGFAIL("SkFontHost::GetAdvancedTypefaceMetrics unimplemented"); | |
562 return NULL; | |
563 } | |
564 #endif | |
565 | |
566 size_t SkFontHost::GetFileName(SkFontID fontID, char path[], size_t length, | 563 size_t SkFontHost::GetFileName(SkFontID fontID, char path[], size_t length, |
567 int32_t* index) { | 564 int32_t* index) { |
568 SkAutoMutexAcquire ac(gFamilyMutex); | 565 SkAutoMutexAcquire ac(gFamilyMutex); |
569 | 566 |
570 FamilyTypeface* tf = (FamilyTypeface*)find_from_uniqueID(fontID); | 567 FamilyTypeface* tf = (FamilyTypeface*)find_from_uniqueID(fontID); |
571 const char* src = tf ? tf->getFilePath() : NULL; | 568 const char* src = tf ? tf->getFilePath() : NULL; |
572 | 569 |
573 if (src) { | 570 if (src) { |
574 size_t size = strlen(src); | 571 size_t size = strlen(src); |
575 if (path) { | 572 if (path) { |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 return SkNEW_ARGS(StreamTypeface, (style, false, NULL, stream)); | 610 return SkNEW_ARGS(StreamTypeface, (style, false, NULL, stream)); |
614 } else { | 611 } else { |
615 return NULL; | 612 return NULL; |
616 } | 613 } |
617 } | 614 } |
618 | 615 |
619 SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) { | 616 SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) { |
620 SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path)); | 617 SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path)); |
621 return stream.get() ? SkFontHost::CreateTypefaceFromStream(stream) : NULL; | 618 return stream.get() ? SkFontHost::CreateTypefaceFromStream(stream) : NULL; |
622 } | 619 } |
OLD | NEW |