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