Edit

kc3-lang/freetype/src/autohint/ahloader.h

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2000-07-26 14:11:15
    Hash : c3dd151b
    Message : autohint: Formatting. Replacing many enums with #defines since we do arithmetics (especially ORing which would produce undefined enum values). The ideal thing instead of #defines is `const int' as provided in C++... Adding header files to rules.mk

  • src/autohint/ahloader.h
  • /***************************************************************************/
    /*                                                                         */
    /*  ahloader.h                                                             */
    /*                                                                         */
    /*    Glyph loader for the auto-hinting module (declaration only).         */
    /*                                                                         */
    /*  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.        */
    /*                                                                         */
    /***************************************************************************/
    
    
      /*************************************************************************/
      /*                                                                       */
      /* This defines the AH_GlyphLoader type in two different ways:           */
      /*                                                                       */
      /* - If the module is compiled within FreeType 2, the type is simply a   */
      /*   typedef to FT_GlyphLoader.                                          */
      /*                                                                       */
      /* - If the module is compiled as a standalone object, AH_GlyphLoader    */
      /*   has its own implementation.                                         */
      /*                                                                       */
      /*************************************************************************/
    
    
    #ifndef AHLOADER_H
    #define AHLOADER_H
    
    
    #ifdef _STANDALONE_
    
      typedef struct  AH_GlyphLoad_
      {
        FT_Outline    outline;       /* outline             */
        FT_UInt       num_subglyphs; /* number of subglyphs */
        FT_SubGlyph*  subglyphs;     /* subglyphs           */
        FT_Vector*    extra_points;  /* extra points table  */
    
      } AH_GlyphLoad;
    
    
      struct  AH_GlyphLoader_
      {
        FT_Memory     memory;
        FT_UInt       max_points;
        FT_UInt       max_contours;
        FT_UInt       max_subglyphs;
        FT_Bool       use_extra;
    
        AH_GlyphLoad  base;
        AH_GlyphLoad  current;
    
        void*         other;        /* for possible future extensions */
      };
    
    
      LOCAL_DEF
      FT_Error  AH_GlyphLoader_New( FT_Memory         memory,
                                    AH_GlyphLoader**  aloader );
    
      LOCAL_DEF
      FT_Error  AH_GlyphLoader_Create_Extra( AH_GlyphLoader*  loader );
    
      LOCAL_DEF
      void  AH_GlyphLoader_Done( AH_GlyphLoader*  loader );
    
      LOCAL_DEF
      void  AH_GlyphLoader_Reset( AH_GlyphLoader*  loader );
    
      LOCAL_DEF
      void  AH_GlyphLoader_Rewind( AH_GlyphLoader*  loader );
    
      LOCAL_DEF
      FT_Error  AH_GlyphLoader_Check_Points( AH_GlyphLoader*  loader,
                                             FT_UInt          n_points,
                                             FT_UInt          n_contours );
    
      LOCAL_DEF
      FT_Error  AH_GlyphLoader_Check_Subglyphs( AH_GlyphLoader*  loader,
                                                FT_UInt          n_subs );
    
      LOCAL_DEF
      void  AH_GlyphLoader_Prepare( AH_GlyphLoader*  loader );
    
      LOCAL_DEF
      void  AH_GlyphLoader_Add( AH_GlyphLoader*  loader );
    
      LOCAL_DEF
      FT_Error  AH_GlyphLoader_Copy_Points( AH_GlyphLoader*  target,
                                            FT_GlyphLoader*  source );
    
    #else /* _STANDALONE */
    
    #include <freetype/internal/ftobjs.h>
    
      #define AH_Load    FT_GlyphLoad
      #define AH_Loader  FT_GlyphLoader
    
      #define ah_loader_new              FT_GlyphLoader_New
      #define ah_loader_done             FT_GlyphLoader_Done
      #define ah_loader_reset            FT_GlyphLoader_Reset
      #define ah_loader_rewind           FT_GlyphLoader_Rewind
      #define ah_loader_create_extra     FT_GlyphLoader_Create_Extra
      #define ah_loader_check_points     FT_GlyphLoader_Check_Points
      #define ah_loader_check_subglyphs  FT_GlyphLoader_Check_Subglyphs
      #define ah_loader_prepare          FT_GlyphLoader_Prepare
      #define ah_loader_add              FT_GlyphLoader_Add
      #define ah_loader_copy_points      FT_GlyphLoader_Copy_Points
    
    #endif /* _STANDALONE_ */
    
    #endif /* AHLOADER_H */
    
    
    /* END */