mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 18:06:18 +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
|