Edit

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

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2015-06-25 13:04:57
    Hash : 392cf22f
    Message : Another adjustment to header locations. This change is a result of a discussion thread on freetype-devel http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html Re-introduce the `freetype2' subdirectory for all FreeType header files after installation, and rename the `freetype2' subdirectory in the git repository to `freetype'. * include/freetype2: Renamed to... * include/freetype: This. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, PRIVATE_HEADERS): Updated. Update creation of `ftconfig.h'. Install generated `ftconfig.h'. * Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), builds/unix/freetype2.in: Updated. * builds/unix/freetype-config.in: Updated. * builds/unix/configure.raw: Don't check for `rmdir'. * builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable according to the autoconf info manual. * builds/unix/install.mk (install, uninstall, distclean_project_unix): Update and simplify. * builds/wince/*, builds/windows/*: Updated. * devel/ft2build.h, include/ft2build.h: Updated. * include/freetype2/config/ftheader.h, include/freetype2/internal/ftserv.h, include/freetype2/internal/internal.h: Update all header file macros. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. * docs/*: Updated.

  • src/raster/ftmisc.h
  • /***************************************************************************/
    /*                                                                         */
    /*  ftmisc.h                                                               */
    /*                                                                         */
    /*    Miscellaneous macros for stand-alone rasterizer (specification       */
    /*    only).                                                               */
    /*                                                                         */
    /*  Copyright 2005-2015 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/freetype/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 include/freetype/ftsystem.h */
    
      typedef struct FT_MemoryRec_*  FT_Memory;
    
      typedef void* (*FT_Alloc_Func)( FT_Memory  memory,
                                      long       size );
    
      typedef void (*FT_Free_Func)( FT_Memory  memory,
                                    void*      block );
    
      typedef void* (*FT_Realloc_Func)( FT_Memory  memory,
                                        long       cur_size,
                                        long       new_size,
                                        void*      block );
    
      typedef struct FT_MemoryRec_
      {
        void*            user;
    
        FT_Alloc_Func    alloc;
        FT_Free_Func     free;
        FT_Realloc_Func  realloc;
    
      } FT_MemoryRec;
    
    
      /* from src/ftcalc.c */
    
    #if ( defined _WIN32 || defined _WIN64 )
    
      typedef __int64  FT_Int64;
    
    #else
    
    #include "inttypes.h"
    
      typedef int64_t  FT_Int64;
    
    #endif
    
    
      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;
      }
    
    
      static FT_Long
      FT_MulDiv_No_Round( 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
                             : 0x7FFFFFFFL );
    
        return ( s > 0 ) ? d : -d;
      }
    
    #endif /* __FTMISC_H__ */
    
    
    /* END */