diff --git a/recipes/sdl/redox.patch b/recipes/sdl/redox.patch index 85320bb2ca47fad10e80e4198aa4abb3da23c6f9..8fd900b0cae39e76dc4a2425d4a36fad4246ec76 100644 --- a/recipes/sdl/redox.patch +++ b/recipes/sdl/redox.patch @@ -1,6 +1,6 @@ diff -ruwN source/build-scripts/config.sub source-new/build-scripts/config.sub --- source/build-scripts/config.sub 2012-01-18 23:30:05.000000000 -0700 -+++ source-new/build-scripts/config.sub 2018-12-29 15:57:00.298520310 -0700 ++++ source-new/build-scripts/config.sub 2019-08-10 20:55:13.662786449 -0600 @@ -1276,7 +1276,7 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -12,7 +12,7 @@ diff -ruwN source/build-scripts/config.sub source-new/build-scripts/config.sub | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ diff -ruwN source/configure.in source-new/configure.in --- source/configure.in 2012-01-18 23:30:05.000000000 -0700 -+++ source-new/configure.in 2019-01-06 17:08:43.147342277 -0700 ++++ source-new/configure.in 2019-08-10 20:55:13.662786449 -0600 @@ -685,6 +685,18 @@ fi } @@ -102,7 +102,7 @@ diff -ruwN source/configure.in source-new/configure.in # Set up files for the thread library diff -ruwN source/include/SDL_config.h.in source-new/include/SDL_config.h.in --- source/include/SDL_config.h.in 2012-01-18 23:30:05.000000000 -0700 -+++ source-new/include/SDL_config.h.in 2018-12-29 15:57:00.298520310 -0700 ++++ source-new/include/SDL_config.h.in 2019-08-10 20:55:13.662786449 -0600 @@ -182,6 +182,7 @@ #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H #undef SDL_AUDIO_DRIVER_PAUD @@ -121,7 +121,7 @@ diff -ruwN source/include/SDL_config.h.in source-new/include/SDL_config.h.in #undef SDL_VIDEO_DRIVER_PICOGUI diff -ruwN source/src/audio/redox/SDL_redoxaudio.c source-new/src/audio/redox/SDL_redoxaudio.c --- source/src/audio/redox/SDL_redoxaudio.c 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/audio/redox/SDL_redoxaudio.c 2018-12-30 08:49:12.532354653 -0700 ++++ source-new/src/audio/redox/SDL_redoxaudio.c 2019-08-10 20:55:13.662786449 -0600 @@ -0,0 +1,169 @@ +/* + SDL - Simple DirectMedia Layer @@ -294,7 +294,7 @@ diff -ruwN source/src/audio/redox/SDL_redoxaudio.c source-new/src/audio/redox/SD +} diff -ruwN source/src/audio/redox/SDL_redoxaudio.h source-new/src/audio/redox/SDL_redoxaudio.h --- source/src/audio/redox/SDL_redoxaudio.h 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/audio/redox/SDL_redoxaudio.h 2018-12-29 18:56:18.062713776 -0700 ++++ source-new/src/audio/redox/SDL_redoxaudio.h 2019-08-10 20:55:13.662786449 -0600 @@ -0,0 +1,40 @@ +/* + SDL - Simple DirectMedia Layer @@ -338,7 +338,7 @@ diff -ruwN source/src/audio/redox/SDL_redoxaudio.h source-new/src/audio/redox/SD +#endif /* _SDL_redoxaudio_h */ diff -ruwN source/src/audio/SDL_audio.c source-new/src/audio/SDL_audio.c --- source/src/audio/SDL_audio.c 2012-01-18 23:30:06.000000000 -0700 -+++ source-new/src/audio/SDL_audio.c 2018-12-29 19:18:57.332057838 -0700 ++++ source-new/src/audio/SDL_audio.c 2019-08-10 20:55:13.662786449 -0600 @@ -36,6 +36,9 @@ /* Available audio drivers */ @@ -351,7 +351,7 @@ diff -ruwN source/src/audio/SDL_audio.c source-new/src/audio/SDL_audio.c #endif diff -ruwN source/src/audio/SDL_sysaudio.h source-new/src/audio/SDL_sysaudio.h --- source/src/audio/SDL_sysaudio.h 2012-01-18 23:30:06.000000000 -0700 -+++ source-new/src/audio/SDL_sysaudio.h 2018-12-29 15:57:00.298520310 -0700 ++++ source-new/src/audio/SDL_sysaudio.h 2019-08-10 20:55:13.666786472 -0600 @@ -102,6 +102,9 @@ SDL_AudioDevice *(*create)(int devindex); } AudioBootStrap; @@ -364,7 +364,7 @@ diff -ruwN source/src/audio/SDL_sysaudio.h source-new/src/audio/SDL_sysaudio.h #endif diff -ruwN source/src/thread/pthread/SDL_systhread.c source-new/src/thread/pthread/SDL_systhread.c --- source/src/thread/pthread/SDL_systhread.c 2012-01-18 23:30:06.000000000 -0700 -+++ source-new/src/thread/pthread/SDL_systhread.c 2018-12-30 07:30:42.840742321 -0700 ++++ source-new/src/thread/pthread/SDL_systhread.c 2019-08-10 20:55:13.666786472 -0600 @@ -86,7 +86,11 @@ for ( i=0; sig_list[i]; ++i ) { sigaddset(&mask, sig_list[i]); @@ -379,8 +379,8 @@ diff -ruwN source/src/thread/pthread/SDL_systhread.c source-new/src/thread/pthre /* Allow ourselves to be asynchronously cancelled */ diff -ruwN source/src/video/orbital/SDL_orbitalevents.c source-new/src/video/orbital/SDL_orbitalevents.c --- source/src/video/orbital/SDL_orbitalevents.c 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/video/orbital/SDL_orbitalevents.c 2018-12-29 15:57:00.298520310 -0700 -@@ -0,0 +1,201 @@ ++++ source-new/src/video/orbital/SDL_orbitalevents.c 2019-08-12 13:35:31.236162876 -0600 +@@ -0,0 +1,261 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga @@ -407,6 +407,7 @@ diff -ruwN source/src/video/orbital/SDL_orbitalevents.c source-new/src/video/orb +#include "SDL.h" +#include "../../events/SDL_sysevents.h" +#include "../../events/SDL_events_c.h" ++#include "../SDL_cursor_c.h" + +#include <orbital.h> +#include "SDL_orbitalvideo.h" @@ -420,6 +421,55 @@ diff -ruwN source/src/video/orbital/SDL_orbitalevents.c source-new/src/video/orb +static bool last_button_left = false; +static bool last_button_middle = false; +static bool last_button_right = false; ++static int last_x = 0; ++static int last_y = 0; ++ ++/* Variable for mouse relative processing */ ++static int mouse_relative = 0; ++ ++/* Check to see if we need to enter or leave mouse relative mode */ ++ ++void ORBITAL_CheckMouseMode(_THIS) ++{ ++ if (!this->hidden->window) { ++ return; ++ } ++ ++ /* If the mouse is hidden and input is grabbed, we use relative mode */ ++ if ( !(SDL_cursorstate & CURSOR_VISIBLE) && ++ (this->input_grab != SDL_GRAB_OFF) ) { ++ if (!mouse_relative) { ++ orb_window_set_mouse_relative(this->hidden->window, true); ++ } ++ mouse_relative = 1; ++ } else { ++ if (mouse_relative) { ++ orb_window_set_mouse_relative(this->hidden->window, false); ++ } ++ mouse_relative = 0; ++ } ++} ++ ++/* Current grab mode */ ++static SDL_GrabMode grab_mode = SDL_GRAB_OFF; ++ ++SDL_GrabMode ORBITAL_GrabInput(_THIS, SDL_GrabMode mode) { ++ if (this->hidden->window) { ++ switch (mode) { ++ case SDL_GRAB_OFF: ++ orb_window_set_mouse_grab(this->hidden->window, false); ++ grab_mode = SDL_GRAB_OFF; ++ break; ++ case SDL_GRAB_ON: ++ orb_window_set_mouse_grab(this->hidden->window, true); ++ grab_mode = SDL_GRAB_ON; ++ break; ++ default: ++ break; ++ } ++ } ++ return(grab_mode); ++} + +void ORBITAL_PumpEvents(_THIS) +{ @@ -443,7 +493,17 @@ diff -ruwN source/src/video/orbital/SDL_orbitalevents.c source-new/src/video/orb + SDL_PrivateKeyboard(oeo.key.pressed ? SDL_PRESSED : SDL_RELEASED, &keysym); + break; + case OrbEventOption_Mouse: -+ SDL_PrivateMouseMotion(0, 0, oeo.mouse.x, oeo.mouse.y); ++ if (mouse_relative) { ++ SDL_PrivateMouseMotion(0, 1, oeo.mouse.x - last_x, oeo.mouse.y - last_y); ++ } else { ++ SDL_PrivateMouseMotion(0, 0, oeo.mouse.x, oeo.mouse.y); ++ } ++ ++ last_x = oeo.mouse.x; ++ last_y = oeo.mouse.y; ++ break; ++ case OrbEventOption_MouseRelative: ++ SDL_PrivateMouseMotion(0, 1, oeo.mouse_relative.dx, oeo.mouse_relative.dy); + break; + case OrbEventOption_Button: + if (oeo.button.left ^ last_button_left) @@ -584,7 +644,7 @@ diff -ruwN source/src/video/orbital/SDL_orbitalevents.c source-new/src/video/orb +/* end of SDL_orbitalevents.c ... */ diff -ruwN source/src/video/orbital/SDL_orbitalevents_c.h source-new/src/video/orbital/SDL_orbitalevents_c.h --- source/src/video/orbital/SDL_orbitalevents_c.h 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/video/orbital/SDL_orbitalevents_c.h 2018-12-29 15:57:00.302520335 -0700 ++++ source-new/src/video/orbital/SDL_orbitalevents_c.h 2019-08-12 13:21:41.975750603 -0600 @@ -0,0 +1,32 @@ +/* + SDL - Simple DirectMedia Layer @@ -620,8 +680,8 @@ diff -ruwN source/src/video/orbital/SDL_orbitalevents_c.h source-new/src/video/o +/* end of SDL_orbitalevents_c.h ... */ diff -ruwN source/src/video/orbital/SDL_orbitalmouse.c source-new/src/video/orbital/SDL_orbitalmouse.c --- source/src/video/orbital/SDL_orbitalmouse.c 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/video/orbital/SDL_orbitalmouse.c 2018-12-29 15:57:00.302520335 -0700 -@@ -0,0 +1,33 @@ ++++ source-new/src/video/orbital/SDL_orbitalmouse.c 2019-08-12 13:31:25.606869756 -0600 +@@ -0,0 +1,61 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga @@ -653,12 +713,40 @@ diff -ruwN source/src/video/orbital/SDL_orbitalmouse.c source-new/src/video/orbi + +/* The implementation dependent data for the window manager cursor */ +struct WMcursor { -+ int unused; ++ int unused; +}; ++ ++WMcursor * ORBITAL_CreateWMCursor (_THIS, ++ Uint8 * data, Uint8 * mask, int w, int h, int hot_x, int hot_y) ++{ ++ WMcursor * cursor ; ++ ++ cursor = (WMcursor *) SDL_malloc (sizeof (WMcursor)) ; ++ if (cursor == NULL) { ++ SDL_OutOfMemory () ; ++ return NULL ; ++ } ++ ++ return cursor ; ++} ++ ++void ORBITAL_FreeWMCursor (_THIS, WMcursor * cursor) ++{ ++ SDL_free (cursor) ; ++} ++ ++int ORBITAL_ShowWMCursor (_THIS, WMcursor * cursor) ++{ ++ if (!this->hidden->window) { ++ return; ++ } ++ ++ orb_window_set_mouse_cursor(this->hidden->window, cursor != NULL); ++} diff -ruwN source/src/video/orbital/SDL_orbitalmouse_c.h source-new/src/video/orbital/SDL_orbitalmouse_c.h --- source/src/video/orbital/SDL_orbitalmouse_c.h 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/video/orbital/SDL_orbitalmouse_c.h 2018-12-29 15:57:00.302520335 -0700 -@@ -0,0 +1,26 @@ ++++ source-new/src/video/orbital/SDL_orbitalmouse_c.h 2019-08-12 13:14:47.509444528 -0600 +@@ -0,0 +1,28 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga @@ -684,11 +772,13 @@ diff -ruwN source/src/video/orbital/SDL_orbitalmouse_c.h source-new/src/video/or + +#include "SDL_orbitalvideo.h" + -+/* Functions to be exported */ ++extern WMcursor * ORBITAL_CreateWMCursor (_THIS, Uint8 * data, Uint8 * mask, int w, int h, int hot_x, int hot_y) ; ++void ORBITAL_FreeWMCursor (_THIS, WMcursor * cursor) ; ++extern int ORBITAL_ShowWMCursor (_THIS, WMcursor * cursor) ; diff -ruwN source/src/video/orbital/SDL_orbitalvideo.c source-new/src/video/orbital/SDL_orbitalvideo.c --- source/src/video/orbital/SDL_orbitalvideo.c 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/video/orbital/SDL_orbitalvideo.c 2018-12-29 15:57:00.302520335 -0700 -@@ -0,0 +1,252 @@ ++++ source-new/src/video/orbital/SDL_orbitalvideo.c 2019-08-12 13:32:48.391306374 -0600 +@@ -0,0 +1,260 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga @@ -752,6 +842,10 @@ diff -ruwN source/src/video/orbital/SDL_orbitalvideo.c source-new/src/video/orbi +static void ORBITAL_UnlockHWSurface(_THIS, SDL_Surface *surface); +static void ORBITAL_FreeHWSurface(_THIS, SDL_Surface *surface); + ++/* Input handling */ ++static void ORBITAL_CheckMouseMode(_THIS); ++static SDL_GrabMode ORBITAL_GrabInput(_THIS, SDL_GrabMode mode); ++ +/* etc. */ +static void ORBITAL_UpdateRects(_THIS, int numrects, SDL_Rect *rects); + @@ -759,175 +853,179 @@ diff -ruwN source/src/video/orbital/SDL_orbitalvideo.c source-new/src/video/orbi + +static int ORBITAL_Available(void) +{ -+ return(1); ++ return(1); +} + +static void ORBITAL_DeleteDevice(SDL_VideoDevice *device) +{ -+ SDL_free(device->hidden); -+ SDL_free(device); ++ SDL_free(device->hidden); ++ SDL_free(device); +} + +static SDL_VideoDevice *ORBITAL_CreateDevice(int devindex) +{ -+ SDL_VideoDevice *device; -+ -+ /* Initialize all variables that we clean on shutdown */ -+ device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice)); -+ if ( device ) { -+ SDL_memset(device, 0, (sizeof *device)); -+ device->hidden = (struct SDL_PrivateVideoData *) -+ SDL_malloc((sizeof *device->hidden)); -+ } -+ if ( (device == NULL) || (device->hidden == NULL) ) { -+ SDL_OutOfMemory(); -+ if ( device ) { -+ SDL_free(device); -+ } -+ return(0); -+ } -+ SDL_memset(device->hidden, 0, (sizeof *device->hidden)); -+ -+ /* Set the function pointers */ -+ device->VideoInit = ORBITAL_VideoInit; -+ device->ListModes = ORBITAL_ListModes; -+ device->SetVideoMode = ORBITAL_SetVideoMode; -+ device->CreateYUVOverlay = NULL; -+ device->SetColors = ORBITAL_SetColors; -+ device->UpdateRects = ORBITAL_UpdateRects; -+ device->VideoQuit = ORBITAL_VideoQuit; -+ device->AllocHWSurface = ORBITAL_AllocHWSurface; -+ device->CheckHWBlit = NULL; -+ device->FillHWRect = NULL; -+ device->SetHWColorKey = NULL; -+ device->SetHWAlpha = NULL; -+ device->LockHWSurface = ORBITAL_LockHWSurface; -+ device->UnlockHWSurface = ORBITAL_UnlockHWSurface; -+ device->FlipHWSurface = NULL; -+ device->FreeHWSurface = ORBITAL_FreeHWSurface; -+ device->SetCaption = ORBITAL_SetCaption; -+ device->SetIcon = NULL; -+ device->IconifyWindow = NULL; -+ device->GrabInput = NULL; -+ device->GetWMInfo = NULL; -+ device->InitOSKeymap = ORBITAL_InitOSKeymap; -+ device->PumpEvents = ORBITAL_PumpEvents; -+ -+ device->free = ORBITAL_DeleteDevice; -+ -+ return device; ++ SDL_VideoDevice *device; ++ ++ /* Initialize all variables that we clean on shutdown */ ++ device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice)); ++ if ( device ) { ++ SDL_memset(device, 0, (sizeof *device)); ++ device->hidden = (struct SDL_PrivateVideoData *) ++ SDL_malloc((sizeof *device->hidden)); ++ } ++ if ( (device == NULL) || (device->hidden == NULL) ) { ++ SDL_OutOfMemory(); ++ if ( device ) { ++ SDL_free(device); ++ } ++ return(0); ++ } ++ SDL_memset(device->hidden, 0, (sizeof *device->hidden)); ++ ++ /* Set the function pointers */ ++ device->VideoInit = ORBITAL_VideoInit; ++ device->ListModes = ORBITAL_ListModes; ++ device->SetVideoMode = ORBITAL_SetVideoMode; ++ device->CreateYUVOverlay = NULL; ++ device->SetColors = ORBITAL_SetColors; ++ device->UpdateRects = ORBITAL_UpdateRects; ++ device->VideoQuit = ORBITAL_VideoQuit; ++ device->AllocHWSurface = ORBITAL_AllocHWSurface; ++ device->CheckHWBlit = NULL; ++ device->FillHWRect = NULL; ++ device->SetHWColorKey = NULL; ++ device->SetHWAlpha = NULL; ++ device->LockHWSurface = ORBITAL_LockHWSurface; ++ device->UnlockHWSurface = ORBITAL_UnlockHWSurface; ++ device->FlipHWSurface = NULL; ++ device->FreeHWSurface = ORBITAL_FreeHWSurface; ++ device->SetCaption = ORBITAL_SetCaption; ++ device->SetIcon = NULL; ++ device->IconifyWindow = NULL; ++ device->FreeWMCursor = ORBITAL_FreeWMCursor; ++ device->CreateWMCursor = ORBITAL_CreateWMCursor; ++ device->ShowWMCursor = ORBITAL_ShowWMCursor; ++ device->CheckMouseMode = ORBITAL_CheckMouseMode; ++ device->GrabInput = ORBITAL_GrabInput; ++ device->GetWMInfo = NULL; ++ device->InitOSKeymap = ORBITAL_InitOSKeymap; ++ device->PumpEvents = ORBITAL_PumpEvents; ++ ++ device->free = ORBITAL_DeleteDevice; ++ ++ return device; +} + +VideoBootStrap ORBITAL_bootstrap = { -+ ORBITALVID_DRIVER_NAME, "SDL orbital video driver", -+ ORBITAL_Available, ORBITAL_CreateDevice ++ ORBITALVID_DRIVER_NAME, "SDL orbital video driver", ++ ORBITAL_Available, ORBITAL_CreateDevice +}; + + +int ORBITAL_VideoInit(_THIS, SDL_PixelFormat *vformat) +{ -+ fprintf(stderr, "WARNING: You are using the SDL orbital video driver!\n"); ++ fprintf(stderr, "WARNING: You are using the SDL orbital video driver!\n"); + -+ /* Determine the screen depth (use default 32-bit depth) */ -+ /* we change this during the SDL_SetVideoMode implementation... */ -+ vformat->BitsPerPixel = 32; -+ vformat->BytesPerPixel = 4; ++ /* Determine the screen depth (use default 32-bit depth) */ ++ /* we change this during the SDL_SetVideoMode implementation... */ ++ vformat->BitsPerPixel = 32; ++ vformat->BytesPerPixel = 4; + -+ /* We're done! */ -+ return(0); ++ /* We're done! */ ++ return(0); +} + +SDL_Rect **ORBITAL_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags) +{ -+ if (format->BitsPerPixel != 32) -+ return NULL; ++ if (format->BitsPerPixel != 32) ++ return NULL; + -+ return (SDL_Rect **) -1; ++ return (SDL_Rect **) -1; +} + +SDL_Surface *ORBITAL_SetVideoMode(_THIS, SDL_Surface *current, -+ int width, int height, int bpp, Uint32 flags) ++ int width, int height, int bpp, Uint32 flags) +{ -+ if ( bpp != 32 ) { -+ SDL_SetError("Unsupported color depth - must use 32-bits per pixel"); -+ return(NULL); -+ } ++ if ( bpp != 32 ) { ++ SDL_SetError("Unsupported color depth - must use 32-bits per pixel"); ++ return(NULL); ++ } + -+ if (this->hidden->window) { -+ orb_window_set_size(this->hidden->window, width, height); -+ } else { -+ uint32_t orb_flags = ORB_WINDOW_ASYNC; -+ if (flags & SDL_RESIZABLE) -+ orb_flags |= ORB_WINDOW_RESIZABLE; -+ -+ this->hidden->window = orb_window_new_flags(-1, -1, width, height, "SDL", orb_flags); -+ if (!this->hidden->window) { -+ SDL_SetError("Couldn't create window for requested mode"); -+ return(NULL); -+ } -+ } ++ if (this->hidden->window) { ++ orb_window_set_size(this->hidden->window, width, height); ++ } else { ++ uint32_t orb_flags = ORB_WINDOW_ASYNC; ++ if (flags & SDL_RESIZABLE) ++ orb_flags |= ORB_WINDOW_RESIZABLE; ++ ++ this->hidden->window = orb_window_new_flags(-1, -1, width, height, "SDL", orb_flags); ++ if (!this->hidden->window) { ++ SDL_SetError("Couldn't create window for requested mode"); ++ return(NULL); ++ } ++ } + -+ fprintf(stderr, "Setting mode %dx%d@%d\n", width, height, bpp); ++ fprintf(stderr, "Setting mode %dx%d@%d\n", width, height, bpp); + -+ /* Allocate the new pixel format for the screen */ -+ if ( ! SDL_ReallocFormat(current, bpp, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000) ) { -+ orb_window_destroy(this->hidden->window); -+ this->hidden->window = NULL; ++ /* Allocate the new pixel format for the screen */ ++ if ( ! SDL_ReallocFormat(current, bpp, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000) ) { ++ orb_window_destroy(this->hidden->window); ++ this->hidden->window = NULL; + -+ SDL_SetError("Couldn't allocate new pixel format for requested mode"); -+ return(NULL); -+ } ++ SDL_SetError("Couldn't allocate new pixel format for requested mode"); ++ return(NULL); ++ } + -+ /* Set up the new mode framebuffer */ -+ current->flags = flags & (~SDL_DOUBLEBUF); -+ current->w = width; -+ current->h = height; -+ current->pitch = width * (bpp / 8); -+ current->pixels = orb_window_data(this->hidden->window); ++ /* Set up the new mode framebuffer */ ++ current->flags = flags & (~SDL_DOUBLEBUF); ++ current->w = width; ++ current->h = height; ++ current->pitch = width * (bpp / 8); ++ current->pixels = orb_window_data(this->hidden->window); + -+ /* We're done */ -+ return(current); ++ /* We're done */ ++ return(current); +} + +static void ORBITAL_SetCaption(_THIS, const char *title, const char *icon) +{ -+ if (this->hidden->window) -+ orb_window_set_title(this->hidden->window, title); ++ if (this->hidden->window) ++ orb_window_set_title(this->hidden->window, title); +} + +/* We don't actually allow hardware surfaces other than the main one */ +static int ORBITAL_AllocHWSurface(_THIS, SDL_Surface *surface) +{ -+ return(-1); ++ return(-1); +} +static void ORBITAL_FreeHWSurface(_THIS, SDL_Surface *surface) +{ -+ return; ++ return; +} + +/* We need to wait for vertical retrace on page flipped displays */ +static int ORBITAL_LockHWSurface(_THIS, SDL_Surface *surface) +{ -+ return(0); ++ return(0); +} + +static void ORBITAL_UnlockHWSurface(_THIS, SDL_Surface *surface) +{ -+ return; ++ return; +} + +static void ORBITAL_UpdateRects(_THIS, int numrects, SDL_Rect *rects) +{ -+ if (this->hidden->window) { -+ SDL_SetAlphaChannel(this->screen, SDL_ALPHA_OPAQUE); -+ orb_window_sync(this->hidden->window); -+ } ++ if (this->hidden->window) { ++ SDL_SetAlphaChannel(this->screen, SDL_ALPHA_OPAQUE); ++ orb_window_sync(this->hidden->window); ++ } +} + +int ORBITAL_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors) +{ -+ /* do nothing of note. */ -+ return(1); ++ /* do nothing of note. */ ++ return(1); +} + +/* Note: If we are terminated, this could be called in the middle of @@ -935,15 +1033,15 @@ diff -ruwN source/src/video/orbital/SDL_orbitalvideo.c source-new/src/video/orbi +*/ +void ORBITAL_VideoQuit(_THIS) +{ -+ if (this->hidden->window) { -+ orb_window_destroy(this->hidden->window); -+ this->hidden->window = NULL; -+ this->screen->pixels = NULL; -+ } ++ if (this->hidden->window) { ++ orb_window_destroy(this->hidden->window); ++ this->hidden->window = NULL; ++ this->screen->pixels = NULL; ++ } +} diff -ruwN source/src/video/orbital/SDL_orbitalvideo.h source-new/src/video/orbital/SDL_orbitalvideo.h --- source/src/video/orbital/SDL_orbitalvideo.h 1969-12-31 17:00:00.000000000 -0700 -+++ source-new/src/video/orbital/SDL_orbitalvideo.h 2018-12-29 15:57:00.302520335 -0700 ++++ source-new/src/video/orbital/SDL_orbitalvideo.h 2019-08-12 13:22:05.603878968 -0600 @@ -0,0 +1,39 @@ +/* + SDL - Simple DirectMedia Layer @@ -974,7 +1072,7 @@ diff -ruwN source/src/video/orbital/SDL_orbitalvideo.h source-new/src/video/orbi +#include "../SDL_sysvideo.h" + +/* Hidden "this" pointer for the video functions */ -+#define _THIS SDL_VideoDevice *this ++#define _THIS SDL_VideoDevice *this + + +/* Private display data */ @@ -986,7 +1084,7 @@ diff -ruwN source/src/video/orbital/SDL_orbitalvideo.h source-new/src/video/orbi +#endif /* _SDL_orbitalvideo_h */ diff -ruwN source/src/video/SDL_gamma.c source-new/src/video/SDL_gamma.c --- source/src/video/SDL_gamma.c 2012-01-18 23:30:06.000000000 -0700 -+++ source-new/src/video/SDL_gamma.c 2018-12-29 15:57:00.302520335 -0700 ++++ source-new/src/video/SDL_gamma.c 2019-08-10 20:55:13.670786496 -0600 @@ -35,6 +35,9 @@ #define log(x) __ieee754_log(x) #endif @@ -999,7 +1097,7 @@ diff -ruwN source/src/video/SDL_gamma.c source-new/src/video/SDL_gamma.c diff -ruwN source/src/video/SDL_sysvideo.h source-new/src/video/SDL_sysvideo.h --- source/src/video/SDL_sysvideo.h 2012-01-18 23:30:06.000000000 -0700 -+++ source-new/src/video/SDL_sysvideo.h 2018-12-29 15:57:00.302520335 -0700 ++++ source-new/src/video/SDL_sysvideo.h 2019-08-10 20:55:13.670786496 -0600 @@ -410,6 +410,9 @@ #if SDL_VIDEO_DRIVER_CACA extern VideoBootStrap CACA_bootstrap; @@ -1012,7 +1110,7 @@ diff -ruwN source/src/video/SDL_sysvideo.h source-new/src/video/SDL_sysvideo.h #endif diff -ruwN source/src/video/SDL_video.c source-new/src/video/SDL_video.c --- source/src/video/SDL_video.c 2012-01-18 23:30:06.000000000 -0700 -+++ source-new/src/video/SDL_video.c 2018-12-29 15:57:00.302520335 -0700 ++++ source-new/src/video/SDL_video.c 2019-08-10 20:55:13.670786496 -0600 @@ -126,6 +126,9 @@ #if SDL_VIDEO_DRIVER_CACA &CACA_bootstrap,