123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- /***************************************************************************/
- /* */
- /* ahmodule.c */
- /* */
- /* Auto-hinting module implementation (declaration). */
- /* */
- /* Copyright 2000-2001, 2002 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. */
- /* */
- /***************************************************************************/
- #include <ft2build.h>
- #include FT_MODULE_H
- #include "ahhint.h"
- #ifdef DEBUG_HINTER
- AH_Hinter ah_debug_hinter = NULL;
- FT_Bool ah_debug_disable_horz = 0;
- FT_Bool ah_debug_disable_vert = 0;
- #endif
- typedef struct FT_AutoHinterRec_
- {
- FT_ModuleRec root;
- AH_Hinter hinter;
- } FT_AutoHinterRec;
- FT_CALLBACK_DEF( FT_Error )
- ft_autohinter_init( FT_AutoHinter module )
- {
- FT_Error error;
- error = ah_hinter_new( module->root.library, &module->hinter );
- #ifdef DEBUG_HINTER
- if ( !error )
- ah_debug_hinter = module->hinter;
- #endif
- return error;
- }
- FT_CALLBACK_DEF( void )
- ft_autohinter_done( FT_AutoHinter module )
- {
- ah_hinter_done( module->hinter );
- #ifdef DEBUG_HINTER
- ah_debug_hinter = NULL;
- #endif
- }
- FT_CALLBACK_DEF( FT_Error )
- ft_autohinter_load_glyph( FT_AutoHinter module,
- FT_GlyphSlot slot,
- FT_Size size,
- FT_UInt glyph_index,
- FT_Int32 load_flags )
- {
- return ah_hinter_load_glyph( module->hinter,
- slot, size, glyph_index, load_flags );
- }
- FT_CALLBACK_DEF( void )
- ft_autohinter_reset_globals( FT_AutoHinter module,
- FT_Face face )
- {
- FT_UNUSED( module );
- if ( face->autohint.data )
- ah_hinter_done_face_globals( (AH_Face_Globals)(face->autohint.data) );
- }
- FT_CALLBACK_DEF( void )
- ft_autohinter_get_globals( FT_AutoHinter module,
- FT_Face face,
- void** global_hints,
- long* global_len )
- {
- ah_hinter_get_global_hints( module->hinter, face,
- global_hints, global_len );
- }
- FT_CALLBACK_DEF( void )
- ft_autohinter_done_globals( FT_AutoHinter module,
- void* global_hints )
- {
- ah_hinter_done_global_hints( module->hinter, global_hints );
- }
- FT_CALLBACK_TABLE_DEF
- const FT_AutoHinter_ServiceRec ft_autohinter_service =
- {
- ft_autohinter_reset_globals,
- ft_autohinter_get_globals,
- ft_autohinter_done_globals,
- ft_autohinter_load_glyph
- };
- FT_CALLBACK_TABLE_DEF
- const FT_Module_Class autohint_module_class =
- {
- ft_module_hinter,
- sizeof ( FT_AutoHinterRec ),
- "autohinter",
- 0x10000L, /* version 1.0 of the autohinter */
- 0x20000L, /* requires FreeType 2.0 or above */
- (const void*) &ft_autohinter_service,
- (FT_Module_Constructor)ft_autohinter_init,
- (FT_Module_Destructor) ft_autohinter_done,
- (FT_Module_Requester) 0
- };
- /* END */
|