|
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 |