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