| 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 SkGlyph; |  | 
|  17 class SkPath; |  | 
|  18  |  | 
|  19 /* |  | 
|  20  *  Wrapper class to turn a font cache descriptor into a key  |  | 
|  21  *  for GrFontScaler-related lookups |  | 
|  22  */ |  | 
|  23 class GrFontDescKey : public SkRefCnt { |  | 
|  24 public: |  | 
|  25     explicit GrFontDescKey(const SkDescriptor& desc) : fDesc(desc), fHash(desc.g
    etChecksum()) {} |  | 
|  26      |  | 
|  27     uint32_t getHash() const { return fHash; } |  | 
|  28  |  | 
|  29     bool operator==(const GrFontDescKey& rh) const { |  | 
|  30         return fHash == rh.fHash && fDesc.getDesc()->equals(*rh.fDesc.getDesc())
    ; |  | 
|  31     } |  | 
|  32      |  | 
|  33 private: |  | 
|  34     SkAutoDescriptor fDesc; |  | 
|  35     uint32_t fHash; |  | 
|  36      |  | 
|  37     typedef SkRefCnt INHERITED; |  | 
|  38 }; |  | 
|  39  |  | 
|  40 /* |  | 
|  41  *  This is Gr's interface to the host platform's font scaler. |  | 
|  42  * |  | 
|  43  *  The client is responsible for instantiating this. The instance is created  |  | 
|  44  *  for a specific font+size+matrix. |  | 
|  45  */ |  | 
|  46 class GrFontScaler : public SkRefCnt { |  | 
|  47 public: |  | 
|  48     explicit GrFontScaler(SkGlyphCache* strike); |  | 
|  49     virtual ~GrFontScaler(); |  | 
|  50      |  | 
|  51     const GrFontDescKey* getKey(); |  | 
|  52     GrMaskFormat getMaskFormat() const; |  | 
|  53     GrMaskFormat getPackedGlyphMaskFormat(const SkGlyph&) const; |  | 
|  54     bool getPackedGlyphBounds(const SkGlyph&, SkIRect* bounds); |  | 
|  55     bool getPackedGlyphImage(const SkGlyph&, int width, int height, int rowBytes
    , |  | 
|  56                              GrMaskFormat expectedMaskFormat, void* image); |  | 
|  57     bool getPackedGlyphDFBounds(const SkGlyph&, SkIRect* bounds); |  | 
|  58     bool getPackedGlyphDFImage(const SkGlyph&, int width, int height, void* imag
    e); |  | 
|  59     const SkPath* getGlyphPath(const SkGlyph&); |  | 
|  60     const SkGlyph& grToSkGlyph(GrGlyph::PackedID); |  | 
|  61      |  | 
|  62 private: |  | 
|  63     SkGlyphCache*  fStrike; |  | 
|  64     GrFontDescKey* fKey; |  | 
|  65      |  | 
|  66     typedef SkRefCnt INHERITED; |  | 
|  67 }; |  | 
|  68  |  | 
|  69 #endif |  | 
| OLD | NEW |