OLD | NEW |
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 #include "SkAdvancedTypefaceMetrics.h" | 8 #include "SkAdvancedTypefaceMetrics.h" |
9 #include "SkEndian.h" | 9 #include "SkEndian.h" |
10 #include "SkFontDescriptor.h" | 10 #include "SkFontDescriptor.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 /////////////////////////////////////////////////////////////////////////////// | 34 /////////////////////////////////////////////////////////////////////////////// |
35 | 35 |
36 class SkEmptyTypeface : public SkTypeface { | 36 class SkEmptyTypeface : public SkTypeface { |
37 public: | 37 public: |
38 static SkEmptyTypeface* Create() { return new SkEmptyTypeface; } | 38 static SkEmptyTypeface* Create() { return new SkEmptyTypeface; } |
39 protected: | 39 protected: |
40 SkEmptyTypeface() : SkTypeface(SkFontStyle(), 0, true) { } | 40 SkEmptyTypeface() : SkTypeface(SkFontStyle(), 0, true) { } |
41 | 41 |
42 SkStreamAsset* onOpenStream(int* ttcIndex) const override { return nullptr;
} | 42 SkStreamAsset* onOpenStream(int* ttcIndex) const override { return nullptr;
} |
43 SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&, | 43 SkScalerContext* onCreateScalerContext(const SkDescriptor*) const override { |
44 const SkDescriptor*) const override { | |
45 return nullptr; | 44 return nullptr; |
46 } | 45 } |
47 void onFilterRec(SkScalerContextRec*) const override { } | 46 void onFilterRec(SkScalerContextRec*) const override { } |
48 virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( | 47 virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( |
49 PerGlyphInfo, | 48 PerGlyphInfo, |
50 const uint32_t*, uint32_t) const override { retu
rn nullptr; } | 49 const uint32_t*, uint32_t) const override { retu
rn nullptr; } |
51 void onGetFontDescriptor(SkFontDescriptor*, bool*) const override { } | 50 void onGetFontDescriptor(SkFontDescriptor*, bool*) const override { } |
52 virtual int onCharsToGlyphs(const void* chars, Encoding encoding, | 51 virtual int onCharsToGlyphs(const void* chars, Encoding encoding, |
53 uint16_t glyphs[], int glyphCount) const overrid
e { | 52 uint16_t glyphs[], int glyphCount) const overrid
e { |
54 if (glyphs && glyphCount > 0) { | 53 if (glyphs && glyphCount > 0) { |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 paint.setLinearText(true); | 341 paint.setLinearText(true); |
343 | 342 |
344 SkScalerContext::Rec rec; | 343 SkScalerContext::Rec rec; |
345 SkScalerContext::MakeRec(paint, nullptr, nullptr, &rec); | 344 SkScalerContext::MakeRec(paint, nullptr, nullptr, &rec); |
346 | 345 |
347 SkAutoDescriptor ad(sizeof(rec) + SkDescriptor::ComputeOverhead(1)); | 346 SkAutoDescriptor ad(sizeof(rec) + SkDescriptor::ComputeOverhead(1)); |
348 SkDescriptor* desc = ad.getDesc(); | 347 SkDescriptor* desc = ad.getDesc(); |
349 desc->init(); | 348 desc->init(); |
350 desc->addEntry(kRec_SkDescriptorTag, sizeof(rec), &rec); | 349 desc->addEntry(kRec_SkDescriptorTag, sizeof(rec), &rec); |
351 | 350 |
352 SkScalerContextEffects noeffects; | 351 SkAutoTDelete<SkScalerContext> ctx(this->createScalerContext(desc, true)); |
353 SkAutoTDelete<SkScalerContext> ctx(this->createScalerContext(noeffects, desc
, true)); | |
354 if (ctx.get()) { | 352 if (ctx.get()) { |
355 SkPaint::FontMetrics fm; | 353 SkPaint::FontMetrics fm; |
356 ctx->getFontMetrics(&fm); | 354 ctx->getFontMetrics(&fm); |
357 bounds->set(fm.fXMin * invTextSize, fm.fTop * invTextSize, | 355 bounds->set(fm.fXMin * invTextSize, fm.fTop * invTextSize, |
358 fm.fXMax * invTextSize, fm.fBottom * invTextSize); | 356 fm.fXMax * invTextSize, fm.fBottom * invTextSize); |
359 return true; | 357 return true; |
360 } | 358 } |
361 return false; | 359 return false; |
362 } | 360 } |
OLD | NEW |