Edit

kc3-lang/freetype/src/raster/ftmisc.h

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2009-01-13 17:34:48
    Hash : 24d72a1b
    Message : Don't use stdlib.h and friends directly. Reported by Mickey Gabel <mickey@monfort.co.il>. * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/. * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h: s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/. * src/autofit/aftypes.h, src/autofit/afhints.c, src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/ * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.

  • src/raster/ftmisc.h
  • /***************************************************************************/
    /*                                                                         */
    /*  ftmisc.h                                                               */
    /*                                                                         */
    /*    Miscellaneous macros for stand-alone rasterizer (specification       */
    /*    only).                                                               */
    /*                                                                         */
    /*  Copyright 2005, 2009 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.                                        */
    /*                                                                         */
    /***************************************************************************/
    
    
      /***************************************************/
      /*                                                 */
      /* This file is *not* portable!  You have to adapt */
      /* its definitions to your platform.               */
      /*                                                 */
      /***************************************************/
    
    #ifndef __FTMISC_H__
    #define __FTMISC_H__
    
      /* memset */
    #include FT_CONFIG_STANDARD_LIBRARY_H
    
    #define FT_BEGIN_HEADER
    #define FT_END_HEADER
    
    #define FT_LOCAL_DEF( x )   static x
    
      /* from include/freetype2/fttypes.h */
    
      typedef unsigned char  FT_Byte;
      typedef signed int     FT_Int;
      typedef unsigned int   FT_UInt;
      typedef signed long    FT_Long;
      typedef unsigned long  FT_ULong;
      typedef signed long    FT_F26Dot6;
      typedef int            FT_Error;
    
    #define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
              ( ( (FT_ULong)_x1 << 24 ) |     \
                ( (FT_ULong)_x2 << 16 ) |     \
                ( (FT_ULong)_x3 <<  8 ) |     \
                  (FT_ULong)_x4         )
    
    
      /* from src/ftcalc.c */
    
    #include <inttypes.h>
    
      typedef int64_t  FT_Int64;
    
      static FT_Long
      FT_MulDiv( FT_Long  a,
                 FT_Long  b,
                 FT_Long  c )
      {
        FT_Int   s;
        FT_Long  d;
    
    
        s = 1;
        if ( a < 0 ) { a = -a; s = -1; }
        if ( b < 0 ) { b = -b; s = -s; }
        if ( c < 0 ) { c = -c; s = -s; }
    
        d = (FT_Long)( c > 0 ? ( (FT_Int64)a * b + ( c >> 1 ) ) / c
                             : 0x7FFFFFFFL );
    
        return ( s > 0 ) ? d : -d;
      }
    
    #endif /* __FTMISC_H__ */
    
    
    /* END */