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