misc/libfreetype/src/autofit/afmodule.c
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     1 /***************************************************************************/
       
     2 /*                                                                         */
       
     3 /*  afmodule.c                                                             */
       
     4 /*                                                                         */
       
     5 /*    Auto-fitter module implementation (body).                            */
       
     6 /*                                                                         */
       
     7 /*  Copyright 2003-2006, 2009, 2011 by                                     */
       
     8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
       
     9 /*                                                                         */
       
    10 /*  This file is part of the FreeType project, and may only be used,       */
       
    11 /*  modified, and distributed under the terms of the FreeType project      */
       
    12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
       
    13 /*  this file you indicate that you have read the license and              */
       
    14 /*  understand and accept it fully.                                        */
       
    15 /*                                                                         */
       
    16 /***************************************************************************/
       
    17 
       
    18 
       
    19 #include "afmodule.h"
       
    20 #include "afloader.h"
       
    21 #include "afpic.h"
       
    22 
       
    23 #ifdef FT_DEBUG_AUTOFIT
       
    24   int    _af_debug_disable_horz_hints;
       
    25   int    _af_debug_disable_vert_hints;
       
    26   int    _af_debug_disable_blue_hints;
       
    27   void*  _af_debug_hints;
       
    28 #endif
       
    29 
       
    30 #include FT_INTERNAL_OBJECTS_H
       
    31 
       
    32 
       
    33   typedef struct  FT_AutofitterRec_
       
    34   {
       
    35     FT_ModuleRec  root;
       
    36     AF_LoaderRec  loader[1];
       
    37 
       
    38   } FT_AutofitterRec, *FT_Autofitter;
       
    39 
       
    40 
       
    41   FT_CALLBACK_DEF( FT_Error )
       
    42   af_autofitter_init( FT_Autofitter  module )
       
    43   {
       
    44     return af_loader_init( module->loader, module->root.library->memory );
       
    45   }
       
    46 
       
    47 
       
    48   FT_CALLBACK_DEF( void )
       
    49   af_autofitter_done( FT_Autofitter  module )
       
    50   {
       
    51     af_loader_done( module->loader );
       
    52   }
       
    53 
       
    54 
       
    55   FT_CALLBACK_DEF( FT_Error )
       
    56   af_autofitter_load_glyph( FT_Autofitter  module,
       
    57                             FT_GlyphSlot   slot,
       
    58                             FT_Size        size,
       
    59                             FT_UInt        glyph_index,
       
    60                             FT_Int32       load_flags )
       
    61   {
       
    62     FT_UNUSED( size );
       
    63 
       
    64     return af_loader_load_glyph( module->loader, slot->face,
       
    65                                  glyph_index, load_flags );
       
    66   }
       
    67 
       
    68 
       
    69   FT_DEFINE_AUTOHINTER_SERVICE(
       
    70     af_autofitter_service,
       
    71     NULL,
       
    72     NULL,
       
    73     NULL,
       
    74     (FT_AutoHinter_GlyphLoadFunc)af_autofitter_load_glyph )
       
    75 
       
    76   FT_DEFINE_MODULE(
       
    77     autofit_module_class,
       
    78 
       
    79     FT_MODULE_HINTER,
       
    80     sizeof ( FT_AutofitterRec ),
       
    81 
       
    82     "autofitter",
       
    83     0x10000L,   /* version 1.0 of the autofitter  */
       
    84     0x20000L,   /* requires FreeType 2.0 or above */
       
    85 
       
    86     (const void*)&AF_AF_AUTOFITTER_SERVICE_GET,
       
    87 
       
    88     (FT_Module_Constructor)af_autofitter_init,
       
    89     (FT_Module_Destructor) af_autofitter_done,
       
    90     (FT_Module_Requester)  NULL )
       
    91 
       
    92 
       
    93 /* END */