ftmisc.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:3k
源码类别:

其他游戏

开发平台:

Visual C++

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  ftmisc.h                                                               */
  4. /*                                                                         */
  5. /*    Miscellaneous macros for stand-alone rasterizer (specification       */
  6. /*    only).                                                               */
  7. /*                                                                         */
  8. /*  Copyright 2005 by                                                      */
  9. /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
  10. /*                                                                         */
  11. /*  This file is part of the FreeType project, and may only be used        */
  12. /*  modified and distributed under the terms of the FreeType project       */
  13. /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
  14. /*  this file you indicate that you have read the license and              */
  15. /*  understand and accept it fully.                                        */
  16. /*                                                                         */
  17. /***************************************************************************/
  18.   /***************************************************/
  19.   /*                                                 */
  20.   /* This file is *not* portable!  You have to adapt */
  21.   /* its definitions to your platform.               */
  22.   /*                                                 */
  23.   /***************************************************/
  24. #ifndef __FTMISC_H__
  25. #define __FTMISC_H__
  26. #include <string.h> /* memset */
  27. #define FT_BEGIN_HEADER
  28. #define FT_END_HEADER
  29. #define FT_LOCAL_DEF( x )   static x
  30.   /* from include/freetype2/fttypes.h */
  31.   typedef unsigned char  FT_Byte;
  32.   typedef signed int     FT_Int;
  33.   typedef unsigned int   FT_UInt;
  34.   typedef signed long    FT_Long;
  35.   typedef unsigned long  FT_ULong;
  36.   typedef signed long    FT_F26Dot6;
  37.   typedef int            FT_Error;
  38. #define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) 
  39.           ( ( (FT_ULong)_x1 << 24 ) |     
  40.             ( (FT_ULong)_x2 << 16 ) |     
  41.             ( (FT_ULong)_x3 <<  8 ) |     
  42.               (FT_ULong)_x4         )
  43.   /* from src/ftcalc.c */
  44. #include <inttypes.h>
  45.   typedef int64_t  FT_Int64;
  46.   static FT_Long
  47.   FT_MulDiv( FT_Long  a,
  48.              FT_Long  b,
  49.              FT_Long  c )
  50.   {
  51.     FT_Int   s;
  52.     FT_Long  d;
  53.     s = 1;
  54.     if ( a < 0 ) { a = -a; s = -1; }
  55.     if ( b < 0 ) { b = -b; s = -s; }
  56.     if ( c < 0 ) { c = -c; s = -s; }
  57.     d = (FT_Long)( c > 0 ? ( (FT_Int64)a * b + ( c >> 1 ) ) / c
  58.                          : 0x7FFFFFFFL );
  59.     return ( s > 0 ) ? d : -d;
  60.   }
  61. #endif /* __FTMISC_H__ */
  62. /* END */