Update SDL2 to version 2.28.1.

This commit is contained in:
Sasha Szpakowski
2023-08-31 22:21:03 -03:00
parent 99b2757fc5
commit a82fcdd079
1394 changed files with 313046 additions and 190617 deletions
+58 -45
View File
@@ -1,5 +1,5 @@
/*
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -45,8 +45,8 @@ print_string(char **text, size_t *maxlen, const char *fmt, ...)
len = SDL_vsnprintf(*text, *maxlen, fmt, ap);
if (len > 0) {
*text += len;
if ( ((size_t) len) < *maxlen ) {
*maxlen -= (size_t) len;
if (((size_t)len) < *maxlen) {
*maxlen -= (size_t)len;
} else {
*maxlen = 0;
}
@@ -64,30 +64,42 @@ print_modifiers(char **text, size_t *maxlen)
print_string(text, maxlen, " (none)");
return;
}
if (mod & KMOD_LSHIFT)
if (mod & KMOD_LSHIFT) {
print_string(text, maxlen, " LSHIFT");
if (mod & KMOD_RSHIFT)
}
if (mod & KMOD_RSHIFT) {
print_string(text, maxlen, " RSHIFT");
if (mod & KMOD_LCTRL)
}
if (mod & KMOD_LCTRL) {
print_string(text, maxlen, " LCTRL");
if (mod & KMOD_RCTRL)
}
if (mod & KMOD_RCTRL) {
print_string(text, maxlen, " RCTRL");
if (mod & KMOD_LALT)
}
if (mod & KMOD_LALT) {
print_string(text, maxlen, " LALT");
if (mod & KMOD_RALT)
}
if (mod & KMOD_RALT) {
print_string(text, maxlen, " RALT");
if (mod & KMOD_LGUI)
}
if (mod & KMOD_LGUI) {
print_string(text, maxlen, " LGUI");
if (mod & KMOD_RGUI)
}
if (mod & KMOD_RGUI) {
print_string(text, maxlen, " RGUI");
if (mod & KMOD_NUM)
}
if (mod & KMOD_NUM) {
print_string(text, maxlen, " NUM");
if (mod & KMOD_CAPS)
}
if (mod & KMOD_CAPS) {
print_string(text, maxlen, " CAPS");
if (mod & KMOD_MODE)
}
if (mod & KMOD_MODE) {
print_string(text, maxlen, " MODE");
if (mod & KMOD_SCROLL)
}
if (mod & KMOD_SCROLL) {
print_string(text, maxlen, " SCROLL");
}
}
static void
@@ -105,7 +117,7 @@ PrintModifierState()
}
static void
PrintKey(SDL_Keysym * sym, SDL_bool pressed, SDL_bool repeat)
PrintKey(SDL_Keysym *sym, SDL_bool pressed, SDL_bool repeat)
{
char message[512];
char *spot;
@@ -117,24 +129,23 @@ PrintKey(SDL_Keysym * sym, SDL_bool pressed, SDL_bool repeat)
/* Print the keycode, name and state */
if (sym->sym) {
print_string(&spot, &left,
"Key %s: scancode %d = %s, keycode 0x%08X = %s ",
pressed ? "pressed " : "released",
sym->scancode,
SDL_GetScancodeName(sym->scancode),
sym->sym, SDL_GetKeyName(sym->sym));
"Key %s: scancode %d = %s, keycode 0x%08X = %s ",
pressed ? "pressed " : "released",
sym->scancode,
SDL_GetScancodeName(sym->scancode),
sym->sym, SDL_GetKeyName(sym->sym));
} else {
print_string(&spot, &left,
"Unknown Key (scancode %d = %s) %s ",
sym->scancode,
SDL_GetScancodeName(sym->scancode),
pressed ? "pressed " : "released");
"Unknown Key (scancode %d = %s) %s ",
sym->scancode,
SDL_GetScancodeName(sym->scancode),
pressed ? "pressed " : "released");
}
print_modifiers(&spot, &left);
if (repeat) {
print_string(&spot, &left, " (repeat)");
}
SDL_Log("%s\n", message);
fflush(stderr);
}
static void
@@ -144,25 +155,24 @@ PrintText(const char *eventtype, const char *text)
char expanded[1024];
expanded[0] = '\0';
for ( spot = text; *spot; ++spot )
{
for (spot = text; *spot; ++spot) {
size_t length = SDL_strlen(expanded);
SDL_snprintf(expanded + length, sizeof(expanded) - length, "\\x%.2x", (unsigned char)*spot);
(void)SDL_snprintf(expanded + length, sizeof(expanded) - length, "\\x%.2x", (unsigned char)*spot);
}
SDL_Log("%s Text (%s): \"%s%s\"\n", eventtype, expanded, *text == '"' ? "\\" : "", text);
}
void
loop()
void loop()
{
SDL_Event event;
/* Check for events */
/*SDL_WaitEvent(&event); emscripten does not like waiting*/
fprintf(stderr, "starting loop\n"); fflush(stderr);
(void)fprintf(stderr, "starting loop\n");
(void)fflush(stderr);
// while (SDL_PollEvent(&event)) {
while (!done && SDL_WaitEvent(&event)) {
fprintf(stderr, "got event type: %d\n", event.type); fflush(stderr);
SDL_Log("Got event type: %" SDL_PRIu32 "\n", event.type);
switch (event.type) {
case SDL_KEYDOWN:
case SDL_KEYUP:
@@ -176,7 +186,8 @@ loop()
break;
case SDL_MOUSEBUTTONDOWN:
/* Left button quits the app, other buttons toggles text input */
fprintf(stderr, "mouse button down button: %d (LEFT=%d)\n", event.button.button, SDL_BUTTON_LEFT); fflush(stderr);
(void)fprintf(stderr, "mouse button down button: %d (LEFT=%d)\n", event.button.button, SDL_BUTTON_LEFT);
(void)fflush(stderr);
if (event.button.button == SDL_BUTTON_LEFT) {
done = 1;
} else {
@@ -195,9 +206,11 @@ loop()
default:
break;
}
fprintf(stderr, "waiting new event\n"); fflush(stderr);
(void)fprintf(stderr, "waiting new event\n");
(void)fflush(stderr);
}
fprintf(stderr, "exiting event loop\n"); fflush(stderr);
(void)fprintf(stderr, "exiting event loop\n");
(void)fflush(stderr);
#ifdef __EMSCRIPTEN__
if (done) {
emscripten_cancel_main_loop();
@@ -210,9 +223,10 @@ static int SDLCALL ping_thread(void *ptr)
{
int cnt;
SDL_Event sdlevent;
SDL_memset(&sdlevent, 0 , sizeof(SDL_Event));
SDL_memset(&sdlevent, 0, sizeof(SDL_Event));
for (cnt = 0; cnt < 10; ++cnt) {
fprintf(stderr, "sending event (%d/%d) from thread.\n", cnt + 1, 10); fflush(stderr);
(void)fprintf(stderr, "sending event (%d/%d) from thread.\n", cnt + 1, 10);
(void)fflush(stderr);
sdlevent.type = SDL_KEYDOWN;
sdlevent.key.keysym.sym = SDLK_1;
SDL_PushEvent(&sdlevent);
@@ -221,8 +235,7 @@ static int SDLCALL ping_thread(void *ptr)
return cnt;
}
int
main(int argc, char *argv[])
int main(int argc, char *argv[])
{
SDL_Window *window;
SDL_Renderer *renderer;
@@ -234,16 +247,16 @@ main(int argc, char *argv[])
/* Initialize SDL */
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n", SDL_GetError());
return (1);
return 1;
}
/* Set 640x480 video mode */
window = SDL_CreateWindow("CheckKeys Test",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
640, 480, 0);
if (!window) {
if (window == NULL) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create 640x480 window: %s\n",
SDL_GetError());
SDL_GetError());
quit(2);
}
@@ -267,7 +280,7 @@ main(int argc, char *argv[])
/* Watch keystrokes */
done = 0;
thread = SDL_CreateThread(ping_thread, "PingThread", (void *)NULL);
thread = SDL_CreateThread(ping_thread, "PingThread", NULL);
#ifdef __EMSCRIPTEN__
emscripten_set_main_loop(loop, 0, 1);
@@ -279,7 +292,7 @@ main(int argc, char *argv[])
SDL_WaitThread(thread, NULL);
SDL_Quit();
return (0);
return 0;
}
/* vi: set ts=4 sw=4 expandtab: */