David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 1 | /***************************************************************************/ |
| 2 | /* */ |
| 3 | /* ahloader.h */ |
| 4 | /* */ |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 5 | /* Glyph loader for the auto-hinting module (declaration only). */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 6 | /* */ |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 7 | /* Copyright 2000 Catharon Productions Inc. */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 8 | /* Author: David Turner */ |
| 9 | /* */ |
| 10 | /* This file is part of the Catharon Typography Project and shall only */ |
| 11 | /* be used, modified, and distributed under the terms of the Catharon */ |
| 12 | /* Open Source License that should come with this file under the name */ |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 13 | /* `CatharonLicense.txt'. By continuing to use, modify, or distribute */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 14 | /* this file you indicate that you have read the license and */ |
| 15 | /* understand and accept it fully. */ |
| 16 | /* */ |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 17 | /* Note that this license is compatible with the FreeType license. */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 18 | /* */ |
| 19 | /***************************************************************************/ |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 20 | |
| 21 | |
| 22 | /*************************************************************************/ |
| 23 | /* */ |
| 24 | /* This defines the AH_GlyphLoader type in two different ways: */ |
| 25 | /* */ |
| 26 | /* - If the module is compiled within FreeType 2, the type is simply a */ |
| 27 | /* typedef to FT_GlyphLoader. */ |
| 28 | /* */ |
| 29 | /* - If the module is compiled as a standalone object, AH_GlyphLoader */ |
| 30 | /* has its own implementation. */ |
| 31 | /* */ |
| 32 | /*************************************************************************/ |
| 33 | |
| 34 | |
Werner Lemberg | 90d9964 | 2000-12-09 00:45:38 +0000 | [diff] [blame^] | 35 | #ifndef __AHLOADER_H__ |
| 36 | #define __AHLOADER_H__ |
| 37 | |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 38 | |
David Turner | 19ed8af | 2000-12-08 02:42:29 +0000 | [diff] [blame] | 39 | #include <ft2build.h> |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 40 | |
Werner Lemberg | 90d9964 | 2000-12-09 00:45:38 +0000 | [diff] [blame^] | 41 | |
David Turner | 19ed8af | 2000-12-08 02:42:29 +0000 | [diff] [blame] | 42 | FT_BEGIN_HEADER |
Werner Lemberg | c713d92 | 2000-08-01 13:17:04 +0000 | [diff] [blame] | 43 | |
Werner Lemberg | 90d9964 | 2000-12-09 00:45:38 +0000 | [diff] [blame^] | 44 | |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 45 | #ifdef _STANDALONE_ |
| 46 | |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 47 | typedef struct AH_GlyphLoad_ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 48 | { |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 49 | FT_Outline outline; /* outline */ |
| 50 | FT_UInt num_subglyphs; /* number of subglyphs */ |
| 51 | FT_SubGlyph* subglyphs; /* subglyphs */ |
| 52 | FT_Vector* extra_points; /* extra points table */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 53 | |
| 54 | } AH_GlyphLoad; |
| 55 | |
| 56 | |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 57 | struct AH_GlyphLoader_ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 58 | { |
| 59 | FT_Memory memory; |
| 60 | FT_UInt max_points; |
| 61 | FT_UInt max_contours; |
| 62 | FT_UInt max_subglyphs; |
| 63 | FT_Bool use_extra; |
| 64 | |
| 65 | AH_GlyphLoad base; |
| 66 | AH_GlyphLoad current; |
| 67 | |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 68 | void* other; /* for possible future extensions */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 69 | }; |
| 70 | |
| 71 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 72 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 73 | FT_Error AH_GlyphLoader_New( FT_Memory memory, |
| 74 | AH_GlyphLoader** aloader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 75 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 76 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 77 | FT_Error AH_GlyphLoader_Create_Extra( AH_GlyphLoader* loader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 78 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 79 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 80 | void AH_GlyphLoader_Done( AH_GlyphLoader* loader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 81 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 82 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 83 | void AH_GlyphLoader_Reset( AH_GlyphLoader* loader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 84 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 85 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 86 | void AH_GlyphLoader_Rewind( AH_GlyphLoader* loader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 87 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 88 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 89 | FT_Error AH_GlyphLoader_Check_Points( AH_GlyphLoader* loader, |
| 90 | FT_UInt n_points, |
| 91 | FT_UInt n_contours ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 92 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 93 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 94 | FT_Error AH_GlyphLoader_Check_Subglyphs( AH_GlyphLoader* loader, |
| 95 | FT_UInt n_subs ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 96 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 97 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 98 | void AH_GlyphLoader_Prepare( AH_GlyphLoader* loader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 99 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 100 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 101 | void AH_GlyphLoader_Add( AH_GlyphLoader* loader ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 102 | |
David Turner | 76a5f62 | 2000-11-04 01:55:49 +0000 | [diff] [blame] | 103 | FT_LOCAL |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 104 | FT_Error AH_GlyphLoader_Copy_Points( AH_GlyphLoader* target, |
| 105 | FT_GlyphLoader* source ); |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 106 | |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 107 | #else /* _STANDALONE */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 108 | |
David Turner | 19ed8af | 2000-12-08 02:42:29 +0000 | [diff] [blame] | 109 | #include FT_INTERNAL_OBJECTS_H |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 110 | |
| 111 | #define AH_Load FT_GlyphLoad |
| 112 | #define AH_Loader FT_GlyphLoader |
| 113 | |
| 114 | #define ah_loader_new FT_GlyphLoader_New |
| 115 | #define ah_loader_done FT_GlyphLoader_Done |
| 116 | #define ah_loader_reset FT_GlyphLoader_Reset |
| 117 | #define ah_loader_rewind FT_GlyphLoader_Rewind |
| 118 | #define ah_loader_create_extra FT_GlyphLoader_Create_Extra |
| 119 | #define ah_loader_check_points FT_GlyphLoader_Check_Points |
| 120 | #define ah_loader_check_subglyphs FT_GlyphLoader_Check_Subglyphs |
| 121 | #define ah_loader_prepare FT_GlyphLoader_Prepare |
| 122 | #define ah_loader_add FT_GlyphLoader_Add |
| 123 | #define ah_loader_copy_points FT_GlyphLoader_Copy_Points |
| 124 | |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 125 | #endif /* _STANDALONE_ */ |
David Turner | 3469d0d | 2000-07-19 20:02:14 +0000 | [diff] [blame] | 126 | |
Werner Lemberg | 90d9964 | 2000-12-09 00:45:38 +0000 | [diff] [blame^] | 127 | |
David Turner | 19ed8af | 2000-12-08 02:42:29 +0000 | [diff] [blame] | 128 | FT_END_HEADER |
Werner Lemberg | c713d92 | 2000-08-01 13:17:04 +0000 | [diff] [blame] | 129 | |
Werner Lemberg | 90d9964 | 2000-12-09 00:45:38 +0000 | [diff] [blame^] | 130 | #endif /* __AHLOADER_H__ */ |
Werner Lemberg | c3dd151 | 2000-07-26 14:11:15 +0000 | [diff] [blame] | 131 | |
| 132 | |
| 133 | /* END */ |