17fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/***************************************************************************/
27fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
3b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg/*  t1objs.h                                                               */
47fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
5b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg/*    Type 1 objects manager (specification).                              */
67fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/*                                                                         */
70a0c22569deab933df21127e75db5c81f724f292Werner Lemberg/*  Copyright 1996-2018 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
1937412ff9f42212bcf4dd29d9762f3c35b5735768Werner Lemberg#ifndef T1OBJS_H_
2037412ff9f42212bcf4dd29d9762f3c35b5735768Werner 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_Size                                                            */
417fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
427fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
437fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 size object.                                  */
447fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
45b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_SizeRec_*  T1_Size;
462dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
472dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
487fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
497fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
507fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
51b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_GlyphSlot                                                       */
527fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
537fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
547fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 glyph slot object.                            */
557fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
56b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;
572dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
582dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
597fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
607fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
617fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
62b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_CharMap                                                         */
637fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
647fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
657fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    A handle to a Type 1 character mapping object.                     */
667fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
677fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Note>                                                                */
687fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    The Type 1 format doesn't use a charmap but an encoding table.     */
697fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    The driver is responsible for making up charmap objects            */
707fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    corresponding to these tables.                                     */
717fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
72b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct T1_CharMapRec_*   T1_CharMap;
732dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
742dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
757fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
767fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
777fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                  HERE BEGINS THE TYPE1 SPECIFIC STUFF                 */
787fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
797fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
802dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
81e49ab25c0822e1043be29e836944c7886f4e8990David Turner
827fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
837fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
847fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
85b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_SizeRec                                                         */
867fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
877fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
887fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    Type 1 size record.                                                */
897fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
90b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct  T1_SizeRec_
912dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner  {
925893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner    FT_SizeRec  root;
935893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
94b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  } T1_SizeRec;
952dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
962dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
97bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
98910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_Size_Done( FT_Size  size );
99c3b21608699a72698d382ad44c5f9fd6946ce43cWerner Lemberg
100bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
101910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_Size_Request( FT_Size          size,
102bcc438b15ef0b22055ae6f4ed55e0981794f483aWu, Chia-I (吳佳一)                   FT_Size_Request  req );
1035893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
104bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
105910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_Size_Init( FT_Size  size );
1065893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
1075893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
1087fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*************************************************************************/
1097fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
1107fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Type>                                                                */
111b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  /*    T1_GlyphSlotRec                                                    */
1127fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
1137fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /* <Description>                                                         */
1147fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*    Type 1 glyph slot record.                                          */
1157fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg  /*                                                                       */
116b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  typedef struct  T1_GlyphSlotRec_
1172dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner  {
1182dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner    FT_GlyphSlotRec  root;
1192dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
120f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner    FT_Bool          hint;
121f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner    FT_Bool          scaled;
122e49ab25c0822e1043be29e836944c7886f4e8990David Turner
1232dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner    FT_Fixed         x_scale;
1242dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner    FT_Fixed         y_scale;
1252dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
126d23affe1ef8646ce51aa8d94fddccb7c89ba9a13Ewald Hew (Hew Yih Shiuan 丘毅宣)    FT_Int           max_points;
127d23affe1ef8646ce51aa8d94fddccb7c89ba9a13Ewald Hew (Hew Yih Shiuan 丘毅宣)    FT_Int           max_contours;
128d23affe1ef8646ce51aa8d94fddccb7c89ba9a13Ewald Hew (Hew Yih Shiuan 丘毅宣)
129b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg  } T1_GlyphSlotRec;
1302dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1312dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
132bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
1335893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner  T1_Face_Init( FT_Stream      stream,
134910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg                FT_Face        face,
1354a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                FT_Int         face_index,
1364a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                FT_Int         num_params,
1374a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg                FT_Parameter*  params );
1382dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
139bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
140910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_Face_Done( FT_Face  face );
1415893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner
142bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
143910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_GlyphSlot_Init( FT_GlyphSlot  slot );
1449b774e282277f3f880e95928fb7bc82ebc26aea5Werner Lemberg
145bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
146910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_GlyphSlot_Done( FT_GlyphSlot  slot );
1472dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
148bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( FT_Error )
149910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_Driver_Init( FT_Module  driver );
1502dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
151bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner  FT_LOCAL( void )
152910b544aafdf533613839468950ceb377fea5a9bWerner Lemberg  T1_Driver_Done( FT_Module  driver );
1532dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1547fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg
15519ed8afe60bbc5becf0fbbe3987a91b35a36aad4David TurnerFT_END_HEADER
1562dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
15737412ff9f42212bcf4dd29d9762f3c35b5735768Werner Lemberg#endif /* T1OBJS_H_ */
1582dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1592dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner
1602dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner/* END */
161