1ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Leviennamespace android {
2ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
3ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levienclass MinikinFontSkia : public MinikinFont {
4ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levienpublic:
5ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    explicit MinikinFontSkia(SkTypeface *typeface);
6ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
7ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    ~MinikinFontSkia();
8ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
9ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    bool GetGlyph(uint32_t codepoint, uint32_t *glyph) const;
10ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
11ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    float GetHorizontalAdvance(uint32_t glyph_id,
12ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien        const MinikinPaint &paint) const;
13ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
14d133eab2a1a59ce4a5b1b3db04ec00dc0dbdf349Raph Levien    void GetBounds(MinikinRect* bounds, uint32_t glyph_id,
15d133eab2a1a59ce4a5b1b3db04ec00dc0dbdf349Raph Levien        const MinikinPaint& paint) const;
16d133eab2a1a59ce4a5b1b3db04ec00dc0dbdf349Raph Levien
17ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    // If buf is NULL, just update size
18ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    bool GetTable(uint32_t tag, uint8_t *buf, size_t *size);
19ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
20ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    int32_t GetUniqueId() const;
21ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
22ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    SkTypeface *GetSkTypeface();
23ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
24ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levienprivate:
25ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien    SkTypeface *mTypeface;
26ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
27ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien};
28ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien
29ecc2d34ac23a497988f21e5f415b53c007b9d8c5Raph Levien}  // namespace android