t1objs.h revision bc82f1bbefa90c649a9ad2c28938d55b4acbf380
17fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/***************************************************************************/ 27fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/* */ 3b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg/* t1objs.h */ 47fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/* */ 5b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg/* Type 1 objects manager (specification). */ 67fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg/* */ 7415235df1b955940ce85401a076f882e8717ef7bWerner Lemberg/* Copyright 1996-2001 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 ) 112c3b21608699a72698d382ad44c5f9fd6946ce43cWerner Lemberg T1_Size_Reset( T1_Size size ); 1135893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner 114bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( FT_Error ) 115c3b21608699a72698d382ad44c5f9fd6946ce43cWerner Lemberg T1_Size_Init( T1_Size size ); 1165893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner 1175893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner 1187fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /*************************************************************************/ 1197fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /* */ 1207fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /* <Type> */ 121b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg /* T1_GlyphSlotRec */ 1227fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /* */ 1237fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /* <Description> */ 1247fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /* Type 1 glyph slot record. */ 1257fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg /* */ 126b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg typedef struct T1_GlyphSlotRec_ 1272dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner { 1282dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner FT_GlyphSlotRec root; 1292dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 130f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner FT_Bool hint; 131f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner FT_Bool scaled; 132e49ab25c0822e1043be29e836944c7886f4e8990David Turner 133f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner FT_Int max_points; 134f9b8dec437dd84060bcd82a555c92fecff848aa7David Turner FT_Int max_contours; 1352dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 1362dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner FT_Fixed x_scale; 1372dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner FT_Fixed y_scale; 1382dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 139b5084e11f7d2d73e0687dee6314c560b8fe6d4cbWerner Lemberg } T1_GlyphSlotRec; 1402dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 1412dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 142bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( FT_Error ) 1435893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner T1_Face_Init( FT_Stream stream, 1444a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg T1_Face face, 1454a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg FT_Int face_index, 1464a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg FT_Int num_params, 1474a2305cf0c686d58273e264780b48b159e42f604Werner Lemberg FT_Parameter* params ); 1482dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 149bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( void ) 1505893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner T1_Face_Done( T1_Face face ); 1515893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner 152bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( FT_Error ) 1535893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner T1_GlyphSlot_Init( T1_GlyphSlot slot ); 1545893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner 155bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( void ) 1565893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner T1_GlyphSlot_Done( T1_GlyphSlot slot ); 1572dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 158bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( FT_Error ) 1595893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner T1_Driver_Init( T1_Driver driver ); 1602dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 161bc82f1bbefa90c649a9ad2c28938d55b4acbf380David Turner FT_LOCAL( void ) 1625893c1bb2a9e682ac39107cdce8c7d413c4fe0f9David Turner T1_Driver_Done( T1_Driver driver ); 1632dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 1647fa51b5535dc05a91b96aac57835bf1473a24339Werner Lemberg 16519ed8afe60bbc5becf0fbbe3987a91b35a36aad4David TurnerFT_END_HEADER 1662dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 16790d9964ec9c6537a69dedbc29f0a6d277707dbccWerner Lemberg#endif /* __T1OBJS_H__ */ 1682dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 1692dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner 1702dfb5aca285baf50eed6c0a9520069614a2e5cf5David Turner/* END */ 171