21 #if defined(__clang_analyzer__)
22 #define SDL_DISABLE_ANALYZE_MACROS 1
25 #include "../SDL_internal.h"
31 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOL) || !defined(HAVE_STRTOUL) || !defined(HAVE_STRTOLL) || !defined(HAVE_STRTOULL) || !defined(HAVE_STRTOD)
32 #define SDL_isupperhex(X) (((X) >= 'A') && ((X) <= 'F'))
33 #define SDL_islowerhex(X) (((X) >= 'a') && ((X) <= 'f'))
36 #define UTF8_IsLeadByte(c) ((c) >= 0xC0 && (c) <= 0xF4)
37 #define UTF8_IsTrailingByte(c) ((c) >= 0x80 && (c) <= 0xBF)
41 if (
c >= 0xC0 &&
c <= 0xDF)
43 else if (
c >= 0xE0 &&
c <= 0xEF)
45 else if (
c >= 0xF0 &&
c <= 0xF4)
51 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOL)
55 const char *textstart =
text;
71 v = 10 + (*
text -
'A');
73 v = 10 + (*
text -
'a');
81 if (valuep &&
text > textstart) {
82 if (negative &&
value) {
88 return (
text - textstart);
92 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOUL) || !defined(HAVE_STRTOD)
96 const char *textstart =
text;
97 unsigned long value = 0;
107 v = 10 + (*
text -
'A');
109 v = 10 + (*
text -
'a');
117 if (valuep &&
text > textstart) {
120 return (
text - textstart);
128 const char *textstart =
text;
139 v = 10 + (*
text -
'A');
141 v = 10 + (*
text -
'a');
149 if (valuep &&
text > textstart) {
152 return (
text - textstart);
156 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOLL)
160 const char *textstart =
text;
176 v = 10 + (*
text -
'A');
178 v = 10 + (*
text -
'a');
186 if (valuep &&
text > textstart) {
187 if (negative &&
value) {
193 return (
text - textstart);
197 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOULL)
201 const char *textstart =
text;
212 v = 10 + (*
text -
'A');
214 v = 10 + (*
text -
'a');
222 if (valuep &&
text > textstart) {
225 return (
text - textstart);
229 #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOD)
233 const char *textstart =
text;
234 unsigned long lvalue = 0;
248 lvalue = *
text -
'0';
249 value += (double) lvalue / mult;
254 if (valuep &&
text > textstart) {
255 if (negative &&
value) {
261 return (
text - textstart);
268 #if defined(HAVE_MEMSET)
284 while ((intptr_t)dstp1 & 0x3) {
292 value4 = (
c | (
c << 8) | (
c << 16) | (
c << 24));
300 dstp1 = (
Uint8 *) dstp4;
322 #elif defined(HAVE_MEMCPY)
324 #elif defined(HAVE_BCOPY)
332 if (((intptr_t)
src & 0x3) || ((intptr_t)
dst & 0x3)) {
343 Uint8 *srcp1, *dstp1;
352 srcp1 = (
Uint8 *) srcp4;
353 dstp1 = (
Uint8 *) dstp4;
370 #if defined(HAVE_MEMMOVE)
373 char *srcp = (
char *)
src;
374 char *dstp = (
char *)
dst;
394 #if defined(HAVE_MEMCMP)
395 return memcmp(
s1, s2,
len);
397 char *s1p = (
char *)
s1;
398 char *s2p = (
char *) s2;
401 return (*s1p - *s2p);
413 #if defined(HAVE_STRLEN)
414 return strlen(
string);
427 #if defined(HAVE_WCSLEN)
428 return wcslen(
string);
441 #if defined(HAVE_WCSLCPY)
442 return wcslcpy(
dst,
src, maxlen);
457 #if defined(HAVE_WCSLCAT)
458 return wcslcat(
dst,
src, maxlen);
462 if (dstlen < maxlen) {
465 return dstlen + srclen;
483 #if defined(HAVE_WCSSTR)
489 return (
wchar_t *)haystack;
500 #if defined(HAVE_WCSCMP)
501 return wcscmp(str1, str2);
503 while (*str1 && *str2) {
509 return (
int)(*str1 - *str2);
514 SDL_wcsncmp(
const wchar_t *str1,
const wchar_t *str2,
size_t maxlen)
516 #if defined(HAVE_WCSNCMP)
517 return wcsncmp(str1, str2, maxlen);
519 while (*str1 && *str2 && maxlen) {
529 return (
int) (*str1 - *str2);
537 #if defined(HAVE_WCSCASECMP)
538 return wcscasecmp(str1, str2);
539 #elif defined(HAVE__WCSICMP)
540 return _wcsicmp(str1, str2);
544 while (*str1 && *str2) {
546 if (*str1 >= 0x80 || *str2 >= 0x80) {
560 if (*str1 >= 0x80 || *str2 >= 0x80) {
567 return (
int) ((
unsigned int)
a - (
unsigned int)
b);
574 #if defined(HAVE_WCSNCASECMP)
575 return wcsncasecmp(str1, str2, maxlen);
576 #elif defined(HAVE__WCSNICMP)
577 return _wcsnicmp(str1, str2, maxlen);
581 while (*str1 && *str2 && maxlen) {
583 if (*str1 >= 0x80 || *str2 >= 0x80) {
601 if (*str1 >= 0x80 || *str2 >= 0x80) {
608 return (
int) ((
unsigned int)
a - (
unsigned int)
b);
616 #if defined(HAVE_STRLCPY)
617 return strlcpy(
dst,
src, maxlen);
633 size_t bytes =
SDL_min(src_bytes, dst_bytes - 1);
635 char trailing_bytes = 0;
638 unsigned char c = (
unsigned char)
src[bytes - 1];
643 for (
i = bytes - 1;
i != 0; --
i)
645 c = (
unsigned char)
src[
i];
649 if (bytes -
i != trailing_bytes + 1)
669 while ((ch = *(
p++)) != 0) {
671 if ((ch & 0xc0) != 0x80) {
682 #if defined(HAVE_STRLCAT)
683 return strlcat(
dst,
src, maxlen);
687 if (dstlen < maxlen) {
690 return dstlen + srclen;
708 #if defined(HAVE__STRREV)
709 return _strrev(
string);
712 char *
a = &
string[0];
713 char *
b = &
string[
len - 1];
727 #if defined(HAVE__STRUPR)
728 return _strupr(
string);
742 #if defined(HAVE__STRLWR)
743 return _strlwr(
string);
759 #elif defined(HAVE_INDEX)
777 #elif defined(HAVE_RINDEX)
780 const char *bufp =
string +
SDL_strlen(
string) - 1;
781 while (bufp >=
string) {
783 return (
char *) bufp;
794 #if defined(HAVE_STRSTR)
800 return (
char *) haystack;
808 #if !defined(HAVE__LTOA) || !defined(HAVE__I64TOA) || \
809 !defined(HAVE__ULTOA) || !defined(HAVE__UI64TOA)
811 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
812 'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
813 'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
814 'U',
'V',
'W',
'X',
'Y',
'Z'
822 return itoa(
value,
string, radix);
832 return _uitoa(
value,
string, radix);
841 #if defined(HAVE__LTOA)
842 return _ltoa(
value,
string, radix);
860 #if defined(HAVE__ULTOA)
861 return _ultoa(
value,
string, radix);
885 #if defined(HAVE__I64TOA)
886 return _i64toa(
value,
string, radix);
904 #if defined(HAVE__UI64TOA)
905 return _ui64toa(
value,
string, radix);
947 #if defined(HAVE_STRTOL)
948 return strtol(
string, endp,
base);
963 *endp = (
char *)
string +
len;
972 #if defined(HAVE_STRTOUL)
973 return strtoul(
string, endp,
base);
976 unsigned long value = 0;
988 *endp = (
char *)
string +
len;
997 #if defined(HAVE_STRTOLL)
998 return strtoll(
string, endp,
base);
1013 *endp = (
char *)
string +
len;
1022 #if defined(HAVE_STRTOULL)
1023 return strtoull(
string, endp,
base);
1038 *endp = (
char *)
string +
len;
1047 #if defined(HAVE_STRTOD)
1048 return strtod(
string, endp);
1055 *endp = (
char *)
string +
len;
1064 #if defined(HAVE_STRCMP)
1065 return strcmp(str1, str2);
1067 while (*str1 && *str2) {
1073 return (
int)((
unsigned char) *str1 - (
unsigned char) *str2);
1080 #if defined(HAVE_STRNCMP)
1081 return strncmp(str1, str2, maxlen);
1083 while (*str1 && *str2 && maxlen) {
1093 return (
int) ((
unsigned char) *str1 - (
unsigned char) *str2);
1100 #ifdef HAVE_STRCASECMP
1101 return strcasecmp(str1, str2);
1102 #elif defined(HAVE__STRICMP)
1103 return _stricmp(str1, str2);
1107 while (*str1 && *str2) {
1117 return (
int) ((
unsigned char)
a - (
unsigned char)
b);
1124 #ifdef HAVE_STRNCASECMP
1125 return strncasecmp(str1, str2, maxlen);
1126 #elif defined(HAVE__STRNICMP)
1127 return _strnicmp(str1, str2, maxlen);
1131 while (*str1 && *str2 && maxlen) {
1145 return (
int) ((
unsigned char)
a - (
unsigned char)
b);
1165 return vsscanf(
text, fmt, ap);
1223 char *valuep = va_arg(ap,
char *);
1225 *valuep++ = *
text++;
1243 if (inttype > DO_SHORT) {
1248 if (inttype < DO_LONGLONG) {
1255 inttype = DO_LONGLONG;
1274 if (inttype == DO_LONGLONG) {
1278 if (advance && !suppress) {
1287 if (advance && !suppress) {
1291 short *valuep = va_arg(ap,
short *);
1292 *valuep = (short)
value;
1297 int *valuep = va_arg(ap,
int *);
1303 long *valuep = va_arg(ap,
long *);
1328 if (inttype == DO_LONGLONG) {
1332 if (advance && !suppress) {
1338 unsigned long value = 0;
1341 if (advance && !suppress) {
1345 short *valuep = va_arg(ap,
short *);
1346 *valuep = (short)
value;
1351 int *valuep = va_arg(ap,
int *);
1357 long *valuep = va_arg(ap,
long *);
1375 if (advance && !suppress) {
1376 void **valuep = va_arg(ap,
void **);
1377 *valuep = (
void *)
value;
1388 if (advance && !suppress) {
1389 float *valuep = va_arg(ap,
float *);
1390 *valuep = (float)
value;
1407 char *valuep = va_arg(ap,
char *);
1409 *valuep++ = *
text++;
1429 if (*
text == *fmt) {
1455 #if defined(HAVE_LIBC) && defined(__WATCOMC__)
1462 if (maxlen > 0)
text[maxlen-1] =
'\0';
1466 #elif defined(HAVE_VSNPRINTF)
1472 return vsnprintf(
text, maxlen, fmt, ap);
1501 if (
string ==
NULL) {
1506 if (info && info->
width > 0 && (
size_t)info->
width > sz) {
1507 const char fill = info->
pad_zeroes ?
'0' :
' ';
1527 if (slen < maxlen) {
1544 size_t sz, pad, have_sign;
1550 if (*
num ==
'-' || *
num ==
'+') {
1558 if (pad + sz + 1 <= maxlen) {
1570 if (pad + sz + 1 <= maxlen) {
1631 size_t left = maxlen;
1632 char *textstart =
text;
1636 unsigned long value;
1652 value = (
unsigned long) arg;
1673 value = (
unsigned long) (arg * mult);
1682 arg -= (double)
value / mult;
1703 const char fill = info->
pad_zeroes ?
'0' :
' ';
1720 if (
end != textstart) {
1721 const size_t filllen =
SDL_min(
len, ((
size_t) (
end - textstart)) - 1);
1726 return (
text - textstart);
1732 size_t left = maxlen;
1733 char *textstart =
text;
1738 while (*fmt &&
left > 1) {
1756 while (check_flag) {
1777 if (*fmt >=
'0' && *fmt <=
'9') {
1780 else if (*fmt ==
'*') {
1782 info.
width = va_arg(ap,
int);
1787 if (*fmt >=
'0' && *fmt <=
'9') {
1789 }
else if (*fmt ==
'*') {
1812 *
text = (char) va_arg(ap,
int);
1821 if (inttype < DO_LONGLONG) {
1828 inttype = DO_LONGLONG;
1839 (
long) va_arg(ap,
int));
1860 if (info.
radix == 10) {
1868 if (info.
radix == 10) {
1881 va_arg(ap,
unsigned int));
1885 va_arg(ap,
unsigned long));
1901 wchar_t *wide_arg = va_arg(ap,
wchar_t *);
1940 return (
int)(
text - textstart);
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 SDL_AssertionHandler void SDL_SpinLock SDL_atomic_t int int return SDL_atomic_t return void void void return void return int return SDL_AudioSpec SDL_AudioSpec return int int return return int SDL_RWops int SDL_AudioSpec Uint8 Uint32 return SDL_AudioCVT SDL_AudioFormat Uint8 int SDL_AudioFormat Uint8 int return Uint8 const Uint8 Uint32 int const char return return return return return return return return Uint32 return Uint32 SDL_Event return SDL_Event int return SDL_EventFilter void SDL_EventFilter void SDL_EventFilter void int return const char const char return SDL_JoystickGUID return int return int return SDL_GameController return int return const char return SDL_GameController SDL_GameControllerAxis return const char return SDL_GameController SDL_GameControllerButton return SDL_GameController SDL_RWops return SDL_TouchID SDL_RWops return int return int return return SDL_Joystick return SDL_Haptic SDL_Haptic return SDL_Haptic return SDL_Haptic SDL_HapticEffect return SDL_Haptic int Uint32 return SDL_Haptic int SDL_Haptic int return SDL_Haptic return SDL_Haptic return SDL_Haptic return SDL_Haptic return const char const char return const char SDL_HintCallback void int return SDL_Joystick return SDL_Joystick return const char return SDL_Joystick return SDL_Joystick return SDL_Joystick return int return SDL_Joystick int return SDL_Joystick int return return return SDL_Scancode return SDL_Scancode return SDL_Keycode return return const char return void int SDL_LogPriority SDL_LogOutputFunction void Uint32 const char const char SDL_Window return int int return SDL_Window int int return SDL_Surface int int return SDL_Cursor return int return SDL_mutex return SDL_mutex return Uint32 return SDL_sem return SDL_sem Uint32 return SDL_sem return SDL_cond SDL_cond return SDL_cond SDL_mutex Uint32 return Uint32 int Uint32 Uint32 Uint32 Uint32 return Uint32 return int return SDL_Palette const SDL_Color int int return const SDL_PixelFormat Uint8 Uint8 Uint8 return Uint32 const SDL_PixelFormat Uint8 Uint8 Uint8 float Uint16 int int return const SDL_Rect const SDL_Rect SDL_Rect return const SDL_Point int const SDL_Rect SDL_Rect return return int int Uint32 SDL_Window SDL_Renderer return SDL_Surface return SDL_Renderer SDL_RendererInfo return SDL_Renderer Uint32 int int int return SDL_Texture Uint32 int int int return SDL_Texture Uint8 Uint8 Uint8 return SDL_Texture Uint8 return SDL_Texture SDL_BlendMode return SDL_Texture const SDL_Rect const Uint8 int const Uint8 int const Uint8 int return SDL_Texture SDL_Renderer SDL_Texture return SDL_Renderer int int return SDL_Renderer const SDL_Rect return SDL_Renderer const SDL_Rect return SDL_Renderer float float return SDL_Renderer Uint8 Uint8 Uint8 Uint8 return SDL_Renderer SDL_BlendMode return SDL_Renderer return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Rect int return SDL_Renderer const SDL_Rect int return SDL_Renderer SDL_Texture const SDL_Rect const SDL_Rect const double const SDL_Point const SDL_RendererFlip return SDL_Renderer SDL_Renderer SDL_Texture return void int return return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops Uint16 return SDL_RWops Uint32 return SDL_RWops Uint64 return const char unsigned int unsigned int unsigned int unsigned int Uint32 return SDL_Window SDL_Surface SDL_WindowShapeMode return size_t return void size_t return const char return void size_t size_t int(*) int return int return int size_t retur SDL_IN_BYTECAP)(c) const void *b
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 SDL_AssertionHandler void SDL_SpinLock SDL_atomic_t int int return SDL_atomic_t return void void void return void return int return SDL_AudioSpec SDL_AudioSpec return int int return return int SDL_RWops int SDL_AudioSpec Uint8 Uint32 return SDL_AudioCVT SDL_AudioFormat Uint8 int SDL_AudioFormat Uint8 int return Uint8 const Uint8 Uint32 int const char return return return return return return return return Uint32 return Uint32 SDL_Event return SDL_Event int return SDL_EventFilter void SDL_EventFilter void SDL_EventFilter void int return const char const char return SDL_JoystickGUID return int return int return SDL_GameController return int return const char return SDL_GameController SDL_GameControllerAxis return const char return SDL_GameController SDL_GameControllerButton return SDL_GameController SDL_RWops return SDL_TouchID SDL_RWops return int return int return return SDL_Joystick return SDL_Haptic SDL_Haptic return SDL_Haptic return SDL_Haptic SDL_HapticEffect return SDL_Haptic int Uint32 return SDL_Haptic int SDL_Haptic int return SDL_Haptic return SDL_Haptic return SDL_Haptic return SDL_Haptic return const char const char return const char SDL_HintCallback void int return SDL_Joystick return SDL_Joystick return const char return SDL_Joystick return SDL_Joystick return SDL_Joystick return int return SDL_Joystick int return SDL_Joystick int return return return SDL_Scancode return SDL_Scancode return SDL_Keycode return return const char return void int SDL_LogPriority SDL_LogOutputFunction void Uint32 const char const char SDL_Window return int int return SDL_Window int int return SDL_Surface int int return SDL_Cursor return int return SDL_mutex return SDL_mutex return Uint32 return SDL_sem return SDL_sem Uint32 return SDL_sem return SDL_cond SDL_cond return SDL_cond SDL_mutex Uint32 return Uint32 int Uint32 Uint32 Uint32 Uint32 return Uint32 return int return SDL_Palette const SDL_Color int int return const SDL_PixelFormat Uint8 Uint8 Uint8 return Uint32 const SDL_PixelFormat Uint8 Uint8 Uint8 float Uint16 int int return const SDL_Rect const SDL_Rect SDL_Rect return const SDL_Point int const SDL_Rect SDL_Rect return return int int Uint32 SDL_Window SDL_Renderer return SDL_Surface return SDL_Renderer SDL_RendererInfo return SDL_Renderer Uint32 int int int return SDL_Texture Uint32 int int int return SDL_Texture Uint8 Uint8 Uint8 return SDL_Texture Uint8 return SDL_Texture SDL_BlendMode return SDL_Texture const SDL_Rect const Uint8 int const Uint8 int const Uint8 int return SDL_Texture SDL_Renderer SDL_Texture return SDL_Renderer int int return SDL_Renderer const SDL_Rect return SDL_Renderer const SDL_Rect return SDL_Renderer float float return SDL_Renderer Uint8 Uint8 Uint8 Uint8 return SDL_Renderer SDL_BlendMode return SDL_Renderer return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Rect int return SDL_Renderer const SDL_Rect int return SDL_Renderer SDL_Texture const SDL_Rect const SDL_Rect const double const SDL_Point const SDL_RendererFlip return SDL_Renderer SDL_Renderer SDL_Texture return void int return return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops Uint16 return SDL_RWops Uint32 return SDL_RWops Uint64 return const char unsigned int unsigned int unsigned int unsigned int Uint32 return SDL_Window SDL_Surface SDL_WindowShapeMode return size_t return void size_t return const char return void size_t size_t int(*) int return int return int size_t return size_t return const wchar_t retur SDL_INOUT_Z_CAP)(c) wchar_t *a
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 SDL_AssertionHandler void SDL_SpinLock SDL_atomic_t int int return SDL_atomic_t return void void void return void return int return SDL_AudioSpec SDL_AudioSpec return int int return return int SDL_RWops int SDL_AudioSpec Uint8 Uint32 return SDL_AudioCVT SDL_AudioFormat Uint8 int SDL_AudioFormat Uint8 int return Uint8 const Uint8 Uint32 int const char return return return return return return return return Uint32 return Uint32 SDL_Event return SDL_Event int return SDL_EventFilter void SDL_EventFilter void SDL_EventFilter void int return const char const char return SDL_JoystickGUID return int return int return SDL_GameController return int return const char return SDL_GameController SDL_GameControllerAxis return const char return SDL_GameController SDL_GameControllerButton return SDL_GameController SDL_RWops return SDL_TouchID SDL_RWops return int return int return return SDL_Joystick return SDL_Haptic SDL_Haptic return SDL_Haptic return SDL_Haptic SDL_HapticEffect return SDL_Haptic int Uint32 return SDL_Haptic int SDL_Haptic int return SDL_Haptic return SDL_Haptic return SDL_Haptic return SDL_Haptic return const char const char return const char SDL_HintCallback void int return SDL_Joystick return SDL_Joystick return const char return SDL_Joystick return SDL_Joystick return SDL_Joystick return int return SDL_Joystick int return SDL_Joystick int return return return SDL_Scancode return SDL_Scancode return SDL_Keycode return return const char return void int SDL_LogPriority SDL_LogOutputFunction void Uint32 const char const char SDL_Window return int int return SDL_Window int int return SDL_Surface int int return SDL_Cursor return int return SDL_mutex return SDL_mutex return Uint32 return SDL_sem return SDL_sem Uint32 return SDL_sem return SDL_cond SDL_cond return SDL_cond SDL_mutex Uint32 return Uint32 int Uint32 Uint32 Uint32 Uint32 return Uint32 return int return SDL_Palette const SDL_Color int int return const SDL_PixelFormat Uint8 Uint8 Uint8 return Uint32 const SDL_PixelFormat Uint8 Uint8 Uint8 float Uint16 int int return const SDL_Rect const SDL_Rect SDL_Rect return const SDL_Point int const SDL_Rect SDL_Rect return return int int Uint32 SDL_Window SDL_Renderer return SDL_Surface return SDL_Renderer SDL_RendererInfo return SDL_Renderer Uint32 int int int return SDL_Texture Uint32 int int int return SDL_Texture Uint8 Uint8 Uint8 return SDL_Texture Uint8 return SDL_Texture SDL_BlendMode return SDL_Texture const SDL_Rect const Uint8 int const Uint8 int const Uint8 int return SDL_Texture SDL_Renderer SDL_Texture return SDL_Renderer int int return SDL_Renderer const SDL_Rect return SDL_Renderer const SDL_Rect return SDL_Renderer float float return SDL_Renderer Uint8 Uint8 Uint8 Uint8 return SDL_Renderer SDL_BlendMode return SDL_Renderer return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Rect int return SDL_Renderer const SDL_Rect int return SDL_Renderer SDL_Texture const SDL_Rect const SDL_Rect const double const SDL_Point const SDL_RendererFlip return SDL_Renderer SDL_Renderer SDL_Texture return void int return return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops Uint16 return SDL_RWops Uint32 return SDL_RWops Uint64 return const char unsigned int unsigned int unsigned int unsigned int Uint32 return SDL_Window SDL_Surface SDL_WindowShapeMode return size_t return void size_t return const char return void size_t size_t int(*) int return int retur SDL_OUT_BYTECAP)(c) void *a
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 SDL_AssertionHandler void SDL_SpinLock SDL_atomic_t int int return SDL_atomic_t return void void void return void return int return SDL_AudioSpec SDL_AudioSpec return int int return return int SDL_RWops int SDL_AudioSpec Uint8 Uint32 return SDL_AudioCVT SDL_AudioFormat Uint8 int SDL_AudioFormat Uint8 int return Uint8 const Uint8 Uint32 int const char return return return return return return return return Uint32 return Uint32 SDL_Event return SDL_Event int return SDL_EventFilter void SDL_EventFilter void SDL_EventFilter void int return const char const char return SDL_JoystickGUID return int return int return SDL_GameController return int return const char return SDL_GameController SDL_GameControllerAxis return const char return SDL_GameController SDL_GameControllerButton return SDL_GameController SDL_RWops return SDL_TouchID SDL_RWops return int return int return return SDL_Joystick return SDL_Haptic SDL_Haptic return SDL_Haptic return SDL_Haptic SDL_HapticEffect return SDL_Haptic int Uint32 return SDL_Haptic int SDL_Haptic int return SDL_Haptic return SDL_Haptic return SDL_Haptic return SDL_Haptic return const char const char return const char SDL_HintCallback void int return SDL_Joystick return SDL_Joystick return const char return SDL_Joystick return SDL_Joystick return SDL_Joystick return int return SDL_Joystick int return SDL_Joystick int return return return SDL_Scancode return SDL_Scancode return SDL_Keycode return return const char return void int SDL_LogPriority SDL_LogOutputFunction void Uint32 const char const char SDL_Window return int int return SDL_Window int int return SDL_Surface int int return SDL_Cursor return int return SDL_mutex return SDL_mutex return Uint32 return SDL_sem return SDL_sem Uint32 return SDL_sem return SDL_cond SDL_cond return SDL_cond SDL_mutex Uint32 return Uint32 int Uint32 Uint32 Uint32 Uint32 return Uint32 return int return SDL_Palette const SDL_Color int int return const SDL_PixelFormat Uint8 Uint8 Uint8 return Uint32 const SDL_PixelFormat Uint8 Uint8 Uint8 float Uint16 int int return const SDL_Rect const SDL_Rect SDL_Rect return const SDL_Point int const SDL_Rect SDL_Rect return return int int Uint32 SDL_Window SDL_Renderer return SDL_Surface return SDL_Renderer SDL_RendererInfo return SDL_Renderer Uint32 int int int return SDL_Texture Uint32 int int int return SDL_Texture Uint8 Uint8 Uint8 return SDL_Texture Uint8 return SDL_Texture SDL_BlendMode return SDL_Texture const SDL_Rect const Uint8 int const Uint8 int const Uint8 int return SDL_Texture SDL_Renderer SDL_Texture return SDL_Renderer int int return SDL_Renderer const SDL_Rect return SDL_Renderer const SDL_Rect return SDL_Renderer float float return SDL_Renderer Uint8 Uint8 Uint8 Uint8 return SDL_Renderer SDL_BlendMode return SDL_Renderer return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Point int return SDL_Renderer const SDL_Rect int return SDL_Renderer const SDL_Rect int return SDL_Renderer SDL_Texture const SDL_Rect const SDL_Rect const double const SDL_Point const SDL_RendererFlip return SDL_Renderer SDL_Renderer SDL_Texture return void int return return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops return SDL_RWops Uint16 return SDL_RWops Uint32 return SDL_RWops Uint64 return const char unsigned int unsigned int unsigned int unsigned int Uint32 return SDL_Window SDL_Surface SDL_WindowShapeMode return size_t return void size_t return const char return void size_t size_t int(*) int return int return int size_t return size_t return const wchar_t return const wchar_t size_t retur SDL_OUT_Z_CAP)(c) char *a
GLuint GLuint GLsizei count
GLint GLint GLsizei width
GLboolean GLboolean GLboolean b
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat s1
GLboolean GLboolean GLboolean GLboolean a
GLuint GLsizei GLsizei * length
GLsizei const GLfloat * value
GLsizei const GLchar *const * string
#define SDL_SCANF_FORMAT_STRING
#define SDL_const_cast(type, expression)
#define SDL_PRINTF_FORMAT_STRING
static int UTF8_TrailingBytes(unsigned char c)
char * SDL_ultoa(unsigned long value, char *string, int radix)
char * SDL_strlwr(char *string)
char * SDL_strrev(char *string)
double SDL_strtod(const char *string, char **endp)
static size_t SDL_ScanLong(const char *text, int radix, long *valuep)
static size_t SDL_ScanUintPtrT(const char *text, int radix, uintptr_t *valuep)
char * SDL_strdup(const char *string)
char * SDL_strupr(char *string)
static size_t SDL_ScanLongLong(const char *text, int radix, Sint64 *valuep)
char * SDL_uitoa(unsigned int value, char *string, int radix)
char * SDL_lltoa(Sint64 value, char *string, int radix)
int SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen)
static size_t SDL_PrintString(char *text, size_t maxlen, SDL_FormatInfo *info, const char *string)
int SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt,...)
int SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap)
size_t SDL_strlen(const char *string)
int SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen)
static size_t SDL_ScanUnsignedLongLong(const char *text, int radix, Uint64 *valuep)
void * SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len)
size_t SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen)
char * SDL_ulltoa(Uint64 value, char *string, int radix)
char * SDL_strchr(const char *string, int c)
int SDL_strncmp(const char *str1, const char *str2, size_t maxlen)
static const char ntoa_table[]
#define UTF8_IsTrailingByte(c)
void * SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len)
static size_t SDL_PrintUnsignedLongLong(char *text, size_t maxlen, SDL_FormatInfo *info, Uint64 value)
char * SDL_strstr(const char *haystack, const char *needle)
size_t SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes)
#define SDL_isupperhex(X)
unsigned long SDL_strtoul(const char *string, char **endp, int base)
int SDL_strcasecmp(const char *str1, const char *str2)
static size_t SDL_PrintLong(char *text, size_t maxlen, SDL_FormatInfo *info, long value)
size_t SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen)
size_t SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen)
int SDL_wcscasecmp(const wchar_t *str1, const wchar_t *str2)
long SDL_strtol(const char *string, char **endp, int base)
char * SDL_strrchr(const char *string, int c)
int SDL_wcscmp(const wchar_t *str1, const wchar_t *str2)
static size_t SDL_PrintLongLong(char *text, size_t maxlen, SDL_FormatInfo *info, Sint64 value)
static size_t SDL_PrintFloat(char *text, size_t maxlen, SDL_FormatInfo *info, double arg)
int SDL_memcmp(const void *s1, const void *s2, size_t len)
Uint64 SDL_strtoull(const char *string, char **endp, int base)
int SDL_vsscanf(const char *text, const char *fmt, va_list ap)
int SDL_strcmp(const char *str1, const char *str2)
wchar_t * SDL_wcsstr(const wchar_t *haystack, const wchar_t *needle)
double SDL_atof(const char *string)
static void SDL_IntPrecisionAdjust(char *num, size_t maxlen, SDL_FormatInfo *info)
wchar_t * SDL_wcsdup(const wchar_t *string)
size_t SDL_wcslen(const wchar_t *string)
char * SDL_ltoa(long value, char *string, int radix)
#define SDL_islowerhex(X)
char * SDL_itoa(int value, char *string, int radix)
#define UTF8_IsLeadByte(c)
int SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt,...)
static size_t SDL_ScanUnsignedLong(const char *text, int radix, unsigned long *valuep)
Sint64 SDL_strtoll(const char *string, char **endp, int base)
void * SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len)
int SDL_strncasecmp(const char *str1, const char *str2, size_t maxlen)
size_t SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen)
int SDL_atoi(const char *string)
static size_t SDL_PrintUnsignedLong(char *text, size_t maxlen, SDL_FormatInfo *info, unsigned long value)
size_t SDL_utf8strlen(const char *str)
static size_t SDL_ScanFloat(const char *text, double *valuep)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro pixld1_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl else error unsupported endif endm macro pixld2_s mem_operand if mov asr add asl add asl mov asr sub UNIT_X add asl mov asr add asl add asl mov asr add UNIT_X add asl else pixld1_s mem_operand pixld1_s mem_operand endif endm macro pixld0_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl endif endm macro pixld_s_internal mem_operand if mem_operand pixld2_s mem_operand pixdeinterleave basereg elseif mem_operand elseif mem_operand elseif mem_operand elseif mem_operand pixld0_s mem_operand else pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else error unsupported mem_operand if bpp mem_operand endif endm macro vuzp8 reg2 vuzp d d ®2 endm macro vzip8 reg2 vzip d d ®2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld if[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro fetch_mask_pixblock pixld mask_basereg pixblock_size MASK endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1(dst_w_bpp<=(lowbit *8)) &&((lowbit *8)<(pixblock_size *dst_w_bpp)) .if lowbit< 16 tst DST_R
set set set set set set set set set set set set set set set set set set set set *set set set macro pixldst base
static char text[MAX_TEXT_LENGTH]
typedef int(__stdcall *FARPROC)()