shithub: npe

Download patch

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
--