This commit is contained in:
TriForceX
2019-09-25 20:51:37 -03:00
commit 6203ff3e7c
11215 changed files with 428258 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
[PATCH] configure.in: use correct directfb-config in version check
The configure script has just checked for the correct directfb-config
script, so also use it for the version check instead of whatever
might be in the path.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
configure.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Index: SDL-1.2.15/configure.in
===================================================================
--- SDL-1.2.15.orig/configure.in
+++ SDL-1.2.15/configure.in
@@ -1276,7 +1276,7 @@
else
set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
- set -- `directfb-config --version | sed 's/\./ /g'`
+ set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
if test $HAVE_VERSION -ge $NEED_VERSION; then
DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`

View File

@@ -0,0 +1,60 @@
sdl: Fix compilation with libX11 >= 1.5.99.902
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
# HG changeset patch
# User Azamat H. Hackimov <azamat.hackimov@gmail.com>
# Date 1370184533 -21600
# Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8
# Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268
Fix compilation with libX11 >= 1.5.99.902.
These changes fixes bug #1769 for SDL 1.2
(http://bugzilla.libsdl.org/show_bug.cgi?id=1769).
diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in
--- a/configure.in Wed Apr 17 00:56:53 2013 -0700
+++ b/configure.in Sun Jun 02 20:48:53 2013 +0600
@@ -1169,6 +1169,17 @@
if test x$definitely_enable_video_x11_xrandr = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
fi
+ AC_MSG_CHECKING(for const parameter to _XData32)
+ have_const_param_xdata32=no
+ AC_TRY_COMPILE([
+ #include <X11/Xlibint.h>
+ extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
+ ],[
+ ],[
+ have_const_param_xdata32=yes
+ AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
+ ])
+ AC_MSG_RESULT($have_const_param_xdata32)
fi
fi
}
diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in
--- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700
+++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600
@@ -283,6 +283,7 @@
#undef SDL_VIDEO_DRIVER_WINDIB
#undef SDL_VIDEO_DRIVER_WSCONS
#undef SDL_VIDEO_DRIVER_X11
+#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
#undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h
--- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700
+++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600
@@ -165,7 +165,11 @@
*/
#ifdef LONG64
SDL_X11_MODULE(IO_32BIT)
+#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
+SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
+#else
SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
+#endif
SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
#endif

26
package/sdl/Config.in Normal file
View File

@@ -0,0 +1,26 @@
config BR2_PACKAGE_SDL
bool "SDL"
help
Simple DirectMedia Layer - SDL is a library that allows
programs portable low level access to a video framebuffer,
audio output, mouse, and keyboard.
http://www.libsdl.org/
if BR2_PACKAGE_SDL
config BR2_PACKAGE_SDL_FBCON
bool "SDL framebuffer console video driver"
default y
config BR2_PACKAGE_SDL_DIRECTFB
bool "SDL DirectFB video driver"
depends on BR2_PACKAGE_DIRECTFB
config BR2_PACKAGE_SDL_X11
bool "SDL X11 video driver"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XLIB_LIBXEXT
endif

View File

@@ -0,0 +1,14 @@
diff --git a/src/video/fbcon/SDL_fbvideo.c b/src/video/fbcon/SDL_fbvideo.c
index c077d82..052e7de 100644
--- a/src/video/fbcon/SDL_fbvideo.c
+++ b/src/video/fbcon/SDL_fbvideo.c
@@ -590,6 +590,9 @@ static int FB_VideoInit(_THIS, SDL_PixelFormat *vformat)
return(-1);
}
+ /* Clear the mapped area */
+ memset(mapped_mem, 0, mapped_memlen);
+
/* Determine the current screen depth */
if ( ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo) < 0 ) {
SDL_SetError("Couldn't get console pixel format");

View File

@@ -0,0 +1,13 @@
diff --git a/src/video/fbcon/SDL_fbvideo.c b/src/video/fbcon/SDL_fbvideo.c
index 052e7de..037d17f 100644
--- a/src/video/fbcon/SDL_fbvideo.c
+++ b/src/video/fbcon/SDL_fbvideo.c
@@ -1930,7 +1930,7 @@ static void FB_VideoQuit(_THIS)
int left = this->screen->pitch*this->screen->h;
while ( left-- ) { *rowp++ = 0; }
#else
- SDL_memset(this->screen->pixels,0,this->screen->h*this->screen->pitch);
+ SDL_memset(mapped_mem, 0, mapped_memlen);
#endif
}
/* This test fails when using the VGA16 shadow memory */

View File

@@ -0,0 +1,32 @@
diff -ru sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c
--- sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c 2012-01-19 07:30:06.000000000 +0100
+++ sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c 2013-09-13 14:03:04.010453419 +0200
@@ -1907,12 +1913,11 @@
static void FB_VideoQuit(_THIS)
{
int i, j;
+ const char *dontClearPixels = SDL_getenv("SDL_FBCON_DONT_CLEAR");
if ( this->screen ) {
/* Clear screen and tell SDL not to free the pixels */
- const char *dontClearPixels = SDL_getenv("SDL_FBCON_DONT_CLEAR");
-
/* If the framebuffer is not to be cleared, make sure that we won't
* display the previous frame when disabling double buffering. */
if ( dontClearPixels && flip_page == 0 ) {
@@ -1969,7 +1974,13 @@
/* Restore the original video mode and palette */
if ( FB_InGraphicsMode(this) ) {
- FB_RestorePalette(this);
+ if (dontClearPixels) {
+ /* Restore only panning, keep current mode */
+ ioctl(console_fd, FBIOGET_VSCREENINFO, &saved_vinfo);
+ saved_vinfo.yoffset = saved_vinfo.xoffset = 0;
+ } else {
+ FB_RestorePalette(this);
+ }
ioctl(console_fd, FBIOPUT_VSCREENINFO, &saved_vinfo);
}

View File

@@ -0,0 +1,12 @@
diff -ru sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c
--- sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c 2012-01-19 07:30:06.000000000 +0100
+++ sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c 2012-08-30 16:11:29.000000000 +0200
@@ -1915,7 +1915,7 @@
/* If the framebuffer is not to be cleared, make sure that we won't
* display the previous frame when disabling double buffering. */
- if ( dontClearPixels && flip_page == 0 ) {
+ if ( dontClearPixels && (this->screen->flags & SDL_DOUBLEBUF) && flip_page == 0 ) {
SDL_memcpy(flip_address[0], flip_address[1], this->screen->pitch * this->screen->h);
}

View File

@@ -0,0 +1,14 @@
diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c
index ee43974..c5cd0bb 100644
--- a/src/joystick/linux/SDL_sysjoystick.c
+++ b/src/joystick/linux/SDL_sysjoystick.c
@@ -389,7 +389,8 @@ static int EV_IsJoystick(int fd)
return(0);
}
if (!(test_bit(EV_KEY, evbit) && test_bit(EV_ABS, evbit) &&
- test_bit(ABS_X, absbit) && test_bit(ABS_Y, absbit) &&
+ (test_bit(ABS_X, absbit) && test_bit(ABS_Y, absbit) ||
+ test_bit(ABS_HAT0X, absbit) && test_bit(ABS_HAT0Y, absbit)) &&
(test_bit(BTN_TRIGGER, keybit) || test_bit(BTN_A, keybit) || test_bit(BTN_1, keybit)))) return 0;
return(1);
}

View File

@@ -0,0 +1,12 @@
diff -ru sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c
--- sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c 2012-01-19 07:30:06.000000000 +0100
+++ sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c 2013-05-17 05:15:03.000000000 +0200
@@ -1427,7 +1429,7 @@
}
/* Wait for vertical retrace and then flip display */
- cache_vinfo.yoffset = flip_page*surface->h;
+ cache_vinfo.yoffset = flip_page * cache_vinfo.yres;
if ( FB_IsSurfaceBusy(this->screen) ) {
FB_WaitBusySurfaces(this);
}

View File

@@ -0,0 +1,13 @@
diff -ru sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c
--- sdl-1.2.15.org/src/video/fbcon/SDL_fbvideo.c 2012-01-19 07:30:06.000000000 +0100
+++ sdl-1.2.15/src/video/fbcon/SDL_fbvideo.c 2013-05-25 13:54:17.000000000 +0200
@@ -1431,7 +1433,8 @@
if ( FB_IsSurfaceBusy(this->screen) ) {
FB_WaitBusySurfaces(this);
}
- wait_vbl(this);
+ // The GCW Zero kernel waits for vsync as part of the pan ioctl.
+ //wait_vbl(this);
if ( ioctl(console_fd, FBIOPAN_DISPLAY, &cache_vinfo) < 0 ) {
SDL_SetError("ioctl(FBIOPAN_DISPLAY) failed");
return(-1);

View File

@@ -0,0 +1,22 @@
diff --git a/src/video/fbcon/SDL_fbevents.c b/src/video/fbcon/SDL_fbevents.c
index 5e369a4..549a7ad 100644
--- a/src/video/fbcon/SDL_fbevents.c
+++ b/src/video/fbcon/SDL_fbevents.c
@@ -270,17 +270,6 @@ int FB_OpenKeyboard(_THIS)
fprintf(stderr, "vtpath = %s, fd = %d\n",
vtpath, keyboard_fd);
#endif /* DEBUG_KEYBOARD */
-
- /* This needs to be our controlling tty
- so that the kernel ioctl() calls work
- */
- if ( keyboard_fd >= 0 ) {
- tty0_fd = open("/dev/tty", O_RDWR, 0);
- if ( tty0_fd >= 0 ) {
- ioctl(tty0_fd, TIOCNOTTY, 0);
- close(tty0_fd);
- }
- }
}
}
if ( keyboard_fd < 0 ) {

View File

@@ -0,0 +1,25 @@
diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c
index c5cd0bb..20f7b0d 100644
--- a/src/joystick/linux/SDL_sysjoystick.c
+++ b/src/joystick/linux/SDL_sysjoystick.c
@@ -583,7 +583,7 @@ static SDL_bool JS_ConfigJoystick(SDL_Joystick *joystick, int fd)
SDL_bool handled;
unsigned char n;
int tmp_naxes, tmp_nhats, tmp_nballs;
- const char *name;
+ const char *name, *ptr;
char *env, env_name[128];
int i;
@@ -604,8 +604,9 @@ static SDL_bool JS_ConfigJoystick(SDL_Joystick *joystick, int fd)
name = SDL_SYS_JoystickName(joystick->index);
/* Generic analog joystick support */
- if ( SDL_strstr(name, "Analog") == name && SDL_strstr(name, "-hat") ) {
- if ( SDL_sscanf(name,"Analog %d-axis %*d-button %d-hat",
+ ptr = SDL_strstr(name, "Analog");
+ if ( ptr != NULL && SDL_strstr(ptr, "-hat") ) {
+ if ( SDL_sscanf(ptr,"Analog %d-axis %*d-button %d-hat",
&tmp_naxes, &tmp_nhats) == 2 ) {
joystick->naxes = tmp_naxes;

View File

@@ -0,0 +1,16 @@
diff --git a/src/joystick/SDL_joystick.c b/src/joystick/SDL_joystick.c
index 083b017..a4c36db 100644
--- a/src/joystick/SDL_joystick.c
+++ b/src/joystick/SDL_joystick.c
@@ -438,6 +438,11 @@ int SDL_PrivateJoystickAxis(SDL_Joystick *joystick, Uint8 axis, Sint16 value)
return 0;
}
+ /* Don't update if we're in the dead zone */
+ if ( value == 0 && joystick->axes[axis] == 0 ) {
+ return 0;
+ }
+
/* Update internal joystick state */
joystick->axes[axis] = value;

View File

@@ -0,0 +1,15 @@
diff --git a/src/video/fbcon/SDL_fbvideo.c b/src/video/fbcon/SDL_fbvideo.c
index fec158f..dd46069 100644
--- a/src/video/fbcon/SDL_fbvideo.c
+++ b/src/video/fbcon/SDL_fbvideo.c
@@ -273,6 +273,10 @@ static SDL_VideoDevice *FB_CreateDevice(int devindex)
this->free = FB_DeleteDevice;
+ /* OpenDingux specific patch: The video driver can handle everything
+ * from 4x4 to 640x480 */
+ this->handles_any_size = 1;
+
return this;
}

2
package/sdl/sdl.hash Normal file
View File

@@ -0,0 +1,2 @@
# Locally calculated after checking pgp signature
sha256 d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00 SDL-1.2.15.tar.gz

96
package/sdl/sdl.mk Normal file
View File

@@ -0,0 +1,96 @@
################################################################################
#
# sdl
#
################################################################################
SDL_VERSION = 1.2.15
SDL_SOURCE = SDL-$(SDL_VERSION).tar.gz
SDL_SITE = http://www.libsdl.org/release
SDL_LICENSE = LGPL-2.1+
SDL_LICENSE_FILES = COPYING
SDL_INSTALL_STAGING = YES
# we're patching configure.in, but package cannot autoreconf with our version of
# autotools, so we have to do it manually instead of setting SDL_AUTORECONF = YES
define SDL_RUN_AUTOGEN
cd $(@D) && PATH=$(BR_PATH) ./autogen.sh
endef
SDL_PRE_CONFIGURE_HOOKS += SDL_RUN_AUTOGEN
HOST_SDL_PRE_CONFIGURE_HOOKS += SDL_RUN_AUTOGEN
SDL_DEPENDENCIES += host-automake host-autoconf host-libtool
HOST_SDL_DEPENDENCIES += host-automake host-autoconf host-libtool
SDL_CONF_OPTS += --enable-video-qtopia=no
ifeq ($(BR2_PACKAGE_SDL_FBCON),y)
SDL_CONF_OPTS += --enable-video-fbcon=yes
else
SDL_CONF_OPTS += --enable-video-fbcon=no
endif
ifeq ($(BR2_PACKAGE_SDL_DIRECTFB),y)
SDL_DEPENDENCIES += directfb
SDL_CONF_OPTS += --enable-video-directfb=yes
SDL_CONF_ENV = ac_cv_path_DIRECTFBCONFIG=$(STAGING_DIR)/usr/bin/directfb-config
else
SDL_CONF_OPTS += --enable-video-directfb=no
endif
ifeq ($(BR2_PACKAGE_SDL_X11),y)
SDL_CONF_OPTS += --enable-video-x11=yes
SDL_DEPENDENCIES += \
xlib_libX11 xlib_libXext \
$(if $(BR2_PACKAGE_XLIB_LIBXRENDER), xlib_libXrender) \
$(if $(BR2_PACKAGE_XLIB_LIBXRANDR), xlib_libXrandr)
else
SDL_CONF_OPTS += --enable-video-x11=no
endif
ifneq ($(BR2_USE_MMU),y)
SDL_CONF_OPTS += --enable-dga=no
endif
# overwrite autodection (prevents confusion with host libpth version)
ifeq ($(BR2_PACKAGE_LIBPTHSEM_COMPAT),y)
SDL_CONF_OPTS += --enable-pth
SDL_CONF_ENV += ac_cv_path_PTH_CONFIG=$(STAGING_DIR)/usr/bin/pth-config
SDL_DEPENDENCIES += libpthsem
else
SDL_CONF_OPTS += --disable-pth
endif
ifeq ($(BR2_PACKAGE_TSLIB),y)
SDL_DEPENDENCIES += tslib
endif
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
SDL_DEPENDENCIES += alsa-lib
endif
ifeq ($(BR2_PACKAGE_MESA3D),y)
SDL_DEPENDENCIES += mesa3d
endif
SDL_CONF_OPTS += \
--disable-rpath \
--enable-pulseaudio=no \
--disable-arts \
--disable-esd \
--disable-nasm \
--disable-video-ps3
HOST_SDL_CONF_OPTS += \
--enable-pulseaudio=no \
--enable-video-x11=no \
--disable-arts \
--disable-esd \
--disable-nasm \
--disable-video-ps3
SDL_CONFIG_SCRIPTS = sdl-config
$(eval $(autotools-package))
$(eval $(host-autotools-package))