00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "afmodule.h"
00020 #include "afloader.h"
00021 #include "afpic.h"
00022
00023 #ifdef AF_DEBUG
00024 int _af_debug;
00025 int _af_debug_disable_horz_hints;
00026 int _af_debug_disable_vert_hints;
00027 int _af_debug_disable_blue_hints;
00028 void* _af_debug_hints;
00029 #endif
00030
00031 #include FT_INTERNAL_OBJECTS_H
00032
00033
00034 typedef struct FT_AutofitterRec_
00035 {
00036 FT_ModuleRec root;
00037 AF_LoaderRec loader[1];
00038
00039 } FT_AutofitterRec, *FT_Autofitter;
00040
00041
00042 FT_CALLBACK_DEF( FT_Error )
00043 af_autofitter_init( FT_Autofitter module )
00044 {
00045 return af_loader_init( module->loader, module->root.library->memory );
00046 }
00047
00048
00049 FT_CALLBACK_DEF( void )
00050 af_autofitter_done( FT_Autofitter module )
00051 {
00052 af_loader_done( module->loader );
00053 }
00054
00055
00056 FT_CALLBACK_DEF( FT_Error )
00057 af_autofitter_load_glyph( FT_Autofitter module,
00058 FT_GlyphSlot slot,
00059 FT_Size size,
00060 FT_UInt glyph_index,
00061 FT_Int32 load_flags )
00062 {
00063 FT_UNUSED( size );
00064
00065 return af_loader_load_glyph( module->loader, slot->face,
00066 glyph_index, load_flags );
00067 }
00068
00069
00070 FT_DEFINE_AUTOHINTER_SERVICE(af_autofitter_service,
00071 NULL,
00072 NULL,
00073 NULL,
00074 (FT_AutoHinter_GlyphLoadFunc)af_autofitter_load_glyph
00075 )
00076
00077 FT_DEFINE_MODULE(autofit_module_class,
00078
00079 FT_MODULE_HINTER,
00080 sizeof ( FT_AutofitterRec ),
00081
00082 "autofitter",
00083 0x10000L,
00084 0x20000L,
00085
00086 (const void*)&AF_AF_AUTOFITTER_SERVICE_GET,
00087
00088 (FT_Module_Constructor)af_autofitter_init,
00089 (FT_Module_Destructor) af_autofitter_done,
00090 (FT_Module_Requester) NULL
00091 )
00092
00093
00094