Ignore:
Timestamp:
Jan 17, 2009, 10:45:05 AM (12 years ago)
Author:
Eugene Romanenko
Message:

PDF plugin: freetype library updated to version 2.3.8

Location:
trunk/poppler/freetype2/include/freetype/config
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/poppler/freetype2/include/freetype/config/ftconfig.h

    r251 r262  
    55/*    ANSI-specific configuration file (specification only).               */
    66/*                                                                         */
    7 /*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007 by                   */
     7/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by             */
    88/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    99/*                                                                         */
     
    4444#include FT_CONFIG_STANDARD_LIBRARY_H
    4545
     46
    4647FT_BEGIN_HEADER
    4748
     
    135136#define FT_MACINTOSH 1
    136137#endif
     138
     139#elif defined( __SC__ ) || defined( __MRC__ )
     140  /* Classic MacOS compilers */
     141#include "ConditionalMacros.h"
     142#if TARGET_OS_MAC
     143#define FT_MACINTOSH 1
     144#endif
     145
    137146#endif
    138147
     
    213222#endif
    214223
     224
    215225  /* look up an integer type that is at least 32 bits */
    216226#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT)
     
    270280
    271281
     282  /*************************************************************************/
     283  /*                                                                       */
     284  /* A 64-bit data type will create compilation problems if you compile    */
     285  /* in strict ANSI mode.  To avoid them, we disable its use if __STDC__   */
     286  /* is defined.  You can however ignore this rule by defining the         */
     287  /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro.                     */
     288  /*                                                                       */
     289#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
     290
     291#ifdef __STDC__
     292
     293  /* undefine the 64-bit macros in strict ANSI compilation mode */
     294#undef FT_LONG64
     295#undef FT_INT64
     296
     297#endif /* __STDC__ */
     298
     299#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
     300
     301
    272302#define FT_BEGIN_STMNT  do {
    273303#define FT_END_STMNT    } while ( 0 )
     
    275305
    276306
    277   /*************************************************************************/
    278   /*                                                                       */
    279   /* A 64-bit data type will create compilation problems if you compile    */
    280   /* in strict ANSI mode.  To avoid them, we disable their use if          */
    281   /* __STDC__ is defined.  You can however ignore this rule by             */
    282   /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro.        */
    283   /*                                                                       */
    284 #if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
    285 
    286 #ifdef __STDC__
    287 
    288   /* undefine the 64-bit macros in strict ANSI compilation mode */
    289 #undef FT_LONG64
    290 #undef FT_INT64
    291 
    292 #endif /* __STDC__ */
    293 
    294 #endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
     307#ifndef  FT_CONFIG_OPTION_NO_ASSEMBLER
     308  /* Provide assembler fragments for performance-critical functions. */
     309  /* These must be defined `static __inline__' with GCC.             */
     310
     311#ifdef __GNUC__
     312
     313#if defined( __arm__ ) && !defined( __thumb__ )
     314#define FT_MULFIX_ASSEMBLER  FT_MulFix_arm
     315
     316  /* documentation is in freetype.h */
     317
     318  static __inline__ FT_Int32
     319  FT_MulFix_arm( FT_Int32  a,
     320                 FT_Int32  b )
     321  {
     322    register FT_Int32  t, t2;
     323
     324
     325    asm __volatile__ (
     326      "smull  %1, %2, %4, %3\n\t"   /* (lo=%1,hi=%2) = a*b */
     327      "mov    %0, %2, asr #31\n\t"  /* %0  = (hi >> 31) */
     328      "add    %0, %0, #0x8000\n\t"  /* %0 += 0x8000 */
     329      "adds   %1, %1, %0\n\t"       /* %1 += %0 */
     330      "adc    %2, %2, #0\n\t"       /* %2 += carry */
     331      "mov    %0, %1, lsr #16\n\t"  /* %0  = %1 >> 16 */
     332      "orr    %0, %2, lsl #16\n\t"  /* %0 |= %2 << 16 */
     333      : "=r"(a), "=&r"(t2), "=&r"(t)
     334      : "r"(a), "r"(b) );
     335    return a;
     336  }
     337
     338#endif /* __arm__ && !__thumb__ */
     339
     340#if defined( i386 )
     341#define FT_MULFIX_ASSEMBLER  FT_MulFix_i386
     342
     343  /* documentation is in freetype.h */
     344
     345  static __inline__ FT_Int32
     346  FT_MulFix_i386( FT_Int32  a,
     347                  FT_Int32  b )
     348  {
     349    register FT_Int32  result;
     350
     351
     352    __asm__ __volatile__ (
     353      "imul  %%edx\n"
     354      "movl  %%edx, %%ecx\n"
     355      "sarl  $31, %%ecx\n"
     356      "addl  $0x8000, %%ecx\n"
     357      "addl  %%ecx, %%eax\n"
     358      "adcl  $0, %%edx\n"
     359      "shrl  $16, %%eax\n"
     360      "shll  $16, %%edx\n"
     361      "addl  %%edx, %%eax\n"
     362      : "=a"(result), "+d"(b)
     363      : "a"(a)
     364      : "%ecx" );
     365    return result;
     366  }
     367
     368#endif /* i386 */
     369
     370#endif /* __GNUC__ */
     371
     372#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
     373
     374
     375#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
     376#ifdef FT_MULFIX_ASSEMBLER
     377#define FT_MULFIX_INLINED  FT_MULFIX_ASSEMBLER
     378#endif
     379#endif
    295380
    296381
  • trunk/poppler/freetype2/include/freetype/config/ftheader.h

    r251 r262  
    730730
    731731
     732  /*************************************************************************
     733   *
     734   * @macro:
     735   *   FT_ADVANCES_H
     736   *
     737   * @description:
     738   *   A macro used in #include statements to name the file containing the
     739   *   FreeType~2 API which returns individual and ranged glyph advances.
     740   */
     741#define FT_ADVANCES_H  <freetype/ftadvanc.h>
     742
     743
    732744  /* */
    733745
  • trunk/poppler/freetype2/include/freetype/config/ftmodule.h

    r150 r262  
    1111 */
    1212
    13 FT_USE_MODULE(autofit_module_class)
    14 FT_USE_MODULE(tt_driver_class)
    15 FT_USE_MODULE(t1_driver_class)
    16 FT_USE_MODULE(cff_driver_class)
    17 FT_USE_MODULE(t1cid_driver_class)
    18 FT_USE_MODULE(pfr_driver_class)
    19 FT_USE_MODULE(t42_driver_class)
    20 FT_USE_MODULE(winfnt_driver_class)
    21 FT_USE_MODULE(pcf_driver_class)
    22 FT_USE_MODULE(psaux_module_class)
    23 FT_USE_MODULE(psnames_module_class)
    24 FT_USE_MODULE(pshinter_module_class)
    25 FT_USE_MODULE(ft_raster1_renderer_class)
    26 FT_USE_MODULE(sfnt_module_class)
    27 FT_USE_MODULE(ft_smooth_renderer_class)
    28 FT_USE_MODULE(ft_smooth_lcd_renderer_class)
    29 FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
    30 FT_USE_MODULE(bdf_driver_class)
     13FT_USE_MODULE( FT_Module_Class, autofit_module_class )
     14FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
     15FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class )
     16FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class )
     17FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class )
     18FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
     19FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class )
     20FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class )
     21FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
     22FT_USE_MODULE( FT_Module_Class, psaux_module_class )
     23FT_USE_MODULE( FT_Module_Class, psnames_module_class )
     24FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
     25FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
     26FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
     27FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
     28FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
     29FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
     30FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
    3131
    3232/* EOF */
  • trunk/poppler/freetype2/include/freetype/config/ftoption.h

    r251 r262  
    113113  /*         `configure' script on supported platforms.                    */
    114114  /*                                                                       */
    115 #undef  FT_CONFIG_OPTION_FORCE_INT64
     115#undef FT_CONFIG_OPTION_FORCE_INT64
     116
     117
     118  /*************************************************************************/
     119  /*                                                                       */
     120  /* If this macro is defined, do not try to use an assembler version of   */
     121  /* performance-critical functions (e.g. FT_MulFix).  You should only do  */
     122  /* that to verify that the assembler function works properly, or to      */
     123  /* execute benchmark tests of the various implementations.               */
     124/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */
     125
     126
     127  /*************************************************************************/
     128  /*                                                                       */
     129  /* If this macro is defined, try to use an inlined assembler version of  */
     130  /* the `FT_MulFix' function, which is a `hotspot' when loading and       */
     131  /* hinting glyphs, and which should be executed as fast as possible.     */
     132  /*                                                                       */
     133  /* Note that if your compiler or CPU is not supported, this will default */
     134  /* to the standard and portable implementation found in `ftcalc.c'.      */
     135  /*                                                                       */
     136#define FT_CONFIG_OPTION_INLINE_MULFIX
    116137
    117138
     
    164185  /*   it for certain configurations only.                                 */
    165186  /*                                                                       */
    166 /* #define  FT_CONFIG_OPTION_SYSTEM_ZLIB */
     187/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
    167188
    168189
     
    205226  /*   them for certain configurations only.                               */
    206227  /*                                                                       */
    207 /* #define  FT_EXPORT(x)       extern x */
    208 /* #define  FT_EXPORT_DEF(x)   x */
     228/* #define FT_EXPORT(x)      extern x */
     229/* #define FT_EXPORT_DEF(x)  x */
    209230
    210231
     
    213234  /* Glyph Postscript Names handling                                       */
    214235  /*                                                                       */
    215   /*   By default, FreeType 2 is compiled with the `PSNames' module.  This */
     236  /*   By default, FreeType 2 is compiled with the `psnames' module.  This */
    216237  /*   module is in charge of converting a glyph name string into a        */
    217238  /*   Unicode value, or return a Macintosh standard glyph name for the    */
    218239  /*   use with the TrueType `post' table.                                 */
    219240  /*                                                                       */
    220   /*   Undefine this macro if you do not want `PSNames' compiled in your   */
     241  /*   Undefine this macro if you do not want `psnames' compiled in your   */
    221242  /*   build of FreeType.  This has the following effects:                 */
    222243  /*                                                                       */
     
    225246  /*     `post' table.                                                     */
    226247  /*                                                                       */
    227   /*   - The Type 1 driver will not be able to synthetize a Unicode        */
     248  /*   - The Type 1 driver will not be able to synthesize a Unicode        */
    228249  /*     charmap out of the glyphs found in the fonts.                     */
    229250  /*                                                                       */
     
    241262  /*   in.  Among other things, the module is used to convert a glyph name */
    242263  /*   into a Unicode value.  This is especially useful in order to        */
    243   /*   synthetize on the fly a Unicode charmap from the CFF/Type 1 driver  */
     264  /*   synthesize on the fly a Unicode charmap from the CFF/Type 1 driver  */
    244265  /*   through a big table named the `Adobe Glyph List' (AGL).             */
    245266  /*                                                                       */
    246267  /*   Undefine this macro if you do not want the Adobe Glyph List         */
    247268  /*   compiled in your `PSNames' module.  The Type 1 driver will not be   */
    248   /*   able to synthetize a Unicode charmap out of the glyphs found in the */
     269  /*   able to synthesize a Unicode charmap out of the glyphs found in the */
    249270  /*   fonts.                                                              */
    250271  /*                                                                       */
     
    468489  /* of the TrueType bytecode interpreter is used that doesn't implement   */
    469490  /* any of the patented opcodes and algorithms.  Note that the            */
    470   /* the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you     */
    471   /* define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; with other words,       */
    472   /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or                */
     491  /* TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you define  */
     492  /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, either define  */
     493  /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER or                              */
    473494  /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time.    */
    474495  /*                                                                       */
     
    654675
    655676  /*
    656    * This variable is defined if either unpatented or native TrueType
     677   * This macro is defined if either unpatented or native TrueType
    657678   * hinting is requested by the definitions above.
    658679   */
    659680#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
    660681#define  TT_USE_BYTECODE_INTERPRETER
     682#undef   TT_CONFIG_OPTION_UNPATENTED_HINTING
    661683#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING
    662684#define  TT_USE_BYTECODE_INTERPRETER
  • trunk/poppler/freetype2/include/freetype/config/ftstdlib.h

    r251 r262  
    66/*    only).                                                               */
    77/*                                                                         */
    8 /*  Copyright 2002, 2003, 2004, 2005, 2006, 2007 by                        */
     8/*  Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2009 by                  */
    99/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    1010/*                                                                         */
     
    5454  /* In these case, `ftconfig.h' will refuse to compile anyway with a   */
    5555  /* message like `couldn't find 32-bit type' or something similar.     */
    56   /*                                                                    */
    57   /* IMPORTANT NOTE: We do not define aliases for heap management and   */
    58   /*                 i/o routines (i.e. malloc/free/fopen/fread/...)    */
    59   /*                 since these functions should all be encapsulated   */
    60   /*                 by platform-specific implementations of            */
    61   /*                 `ftsystem.c'.                                      */
    6256  /*                                                                    */
    6357  /**********************************************************************/
     
    125119#define ft_qsort  qsort
    126120
    127 #define ft_exit   exit    /* only used to exit from unhandled exceptions */
    128 
    129121
    130122  /**********************************************************************/
Note: See TracChangeset for help on using the changeset viewer.