33 #ifdef HAVE_SYS_TYPES_H
39 #if defined(STDC_HEADERS)
44 # if defined(HAVE_STDLIB_H)
46 # elif defined(HAVE_MALLOC_H)
49 # if defined(HAVE_STDDEF_H)
52 # if defined(HAVE_STDARG_H)
57 # if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
65 #if defined(HAVE_INTTYPES_H)
66 # include <inttypes.h>
67 #elif defined(HAVE_STDINT_H)
76 #if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
83 #define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
84 #define SDL_TABLESIZE(table) SDL_arraysize(table)
94 #define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
95 #define SDL_static_cast(type, expression) static_cast<type>(expression)
96 #define SDL_const_cast(type, expression) const_cast<type>(expression)
98 #define SDL_reinterpret_cast(type, expression) ((type)(expression))
99 #define SDL_static_cast(type, expression) ((type)(expression))
100 #define SDL_const_cast(type, expression) ((type)(expression))
105 #define SDL_FOURCC(A, B, C, D) \
106 ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
107 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
108 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
109 (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))
159 #define SDL_COMPILE_TIME_ASSERT(name, x) \
160 typedef int SDL_dummy_ ## name[(x) * 2 - 1]
162 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
181 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
182 #if !defined(__ANDROID__)
200 #if defined(HAVE_ALLOCA) && !defined(alloca)
201 # if defined(HAVE_ALLOCA_H)
203 # elif defined(__GNUC__)
204 # define alloca __builtin_alloca
205 # elif defined(_MSC_VER)
207 # define alloca _alloca
208 # elif defined(__WATCOMC__)
210 # elif defined(__BORLANDC__)
212 # elif defined(__DMC__)
214 # elif defined(__AIX__)
216 # elif defined(__MRC__)
217 void *alloca(
unsigned);
223 #define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))
224 #define SDL_stack_free(data)
226 #define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count))
227 #define SDL_stack_free(data) SDL_free(data)
244 #define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
245 #define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
254 #define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
255 #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
260 #if defined(__GNUC__) && defined(i386)
262 __asm__ __volatile__ (
265 :
"=&D" (u0),
"=&a" (u1),
"=&c" (u2)
270 size_t _n = (dwords + 3) / 4;
277 case 0:
do { *_p++ = _val;
278 case 3: *_p++ = _val;
279 case 2: *_p++ = _val;
280 case 1: *_p++ = _val;
339 #define M_PI 3.14159265358979323846264338327950288
359 #define SDL_ICONV_ERROR (size_t)-1
360 #define SDL_ICONV_E2BIG (size_t)-2
361 #define SDL_ICONV_EILSEQ (size_t)-3
362 #define SDL_ICONV_EINVAL (size_t)-4
367 const char *fromcode);
370 size_t * inbytesleft,
char **outbuf,
371 size_t * outbytesleft);
377 const char *fromcode,
380 #define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1)
381 #define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
382 #define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
DECLSPEC int SDLCALL SDL_isspace(int x)
DECLSPEC double SDLCALL SDL_cos(double x)
DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix)
GLuint const GLfloat * val
DECLSPEC float SDLCALL SDL_cosf(float x)
int32_t Sint32
A signed 32-bit integer type.
DECLSPEC double SDLCALL SDL_fabs(double x)
DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size)
DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp)
DECLSPEC double SDLCALL SDL_pow(double x, double y)
DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt,...)
DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix)
#define SDL_COMPILE_TIME_ASSERT(name, x)
DECLSPEC double SDLCALL SDL_copysign(double x, double y)
DECLSPEC double SDLCALL SDL_atof(const char *str)
DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size)
GLuint GLdouble GLdouble u2
DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c)
unsigned long long uint64_t
DECLSPEC void SDLCALL SDL_free(void *mem)
DECLSPEC int SDLCALL SDL_tolower(int x)
DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix)
DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt,...)
EGLImageKHR EGLint * name
DECLSPEC size_t SDLCALL SDL_utf8strlcpy(char *dst, const char *src, size_t dst_bytes)
DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen)
DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len)
DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c)
DECLSPEC int SDLCALL SDL_abs(int x)
DECLSPEC double SDLCALL SDL_sin(double x)
uint32_t Uint32
An unsigned 32-bit integer type.
DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base)
DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix)
DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base)
DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base)
DECLSPEC void *SDLCALL SDL_memmove(void *dst, const void *src, size_t len)
DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix)
DECLSPEC char *SDLCALL SDL_strupr(char *str)
DECLSPEC char *SDLCALL SDL_strdup(const char *str)
uint64_t Uint64
An unsigned 64-bit integer type.
DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle)
DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen)
DECLSPEC double SDLCALL SDL_atan(double x)
DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base)
DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len)
DECLSPEC size_t SDLCALL SDL_wcslcat(wchar_t *dst, const wchar_t *src, size_t maxlen)
DECLSPEC double SDLCALL SDL_scalbn(double x, int n)
DECLSPEC void *SDLCALL SDL_malloc(size_t size)
DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2)
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat s1
DECLSPEC double SDLCALL SDL_floor(double x)
DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen)
DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr)
DECLSPEC float SDLCALL SDL_sinf(float x)
DECLSPEC size_t SDLCALL SDL_strlen(const char *str)
EGLSurface EGLint EGLint y
DECLSPEC double SDLCALL SDL_log(double x)
EGLSurface EGLint void ** value
DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src, size_t len)
uint8_t Uint8
An unsigned 8-bit integer type.
DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd)
DECLSPEC int SDLCALL SDL_atoi(const char *str)
#define SDL_static_cast(type, expression)
DECLSPEC char *SDLCALL SDL_strlwr(char *str)
DECLSPEC int SDLCALL SDL_toupper(int x)
DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, const char *inbuf, size_t inbytesleft)
int16_t Sint16
A signed 16-bit integer type.
DECLSPEC double SDLCALL SDL_ceil(double x)
struct _SDL_iconv_t * SDL_iconv_t
DECLSPEC double SDLCALL SDL_sqrt(double x)
SDL_FORCE_INLINE void SDL_memset4(void *dst, int val, size_t dwords)
uint16_t Uint16
An unsigned 16-bit integer type.
DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len)
DECLSPEC char *SDLCALL SDL_getenv(const char *name)
DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int(*compare)(const void *, const void *))
DECLSPEC double SDLCALL SDL_atan2(double x, double y)
DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite)
int64_t Sint64
A signed 64-bit integer type.
DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix)
DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, const char *fromcode)
int8_t Sint8
A signed 8-bit integer type.
DECLSPEC char *SDLCALL SDL_strrev(char *str)
DECLSPEC int SDLCALL SDL_isdigit(int x)
DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2)
DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap)
SDL_FORCE_INLINE void * SDL_memcpy4(void *dst, const void *src, size_t dwords)
DECLSPEC size_t SDLCALL SDL_wcslcpy(wchar_t *dst, const wchar_t *src, size_t maxlen)