| OLD | NEW | 
|---|
| 1 | 1 | 
| 2 /* | 2 /* | 
| 3  * Copyright 2010 Google Inc. | 3  * Copyright 2010 Google Inc. | 
| 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 "GrTemplates.h" | 10 #include "GrTemplates.h" | 
| 11 #include "GrFontScaler.h" | 11 #include "GrFontScaler.h" | 
| 12 #include "SkDescriptor.h" | 12 #include "SkDescriptor.h" | 
| 13 #include "SkDistanceFieldGen.h" | 13 #include "SkDistanceFieldGen.h" | 
| 14 #include "SkGlyphCache.h" | 14 #include "SkGlyphCache.h" | 
| 15 | 15 | 
| 16 /////////////////////////////////////////////////////////////////////////////// | 16 /////////////////////////////////////////////////////////////////////////////// | 
| 17 | 17 | 
| 18 GrFontDescKey::GrFontDescKey(const SkDescriptor& desc) : fHash(desc.getChecksum(
     )) { |  | 
| 19     size_t size = desc.getLength(); |  | 
| 20     if (size <= sizeof(fStorage)) { |  | 
| 21         fDesc = GrTCast<SkDescriptor*>(fStorage); |  | 
| 22     } else { |  | 
| 23         fDesc = SkDescriptor::Alloc(size); |  | 
| 24     } |  | 
| 25     memcpy(fDesc, &desc, size); |  | 
| 26 } |  | 
| 27 |  | 
| 28 GrFontDescKey::~GrFontDescKey() { |  | 
| 29     if (fDesc != GrTCast<SkDescriptor*>(fStorage)) { |  | 
| 30         SkDescriptor::Free(fDesc); |  | 
| 31     } |  | 
| 32 } |  | 
| 33 |  | 
| 34 bool GrFontDescKey::lt(const GrFontDescKey& rh) const { |  | 
| 35     const SkDescriptor* srcDesc = (&rh)->fDesc; |  | 
| 36     size_t lenLH = fDesc->getLength(); |  | 
| 37     size_t lenRH = srcDesc->getLength(); |  | 
| 38     int cmp = memcmp(fDesc, srcDesc, SkTMin<size_t>(lenLH, lenRH)); |  | 
| 39     if (0 == cmp) { |  | 
| 40         return lenLH < lenRH; |  | 
| 41     } else { |  | 
| 42         return cmp < 0; |  | 
| 43     } |  | 
| 44 } |  | 
| 45 |  | 
| 46 bool GrFontDescKey::eq(const GrFontDescKey& rh) const { |  | 
| 47     const SkDescriptor* srcDesc = (&rh)->fDesc; |  | 
| 48     return fDesc->equals(*srcDesc); |  | 
| 49 } |  | 
| 50 |  | 
| 51 /////////////////////////////////////////////////////////////////////////////// |  | 
| 52 |  | 
| 53 GrFontScaler::GrFontScaler(SkGlyphCache* strike) { | 18 GrFontScaler::GrFontScaler(SkGlyphCache* strike) { | 
| 54     fStrike = strike; | 19     fStrike = strike; | 
| 55     fKey = NULL; | 20     fKey = NULL; | 
| 56 } | 21 } | 
| 57 | 22 | 
| 58 GrFontScaler::~GrFontScaler() { | 23 GrFontScaler::~GrFontScaler() { | 
| 59     SkSafeUnref(fKey); | 24     SkSafeUnref(fKey); | 
| 60 } | 25 } | 
| 61 | 26 | 
| 62 GrMaskFormat GrFontScaler::getMaskFormat() const { | 27 GrMaskFormat GrFontScaler::getMaskFormat() const { | 
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 233 bool GrFontScaler::getGlyphPath(uint16_t glyphID, SkPath* path) { | 198 bool GrFontScaler::getGlyphPath(uint16_t glyphID, SkPath* path) { | 
| 234 | 199 | 
| 235     const SkGlyph& glyph = fStrike->getGlyphIDMetrics(glyphID); | 200     const SkGlyph& glyph = fStrike->getGlyphIDMetrics(glyphID); | 
| 236     const SkPath* skPath = fStrike->findPath(glyph); | 201     const SkPath* skPath = fStrike->findPath(glyph); | 
| 237     if (skPath) { | 202     if (skPath) { | 
| 238         *path = *skPath; | 203         *path = *skPath; | 
| 239         return true; | 204         return true; | 
| 240     } | 205     } | 
| 241     return false; | 206     return false; | 
| 242 } | 207 } | 
| OLD | NEW | 
|---|