Home | History | Annotate | Download | only in gpu
      1 
      2 /*
      3  * Copyright 2010 Google Inc.
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 
     11 #ifndef GrFontScaler_DEFINED
     12 #define GrFontScaler_DEFINED
     13 
     14 #include "GrGlyph.h"
     15 #include "GrKey.h"
     16 
     17 class SkPath;
     18 
     19 /**
     20  *  This is a virtual base class which Gr's interface to the host platform's
     21  *  font scaler.
     22  *
     23  *  The client is responsible for subclassing, and instantiating this. The
     24  *  instance is create for a specific font+size+matrix.
     25  */
     26 class GrFontScaler : public GrRefCnt {
     27 public:
     28     SK_DECLARE_INST_COUNT(GrFontScaler)
     29 
     30     virtual const GrKey* getKey() = 0;
     31     virtual GrMaskFormat getMaskFormat() = 0;
     32     virtual bool getPackedGlyphBounds(GrGlyph::PackedID, GrIRect* bounds) = 0;
     33     virtual bool getPackedGlyphImage(GrGlyph::PackedID, int width, int height,
     34                                      int rowBytes, void* image) = 0;
     35     virtual bool getGlyphPath(uint16_t glyphID, SkPath*) = 0;
     36 
     37 private:
     38     typedef GrRefCnt INHERITED;
     39 };
     40 
     41 #endif
     42