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/*                                                                         */
7a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin/*  Copyright 2003-2017 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
19055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#ifndef AFLOADER_H_
20055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#define AFLOADER_H_
21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "afhints.h"
23fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto 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 */
44fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto 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
56fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto Onuki  FT_LOCAL( void )
57fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto Onuki  af_loader_init( AF_Loader      loader,
58fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto Onuki                  AF_GlyphHints  hints );
59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
62fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto Onuki  af_loader_reset( AF_Loader  loader,
63fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto 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 )
68fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto 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 )
72fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto Onuki  af_loader_load_glyph( AF_Loader  loader,
73fb6b5b10aaa74b8c8974714b41bac35bdd1c772dMakoto 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
78055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin  FT_LOCAL_DEF( FT_Int32 )
79055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin  af_loader_compute_darkening( AF_Loader  loader,
80055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin                               FT_Face    face,
81055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin                               FT_Pos     standard_width );
82055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin
83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */
84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER
87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
88055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#endif /* AFLOADER_H_ */
89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */
92