Home | History | Annotate | Download | only in fonts
      1 /*
      2  * Copyright 2013 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 SkGScalerContext_DEFINED
      9 #define SkGScalerContext_DEFINED
     10 
     11 #include "SkScalerContext.h"
     12 #include "SkTypeface.h"
     13 
     14 class SkGTypeface : public SkTypeface {
     15 public:
     16     SkGTypeface(SkTypeface* proxy, const SkPaint&);
     17     virtual ~SkGTypeface();
     18 
     19     SkTypeface* proxy() const { return fProxy; }
     20     const SkPaint& paint() const { return fPaint; }
     21 
     22 protected:
     23     SkScalerContext* onCreateScalerContext(const SkDescriptor*) const override;
     24     void onFilterRec(SkScalerContextRec*) const override;
     25     SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics(
     26         PerGlyphInfo,
     27         const uint32_t* glyphIDs,
     28         uint32_t glyphIDsCount) const override;
     29     SkStreamAsset* onOpenStream(int* ttcIndex) const override;
     30     void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const override;
     31 
     32     int onCharsToGlyphs(const void* chars, Encoding encoding,
     33                         uint16_t glyphs[], int glyphCount) const override;
     34     int onCountGlyphs() const override;
     35     int onGetUPEM() const override;
     36 
     37     void onGetFamilyName(SkString* familyName) const override;
     38     SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override;
     39 
     40     int onGetTableTags(SkFontTableTag tags[]) const override;
     41     size_t onGetTableData(SkFontTableTag, size_t offset,
     42                           size_t length, void* data) const override;
     43 
     44 private:
     45     SkTypeface* fProxy;
     46     SkPaint     fPaint;
     47 };
     48 
     49 #endif
     50