t1objs.h revision 9b774e282277f3f880e95928fb7bc82ebc26aea5
17fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/***************************************************************************/
27fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
3b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg/*  t1objs.h                                                               */
47fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
5b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg/*    Type 1 objects manager (specification).                              */
67fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
7f1c2b91e149dd24cb7ad54bcc6210ece8b076aa0Werner Lemberg/*  Copyright 1996-2001, 2002, 2006 by                                     */
87fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
97fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
107fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*  This file is part of the FreeType project, and may only be used,       */
117fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*  modified, and distributed under the terms of the FreeType project      */
127fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
137fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*  this file you indicate that you have read the license and              */
147fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*  understand and accept it fully.                                        */
157fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
167fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/***************************************************************************/
177fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg
182dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1990d9964ec9c6537a69dedbc29f0a6d277707dbccWerner Lemberg#ifndef __T1OBJS_H__
2090d9964ec9c6537a69dedbc29f0a6d277707dbccWerner Lemberg#define __T1OBJS_H__
212dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
22cc069beb2d2b6b1cb9f9b9f2af2a7ea12780f634Werner Lemberg
2319ed8afe60bbc5becf0fbbe3987a91b35a36aad4David Turner#include <ft2build.h>
2419ed8afe60bbc5becf0fbbe3987a91b35a36aad4David Turner#include FT_INTERNAL_OBJECTS_H
2519ed8afe60bbc5becf0fbbe3987a91b35a36aad4David Turner#include FT_CONFIG_CONFIG_H
2619ed8afe60bbc5becf0fbbe3987a91b35a36aad4David Turner#include FT_INTERNAL_TYPE1_TYPES_H
272dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
28cc069beb2d2b6b1cb9f9b9f2af2a7ea12780f634Werner Lemberg
2919ed8afe60bbc5becf0fbbe3987a91b35a36aad4David TurnerFT_BEGIN_HEADER
302dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
31cc069beb2d2b6b1cb9f9b9f2af2a7ea12780f634Werner Lemberg
322dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner  /* The following structures must be defined by the hinter */
33b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_Size_Hints_   T1_Size_Hints;
34b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_Glyph_Hints_  T1_Glyph_Hints;
352dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
367fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg
377fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
387fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
397fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
40b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_Driver                                                          */
417fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
427fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
437fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 driver object.                                */
447fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
45b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_DriverRec_   *T1_Driver;
462dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
472dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
487fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
497fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
507fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
51b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_Size                                                            */
527fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
537fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
547fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 size object.                                  */
557fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
56b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_SizeRec_*  T1_Size;
572dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
582dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
597fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
607fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
617fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
62b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_GlyphSlot                                                       */
637fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
647fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
657fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 glyph slot object.                            */
667fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
67b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;
682dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
692dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
707fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
717fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
727fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
73b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_CharMap                                                         */
747fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
757fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
767fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 character mapping object.                     */
777fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
787fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Note>                                                                */
797fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    The Type 1 format doesn't use a charmap but an encoding table.     */
807fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    The driver is responsible for making up charmap objects            */
817fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    corresponding to these tables.                                     */
827fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
83b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_CharMapRec_*   T1_CharMap;
842dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
852dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
867fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
877fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
887fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                  HERE BEGINS THE TYPE1 SPECIFIC STUFF                 */
897fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
907fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
912dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
92e49ab25c0822e1043be29e836944c7886f4e8990David Turner
937fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
947fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
957fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
96b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_SizeRec                                                         */
977fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
987fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
997fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    Type 1 size record.                                                */
1007fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
101b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct  T1_SizeRec_
1022dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner  {
1035893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner    FT_SizeRec  root;
1045893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
105b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  } T1_SizeRec;
1062dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1072dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
108bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
109c3b21608699a72698d382ad44c5f9fd6946ce43cWerner Lemberg  T1_Size_Done( T1_Size  size );
110c3b21608699a72698d382ad44c5f9fd6946ce43cWerner Lemberg
111bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
112bcc438b15ef0b22055ae6f4ed55e0981794f483aWu, Chia-I (吳佳一)  T1_Size_Request( T1_Size          size,
113bcc438b15ef0b22055ae6f4ed55e0981794f483aWu, Chia-I (吳佳一)                   FT_Size_Request  req );
1145893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
115bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
116c3b21608699a72698d382ad44c5f9fd6946ce43cWerner Lemberg  T1_Size_Init( T1_Size  size );
1175893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
1185893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
1197fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
1207fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
1217fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
122b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_GlyphSlotRec                                                    */
1237fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
1247fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
1257fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    Type 1 glyph slot record.                                          */
1267fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
127b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct  T1_GlyphSlotRec_
1282dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner  {
1292dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner    FT_GlyphSlotRec  root;
1302dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
131f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner    FT_Bool          hint;
132f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner    FT_Bool          scaled;
133e49ab25c0822e1043be29e836944c7886f4e8990David Turner
134f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner    FT_Int           max_points;
135f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner    FT_Int           max_contours;
1362dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1372dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner    FT_Fixed         x_scale;
1382dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner    FT_Fixed         y_scale;
1392dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
140b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  } T1_GlyphSlotRec;
1412dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1422dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
143bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
1445893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_Face_Init( FT_Stream      stream,
1454a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                T1_Face        face,
1464a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                FT_Int         face_index,
1474a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                FT_Int         num_params,
1484a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                FT_Parameter*  params );
1492dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
150bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
1515893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_Face_Done( T1_Face  face );
1525893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
153bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
1545893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_GlyphSlot_Init( T1_GlyphSlot  slot );
1559b774e282277f3f880e95928fb7bc82ebc26aea5Werner Lemberg
156bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
1575893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_GlyphSlot_Done( T1_GlyphSlot  slot );
1582dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
159bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
1605893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_Driver_Init( T1_Driver  driver );
1612dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
162bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
1635893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_Driver_Done( T1_Driver  driver );
1642dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1657fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg
16619ed8afe60bbc5becf0fbbe3987a91b35a36aad4David TurnerFT_END_HEADER
1672dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
16890d9964ec9c6537a69dedbc29f0a6d277707dbccWerner Lemberg#endif /* __T1OBJS_H__ */
1692dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1702dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1712dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner/* END */
172