diff --git a/recipes/sdl/01_orbital.patch b/recipes/sdl/01_orbital.patch index 93a4845bcff6b0a205d09ca6ddc9e2351863547f..90090bf7b3041763454e3c5ec4239c81c5f2853b 100644 --- a/recipes/sdl/01_orbital.patch +++ b/recipes/sdl/01_orbital.patch @@ -1,6 +1,6 @@ -diff -rupN sdl/build-scripts/config.sub sdl-redox/build-scripts/config.sub ---- sdl/build-scripts/config.sub 2012-01-18 23:30:05.000000000 -0700 -+++ sdl-redox/build-scripts/config.sub 2017-11-21 19:24:52.456066921 -0700 +diff -rupN source/build-scripts/config.sub source_orbital/build-scripts/config.sub +--- source/build-scripts/config.sub 2012-01-19 07:30:05.000000000 +0100 ++++ source_orbital/build-scripts/config.sub 2018-02-21 09:33:42.970275299 +0100 @@ -1276,7 +1276,7 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -10,13 +10,13 @@ diff -rupN sdl/build-scripts/config.sub sdl-redox/build-scripts/config.sub | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ -diff -rupN sdl/configure.in sdl-redox/configure.in ---- sdl/configure.in 2012-01-18 22:30:05.000000000 -0800 -+++ sdl-redox/configure.in 2016-07-27 18:17:26.683907466 -0700 +diff -rupN source/configure.in source_orbital/configure.in +--- source/configure.in 2012-01-19 07:30:05.000000000 +0100 ++++ source_orbital/configure.in 2018-02-21 09:33:42.970275299 +0100 @@ -1646,6 +1646,19 @@ AC_HELP_STRING([--enable-video-dummy], [ fi } - + +dnl Set up the Orbital video driver. +CheckOrbitalVideo() +{ @@ -54,9 +54,9 @@ diff -rupN sdl/configure.in sdl-redox/configure.in CheckDiskAudio CheckDummyAudio CheckDLOPEN -diff -rupN sdl/include/SDL_config.h.in sdl-redox/include/SDL_config.h.in ---- sdl/include/SDL_config.h.in 2012-01-18 23:30:05.000000000 -0700 -+++ sdl-redox/include/SDL_config.h.in 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/include/SDL_config.h.in source_orbital/include/SDL_config.h.in +--- source/include/SDL_config.h.in 2012-01-19 07:30:05.000000000 +0100 ++++ source_orbital/include/SDL_config.h.in 2018-02-21 09:33:43.110276438 +0100 @@ -268,6 +268,7 @@ #undef SDL_VIDEO_DRIVER_GGI #undef SDL_VIDEO_DRIVER_IPOD @@ -65,10 +65,10 @@ diff -rupN sdl/include/SDL_config.h.in sdl-redox/include/SDL_config.h.in #undef SDL_VIDEO_DRIVER_OS2FS #undef SDL_VIDEO_DRIVER_PHOTON #undef SDL_VIDEO_DRIVER_PICOGUI -diff -rupN sdl/src/video/orbital/SDL_orbitalevents.c sdl-redox/src/video/orbital/SDL_orbitalevents.c ---- sdl/src/video/orbital/SDL_orbitalevents.c 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalevents.c 2017-11-21 19:24:52.460053442 -0700 -@@ -0,0 +1,159 @@ +diff -rupN source/src/video/orbital/SDL_orbitalevents.c source_orbital/src/video/orbital/SDL_orbitalevents.c +--- source/src/video/orbital/SDL_orbitalevents.c 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalevents.c 2018-02-21 10:35:32.798443506 +0100 +@@ -0,0 +1,173 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga @@ -105,15 +105,20 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalevents.c sdl-redox/src/video/orbital +static SDLKey keymap[128]; + +#define EVENT_NONE 0 -+#define EVENT_MOUSE 1 -+#define EVENT_KEY 2 -+#define EVENT_QUIT 3 ++#define EVENT_KEY 1 ++#define EVENT_MOUSE 2 ++#define EVENT_BUTTON 3 ++#define EVENT_SCROLL 4 ++#define EVENT_QUIT 5 ++#define EVENT_FOCUS 6 ++#define EVENT_MOVE 7 ++#define EVENT_RESIZE 8 ++#define EVENT_SCREEN 9 + +struct Event { + int64_t code; + int64_t a; + int64_t b; -+ int64_t c; +} __attribute__((packed)); + +void ORBITAL_PumpEvents(_THIS) @@ -122,18 +127,27 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalevents.c sdl-redox/src/video/orbital + while(read(this->hidden->fd, &event, sizeof(event)) > 0){ + if ( event.code == EVENT_KEY ) { + SDL_keysym keysym; -+ keysym.unicode = event.a; -+ keysym.scancode = event.b; -+ keysym.sym = keymap[event.b]; ++ ++ // TODO: Find out why NetSurf recieves NULL chars when the Unicode field is used ++ //keysym.unicode = event.a; ++ keysym.scancode = event.b & 0xFF; ++ keysym.sym = keymap[event.b & 0xFF]; + keysym.mod = KMOD_NONE; -+ if ( event.c > 0 ) { ++ if ( (event.b >> 8) & 0x01 > 0 ) { + SDL_PrivateKeyboard(SDL_PRESSED, &keysym); + } else { + SDL_PrivateKeyboard(SDL_RELEASED, &keysym); + } + } else if( event.code == EVENT_MOUSE ) { -+ SDL_PrivateMouseMotion(event.c, 0, event.a, event.b); ++ SDL_PrivateMouseMotion(0, 0, event.a, event.b); + //SDL_PrivateMouseButton(Uint8 state, Uint8 button, Sint16 x, Sint16 y); ++ } else if( event.code == EVENT_BUTTON ) { ++ // TODO: Only emit events when the button state changed ++ if ( event.a & 0x01 > 0 ) { ++ SDL_PrivateMouseButton(SDL_PRESSED, SDL_BUTTON_LEFT, 0, 0); ++ } else { ++ SDL_PrivateMouseButton(SDL_RELEASED, SDL_BUTTON_LEFT, 0, 0); ++ } + } else if ( event.code == EVENT_QUIT ) { + SDL_PrivateQuit(); + } @@ -228,9 +242,9 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalevents.c sdl-redox/src/video/orbital +} + +/* end of SDL_orbitalevents.c ... */ -diff -rupN sdl/src/video/orbital/SDL_orbitalevents_c.h sdl-redox/src/video/orbital/SDL_orbitalevents_c.h ---- sdl/src/video/orbital/SDL_orbitalevents_c.h 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalevents_c.h 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/orbital/SDL_orbitalevents_c.h source_orbital/src/video/orbital/SDL_orbitalevents_c.h +--- source/src/video/orbital/SDL_orbitalevents_c.h 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalevents_c.h 2018-02-21 09:33:43.238277480 +0100 @@ -0,0 +1,32 @@ +/* + SDL - Simple DirectMedia Layer @@ -264,9 +278,9 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalevents_c.h sdl-redox/src/video/orbit +extern void ORBITAL_PumpEvents(_THIS); + +/* end of SDL_orbitalevents_c.h ... */ -diff -rupN sdl/src/video/orbital/SDL_orbitalmouse.c sdl-redox/src/video/orbital/SDL_orbitalmouse.c ---- sdl/src/video/orbital/SDL_orbitalmouse.c 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalmouse.c 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/orbital/SDL_orbitalmouse.c source_orbital/src/video/orbital/SDL_orbitalmouse.c +--- source/src/video/orbital/SDL_orbitalmouse.c 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalmouse.c 2018-02-21 09:33:43.238277480 +0100 @@ -0,0 +1,33 @@ +/* + SDL - Simple DirectMedia Layer @@ -301,9 +315,9 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalmouse.c sdl-redox/src/video/orbital/ +struct WMcursor { + int unused; +}; -diff -rupN sdl/src/video/orbital/SDL_orbitalmouse_c.h sdl-redox/src/video/orbital/SDL_orbitalmouse_c.h ---- sdl/src/video/orbital/SDL_orbitalmouse_c.h 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalmouse_c.h 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/orbital/SDL_orbitalmouse_c.h source_orbital/src/video/orbital/SDL_orbitalmouse_c.h +--- source/src/video/orbital/SDL_orbitalmouse_c.h 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalmouse_c.h 2018-02-21 09:33:43.238277480 +0100 @@ -0,0 +1,26 @@ +/* + SDL - Simple DirectMedia Layer @@ -331,9 +345,9 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalmouse_c.h sdl-redox/src/video/orbita +#include "SDL_orbitalvideo.h" + +/* Functions to be exported */ -diff -rupN sdl/src/video/orbital/SDL_orbitalscancode.h sdl-redox/src/video/orbital/SDL_orbitalscancode.h ---- sdl/src/video/orbital/SDL_orbitalscancode.h 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalscancode.h 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/orbital/SDL_orbitalscancode.h source_orbital/src/video/orbital/SDL_orbitalscancode.h +--- source/src/video/orbital/SDL_orbitalscancode.h 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalscancode.h 2018-02-21 09:33:43.238277480 +0100 @@ -0,0 +1,80 @@ +#define SCANCODE_A 0x1E +#define SCANCODE_B 0x30 @@ -415,9 +429,9 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalscancode.h sdl-redox/src/video/orbit +#define SCANCODE_COMMA 0x33 +#define SCANCODE_PERIOD 0x34 +#define SCANCODE_SLASH 0x35 -diff -rupN sdl/src/video/orbital/SDL_orbitalvideo.c sdl-redox/src/video/orbital/SDL_orbitalvideo.c ---- sdl/src/video/orbital/SDL_orbitalvideo.c 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalvideo.c 2017-11-21 19:34:44.269053445 -0700 +diff -rupN source/src/video/orbital/SDL_orbitalvideo.c source_orbital/src/video/orbital/SDL_orbitalvideo.c +--- source/src/video/orbital/SDL_orbitalvideo.c 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalvideo.c 2018-02-21 09:33:43.266277708 +0100 @@ -0,0 +1,266 @@ +/* + SDL - Simple DirectMedia Layer @@ -685,9 +699,9 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalvideo.c sdl-redox/src/video/orbital/ + this->screen->pixels = NULL; + } +} -diff -rupN sdl/src/video/orbital/SDL_orbitalvideo.h sdl-redox/src/video/orbital/SDL_orbitalvideo.h ---- sdl/src/video/orbital/SDL_orbitalvideo.h 1969-12-31 17:00:00.000000000 -0700 -+++ sdl-redox/src/video/orbital/SDL_orbitalvideo.h 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/orbital/SDL_orbitalvideo.h source_orbital/src/video/orbital/SDL_orbitalvideo.h +--- source/src/video/orbital/SDL_orbitalvideo.h 1970-01-01 01:00:00.000000000 +0100 ++++ source_orbital/src/video/orbital/SDL_orbitalvideo.h 2018-02-21 09:33:43.266277708 +0100 @@ -0,0 +1,41 @@ +/* + SDL - Simple DirectMedia Layer @@ -730,9 +744,79 @@ diff -rupN sdl/src/video/orbital/SDL_orbitalvideo.h sdl-redox/src/video/orbital/ +}; + +#endif /* _SDL_orbitalvideo_h */ -diff -rupN sdl/src/video/SDL_sysvideo.h sdl-redox/src/video/SDL_sysvideo.h ---- sdl/src/video/SDL_sysvideo.h 2012-01-18 23:30:06.000000000 -0700 -+++ sdl-redox/src/video/SDL_sysvideo.h 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/SDL_gamma.c source_orbital/src/video/SDL_gamma.c +--- source/src/video/SDL_gamma.c 2012-01-19 07:30:06.000000000 +0100 ++++ source_orbital/src/video/SDL_gamma.c 2018-02-20 20:51:31.151824659 +0100 +@@ -23,9 +23,9 @@ + + /* Gamma correction support */ + +-#ifdef HAVE_MATH_H +-#include <math.h> /* Used for calculating gamma ramps */ +-#else ++//#ifdef HAVE_MATH_H ++//#include <math.h> /* Used for calculating gamma ramps */ ++//#else + /* Math routines from uClibc: http://www.uclibc.org */ + #include "math_private.h" + #include "e_sqrt.h" +@@ -33,7 +33,7 @@ + #include "e_log.h" + #define pow(x, y) __ieee754_pow(x, y) + #define log(x) __ieee754_log(x) +-#endif ++//#endif + + #include "SDL_sysvideo.h" + +@@ -94,7 +94,7 @@ int SDL_SetGamma(float red, float green, + { + int succeeded; + SDL_VideoDevice *video = current_video; +- SDL_VideoDevice *this = current_video; ++ SDL_VideoDevice *this = current_video; + + succeeded = -1; + /* Prefer using SetGammaRamp(), as it's more flexible */ +@@ -120,7 +120,7 @@ int SDL_GetGamma(float *red, float *gree + { + int succeeded; + SDL_VideoDevice *video = current_video; +- SDL_VideoDevice *this = current_video; ++ SDL_VideoDevice *this = current_video; + + succeeded = -1; + /* Prefer using GetGammaRamp(), as it's more flexible */ +@@ -145,7 +145,7 @@ int SDL_SetGammaRamp(const Uint16 *red, + { + int succeeded; + SDL_VideoDevice *video = current_video; +- SDL_VideoDevice *this = current_video; ++ SDL_VideoDevice *this = current_video; + SDL_Surface *screen = SDL_PublicSurface; + + /* Verify the screen parameter */ +@@ -177,7 +177,7 @@ int SDL_SetGammaRamp(const Uint16 *red, + /* If physical palette has been set independently, use it */ + if(video->physpal) + pal = video->physpal; +- ++ + SDL_SetPalette(screen, SDL_PHYSPAL, + pal->colors, 0, pal->ncolors); + return 0; +@@ -196,7 +196,7 @@ int SDL_SetGammaRamp(const Uint16 *red, + int SDL_GetGammaRamp(Uint16 *red, Uint16 *green, Uint16 *blue) + { + SDL_VideoDevice *video = current_video; +- SDL_VideoDevice *this = current_video; ++ SDL_VideoDevice *this = current_video; + + /* Lazily allocate the gamma table */ + if ( ! video->gamma ) { +diff -rupN source/src/video/SDL_sysvideo.h source_orbital/src/video/SDL_sysvideo.h +--- source/src/video/SDL_sysvideo.h 2012-01-19 07:30:06.000000000 +0100 ++++ source_orbital/src/video/SDL_sysvideo.h 2018-02-21 09:33:43.266277708 +0100 @@ -410,6 +410,9 @@ extern VideoBootStrap AALIB_bootstrap; #if SDL_VIDEO_DRIVER_CACA extern VideoBootStrap CACA_bootstrap; @@ -743,9 +827,9 @@ diff -rupN sdl/src/video/SDL_sysvideo.h sdl-redox/src/video/SDL_sysvideo.h #if SDL_VIDEO_DRIVER_DUMMY extern VideoBootStrap DUMMY_bootstrap; #endif -diff -rupN sdl/src/video/SDL_video.c sdl-redox/src/video/SDL_video.c ---- sdl/src/video/SDL_video.c 2012-01-18 23:30:06.000000000 -0700 -+++ sdl-redox/src/video/SDL_video.c 2017-11-21 19:24:52.460053442 -0700 +diff -rupN source/src/video/SDL_video.c source_orbital/src/video/SDL_video.c +--- source/src/video/SDL_video.c 2012-01-19 07:30:06.000000000 +0100 ++++ source_orbital/src/video/SDL_video.c 2018-02-21 09:33:43.350278392 +0100 @@ -126,6 +126,9 @@ static VideoBootStrap *bootstrap[] = { #if SDL_VIDEO_DRIVER_CACA &CACA_bootstrap,