0,0 → 1,87 |
/* |
SDL - Simple DirectMedia Layer |
Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga |
|
This library is free software; you can redistribute it and/or |
modify it under the terms of the GNU Library General Public |
License as published by the Free Software Foundation; either |
version 2 of the License, or (at your option) any later version. |
|
This library is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
Library General Public License for more details. |
|
You should have received a copy of the GNU Library General Public |
License along with this library; if not, write to the Free |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
Sam Lantinga |
slouken@devolution.com |
*/ |
|
#ifdef SAVE_RCSID |
static char rcsid = |
"@(#) $Id: SDL_types.h,v 1.2 2001/04/26 16:50:17 hercules Exp $"; |
#endif |
|
/* General data types used by the SDL library */ |
|
#ifndef _SDL_types_h |
#define _SDL_types_h |
|
/* The number of elements in a table */ |
#define SDL_TABLESIZE(table) (sizeof(table)/sizeof(table[0])) |
|
/* Basic data types */ |
typedef enum { |
SDL_FALSE = 0, |
SDL_TRUE = 1 |
} SDL_bool; |
typedef unsigned char Uint8; |
typedef signed char Sint8; |
typedef unsigned short Uint16; |
typedef signed short Sint16; |
typedef unsigned int Uint32; |
typedef signed int Sint32; |
|
/* Figure out how to support 64-bit datatypes */ |
#if !defined(__STRICT_ANSI__) |
#if defined(__GNUC__) || defined(__MWERKS__) /* MJS */ |
#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 datatype isn't supported on all platforms */ |
#ifdef SDL_HAS_64BIT_TYPE |
typedef unsigned SDL_HAS_64BIT_TYPE Uint64; |
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); |
|
#undef SDL_COMPILE_TIME_ASSERT |
|
/* General keyboard/mouse state definitions */ |
enum { SDL_PRESSED = 0x01, SDL_RELEASED = 0x00 }; |
|
#endif |