1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  cffobjs.h                                                              */
4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*    OpenType objects manager (specification).                            */
6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 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
19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __CFFOBJS_H__
20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __CFFOBJS_H__
21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h>
24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_OBJECTS_H
25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "cfftypes.h"
26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_TRUETYPE_TYPES_H
27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_SERVICE_POSTSCRIPT_CMAPS_H
28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_POSTSCRIPT_HINTS_H
29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER
32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Type>                                                                */
37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    CFF_Driver                                                         */
38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A handle to an OpenType driver object.                             */
41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct CFF_DriverRec_*  CFF_Driver;
43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef TT_Face  CFF_Face;
45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Type>                                                                */
50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    CFF_Size                                                           */
51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A handle to an OpenType size object.                               */
54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  CFF_SizeRec_
56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_SizeRec  root;
58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_ULong    strike_index;    /* 0xFFFFFFFF to indicate invalid */
59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } CFF_SizeRec, *CFF_Size;
61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Type>                                                                */
66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    CFF_GlyphSlot                                                      */
67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A handle to an OpenType glyph slot object.                         */
70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  CFF_GlyphSlotRec_
72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_GlyphSlotRec  root;
74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Bool          hint;
76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Bool          scaled;
77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed         x_scale;
79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed         y_scale;
80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } CFF_GlyphSlotRec, *CFF_GlyphSlot;
82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Type>                                                                */
87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    CFF_Internal                                                       */
88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The interface to the `internal' field of `FT_Size'.                */
91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  CFF_InternalRec_
93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    PSH_Globals  topfont;
95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    PSH_Globals  subfonts[CFF_MAX_CID_FONTS];
96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } CFF_InternalRec, *CFF_Internal;
98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* Subglyph transformation record.                                       */
103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  CFF_Transform_
105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed    xx, xy;     /* transformation matrix coefficients */
107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Fixed    yx, yy;
108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_F26Dot6  ox, oy;     /* offsets        */
109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } CFF_Transform;
111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /***********************************************************************/
114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                     */
115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* TrueType driver class.                                              */
116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                     */
117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  CFF_DriverRec_
118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_DriverRec  root;
120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    void*         extension_component;
121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } CFF_DriverRec;
123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_size_init( FT_Size  size );           /* CFF_Size */
127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( void )
129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_size_done( FT_Size  size );           /* CFF_Size */
130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_size_request( FT_Size          size,
133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                    FT_Size_Request  req );
134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_size_select( FT_Size   size,
139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                   FT_ULong  strike_index );
140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif
142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( void )
144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_slot_done( FT_GlyphSlot  slot );
145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_slot_init( FT_GlyphSlot  slot );
148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* Face functions                                                        */
153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_face_init( FT_Stream      stream,
156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                 FT_Face        face,           /* CFF_Face */
157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                 FT_Int         face_index,
158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                 FT_Int         num_params,
159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                 FT_Parameter*  params );
160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( void )
162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_face_done( FT_Face  face );               /* CFF_Face */
163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* Driver functions                                                      */
168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( FT_Error )
170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_driver_init( FT_Module  module );
171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_LOCAL( void )
173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  cff_driver_done( FT_Module  module );
174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER
177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __CFFOBJS_H__ */
179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */
182