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