source: trunk/poppler/freetype2/src/raster/ftmisc.h @ 262

Last change on this file since 262 was 262, checked in by Eugene Romanenko, 12 years ago

PDF plugin: freetype library updated to version 2.3.8

File size: 2.9 KB
Line 
1/***************************************************************************/
2/*                                                                         */
3/*  ftmisc.h                                                               */
4/*                                                                         */
5/*    Miscellaneous macros for stand-alone rasterizer (specification       */
6/*    only).                                                               */
7/*                                                                         */
8/*  Copyright 2005, 2009 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  /***************************************************/
21  /*                                                 */
22  /* This file is *not* portable!  You have to adapt */
23  /* its definitions to your platform.               */
24  /*                                                 */
25  /***************************************************/
26
27#ifndef __FTMISC_H__
28#define __FTMISC_H__
29
30  /* memset */
31#include FT_CONFIG_STANDARD_LIBRARY_H
32
33#define FT_BEGIN_HEADER
34#define FT_END_HEADER
35
36#define FT_LOCAL_DEF( x )   static x
37
38  /* from include/freetype2/fttypes.h */
39
40  typedef unsigned char  FT_Byte;
41  typedef signed int     FT_Int;
42  typedef unsigned int   FT_UInt;
43  typedef signed long    FT_Long;
44  typedef unsigned long  FT_ULong;
45  typedef signed long    FT_F26Dot6;
46  typedef int            FT_Error;
47
48#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
49          ( ( (FT_ULong)_x1 << 24 ) |     \
50            ( (FT_ULong)_x2 << 16 ) |     \
51            ( (FT_ULong)_x3 <<  8 ) |     \
52              (FT_ULong)_x4         )
53
54
55  /* from src/ftcalc.c */
56
57#include <inttypes.h>
58
59  typedef int64_t  FT_Int64;
60
61  static FT_Long
62  FT_MulDiv( FT_Long  a,
63             FT_Long  b,
64             FT_Long  c )
65  {
66    FT_Int   s;
67    FT_Long  d;
68
69
70    s = 1;
71    if ( a < 0 ) { a = -a; s = -1; }
72    if ( b < 0 ) { b = -b; s = -s; }
73    if ( c < 0 ) { c = -c; s = -s; }
74
75    d = (FT_Long)( c > 0 ? ( (FT_Int64)a * b + ( c >> 1 ) ) / c
76                         : 0x7FFFFFFFL );
77
78    return ( s > 0 ) ? d : -d;
79  }
80
81#endif /* __FTMISC_H__ */
82
83
84/* END */
Note: See TracBrowser for help on using the repository browser.