17edec140391ce06933cc1506d96bb70093b63c7breed@google.com/*
27edec140391ce06933cc1506d96bb70093b63c7breed@google.com * Copyright 2013 Google Inc.
37edec140391ce06933cc1506d96bb70093b63c7breed@google.com *
47edec140391ce06933cc1506d96bb70093b63c7breed@google.com * Use of this source code is governed by a BSD-style license that can be
57edec140391ce06933cc1506d96bb70093b63c7breed@google.com * found in the LICENSE file.
67edec140391ce06933cc1506d96bb70093b63c7breed@google.com */
77edec140391ce06933cc1506d96bb70093b63c7breed@google.com
87edec140391ce06933cc1506d96bb70093b63c7breed@google.com#ifndef SkGScalerContext_DEFINED
97edec140391ce06933cc1506d96bb70093b63c7breed@google.com#define SkGScalerContext_DEFINED
107edec140391ce06933cc1506d96bb70093b63c7breed@google.com
117edec140391ce06933cc1506d96bb70093b63c7breed@google.com#include "SkScalerContext.h"
127edec140391ce06933cc1506d96bb70093b63c7breed@google.com#include "SkTypeface.h"
137edec140391ce06933cc1506d96bb70093b63c7breed@google.com
147edec140391ce06933cc1506d96bb70093b63c7breed@google.comclass SkGTypeface : public SkTypeface {
157edec140391ce06933cc1506d96bb70093b63c7breed@google.compublic:
167edec140391ce06933cc1506d96bb70093b63c7breed@google.com    SkGTypeface(SkTypeface* proxy, const SkPaint&);
177edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual ~SkGTypeface();
1826da7f00aedba107d4b3e382283034e265db09b6skia.committer@gmail.com
197edec140391ce06933cc1506d96bb70093b63c7breed@google.com    SkTypeface* proxy() const { return fProxy; }
207edec140391ce06933cc1506d96bb70093b63c7breed@google.com    const SkPaint& paint() const { return fPaint; }
217edec140391ce06933cc1506d96bb70093b63c7breed@google.com
227edec140391ce06933cc1506d96bb70093b63c7breed@google.comprotected:
237edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual SkScalerContext* onCreateScalerContext(const SkDescriptor*) const SK_OVERRIDE;
247edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual void onFilterRec(SkScalerContextRec*) const SK_OVERRIDE;
257edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics(
267edec140391ce06933cc1506d96bb70093b63c7breed@google.com                                    SkAdvancedTypefaceMetrics::PerGlyphInfo,
277edec140391ce06933cc1506d96bb70093b63c7breed@google.com                                    const uint32_t* glyphIDs,
287edec140391ce06933cc1506d96bb70093b63c7breed@google.com                                    uint32_t glyphIDsCount) const SK_OVERRIDE;
297edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual SkStream* onOpenStream(int* ttcIndex) const SK_OVERRIDE;
307edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const SK_OVERRIDE;
3126da7f00aedba107d4b3e382283034e265db09b6skia.committer@gmail.com
323c996f8a15e5d8fada9550d978e9b5344b81d276bungeman@google.com    virtual int onCharsToGlyphs(const void* chars, Encoding encoding,
333c996f8a15e5d8fada9550d978e9b5344b81d276bungeman@google.com                                uint16_t glyphs[], int glyphCount) const SK_OVERRIDE;
34e05e75eda103cad9e6727202997ed6e0d88ab183bungeman@google.com    virtual int onCountGlyphs() const SK_OVERRIDE;
357edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual int onGetUPEM() const SK_OVERRIDE;
3626da7f00aedba107d4b3e382283034e265db09b6skia.committer@gmail.com
37b374d6a62c0259387d90cad74753d8bad9ee1beabungeman    virtual void onGetFamilyName(SkString* familyName) const SK_OVERRIDE;
38839702b61934914118ec557dd641be322eba3b5fbungeman@google.com    virtual SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const SK_OVERRIDE;
39a980269c2498836101146adc729ef780fb89824ebungeman@google.com
407edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual int onGetTableTags(SkFontTableTag tags[]) const SK_OVERRIDE;
417edec140391ce06933cc1506d96bb70093b63c7breed@google.com    virtual size_t onGetTableData(SkFontTableTag, size_t offset,
427edec140391ce06933cc1506d96bb70093b63c7breed@google.com                                  size_t length, void* data) const SK_OVERRIDE;
4326da7f00aedba107d4b3e382283034e265db09b6skia.committer@gmail.com
447edec140391ce06933cc1506d96bb70093b63c7breed@google.comprivate:
457edec140391ce06933cc1506d96bb70093b63c7breed@google.com    SkTypeface* fProxy;
467edec140391ce06933cc1506d96bb70093b63c7breed@google.com    SkPaint     fPaint;
477edec140391ce06933cc1506d96bb70093b63c7breed@google.com};
487edec140391ce06933cc1506d96bb70093b63c7breed@google.com
497edec140391ce06933cc1506d96bb70093b63c7breed@google.com#endif
50