mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-30 23:47:27 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 
 | |
|  * The Python Imaging Library
 | |
|  * $Id$
 | |
|  *
 | |
|  * platform declarations for the imaging core library
 | |
|  *
 | |
|  * Copyright (c) Fredrik Lundh 1995-2003.
 | |
|  */
 | |
| 
 | |
| #include "Python.h"
 | |
| 
 | |
| /* Check that we have an ANSI compliant compiler */
 | |
| #ifndef HAVE_PROTOTYPES
 | |
| #error Sorry, this library requires support for ANSI prototypes.
 | |
| #endif
 | |
| #ifndef STDC_HEADERS
 | |
| #error Sorry, this library requires ANSI header files.
 | |
| #endif
 | |
| 
 | |
| #if defined(_MSC_VER)
 | |
| #ifndef WIN32
 | |
| #define WIN32
 | |
| #endif
 | |
| /* VC++ 4.0 is a bit annoying when it comes to precision issues (like
 | |
|    claiming that "float a = 0.0;" would lead to loss of precision).  I
 | |
|    don't like to see warnings from my code, but since I still want to
 | |
|    keep it readable, I simply switch off a few warnings instead of adding
 | |
|    the tons of casts that VC++ seem to require.  This code is compiled
 | |
|    with numerous other compilers as well, so any real errors are likely
 | |
|    to be catched anyway. */
 | |
| #pragma warning(disable: 4244) /* conversion from 'float' to 'int' */
 | |
| #endif
 | |
| 
 | |
| #if defined(_MSC_VER)
 | |
| #define inline __inline
 | |
| #elif !defined(USE_INLINE)
 | |
| #define inline
 | |
| #endif
 | |
| 
 | |
| #if SIZEOF_SHORT == 2
 | |
| #define	INT16 short
 | |
| #elif SIZEOF_INT == 2
 | |
| #define	INT16 int
 | |
| #else
 | |
| #define	INT16 short /* most things works just fine anyway... */
 | |
| #endif
 | |
| 
 | |
| #if SIZEOF_SHORT == 4
 | |
| #define	INT32 short
 | |
| #elif SIZEOF_INT == 4
 | |
| #define	INT32 int
 | |
| #elif SIZEOF_LONG == 4
 | |
| #define	INT32 long
 | |
| #else
 | |
| #error Cannot find required 32-bit integer type
 | |
| #endif
 | |
| 
 | |
| #if SIZEOF_LONG == 8
 | |
| #define	INT64 long
 | |
| #elif SIZEOF_LONG_LONG == 8
 | |
| #define	INT64 long
 | |
| #endif
 | |
| 
 | |
| /* assume IEEE; tweak if necessary (patches are welcome) */
 | |
| #define	FLOAT32 float
 | |
| #define	FLOAT64 double
 | |
| 
 | |
| #define	INT8  signed char
 | |
| #define	UINT8 unsigned char
 | |
| 
 | |
| #define	UINT16 unsigned INT16
 | |
| #define	UINT32 unsigned INT32
 |