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 "GrKey.h" 13 14 class SkPath; 15 16 /** 17 * This is a virtual base class which Gr's interface to the host platform's 18 * font scaler. 19 * 20 * The client is responsible for subclassing, and instantiating this. The 21 * instance is create for a specific font+size+matrix. 22 */ 23 class GrFontScaler : public SkRefCnt { 24 public: 25 SK_DECLARE_INST_COUNT(GrFontScaler) 26 27 virtual const GrKey* getKey() = 0; 28 virtual GrMaskFormat getMaskFormat() = 0; 29 virtual bool getPackedGlyphBounds(GrGlyph::PackedID, SkIRect* bounds) = 0; 30 virtual bool getPackedGlyphImage(GrGlyph::PackedID, int width, int height, 31 int rowBytes, void* image) = 0; 32 virtual bool getGlyphPath(uint16_t glyphID, SkPath*) = 0; 33 34 private: 35 typedef SkRefCnt INHERITED; 36 }; 37 38 #endif 39