| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  * Copyright 2010 Google Inc. |  | 
| 3  * |  | 
| 4  * Use of this source code is governed by a BSD-style license that can be |  | 
| 5  * found in the LICENSE file. |  | 
| 6  */ |  | 
| 7 |  | 
| 8 #ifndef GrFontScaler_DEFINED |  | 
| 9 #define GrFontScaler_DEFINED |  | 
| 10 |  | 
| 11 #include "GrGlyph.h" |  | 
| 12 #include "GrTypes.h" |  | 
| 13 |  | 
| 14 #include "SkDescriptor.h" |  | 
| 15 |  | 
| 16 class SkPath; |  | 
| 17 |  | 
| 18 /* |  | 
| 19  *  Wrapper class to turn a font cache descriptor into a key |  | 
| 20  *  for GrFontScaler-related lookups |  | 
| 21  */ |  | 
| 22 class GrFontDescKey : public SkRefCnt { |  | 
| 23 public: |  | 
| 24     SK_DECLARE_INST_COUNT(GrFontDescKey) |  | 
| 25 |  | 
| 26     typedef uint32_t Hash; |  | 
| 27 |  | 
| 28     explicit GrFontDescKey(const SkDescriptor& desc); |  | 
| 29     virtual ~GrFontDescKey(); |  | 
| 30 |  | 
| 31     Hash getHash() const { return fHash; } |  | 
| 32 |  | 
| 33     bool operator<(const GrFontDescKey& rh) const { |  | 
| 34         return fHash < rh.fHash || (fHash == rh.fHash && this->lt(rh)); |  | 
| 35     } |  | 
| 36     bool operator==(const GrFontDescKey& rh) const { |  | 
| 37         return fHash == rh.fHash && this->eq(rh); |  | 
| 38     } |  | 
| 39 |  | 
| 40 private: |  | 
| 41     // helper functions for comparisons |  | 
| 42     bool lt(const GrFontDescKey& rh) const; |  | 
| 43     bool eq(const GrFontDescKey& rh) const; |  | 
| 44 |  | 
| 45     SkDescriptor* fDesc; |  | 
| 46     enum { |  | 
| 47         kMaxStorageInts = 16 |  | 
| 48     }; |  | 
| 49     uint32_t fStorage[kMaxStorageInts]; |  | 
| 50     const Hash fHash; |  | 
| 51 |  | 
| 52     typedef SkRefCnt INHERITED; |  | 
| 53 }; |  | 
| 54 |  | 
| 55 /* |  | 
| 56  *  This is Gr's interface to the host platform's font scaler. |  | 
| 57  * |  | 
| 58  *  The client is responsible for instantiating this. The instance is created |  | 
| 59  *  for a specific font+size+matrix. |  | 
| 60  */ |  | 
| 61 class GrFontScaler : public SkRefCnt { |  | 
| 62 public: |  | 
| 63     SK_DECLARE_INST_COUNT(GrFontScaler) |  | 
| 64 |  | 
| 65     explicit GrFontScaler(SkGlyphCache* strike); |  | 
| 66     virtual ~GrFontScaler(); |  | 
| 67 |  | 
| 68     const GrFontDescKey* getKey(); |  | 
| 69     GrMaskFormat getMaskFormat() const; |  | 
| 70     GrMaskFormat getPackedGlyphMaskFormat(GrGlyph::PackedID) const; |  | 
| 71     bool getPackedGlyphBounds(GrGlyph::PackedID, SkIRect* bounds); |  | 
| 72     bool getPackedGlyphImage(GrGlyph::PackedID, int width, int height, |  | 
| 73                                      int rowBytes, void* image); |  | 
| 74     bool getPackedGlyphDFBounds(GrGlyph::PackedID, SkIRect* bounds); |  | 
| 75     bool getPackedGlyphDFImage(GrGlyph::PackedID, int width, int height, |  | 
| 76                                        void* image); |  | 
| 77     bool getGlyphPath(uint16_t glyphID, SkPath*); |  | 
| 78 |  | 
| 79 private: |  | 
| 80     SkGlyphCache*  fStrike; |  | 
| 81     GrFontDescKey* fKey; |  | 
| 82 |  | 
| 83     typedef SkRefCnt INHERITED; |  | 
| 84 }; |  | 
| 85 |  | 
| 86 #endif |  | 
| OLD | NEW | 
|---|