| /***************************************************************************/ |
| /* */ |
| /* ahloader.h */ |
| /* */ |
| /* Glyph loader for the auto-hinting module (declaration only). */ |
| /* */ |
| /* Copyright 2000 Catharon Productions Inc. */ |
| /* Author: David Turner */ |
| /* */ |
| /* This file is part of the Catharon Typography Project and shall only */ |
| /* be used, modified, and distributed under the terms of the Catharon */ |
| /* Open Source License that should come with this file under the name */ |
| /* `CatharonLicense.txt'. By continuing to use, modify, or distribute */ |
| /* this file you indicate that you have read the license and */ |
| /* understand and accept it fully. */ |
| /* */ |
| /* Note that this license is compatible with the FreeType license. */ |
| /* */ |
| /***************************************************************************/ |
| |
| |
| /*************************************************************************/ |
| /* */ |
| /* This defines the AH_GlyphLoader type in two different ways: */ |
| /* */ |
| /* - If the module is compiled within FreeType 2, the type is simply a */ |
| /* typedef to FT_GlyphLoader. */ |
| /* */ |
| /* - If the module is compiled as a standalone object, AH_GlyphLoader */ |
| /* has its own implementation. */ |
| /* */ |
| /*************************************************************************/ |
| |
| |
| #ifndef __AHLOADER_H__ |
| #define __AHLOADER_H__ |
| |
| |
| #include <ft2build.h> |
| |
| |
| FT_BEGIN_HEADER |
| |
| |
| #ifdef _STANDALONE_ |
| |
| typedef struct AH_GlyphLoad_ |
| { |
| FT_Outline outline; /* outline */ |
| FT_UInt num_subglyphs; /* number of subglyphs */ |
| FT_SubGlyph* subglyphs; /* subglyphs */ |
| FT_Vector* extra_points; /* extra points table */ |
| |
| } AH_GlyphLoad; |
| |
| |
| struct AH_GlyphLoader_ |
| { |
| FT_Memory memory; |
| FT_UInt max_points; |
| FT_UInt max_contours; |
| FT_UInt max_subglyphs; |
| FT_Bool use_extra; |
| |
| AH_GlyphLoad base; |
| AH_GlyphLoad current; |
| |
| void* other; /* for possible future extensions */ |
| }; |
| |
| |
| FT_LOCAL FT_Error |
| AH_GlyphLoader_New( FT_Memory memory, |
| AH_GlyphLoader** aloader ); |
| |
| FT_LOCAL FT_Error |
| AH_GlyphLoader_Create_Extra( AH_GlyphLoader* loader ); |
| |
| FT_LOCAL void |
| AH_GlyphLoader_Done( AH_GlyphLoader* loader ); |
| |
| FT_LOCAL void |
| AH_GlyphLoader_Reset( AH_GlyphLoader* loader ); |
| |
| FT_LOCAL void |
| AH_GlyphLoader_Rewind( AH_GlyphLoader* loader ); |
| |
| FT_LOCAL FT_Error |
| AH_GlyphLoader_Check_Points( AH_GlyphLoader* loader, |
| FT_UInt n_points, |
| FT_UInt n_contours ); |
| |
| FT_LOCAL FT_Error |
| AH_GlyphLoader_Check_Subglyphs( AH_GlyphLoader* loader, |
| FT_UInt n_subs ); |
| |
| FT_LOCAL void |
| AH_GlyphLoader_Prepare( AH_GlyphLoader* loader ); |
| |
| FT_LOCAL void |
| AH_GlyphLoader_Add( AH_GlyphLoader* loader ); |
| |
| FT_LOCAL FT_Error |
| AH_GlyphLoader_Copy_Points( AH_GlyphLoader* target, |
| FT_GlyphLoader* source ); |
| |
| #else /* _STANDALONE */ |
| |
| #include FT_INTERNAL_OBJECTS_H |
| |
| #define AH_Load FT_GlyphLoad |
| #define AH_Loader FT_GlyphLoader |
| |
| #define ah_loader_new FT_GlyphLoader_New |
| #define ah_loader_done FT_GlyphLoader_Done |
| #define ah_loader_reset FT_GlyphLoader_Reset |
| #define ah_loader_rewind FT_GlyphLoader_Rewind |
| #define ah_loader_create_extra FT_GlyphLoader_Create_Extra |
| #define ah_loader_check_points FT_GlyphLoader_Check_Points |
| #define ah_loader_check_subglyphs FT_GlyphLoader_Check_Subglyphs |
| #define ah_loader_prepare FT_GlyphLoader_Prepare |
| #define ah_loader_add FT_GlyphLoader_Add |
| #define ah_loader_copy_points FT_GlyphLoader_Copy_Points |
| |
| #endif /* _STANDALONE_ */ |
| |
| |
| FT_END_HEADER |
| |
| #endif /* __AHLOADER_H__ */ |
| |
| |
| /* END */ |