diff options
Diffstat (limited to 'media-libs/libsdl/files/libsdl-1.2.10-libcaca.patch')
-rw-r--r-- | media-libs/libsdl/files/libsdl-1.2.10-libcaca.patch | 592 |
1 files changed, 0 insertions, 592 deletions
diff --git a/media-libs/libsdl/files/libsdl-1.2.10-libcaca.patch b/media-libs/libsdl/files/libsdl-1.2.10-libcaca.patch deleted file mode 100644 index d5ec96dd6adf..000000000000 --- a/media-libs/libsdl/files/libsdl-1.2.10-libcaca.patch +++ /dev/null @@ -1,592 +0,0 @@ ---- SDL-1.2.10/configure.in -+++ SDL-1.2.10/configure.in -@@ -1316,6 +1316,38 @@ AC_HELP_STRING([--enable-video-aalib], [ - fi - } - -+dnl Find the libcaca includes -+CheckCaca() -+{ -+ AC_ARG_ENABLE(video-caca, -+AC_HELP_STRING([--enable-video-caca], [use libcaca video driver [[default=no]]]), -+ , enable_video_caca=no) -+ if test x$enable_video = xyes -a x$enable_video_caca = xyes; then -+ video_caca=no -+ AC_PATH_PROG(CACACONFIG, caca-config, no) -+ if test x$CACACONFIG != xno; then -+ AC_MSG_CHECKING(for libcaca support) -+ CACA_CFLAGS=`$CACACONFIG --cflags` -+ CACA_LDFLAGS=`$CACACONFIG --libs` -+ save_CFLAGS="$CFLAGS" -+ AC_TRY_COMPILE([ -+ #include <caca.h> -+ ],[ -+ ],[ -+ video_caca=yes -+ ]) -+ CFLAGS="$save_CFLAGS" -+ AC_MSG_RESULT($video_caca) -+ if test x$video_caca = xyes; then -+ AC_DEFINE(SDL_VIDEO_DRIVER_CACA) -+ EXTRA_CFLAGS="$EXTRA_CFLAGS $CACA_CFLAGS" -+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $CACA_LDFLAGS" -+ SOURCES="$SOURCES $srcdir/src/video/caca/*.c" -+ fi -+ fi -+ fi -+} -+ - dnl Set up the QTopia video driver if enabled - CheckQtopia() - { -@@ -2130,6 +2162,7 @@ case "$host" in - CheckVGL - CheckWscons - CheckAAlib -+ CheckCaca - CheckQtopia - CheckPicoGUI - CheckOpenGLX11 ---- SDL-1.2.10/src/video/caca/SDL_cacaevents.c -+++ SDL-1.2.10/src/video/caca/SDL_cacaevents.c -@@ -0,0 +1,98 @@ -+/* -+ SDL - Simple DirectMedia Layer -+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public -+ License along with this library; if not, write to the Free -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ -+ Sam Lantinga -+ slouken@libsdl.org -+*/ -+ -+#ifdef SAVE_RCSID -+static char rcsid = -+ "@(#) $Id: libsdl-1.2.10-libcaca.patch,v 1.1 2006/05/26 05:26:45 vapier Exp $"; -+#endif -+ -+#include <stdio.h> -+ -+#include <caca.h> -+ -+#include "SDL.h" -+#include "../../events/SDL_sysevents.h" -+#include "../../events/SDL_events_c.h" -+#include "SDL_cacavideo.h" -+#include "SDL_cacaevents_c.h" -+ -+void Caca_PumpEvents(_THIS) -+{ -+ int posted = 0; -+ int event; -+ SDL_keysym keysym; -+ -+ if( ! this->screen ) /* Wait till we got the screen initialised */ -+ return; -+ -+ do { -+ posted = 0; -+ -+ /* Get libcaca event */ -+ SDL_mutexP(Caca_mutex); -+ event = caca_get_event(CACA_EVENT_ANY); -+ SDL_mutexV(Caca_mutex); -+ -+ if ( event & (CACA_EVENT_KEY_PRESS | CACA_EVENT_KEY_RELEASE)) { -+ int key; -+ switch ( event & 0xffffff ) -+ { -+ case CACA_KEY_LEFT: key = SDLK_LEFT; break; -+ case CACA_KEY_RIGHT: key = SDLK_RIGHT; break; -+ case CACA_KEY_UP: key = SDLK_UP; break; -+ case CACA_KEY_DOWN: key = SDLK_DOWN; break; -+ default: key = event & 0xff; break; -+ } -+ /* Key pressed */ -+/* printf("Key pressed: %d (%c)\n", key, key); */ -+ keysym.scancode = key; -+ keysym.sym = key; -+ keysym.mod = KMOD_NONE; -+ keysym.unicode = 0; -+ if ( SDL_TranslateUNICODE ) { -+ keysym.unicode = key; -+ } -+ posted += SDL_PrivateKeyboard((event & CACA_EVENT_KEY_PRESS) ? SDL_PRESSED : SDL_RELEASED, &keysym); -+ } -+ else if ( event & (CACA_EVENT_MOUSE_PRESS | CACA_EVENT_MOUSE_RELEASE) ) { -+ /* FIXME: we currently ignore the button type! */ -+ int button = event & 0x00ffffff; -+ if ( button > 3 ) { -+ button = 1; -+ } -+ posted += SDL_PrivateMouseButton((event & CACA_EVENT_MOUSE_PRESS) ? SDL_PRESSED : SDL_RELEASED, button, 0, 0); -+ } -+ else if ( event & CACA_EVENT_MOUSE_MOTION ) { -+ int new_x = 0, new_y = 0; -+ new_x = ((event & 0x00fff000) >> 12) * Caca_w / caca_get_width(); -+ new_y = ((event & 0x00000fff) >> 0) * Caca_h / caca_get_height(); -+ posted += SDL_PrivateMouseMotion(0, 0, new_x, new_y); -+ } -+ } while ( posted ); -+} -+ -+void Caca_InitOSKeymap(_THIS) -+{ -+ return; -+} -+ -+ ---- SDL-1.2.10/src/video/caca/SDL_cacaevents_c.h -+++ SDL-1.2.10/src/video/caca/SDL_cacaevents_c.h -@@ -0,0 +1,35 @@ -+/* -+ SDL - Simple DirectMedia Layer -+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public -+ License along with this library; if not, write to the Free -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ -+ Sam Lantinga -+ slouken@libsdl.org -+*/ -+ -+#ifdef SAVE_RCSID -+static char rcsid = -+ "@(#) $Id: libsdl-1.2.10-libcaca.patch,v 1.1 2006/05/26 05:26:45 vapier Exp $"; -+#endif -+ -+#include "SDL_cacavideo.h" -+ -+/* Variables and functions exported by SDL_sysevents.c to other parts. -+ of the native video subsystem (SDL_sysvideo.c) -+*/ -+extern void Caca_PumpEvents(_THIS); -+extern void Caca_InitOSKeymap(_THIS); -+ ---- SDL-1.2.10/src/video/caca/SDL_cacavideo.c -+++ SDL-1.2.10/src/video/caca/SDL_cacavideo.c -@@ -0,0 +1,301 @@ -+/* -+ SDL - Simple DirectMedia Layer -+ Copyright (C) 2003 Sam Hocevar -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public -+ License along with this library; if not, write to the Free -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ -+ Sam Hocevar -+ sam@zoy.org -+*/ -+ -+#ifdef SAVE_RCSID -+static char rcsid = -+ "@(#) $Id: libsdl-1.2.10-libcaca.patch,v 1.1 2006/05/26 05:26:45 vapier Exp $"; -+#endif -+ -+/* libcaca based SDL video driver implementation. -+*/ -+ -+#include <stdlib.h> -+#include <stdio.h> -+#include <string.h> -+#include <unistd.h> -+#include <sys/stat.h> -+ -+ -+#include "SDL.h" -+#include "SDL_error.h" -+#include "SDL_video.h" -+#include "SDL_mouse.h" -+#include "../SDL_sysvideo.h" -+#include "../SDL_pixels_c.h" -+#include "../../events/SDL_events_c.h" -+ -+#include "SDL_cacavideo.h" -+#include "SDL_cacaevents_c.h" -+ -+#include <caca.h> -+ -+/* Initialization/Query functions */ -+static int Caca_VideoInit(_THIS, SDL_PixelFormat *vformat); -+static SDL_Rect **Caca_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags); -+static SDL_Surface *Caca_SetVideoMode(_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags); -+static void Caca_VideoQuit(_THIS); -+ -+/* Hardware surface functions */ -+static int Caca_AllocHWSurface(_THIS, SDL_Surface *surface); -+static int Caca_LockHWSurface(_THIS, SDL_Surface *surface); -+static int Caca_FlipHWSurface(_THIS, SDL_Surface *surface); -+static void Caca_UnlockHWSurface(_THIS, SDL_Surface *surface); -+static void Caca_FreeHWSurface(_THIS, SDL_Surface *surface); -+ -+/* Cache the VideoDevice struct */ -+static struct SDL_VideoDevice *local_this; -+ -+/* libcaca driver bootstrap functions */ -+ -+static int Caca_Available(void) -+{ -+ return 1; /* Always available ! */ -+} -+ -+static void Caca_DeleteDevice(SDL_VideoDevice *device) -+{ -+ free(device->hidden); -+ free(device); -+} -+static SDL_VideoDevice *Caca_CreateDevice(int devindex) -+{ -+ SDL_VideoDevice *device; -+ -+ /* Initialize all variables that we clean on shutdown */ -+ device = (SDL_VideoDevice *)malloc(sizeof(SDL_VideoDevice)); -+ if ( device ) { -+ memset(device, 0, (sizeof *device)); -+ device->hidden = (struct SDL_PrivateVideoData *) -+ malloc((sizeof *device->hidden)); -+ } -+ if ( (device == NULL) || (device->hidden == NULL) ) { -+ SDL_OutOfMemory(); -+ if ( device ) { -+ free(device); -+ } -+ return(0); -+ } -+ memset(device->hidden, 0, (sizeof *device->hidden)); -+ -+ /* Set the function pointers */ -+ device->VideoInit = Caca_VideoInit; -+ device->ListModes = Caca_ListModes; -+ device->SetVideoMode = Caca_SetVideoMode; -+ device->CreateYUVOverlay = NULL; -+ device->SetColors = NULL; -+ device->UpdateRects = NULL; -+ device->VideoQuit = Caca_VideoQuit; -+ device->AllocHWSurface = Caca_AllocHWSurface; -+ device->CheckHWBlit = NULL; -+ device->FillHWRect = NULL; -+ device->SetHWColorKey = NULL; -+ device->SetHWAlpha = NULL; -+ device->LockHWSurface = Caca_LockHWSurface; -+ device->UnlockHWSurface = Caca_UnlockHWSurface; -+ device->FlipHWSurface = NULL; -+ device->FreeHWSurface = Caca_FreeHWSurface; -+ device->SetCaption = NULL; -+ device->SetIcon = NULL; -+ device->IconifyWindow = NULL; -+ device->GrabInput = NULL; -+ device->GetWMInfo = NULL; -+ device->InitOSKeymap = Caca_InitOSKeymap; -+ device->PumpEvents = Caca_PumpEvents; -+ -+ device->free = Caca_DeleteDevice; -+ -+ return device; -+} -+ -+VideoBootStrap Caca_bootstrap = { -+ "caca", "Color ASCII Art Library", -+ Caca_Available, Caca_CreateDevice -+}; -+ -+int Caca_VideoInit(_THIS, SDL_PixelFormat *vformat) -+{ -+ int i; -+ -+ /* Initialize all variables that we clean on shutdown */ -+ for ( i=0; i<SDL_NUMMODES; ++i ) { -+ SDL_modelist[i] = malloc(sizeof(SDL_Rect)); -+ SDL_modelist[i]->x = SDL_modelist[i]->y = 0; -+ } -+ /* Modes sorted largest to smallest */ -+ SDL_modelist[0]->w = 1024; SDL_modelist[0]->h = 768; -+ SDL_modelist[1]->w = 800; SDL_modelist[1]->h = 600; -+ SDL_modelist[2]->w = 640; SDL_modelist[2]->h = 480; -+ SDL_modelist[3]->w = 320; SDL_modelist[3]->h = 400; -+ SDL_modelist[4]->w = 320; SDL_modelist[4]->h = 240; -+ SDL_modelist[5]->w = 320; SDL_modelist[5]->h = 200; -+ SDL_modelist[6] = NULL; -+ -+ Caca_mutex = SDL_CreateMutex(); -+ -+ /* Initialize the library */ -+ if ( caca_init() != 0 ) { -+ SDL_SetError("Unable to initialize libcaca"); -+ return(-1); -+ } -+ -+ /* Initialize private variables */ -+ Caca_lastkey = 0; -+ Caca_bitmap = NULL; -+ Caca_buffer = NULL; -+ -+ local_this = this; -+ -+ /* Determine the screen depth (use default 8-bit depth) */ -+ vformat->BitsPerPixel = 8; -+ vformat->BytesPerPixel = 1; -+ -+ /* We're done! */ -+ return(0); -+} -+ -+SDL_Rect **Caca_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags) -+{ -+ if(format->BitsPerPixel != 8) -+ return NULL; -+ -+ if ( flags & SDL_FULLSCREEN ) { -+ return SDL_modelist; -+ } else { -+ return (SDL_Rect **) -1; -+ } -+} -+ -+/* Various screen update functions available */ -+static void Caca_DirectUpdate(_THIS, int numrects, SDL_Rect *rects); -+ -+SDL_Surface *Caca_SetVideoMode(_THIS, SDL_Surface *current, -+ int width, int height, int bpp, Uint32 flags) -+{ -+ if ( Caca_buffer ) { -+ free( Caca_buffer ); -+ Caca_buffer = NULL; -+ } -+ -+ if ( Caca_bitmap ) { -+ caca_free_bitmap( Caca_bitmap ); -+ Caca_bitmap = NULL; -+ } -+ -+ Caca_buffer = malloc(2 * ((width + 15) & ~15) * height); -+ if ( ! Caca_buffer ) { -+ SDL_SetError("Couldn't allocate buffer for requested mode"); -+ return(NULL); -+ } -+ -+ memset(Caca_buffer, 0, 2 * ((width + 15) & ~15) * height); -+ -+ /* Allocate the new pixel format for the screen */ -+ if ( ! SDL_ReallocFormat(current, 16, 0xf800, 0x07e0, 0x001f, 0) ) { -+ return(NULL); -+ } -+ -+ /* Set up the new mode framebuffer */ -+ current->flags = SDL_FULLSCREEN; -+ Caca_w = current->w = width; -+ Caca_h = current->h = height; -+ current->pitch = 2 * ((width + 15) & ~15); -+ current->pixels = Caca_buffer; -+ -+ /* Create the libcaca bitmap */ -+ Caca_bitmap = caca_create_bitmap( 16, width, height, current->pitch, 0xf800, 0x07e0, 0x001f, 0x0000 ); -+ if ( ! Caca_bitmap ) { -+ SDL_SetError("Couldn't allocate libcaca bitmap"); -+ return(NULL); -+ } -+ -+ /* Set the blit function */ -+ this->UpdateRects = Caca_DirectUpdate; -+ -+ /* We're done */ -+ return(current); -+} -+ -+/* We don't actually allow hardware surfaces other than the main one */ -+static int Caca_AllocHWSurface(_THIS, SDL_Surface *surface) -+{ -+ return(-1); -+} -+static void Caca_FreeHWSurface(_THIS, SDL_Surface *surface) -+{ -+ return; -+} -+ -+/* We need to wait for vertical retrace on page flipped displays */ -+static int Caca_LockHWSurface(_THIS, SDL_Surface *surface) -+{ -+ /* TODO ? */ -+ return(0); -+} -+static void Caca_UnlockHWSurface(_THIS, SDL_Surface *surface) -+{ -+ return; -+} -+ -+/* FIXME: How is this done with libcaca? */ -+static int Caca_FlipHWSurface(_THIS, SDL_Surface *surface) -+{ -+ SDL_mutexP(Caca_mutex); -+ caca_refresh(); -+ SDL_mutexV(Caca_mutex); -+ return(0); -+} -+ -+static void Caca_DirectUpdate(_THIS, int numrects, SDL_Rect *rects) -+{ -+ SDL_mutexP(Caca_mutex); -+ caca_draw_bitmap( 0, 0, caca_get_width() - 1, caca_get_height() - 1, -+ Caca_bitmap, Caca_buffer ); -+ caca_refresh(); -+ SDL_mutexV(Caca_mutex); -+ return; -+} -+ -+/* Note: If we are terminated, this could be called in the middle of -+ another SDL video routine -- notably UpdateRects. -+*/ -+void Caca_VideoQuit(_THIS) -+{ -+ int i; -+ -+ /* Free video mode lists */ -+ for ( i=0; i<SDL_NUMMODES; ++i ) { -+ if ( SDL_modelist[i] != NULL ) { -+ free(SDL_modelist[i]); -+ SDL_modelist[i] = NULL; -+ } -+ } -+ -+ if ( Caca_bitmap ) { -+ caca_free_bitmap( Caca_bitmap ); -+ Caca_bitmap = NULL; -+ } -+ -+ caca_end(); -+ -+ SDL_DestroyMutex(Caca_mutex); -+} -+ ---- SDL-1.2.10/src/video/caca/SDL_cacavideo.h -+++ SDL-1.2.10/src/video/caca/SDL_cacavideo.h -@@ -0,0 +1,73 @@ -+/* -+ SDL - Simple DirectMedia Layer -+ Copyright (C) 2003 Sam Hocevar -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public -+ License along with this library; if not, write to the Free -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ -+ Sam Hocevar -+ sam@zoy.org -+*/ -+ -+#ifdef SAVE_RCSID -+static char rcsid = -+ "@(#) $Id: libsdl-1.2.10-libcaca.patch,v 1.1 2006/05/26 05:26:45 vapier Exp $"; -+#endif -+ -+#ifndef _SDL_cacavideo_h -+#define _SDL_cacavideo_h -+ -+#include "SDL_mouse.h" -+#include "../SDL_sysvideo.h" -+#include "SDL_mutex.h" -+ -+#include <sys/time.h> -+#include <time.h> -+ -+#include <caca.h> -+ -+/* Hidden "this" pointer for the video functions */ -+#define _THIS SDL_VideoDevice *this -+ -+#define SDL_NUMMODES 6 -+ -+/* Private display data */ -+struct SDL_PrivateVideoData { -+ SDL_Rect *SDL_modelist[SDL_NUMMODES+1]; -+ SDL_mutex *mutex; -+ -+ struct caca_bitmap *bitmap; -+ void *buffer; -+ int w, h; -+ -+ int lastkey; -+ struct timeval lasttime; -+}; -+ -+/* Old variable names */ -+#define SDL_modelist (this->hidden->SDL_modelist) -+#define Caca_palette (this->hidden->palette) -+#define Caca_bitmap (this->hidden->bitmap) -+#define Caca_buffer (this->hidden->buffer) -+ -+#define Caca_w (this->hidden->w) -+#define Caca_h (this->hidden->h) -+ -+#define Caca_lastkey (this->hidden->lastkey) -+#define Caca_lasttime (this->hidden->lasttime) -+ -+#define Caca_mutex (this->hidden->mutex) -+ -+#endif /* _SDL_cacavideo_h */ -+ ---- SDL-1.2.10/src/video/SDL_sysvideo.h -+++ SDL-1.2.10/src/video/SDL_sysvideo.h -@@ -404,6 +404,9 @@ extern VideoBootStrap OS2FSLib_bootstrap - #if SDL_VIDEO_DRIVER_AALIB - extern VideoBootStrap AALIB_bootstrap; - #endif -+#if SDL_VIDEO_DRIVER_CACA -+extern VideoBootStrap CACA_bootstrap; -+#endif - #if SDL_VIDEO_DRIVER_DUMMY - extern VideoBootStrap DUMMY_bootstrap; - #endif ---- SDL-1.2.10/src/video/SDL_video.c -+++ SDL-1.2.10/src/video/SDL_video.c -@@ -120,6 +120,9 @@ static VideoBootStrap *bootstrap[] = { - #if SDL_VIDEO_DRIVER_AALIB - &AALIB_bootstrap, - #endif -+#if SDL_VIDEO_DRIVER_CACA -+ &CACA_bootstrap, -+#endif - #if SDL_VIDEO_DRIVER_DUMMY - &DUMMY_bootstrap, - #endif |