1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* afloader.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Auto-fitter glyph loading routines (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 79c745321260bb728ab1cd1c8fd5f075854b2ad49Behdad Esfahbod/* Copyright 2003-2005, 2011-2013 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#ifndef __AFLOADER_H__ 20aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#define __AFLOADER_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "afhints.h" 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "afglobal.h" 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 28727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef struct AF_ModuleRec_* AF_Module; 29727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 30727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* 31727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * The autofitter module's (global) data structure to communicate with 32727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * actual fonts. If necessary, `local' data like the current face, the 33727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * current face's auto-hint data, or the current glyph's parameters 34727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * relevant to auto-hinting are `swapped in'. Cf. functions like 35727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * `af_loader_reset' and `af_loader_load_g'. 36727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease */ 37727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 38727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef struct AF_LoaderRec_ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 40727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* current face data */ 41727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_Face face; 42727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease AF_FaceGlobals globals; 43727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 44727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* current glyph data */ 45727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_GlyphLoader gloader; 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project AF_GlyphHintsRec hints; 479c745321260bb728ab1cd1c8fd5f075854b2ad49Behdad Esfahbod AF_StyleMetrics metrics; 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool transformed; 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Matrix trans_matrix; 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector trans_delta; 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector pp1; 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector pp2; 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* we don't handle vertical phantom points */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } AF_LoaderRec, *AF_Loader; 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 59727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease af_loader_init( AF_Module module ); 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 63727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease af_loader_reset( AF_Module module, 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Face face ); 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 68727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease af_loader_done( AF_Module module ); 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 72727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease af_loader_load_glyph( AF_Module module, 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Face face, 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt gindex, 7541371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier FT_Int32 load_flags ); 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 82aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#endif /* __AFLOADER_H__ */ 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 86