Hash :
3a89c2a4
        
        Author :
  
        
        Date :
2000-08-01T17:05:20
        
      
Removing FT_MAKE_OPTION_SINGLE_LIBRARY_OBJECT. It has never worked. Instead, define BASE_DEF() and BASE_FUNC() similarly to FT_EXPORT_DEF() and FT_EXPORT_FUNC(), respectively, allowing the programmer to define proper types and/or export lists for multiple DLLs if necessary (e.g. ftbase.dll -- standalone, fttype1.dll -- needs ftbase.dll, etc.). The library is finally compiling and linking natively with a C++ compiler!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
/***************************************************************************/
/*                                                                         */
/*  ahmodule.c                                                             */
/*                                                                         */
/*    Auto-hinting module implementation (declaration).                    */
/*                                                                         */
/*  Copyright 2000 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 <freetype/ftmodule.h>
#ifdef FT_FLAT_COMPILE
#include "ahhint.h"
#else
#include <autohint/ahhint.h>
#endif
  typedef struct  FT_AutoHinterRec_
  {
    FT_ModuleRec  root;
    AH_Hinter*    hinter;
  } FT_AutoHinterRec;
  static
  FT_Error  ft_autohinter_init( FT_AutoHinter  module )
  {
    return ah_hinter_new( module->root.library, &module->hinter );
  }
  static
  void  ft_autohinter_done( FT_AutoHinter  module )
  {
    ah_hinter_done( module->hinter );
  }
  static
  FT_Error  ft_autohinter_load( FT_AutoHinter  module,
                                FT_GlyphSlot   slot,
                                FT_Size        size,
                                FT_UInt        glyph_index,
                                FT_ULong       load_flags )
  {
    return ah_hinter_load_glyph( module->hinter,
                                 slot, size, glyph_index, load_flags );
  }
  static
  void   ft_autohinter_reset( FT_AutoHinter  module,
                              FT_Face        face )
  {
    UNUSED( module );
    if ( face->autohint.data )
      ah_hinter_done_face_globals( (AH_Face_Globals*)(face->autohint.data) );
  }
  static
  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 );
  }
  static
  void  ft_autohinter_done_globals( FT_AutoHinter  module,
                                    void*          global_hints )
  {
    ah_hinter_done_global_hints( module->hinter, global_hints );
  }
  static
  const FT_AutoHinter_Interface  autohinter_interface =
  {
    ft_autohinter_reset,
    ft_autohinter_load,
    ft_autohinter_get_globals,
    ft_autohinter_done_globals
  };
  FT_EXPORT_VAR( 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*)&autohinter_interface,
    (FT_Module_Constructor)ft_autohinter_init,
    (FT_Module_Destructor) ft_autohinter_done,
    (FT_Module_Requester)  0
  };
/* END */