afmodule.c

Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  afmodule.c                                                             */
00004 /*                                                                         */
00005 /*    Auto-fitter module implementation (body).                            */
00006 /*                                                                         */
00007 /*  Copyright 2003, 2004, 2005, 2006 by                                    */
00008 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
00009 /*                                                                         */
00010 /*  This file is part of the FreeType project, and may only be used,       */
00011 /*  modified, and distributed under the terms of the FreeType project      */
00012 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00013 /*  this file you indicate that you have read the license and              */
00014 /*  understand and accept it fully.                                        */
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,   /* version 1.0 of the autofitter  */
00084     0x20000L,   /* requires FreeType 2.0 or above */
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 /* END */

Generated on Tue Jul 5 14:13:42 2011 for ROOT_528-00b_version by  doxygen 1.5.1