shithub: npe

Download patch

ref: ace29d7136fa8b79b839639fc7a6fb90775f4b77
parent: 237831f5ec11e7bb6da2961c1e5f5bc0c3610347
author: Jacob Moody <moody@posixcafe.org>
date: Sun Feb 5 19:30:39 EST 2023

more stubs

--- a/include/npe/SDL2/SDL.h
+++ b/include/npe/SDL2/SDL.h
@@ -33,6 +33,7 @@
 typedef int SDL_SystemCursor;
 typedef union SDL_Color SDL_Color;
 typedef struct SDL_Palette SDL_Palette;
+typedef struct SDL_RendererInfo SDL_RendererInfo;
 
 #pragma incomplete SDL_Cursor
 #pragma incomplete SDL_Renderer
@@ -59,6 +60,11 @@
 SDL_bool SDL_HasSSE(void);
 SDL_bool SDL_HasSSE2(void);
 int SDL_Init(int);
+int SDL_InitSubSystem(int);
+int SDL_QuitSubSystem(int);
+int SDL_SetRelativeMouseMode(SDL_bool enabled);
+int SDL_GetRelativeMouseMode(void);
+void SDL_SetWindowIcon(SDL_Window*,SDL_Surface*);
 SDL_Keymod SDL_GetModState(void);
 int SDL_ShowCursor(int toggle);
 Uint64 SDL_GetPerformanceFrequency(void);
@@ -136,6 +142,7 @@
 int SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode *mode);
 void SDL_ShowWindow(SDL_Window *w);
 int SDL_RenderSetIntegerScale(SDL_Renderer *r, SDL_bool enable);
+int SDL_GetNumVideoDisplays(void);
  
 enum {
 	SDL_QUERY = -1,
@@ -177,6 +184,7 @@
 	SDL_TEXTUREACCESS_STATIC = 0,
 	SDL_RENDERER_ACCELERATED = 0,
 	SDL_RENDERER_PRESENTVSYNC = 0,
+	SDL_INIT_NOPARACHUTE = 0,
 
 	/* FIXME steal from rio and add missing? */
 	SDL_SYSTEM_CURSOR_ARROW = 0,
@@ -201,10 +209,15 @@
 	SDL_BUTTON_LMASK = 1<<SDL_BUTTON_LEFT,
 	SDL_BUTTON_MMASK = 1<<SDL_BUTTON_MIDDLE,
 	SDL_BUTTON_RMASK = 1<<SDL_BUTTON_RIGHT,
+
+	KMOD_NONE = 0,
 };
 
+
 #define SDL_BUTTON(x) (1<<(x))
 
+#define SDL_MUSTLOCK(surface) (SDL_FALSE)
+
 #define SDL_HINT_RENDER_SCALE_QUALITY "SDL_HINT_RENDER_SCALE_QUALITY"
 #define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"
 #define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH"
@@ -250,6 +263,11 @@
 struct SDL_PixelFormat {
 	SDL_Palette *palette;
 	int format;
+};
+
+struct SDL_RendererInfo {
+	int max_texture_width;
+	int max_texture_height;
 };
 
 #endif
--- a/include/npe/SDL2/SDL_events.h
+++ b/include/npe/SDL2/SDL_events.h
@@ -17,12 +17,22 @@
 	SDL_WINDOWEVENT,
 	SDL_WINDOWEVENT_HIDDEN,
 	SDL_WINDOWEVENT_SHOWN,
-	SDL_WINDOWEVENT_MINIMIZED,
 	SDL_WINDOWEVENT_FOCUS_LOST,
+	SDL_WINDOWEVENT_FOCUS_GAINED,
+	SDL_WINDOWEVENT_MOVED,
 	SDL_WINDOWEVENT_EXPOSED,
 	SDL_WINDOWEVENT_SIZE_CHANGED,
 	SDL_WINDOWEVENT_RESIZED = SDL_WINDOWEVENT_SIZE_CHANGED, /* FIXME I don't even fucking know... */
+	SDL_WINDOWEVENT_MINIMIZED,
+	SDL_WINDOWEVENT_MAXIMIZED,
+	SDL_WINDOWEVENT_RESTORED,
+	SDL_WINDOWEVENT_ENTER,
+	SDL_WINDOWEVENT_LEAVE,
+	SDL_JOYBALLMOTION,
 
+	SDL_PRESSED = SDL_KEYDOWN,
+	SDL_RELEASED = SDL_KEYUP,
+
 	SDL_TEXTINPUTEVENT_TEXT_SIZE = UTFmax,
 
 	SDL_ADDEVENT = 0,
@@ -32,6 +42,7 @@
 
 typedef struct SDL_WindowEvent SDL_WindowEvent;
 typedef struct SDL_MouseWheelEvent SDL_MouseWheelEvent;
+typedef struct SDL_MouseButtonEvent SDL_MouseButtonEvent;
 typedef struct SDL_Keysym SDL_Keysym;
 typedef struct SDL_Event SDL_Event;
 typedef int SDL_eventaction;
@@ -61,6 +72,18 @@
 	Uint32	direction;
 };
 
+struct SDL_MouseButtonEvent {
+	Uint32	type;
+	Uint32	timestamp;
+	Uint32	windowID;
+	Uint32	which;
+	Uint8	button;
+	Uint8	state;
+	Uint8	clicks;
+	Sint32	x;
+	Sint32	y;
+};
+
 struct SDL_Event {
 	int type;
 	SDL_WindowEvent window;
@@ -67,13 +90,11 @@
 	struct {
 		SDL_Keysym keysym;
 		int repeat;
+		int state;
 	}key;
+	SDL_MouseButtonEvent button;
 	struct {
-		int x, y;
 		int button;
-	}button;
-	struct {
-		int button;
 		int state;
 	}cbutton;
 	struct {
@@ -84,7 +105,12 @@
 		int axis;
 	}jaxis;
 	struct {
+		int xrel;
+		int yrel;
+	}jball;
+	struct {
 		int x, y;
+		int xrel, yrel;
 	}motion;
 	struct {
 		char text[SDL_TEXTINPUTEVENT_TEXT_SIZE+1];
@@ -100,5 +126,7 @@
 int SDL_PushEvent(SDL_Event *event);
 int SDL_RegisterEvents(int);
 int SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, Uint32 minType, Uint32 maxType);
+Uint32 SDL_GetWindowID(SDL_Window *window);
+void SDL_PumpEvents(void);
 
 #endif
--- a/include/npe/SDL2/SDL_joystick.h
+++ b/include/npe/SDL2/SDL_joystick.h
@@ -5,5 +5,16 @@
 
 int SDL_NumJoysticks(void);
 SDL_Joystick *SDL_JoystickOpen(int n);
+void SDL_JoystickClose(SDL_Joystick*);
+int SDL_JoystickNumAxes(SDL_Joystick*);
+int SDL_JoystickNumButtons(SDL_Joystick*);
+int SDL_JoystickNumHats(SDL_Joystick*);
+int SDL_JoystickNumBalls(SDL_Joystick*);
+int SDL_JoystickEventState(int);
+void SDL_JoystickUpdate(void);
+Uint8 SDL_JoystickGetHat(SDL_Joystick*,int);
+Sint16 SDL_JoystickGetAxis(SDL_Joystick*,int);
+Uint8 SDL_JoystickGetButton(SDL_Joystick*,int);
+char* SDL_JoystickName(SDL_Joystick*);
 
 #endif
--- a/include/npe/SDL2/SDL_keycode.h
+++ b/include/npe/SDL2/SDL_keycode.h
@@ -90,6 +90,7 @@
 	SDLK_CAPSLOCK,
 	SDLK_KP_ENTER,
 	SDLK_AC_BACK,
+	SDLK_PAUSE,
 
 	/* FIXME no distinction */
 	KMOD_LSHIFT = 1<<0,
--- a/include/npe/SDL2/SDL_scancode.h
+++ b/include/npe/SDL2/SDL_scancode.h
@@ -101,6 +101,9 @@
 	SDL_SCANCODE_KP_0,
 	SDL_SCANCODE_KP_PERIOD,
 	SDL_SCANCODE_NONUSBACKSLASH,
+	SDL_SCANCODE_COMMA,
+	SDL_SCANCODE_PERIOD,
+	SDL_SCANCODE_SYSREQ,
 
 	SDL_SCANCODE_MENU = 0x76,
 
@@ -119,6 +122,8 @@
 
 	SDL_SCANCODE_MODE = 0x101,
 	SDL_SCANCODE_AUDIOMUTE = 0x106,
+
+	SDL_NUM_SCANCODES,
 };
 
 #endif
--- a/libnpe_sdl2/events.c
+++ b/libnpe_sdl2/events.c
@@ -47,6 +47,13 @@
 	return 0;
 }
 
+Uint32
+SDL_GetWindowID(SDL_Window *win)
+{
+	USED(win);
+	return 1;
+}
+
 SDL_Keymod
 SDL_GetModState(void)
 {
@@ -80,6 +87,12 @@
 	return quitreq;
 }
 
+void
+SDL_PumpEvents(void)
+{
+	/* FIXME does it matter? */
+}
+
 #define ISTEXT(r) ((r) >= 0x20 && ((r) < KF || (r) >= KF+0x1000))
 
 int
@@ -163,6 +176,7 @@
 		}
 		e->type = SDL_WINDOWEVENT;
 		e->window.event = SDL_WINDOWEVENT_EXPOSED;
+		e->window.windowID = 1; //TODO more then one?
 		return 1;
 	}
 
--- a/libnpe_sdl2/sdl2.c
+++ b/libnpe_sdl2/sdl2.c
@@ -55,8 +55,29 @@
 	},
 };
 
+int
+SDL_InitSubSystem(int mask)
+{
+	/* FIXME implement */
+	USED(mask);
+	return 0;
+}
 
 int
+SDL_QuitSubSystem(int mask)
+{
+	/* FIXME implement */
+	USED(mask);
+	return 0;
+}
+
+void
+SDL_SetWindowIcon(SDL_Window *w, SDL_Surface *icon)
+{
+	USED(w); USED(icon);
+}
+
+int
 SDL_Init(int mask)
 {
 	/* FIXME actually use the mask? */
@@ -831,6 +852,13 @@
 	}
 }
 
+int
+SDL_GetNumVideoDisplays(void)
+{
+	/* FIXME implement multihead for plan9 */
+	return 1;
+}
+
 void
 SDL_DestroyTexture(SDL_Texture *t)
 {
@@ -1077,6 +1105,93 @@
 }
 
 void
+SDL_JoystickClose(SDL_Joystick *js)
+{
+	USED(js);
+}
+
+int
+SDL_JoystickNumAxes(SDL_Joystick *js)
+{
+	USED(js);
+	return -1;
+}
+
+int
+SDL_JoystickNumButtons(SDL_Joystick *js)
+{
+	USED(js);
+	return -1;
+}
+
+int
+SDL_JoystickNumHats(SDL_Joystick *js)
+{
+	USED(js);
+	return -1;
+}
+
+int
+SDL_JoystickNumBalls(SDL_Joystick *js)
+{
+	USED(js);
+	return -1;
+}
+
+int
+SDL_JoystickEventState(int state)
+{
+	USED(state);
+	return 0;
+}
+
+void
+SDL_JoystickUpdate(void)
+{
+}
+
+char*
+SDL_JoystickName(SDL_Joystick *js)
+{
+	USED(js);
+	return nil;
+}
+
+Sint16
+SDL_JoystickGetAxis(SDL_Joystick *js, int axis)
+{
+	USED(js); USED(axis);
+	return 0;
+}
+
+Uint8
+SDL_JoystickGetHat(SDL_Joystick *js, int hat)
+{
+	USED(js); USED(hat);
+	return 0;
+}
+
+Uint8
+SDL_JoystickGetButton(SDL_Joystick *js, int button)
+{
+	USED(js); USED(button);
+	return 0;
+}
+
+int
+SDL_SetRelativeMouseMode(SDL_bool enabled)
+{
+	/* FIXME implement mouse grab */
+	return -1;
+}
+
+void
 SDL_SetMainReady(void)
 {
+}
+
+int
+SDL_GetRelativeMouseMode(void)
+{
+	return SDL_FALSE;
 }