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/* */ 7ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki/* Copyright 2003-2015 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" 23ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki#include "afmodule.h" 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "afglobal.h" 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 29727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* 30727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * The autofitter module's (global) data structure to communicate with 31727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * actual fonts. If necessary, `local' data like the current face, the 32727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * current face's auto-hint data, or the current glyph's parameters 33727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * relevant to auto-hinting are `swapped in'. Cf. functions like 34727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * `af_loader_reset' and `af_loader_load_g'. 35727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease */ 36727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 37727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef struct AF_LoaderRec_ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 39727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* current face data */ 40727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease FT_Face face; 41727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease AF_FaceGlobals globals; 42727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 43727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* current glyph data */ 44ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki AF_GlyphHints hints; 459c745321260bb728ab1cd1c8fd5f075854b2ad49Behdad Esfahbod AF_StyleMetrics metrics; 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool transformed; 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Matrix trans_matrix; 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector trans_delta; 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector pp1; 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector pp2; 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* we don't handle vertical phantom points */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } AF_LoaderRec, *AF_Loader; 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 56ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki FT_LOCAL( void ) 57ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki af_loader_init( AF_Loader loader, 58ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki AF_GlyphHints hints ); 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 62ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki af_loader_reset( AF_Loader loader, 63ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki 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 ) 68ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki af_loader_done( AF_Loader loader ); 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( FT_Error ) 72ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki af_loader_load_glyph( AF_Loader loader, 73ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki AF_Module module, 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Face face, 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt gindex, 7641371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier FT_Int32 load_flags ); 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 83aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#endif /* __AFLOADER_H__ */ 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 87