ref: 384de8ed8c676c05314d50cab62e8bb74fcb8b10
parent: 1e9b7af7dee79ea1611241649a7124cb2c957e9b
author: qwx <qwx@sciops.net>
date: Mon Mar 2 19:40:48 EST 2026
sdl2: add atomics, and missing definitions required by npe shockolate port
--- a/include/npe/SDL2/SDL.h
+++ b/include/npe/SDL2/SDL.h
@@ -163,6 +163,7 @@
int SDL_RenderCopy(SDL_Renderer *renderer, SDL_Texture *texture, SDL_Rect *srcrect, SDL_Rect *dstrect);
void SDL_RenderPresent(SDL_Renderer *renderer);
Uint32 SDL_GetWindowFlags(SDL_Window *window);
+void SDL_RenderGetLogicalSize(SDL_Renderer *renderer, int *w, int *h);
int SDL_RenderSetLogicalSize(SDL_Renderer *renderer, int w, int h);
void SDL_SetWindowSize(SDL_Window *window, int w, int h);
int SDL_ShowSimpleMessageBox(Uint32 flags, char *title, char *message, SDL_Window *window);
@@ -243,6 +244,7 @@
SDL_WINDOW_MAXIMIZED = 1<<7,
SDL_WINDOW_FULLSCREEN = 1<<8,
SDL_WINDOW_BORDERLESS = 1<<9,
+ SDL_WINDOW_OPENGL = 1<<10,
SDL_WINDOWPOS_CENTERED = -1,
SDL_WINDOWPOS_UNDEFINED = -2,
@@ -319,6 +321,8 @@
#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING"
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER"
+#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS"
+#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER"
struct SDL_Point {int x, y;
@@ -339,6 +343,11 @@
struct SDL_mutex {Lock l;
};
+
+typedef Along SDL_atomic_t;
+
+#define SDL_AtomicSet(a,v) aswapl((a), (v))
+#define SDL_AtomicGet(a) agetl(a)
typedef enum {SDL_HITTEST_NORMAL,
--- a/include/npe/SDL2/SDL_keycode.h
+++ b/include/npe/SDL2/SDL_keycode.h
@@ -94,6 +94,10 @@
SDLK_LCTRL = Kctl,
SDLK_RCTRL = '>', /* FIXME this is a hack */
+ SDLK_VOLUMEUP = Kvolup,
+ SDLK_VOLUMEDOWN = Kvoldn,
+ SDLK_MUTE = Kmute,
+
/* FIXME not bound to anything */
SDLK_UNKNOWN = -99999,
SDLK_CAPSLOCK,
@@ -117,6 +121,19 @@
SDLK_KP_2,
SDLK_KP_3,
SDLK_KP_0,
+ SDLK_KP_DECIMAL,
+ SDLK_KP_MULTIPLY,
+ SDLK_KP_CLEAR,
+ SDLK_KP_EQUALS,
+ SDLK_F13,
+ SDLK_F14,
+ SDLK_F15,
+ SDLK_F16,
+ SDLK_F17,
+ SDLK_F18,
+ SDLK_F19,
+ SDLK_F20,
+ SDLK_HELP,
/* FIXME no distinction */
KMOD_LSHIFT = 1<<0,
--- a/include/npe/SDL2/SDL_video.h
+++ b/include/npe/SDL2/SDL_video.h
@@ -1,6 +1,25 @@
#ifndef _npe_SDL_video_h_
#define _npe_SDL_video_h_
+enum{+ SDL_GL_CONTEXT_PROFILE_CORE = 0,
+ SDL_GL_CONTEXT_PROFILE_COMPATIBILITY,
+ SDL_GL_CONTEXT_PROFILE_ES,
+ SDL_GL_CONTEXT_PROFILE_MASK = 0x3, /* mutually exclusive flags */
+
+ SDL_GL_RED_SIZE,
+ SDL_GL_GREEN_SIZE,
+ SDL_GL_BLUE_SIZE,
+ SDL_GL_ALPHA_SIZE,
+ SDL_GL_DEPTH_SIZE,
+ SDL_GL_STENCIL_SIZE,
+ SDL_GL_BUFFER_SIZE,
+ SDL_GL_DOUBLEBUFFER,
+ SDL_GL_CONTEXT_MAJOR_VERSION,
+ SDL_GL_CONTEXT_MINOR_VERSION,
+};
+
void SDL_GL_GetDrawableSize(SDL_Window *window, int *w, int *h);
+void SDL_GL_SetAttribute(int attr, int value);
#endif
--
⑨