Edit

kc3-lang/freetype/src/autofit/afmodule.c

Branch :

  • Show log

    Commit

  • Author : David Turner
    Date : 2006-09-26 15:42:44
    Hash : 6f8c6229
    Message : * src/autofit/aftypes.h, src/autofit/afhints.h, src/autofit/afmodule.c: adding support for disabling horizontal and vertical hinting for the purpose of debugging the auto-fitter

  • src/autofit/afmodule.c
  • /***************************************************************************/
    /*                                                                         */
    /*  afmodule.c                                                             */
    /*                                                                         */
    /*    Auto-fitter module implementation (body).                            */
    /*                                                                         */
    /*  Copyright 2003, 2004, 2005 by                                          */
    /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    /*                                                                         */
    /*  This file is part of the FreeType project, and may only be used,       */
    /*  modified, and distributed under the terms of the FreeType project      */
    /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
    /*  this file you indicate that you have read the license and              */
    /*  understand and accept it fully.                                        */
    /*                                                                         */
    /***************************************************************************/
    
    
    #include "afmodule.h"
    #include "afloader.h"
    
    #ifdef AF_DEBUG
      int  _af_debug_disable_horz_hints;
      int  _af_debug_disable_vert_hints;
    #endif
    
    #include FT_INTERNAL_OBJECTS_H
    
    
      typedef struct  FT_AutofitterRec_
      {
        FT_ModuleRec  root;
        AF_LoaderRec  loader[1];
    
      } FT_AutofitterRec, *FT_Autofitter;
    
    
      FT_CALLBACK_DEF( FT_Error )
      af_autofitter_init( FT_Autofitter  module )
      {
        return af_loader_init( module->loader, module->root.library->memory );
      }
    
    
      FT_CALLBACK_DEF( void )
      af_autofitter_done( FT_Autofitter  module )
      {
        af_loader_done( module->loader );
      }
    
    
      FT_CALLBACK_DEF( FT_Error )
      af_autofitter_load_glyph( FT_Autofitter  module,
                                FT_GlyphSlot   slot,
                                FT_Size        size,
                                FT_UInt        glyph_index,
                                FT_Int32       load_flags )
      {
        FT_UNUSED( size );
    
        return af_loader_load_glyph( module->loader, slot->face,
                                     glyph_index, load_flags );
      }
    
    
      FT_CALLBACK_TABLE_DEF
      const FT_AutoHinter_ServiceRec  af_autofitter_service =
      {
        NULL,
        NULL,
        NULL,
        (FT_AutoHinter_GlyphLoadFunc)af_autofitter_load_glyph
      };
    
    
      FT_CALLBACK_TABLE_DEF
      const FT_Module_Class  autofit_module_class =
      {
        FT_MODULE_HINTER,
        sizeof ( FT_AutofitterRec ),
    
        "autofitter",
        0x10000L,   /* version 1.0 of the autofitter  */
        0x20000L,   /* requires FreeType 2.0 or above */
    
        (const void*)&af_autofitter_service,
    
        (FT_Module_Constructor)af_autofitter_init,
        (FT_Module_Destructor) af_autofitter_done,
        (FT_Module_Requester)  NULL
      };
    
    
    /* END */