105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2010 Google Inc. 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 705b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger */ 805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 905b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 1105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#ifndef GrFontScaler_DEFINED 1205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#define GrFontScaler_DEFINED 1305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 1405b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#include "GrGlyph.h" 1505b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#include "GrKey.h" 1605b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 170b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenbergerclass SkPath; 1805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 1905b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger/** 2005b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger * This is a virtual base class which Gr's interface to the host platform's 2105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger * font scaler. 2205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger * 2305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger * The client is responsible for subclassing, and instantiating this. The 2405b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger * instance is create for a specific font+size+matrix. 2505b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger */ 2605b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenbergerclass GrFontScaler : public GrRefCnt { 2705b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenbergerpublic: 2805b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger virtual const GrKey* getKey() = 0; 29137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenberger virtual GrMaskFormat getMaskFormat() = 0; 3005b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger virtual bool getPackedGlyphBounds(GrGlyph::PackedID, GrIRect* bounds) = 0; 3105b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger virtual bool getPackedGlyphImage(GrGlyph::PackedID, int width, int height, 3205b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger int rowBytes, void* image) = 0; 330b15698a8c76bb8abc1b555c1d91892669b4118fDerek Sollenberger virtual bool getGlyphPath(uint16_t glyphID, SkPath*) = 0; 3405b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger}; 3505b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 3605b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger#endif 3705b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger 38