158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/* 258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Copyright 2013 Google Inc. 358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * 458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * found in the LICENSE file. 658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#ifndef SkGScalerContext_DEFINED 958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#define SkGScalerContext_DEFINED 1058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "SkScalerContext.h" 1258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "SkTypeface.h" 1358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerclass SkGTypeface : public SkTypeface { 1558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerpublic: 1658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkGTypeface(SkTypeface* proxy, const SkPaint&); 1758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual ~SkGTypeface(); 1858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkTypeface* proxy() const { return fProxy; } 2058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger const SkPaint& paint() const { return fPaint; } 2158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 2258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerprotected: 2358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual SkScalerContext* onCreateScalerContext(const SkDescriptor*) const SK_OVERRIDE; 2458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual void onFilterRec(SkScalerContextRec*) const SK_OVERRIDE; 2558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( 2658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkAdvancedTypefaceMetrics::PerGlyphInfo, 2758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger const uint32_t* glyphIDs, 2858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger uint32_t glyphIDsCount) const SK_OVERRIDE; 2958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual SkStream* onOpenStream(int* ttcIndex) const SK_OVERRIDE; 3058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const SK_OVERRIDE; 3158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 320a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger virtual int onCharsToGlyphs(const void* chars, Encoding encoding, 330a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger uint16_t glyphs[], int glyphCount) const SK_OVERRIDE; 3458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual int onCountGlyphs() const SK_OVERRIDE; 3558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual int onGetUPEM() const SK_OVERRIDE; 3658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 37e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger virtual SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const SK_OVERRIDE; 38e27eefc4844477cee5d32f51ab45ff62020cdb36Derek Sollenberger 3958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual int onGetTableTags(SkFontTableTag tags[]) const SK_OVERRIDE; 4058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual size_t onGetTableData(SkFontTableTag, size_t offset, 4158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger size_t length, void* data) const SK_OVERRIDE; 4258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 4358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerprivate: 4458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkTypeface* fProxy; 4558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkPaint fPaint; 4658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger}; 4758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 4858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#endif 49