Mercurial > sdl-ios-xcode
diff include/SDL_types.h @ 1353:7ba544e2888d
Started the process of improving configure support, and merging C types
and library support into a single header.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 09 Feb 2006 09:07:13 +0000 |
parents | 1b5fbaf1d2c6 |
children | 22f39393668a |
line wrap: on
line diff
--- a/include/SDL_types.h Thu Feb 09 05:46:55 2006 +0000 +++ b/include/SDL_types.h Thu Feb 09 09:07:13 2006 +0000 @@ -20,105 +20,4 @@ slouken@libsdl.org */ -/* General data types used by the SDL library */ - -#ifndef _SDL_types_h -#define _SDL_types_h - -#include <sys/types.h> -#ifdef _MSC_VER -#ifndef _SIZE_T_DEFINED -#ifdef _WIN64 -typedef unsigned __int64 size_t; -#else -typedef _W64 unsigned int size_t; -#endif -#define _SIZE_T_DEFINED -#endif -typedef size_t uintptr_t; -#endif - -/* The number of elements in an array */ -#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) -#define SDL_TABLESIZE(table) SDL_arraysize(table) - -/* Basic data types */ -typedef enum SDL_bool { - SDL_FALSE = 0, - SDL_TRUE = 1 -} SDL_bool; - -#ifdef H_MMBASIC /* mmbasic.h (Tru64 MME) */ -/* Some of the basic types are already defined in mmbasic.h */ -typedef signed char Sint8; -typedef signed short Sint16; -typedef signed int Sint32; -#else -typedef unsigned char Uint8; -typedef signed char Sint8; -typedef unsigned short Uint16; -typedef signed short Sint16; -typedef unsigned int Uint32; -typedef signed int Sint32; -#endif - -/* Figure out how to support 64-bit datatypes */ -#if !defined(__STRICT_ANSI__) -#ifdef __osf__ /* Tru64 */ -#define SDL_HAS_64BIT_TYPE long -#elif defined(__GNUC__) || defined(__MWERKS__) || defined(__SUNPRO_C) || defined(__DECC) || defined(__WATCOMC__) -#define SDL_HAS_64BIT_TYPE long long -#elif defined(_MSC_VER) /* VC++ */ -#define SDL_HAS_64BIT_TYPE __int64 -#endif -#endif /* !__STRICT_ANSI__ */ - -/* The 64-bit type isn't available on EPOC/Symbian OS */ -#ifdef __SYMBIAN32__ -#undef SDL_HAS_64BIT_TYPE -#endif - -/* The 64-bit datatype isn't supported on all platforms */ -#ifdef SDL_HAS_64BIT_TYPE -#ifndef H_MMBASIC -typedef unsigned SDL_HAS_64BIT_TYPE Uint64; -#endif -typedef SDL_HAS_64BIT_TYPE Sint64; -#else -/* This is really just a hack to prevent the compiler from complaining */ -typedef struct { - Uint32 hi; - Uint32 lo; -} Uint64, Sint64; -#endif - -/* Make sure the types really have the right sizes */ -#define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_dummy_ ## name[(x) * 2 - 1] - -SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); -SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); -SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); -SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); -SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); -SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); -SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); -SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); - -/* Check to make sure enums are the size of ints, for structure packing. - For both Watcom C/C++ and Borland C/C++ the compiler option that makes - enums having the size of an int must be enabled. - This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). -*/ -/* Enable enums always int in CodeWarrior (for MPW use "-enum int") */ -#ifdef __MWERKS__ -#pragma enumsalwaysint on -#endif - -typedef enum { - DUMMY_ENUM_VALUE -} SDL_DUMMY_ENUM; - -SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); - -#endif +#include "SDL_stdinc.h"