Commit 6ece4d1c authored by Sam Lantinga's avatar Sam Lantinga

Removed the API changes to preserve SDL 1.2 stability

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40297
parent 40435096
...@@ -3,18 +3,6 @@ This is a list of API changes in SDL's version history. ...@@ -3,18 +3,6 @@ This is a list of API changes in SDL's version history.
Version 1.0: Version 1.0:
1.2.4:
Added a new header file: SDL_loadso.h
It contains the following functions:
SDL_LoadObject(), SDL_LoadFunction(), SDL_UnloadObject()
The UNIX esd and arts audio code use these to dynamically load
their respective audio libraries.
Added SDL_LockRect() and SDL_UnlockRect() to lock a portion of a
surface. This may be more efficient than a full lock if you are
using a hardware surface and plan to make a few changes to small
areas in the surface.
1.2.0: 1.2.0:
Added SDL_VIDEOEXPOSE event to signal that the screen needs to Added SDL_VIDEOEXPOSE event to signal that the screen needs to
be redrawn. This is currently only delivered to OpenGL windows be redrawn. This is currently only delivered to OpenGL windows
......
...@@ -15,7 +15,7 @@ dnl Set various version strings - taken gratefully from the GTk sources ...@@ -15,7 +15,7 @@ dnl Set various version strings - taken gratefully from the GTk sources
SDL_MAJOR_VERSION=1 SDL_MAJOR_VERSION=1
SDL_MINOR_VERSION=2 SDL_MINOR_VERSION=2
SDL_MICRO_VERSION=4 SDL_MICRO_VERSION=4
SDL_INTERFACE_AGE=0 SDL_INTERFACE_AGE=4
SDL_BINARY_AGE=4 SDL_BINARY_AGE=4
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
...@@ -328,11 +328,15 @@ CheckESD() ...@@ -328,11 +328,15 @@ CheckESD()
AM_PATH_ESD(0.2.8, use_esd=yes) AM_PATH_ESD(0.2.8, use_esd=yes)
if test x$use_esd = xyes; then if test x$use_esd = xyes; then
AC_ARG_ENABLE(esd-shared, AC_ARG_ENABLE(esd-shared,
[ --enable-esd-shared dynamically load ESD support [default=yes]], [ --enable-esd-shared dynamically load ESD audio support [default=no]],
, enable_esd_shared=yes) , enable_esd_shared=no)
esd_lib_spec=`echo $ESD_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libesd.so.*/'` esd_lib_spec=`echo $ESD_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libesd.so.*/'`
esd_lib=`ls $esd_lib_spec | head -1 | sed 's/.*\/\(.*\)/\1/'` esd_lib=`ls $esd_lib_spec | head -1 | sed 's/.*\/\(.*\)/\1/'`
echo "-- $esd_lib_spec -> $esd_lib" echo "-- $esd_lib_spec -> $esd_lib"
if test x$enable_dlopen != xyes && \
test x$enable_esd_shared = xyes; then
AC_MSG_ERROR([You must have dlopen() support and use the --enable-dlopen option])
fi
if test x$enable_dlopen = xyes && \ if test x$enable_dlopen = xyes && \
test x$enable_esd_shared = xyes && test x$esd_lib != x; then test x$enable_esd_shared = xyes && test x$esd_lib != x; then
CFLAGS="$CFLAGS -DESD_SUPPORT -DESD_DYNAMIC=\$(esd_lib) $ESD_CFLAGS" CFLAGS="$CFLAGS -DESD_SUPPORT -DESD_DYNAMIC=\$(esd_lib) $ESD_CFLAGS"
...@@ -374,11 +378,15 @@ CheckARTSC() ...@@ -374,11 +378,15 @@ CheckARTSC()
AC_MSG_RESULT($audio_arts) AC_MSG_RESULT($audio_arts)
if test x$audio_arts = xyes; then if test x$audio_arts = xyes; then
AC_ARG_ENABLE(arts-shared, AC_ARG_ENABLE(arts-shared,
[ --enable-arts-shared dynamically load ESD support [default=yes]], [ --enable-arts-shared dynamically load aRts audio support [default=no]],
, enable_arts_shared=yes) , enable_arts_shared=no)
arts_lib_spec=`echo $ARTSC_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libarts.so.*/'` arts_lib_spec=`echo $ARTSC_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libarts.so.*/'`
arts_lib=`ls $arts_lib_spec | head -1 | sed 's/.*\/\(.*\)/\1/'` arts_lib=`ls $arts_lib_spec | head -1 | sed 's/.*\/\(.*\)/\1/'`
echo "-- $arts_lib_spec -> $arts_lib" echo "-- $arts_lib_spec -> $arts_lib"
if test x$enable_dlopen != xyes && \
test x$enable_arts_shared = xyes; then
AC_MSG_ERROR([You must have dlopen() support and use the --enable-dlopen option])
fi
if test x$enable_dlopen = xyes && \ if test x$enable_dlopen = xyes && \
test x$enable_arts_shared = xyes && test x$arts_lib != x; then test x$enable_arts_shared = xyes && test x$arts_lib != x; then
CFLAGS="$CFLAGS -DARTSC_SUPPORT -DARTSC_DYNAMIC=\$(arts_lib) $ARTSC_CFLAGS" CFLAGS="$CFLAGS -DARTSC_SUPPORT -DARTSC_DYNAMIC=\$(arts_lib) $ARTSC_CFLAGS"
...@@ -998,7 +1006,9 @@ CheckOpenGL() ...@@ -998,7 +1006,9 @@ CheckOpenGL()
AC_MSG_RESULT($video_opengl) AC_MSG_RESULT($video_opengl)
if test x$video_opengl = xyes; then if test x$video_opengl = xyes; then
CFLAGS="$CFLAGS -DHAVE_OPENGL" CFLAGS="$CFLAGS -DHAVE_OPENGL"
AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl") if test x$use_dlopen != xyes; then
AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl")
fi
fi fi
fi fi
} }
...@@ -1383,8 +1393,8 @@ dnl Check for the dlfcn.h interface for dynamically loading objects ...@@ -1383,8 +1393,8 @@ dnl Check for the dlfcn.h interface for dynamically loading objects
CheckDLOPEN() CheckDLOPEN()
{ {
AC_ARG_ENABLE(dlopen, AC_ARG_ENABLE(dlopen,
[ --enable-dlopen use dlopen for shared object loading [default=yes]], [ --enable-dlopen use dlopen for shared object loading [default=no]],
, enable_dlopen=yes) , enable_dlopen=no)
if test x$enable_dlopen = xyes; then if test x$enable_dlopen = xyes; then
AC_MSG_CHECKING(for dlopen) AC_MSG_CHECKING(for dlopen)
use_dlopen=no use_dlopen=no
...@@ -1398,7 +1408,7 @@ CheckDLOPEN() ...@@ -1398,7 +1408,7 @@ CheckDLOPEN()
if test x$use_dlopen = xyes; then if test x$use_dlopen = xyes; then
CFLAGS="$CFLAGS -DUSE_DLOPEN" CFLAGS="$CFLAGS -DUSE_DLOPEN"
SYSTEM_LIBS="$SYSTEM_LIBS -ldl" AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl")
fi fi
fi fi
} }
......
...@@ -16,8 +16,6 @@ be found at the <A HREF="http://www.libsdl.org/"> main SDL page</A>. ...@@ -16,8 +16,6 @@ be found at the <A HREF="http://www.libsdl.org/"> main SDL page</A>.
Major changes since SDL 1.0.0: Major changes since SDL 1.0.0:
</H2> </H2>
<UL> <UL>
<LI> 1.2.4: Added shared object loading functions in SDL_loadso.h
<LI> 1.2.4: Added SDL_LockRect() and SDL_UnlockRect()
<LI> 1.2.4: Incorporated XFree86 extension libraries into the source <LI> 1.2.4: Incorporated XFree86 extension libraries into the source
<LI> 1.2.4: Added initial support for Atari (thanks Patrice!) <LI> 1.2.4: Added initial support for Atari (thanks Patrice!)
<LI> 1.2.4: Added support for joysticks on *BSD (thanks Wilbern!) <LI> 1.2.4: Added support for joysticks on *BSD (thanks Wilbern!)
......
...@@ -18,7 +18,6 @@ libSDLinclude_HEADERS = \ ...@@ -18,7 +18,6 @@ libSDLinclude_HEADERS = \
SDL_joystick.h \ SDL_joystick.h \
SDL_keyboard.h \ SDL_keyboard.h \
SDL_keysym.h \ SDL_keysym.h \
SDL_loadso.h \
SDL_main.h \ SDL_main.h \
SDL_mouse.h \ SDL_mouse.h \
SDL_mutex.h \ SDL_mutex.h \
......
...@@ -34,7 +34,6 @@ static char rcsid = ...@@ -34,7 +34,6 @@ static char rcsid =
#include "SDL_types.h" #include "SDL_types.h"
#include "SDL_getenv.h" #include "SDL_getenv.h"
#include "SDL_error.h" #include "SDL_error.h"
#include "SDL_loadso.h"
#include "SDL_rwops.h" #include "SDL_rwops.h"
#include "SDL_timer.h" #include "SDL_timer.h"
#include "SDL_audio.h" #include "SDL_audio.h"
......
...@@ -531,26 +531,6 @@ extern DECLSPEC void SDL_FreeSurface(SDL_Surface *surface); ...@@ -531,26 +531,6 @@ extern DECLSPEC void SDL_FreeSurface(SDL_Surface *surface);
extern DECLSPEC int SDL_LockSurface(SDL_Surface *surface); extern DECLSPEC int SDL_LockSurface(SDL_Surface *surface);
extern DECLSPEC void SDL_UnlockSurface(SDL_Surface *surface); extern DECLSPEC void SDL_UnlockSurface(SDL_Surface *surface);
/*
* SDL_LockRect() locks a portion of the surface designated by the 'rect'
* parameter, and saves the resulting pixels and pitch in the arguments.
* The rect will be clipped if it extends beyond the bounds of the surface
*
* This may be more efficient than a full lock if you are using a hardware
* surface and plan to make a few changes to small areas in the surface.
*
* While a rectangle is locked, no other lock or blit call may be called
* on the surface. No operating system or library calls should be made
* between lock/unlock pairs, as critical system locks may be held during
* this time.
*
* After the surface is unlocked, the pixels pointer is no longer valid.
*
* SDL_LockRect() returns 0, or -1 if the surface couldn't be locked.
*/
extern DECLSPEC int SDL_LockRect(SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitch);
extern DECLSPEC void SDL_UnlockRect(SDL_Surface *surface);
/* /*
* Load a surface from a seekable SDL data source (memory or file.) * Load a surface from a seekable SDL data source (memory or file.)
* If 'freesrc' is non-zero, the source will be closed after being read. * If 'freesrc' is non-zero, the source will be closed after being read.
......
...@@ -5,7 +5,7 @@ exec_prefix=@exec_prefix@ ...@@ -5,7 +5,7 @@ exec_prefix=@exec_prefix@
exec_prefix_set=no exec_prefix_set=no
usage="\ usage="\
Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]" Usage: sdl-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs] [--static-libs]"
if test $# -eq 0; then if test $# -eq 0; then
echo "${usage}" 1>&2 echo "${usage}" 1>&2
......
...@@ -38,5 +38,6 @@ GENERAL_SRCS = \ ...@@ -38,5 +38,6 @@ GENERAL_SRCS = \
SDL_fatal.c \ SDL_fatal.c \
SDL_fatal.h \ SDL_fatal.h \
SDL_getenv.c \ SDL_getenv.c \
SDL_loadso.c SDL_loadso.c \
SDL_loadso.h
...@@ -44,6 +44,7 @@ static char rcsid = ...@@ -44,6 +44,7 @@ static char rcsid =
/*#error Unsupported dynamic link environment*/ /*#error Unsupported dynamic link environment*/
#endif /* system type */ #endif /* system type */
#include "SDL_types.h"
#include "SDL_error.h" #include "SDL_error.h"
#include "SDL_loadso.h" #include "SDL_loadso.h"
......
...@@ -27,6 +27,7 @@ static char rcsid = ...@@ -27,6 +27,7 @@ static char rcsid =
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* System dependent library loading routines */ /* System dependent library loading routines */
/* Note: This API isn't meant for public release until SDL 1.3 */
#ifndef _SDL_loadso_h #ifndef _SDL_loadso_h
#define _SDL_loadso_h #define _SDL_loadso_h
......
...@@ -12,7 +12,6 @@ HEADERS = \ ...@@ -12,7 +12,6 @@ HEADERS = \
../../../../include/SDL_joystick.h \ ../../../../include/SDL_joystick.h \
../../../../include/SDL_keyboard.h \ ../../../../include/SDL_keyboard.h \
../../../../include/SDL_keysym.h \ ../../../../include/SDL_keysym.h \
../../../../include/SDL_loadso.h \
../../../../include/SDL_main.h \ ../../../../include/SDL_main.h \
../../../../include/SDL_mouse.h \ ../../../../include/SDL_mouse.h \
../../../../include/SDL_mutex.h \ ../../../../include/SDL_mutex.h \
......
...@@ -74,9 +74,6 @@ _SDL_GetKeyState ...@@ -74,9 +74,6 @@ _SDL_GetKeyState
_SDL_GetModState _SDL_GetModState
_SDL_SetModState _SDL_SetModState
_SDL_GetKeyName _SDL_GetKeyName
_SDL_LoadObject
_SDL_LoadFunction
_SDL_UnloadObject
_SDL_SetModuleHandle _SDL_SetModuleHandle
_SDL_RegisterApp _SDL_RegisterApp
_SDL_InitQuickDraw _SDL_InitQuickDraw
...@@ -147,8 +144,6 @@ _SDL_CreateRGBSurfaceFrom ...@@ -147,8 +144,6 @@ _SDL_CreateRGBSurfaceFrom
_SDL_FreeSurface _SDL_FreeSurface
_SDL_LockSurface _SDL_LockSurface
_SDL_UnlockSurface _SDL_UnlockSurface
_SDL_LockRect
_SDL_UnlockRect
_SDL_LoadBMP_RW _SDL_LoadBMP_RW
_SDL_SaveBMP_RW _SDL_SaveBMP_RW
_SDL_SetColorKey _SDL_SetColorKey
......
...@@ -14,7 +14,6 @@ HEADERS = \ ...@@ -14,7 +14,6 @@ HEADERS = \
../../../../include/SDL_joystick.h \ ../../../../include/SDL_joystick.h \
../../../../include/SDL_keyboard.h \ ../../../../include/SDL_keyboard.h \
../../../../include/SDL_keysym.h \ ../../../../include/SDL_keysym.h \
../../../../include/SDL_loadso.h \
../../../../include/SDL_mouse.h \ ../../../../include/SDL_mouse.h \
../../../../include/SDL_mutex.h \ ../../../../include/SDL_mutex.h \
../../../../include/SDL_quit.h \ ../../../../include/SDL_quit.h \
......
...@@ -76,9 +76,6 @@ ...@@ -76,9 +76,6 @@
SDL_GetModState SDL_GetModState
SDL_SetModState SDL_SetModState
SDL_GetKeyName SDL_GetKeyName
SDL_LoadObject
SDL_LoadFunction
SDL_UnloadObject
SDL_GetMouseState SDL_GetMouseState
SDL_GetRelativeMouseState SDL_GetRelativeMouseState
SDL_WarpMouse SDL_WarpMouse
...@@ -146,8 +143,6 @@ ...@@ -146,8 +143,6 @@
SDL_FreeSurface SDL_FreeSurface
SDL_LockSurface SDL_LockSurface
SDL_UnlockSurface SDL_UnlockSurface
SDL_LockRect
SDL_UnlockRect
SDL_LoadBMP_RW SDL_LoadBMP_RW
SDL_SaveBMP_RW SDL_SaveBMP_RW
SDL_SetColorKey SDL_SetColorKey
......
...@@ -13,7 +13,6 @@ HEADERS = \ ...@@ -13,7 +13,6 @@ HEADERS = \
../../../../include/SDL_joystick.h \ ../../../../include/SDL_joystick.h \
../../../../include/SDL_keyboard.h \ ../../../../include/SDL_keyboard.h \
../../../../include/SDL_keysym.h \ ../../../../include/SDL_keysym.h \
../../../../include/SDL_loadso.h \
../../../../include/SDL_mouse.h \ ../../../../include/SDL_mouse.h \
../../../../include/SDL_mutex.h \ ../../../../include/SDL_mutex.h \
../../../../include/SDL_quit.h \ ../../../../include/SDL_quit.h \
......
...@@ -74,9 +74,6 @@ ...@@ -74,9 +74,6 @@
_SDL_GetModState _SDL_GetModState
_SDL_SetModState _SDL_SetModState
_SDL_GetKeyName _SDL_GetKeyName
_SDL_LoadObject
_SDL_LoadFunction
_SDL_UnloadObject
_SDL_GetMouseState _SDL_GetMouseState
_SDL_GetRelativeMouseState _SDL_GetRelativeMouseState
_SDL_WarpMouse _SDL_WarpMouse
...@@ -144,8 +141,6 @@ ...@@ -144,8 +141,6 @@
_SDL_FreeSurface _SDL_FreeSurface
_SDL_LockSurface _SDL_LockSurface
_SDL_UnlockSurface _SDL_UnlockSurface
_SDL_LockRect
_SDL_UnlockRect
_SDL_LoadBMP_RW _SDL_LoadBMP_RW
_SDL_SaveBMP_RW _SDL_SaveBMP_RW
_SDL_SetColorKey _SDL_SetColorKey
......
...@@ -13,7 +13,6 @@ HEADERS = \ ...@@ -13,7 +13,6 @@ HEADERS = \
../../../../include/SDL_joystick.h \ ../../../../include/SDL_joystick.h \
../../../../include/SDL_keyboard.h \ ../../../../include/SDL_keyboard.h \
../../../../include/SDL_keysym.h \ ../../../../include/SDL_keysym.h \
../../../../include/SDL_loadso.h \
../../../../include/SDL_main.h \ ../../../../include/SDL_main.h \
../../../../include/SDL_mouse.h \ ../../../../include/SDL_mouse.h \
../../../../include/SDL_mutex.h \ ../../../../include/SDL_mutex.h \
......
...@@ -74,9 +74,6 @@ ...@@ -74,9 +74,6 @@
SDL_GetModState SDL_GetModState
SDL_SetModState SDL_SetModState
SDL_GetKeyName SDL_GetKeyName
SDL_LoadObject
SDL_LoadFunction
SDL_UnloadObject
SDL_SetModuleHandle SDL_SetModuleHandle
SDL_RegisterApp SDL_RegisterApp
SDL_InitQuickDraw SDL_InitQuickDraw
...@@ -147,8 +144,6 @@ ...@@ -147,8 +144,6 @@
SDL_FreeSurface SDL_FreeSurface
SDL_LockSurface SDL_LockSurface
SDL_UnlockSurface SDL_UnlockSurface
SDL_LockRect
SDL_UnlockRect
SDL_LoadBMP_RW SDL_LoadBMP_RW
SDL_SaveBMP_RW SDL_SaveBMP_RW
SDL_SetColorKey SDL_SetColorKey
......
...@@ -630,10 +630,6 @@ int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color) ...@@ -630,10 +630,6 @@ int SDL_FillRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color)
*/ */
int SDL_LockSurface (SDL_Surface *surface) int SDL_LockSurface (SDL_Surface *surface)
{ {
if ( surface->locked < 0 ) {
SDL_SetError("Surface has a rectangle lock");
return(-1);
}
if ( ! surface->locked ) { if ( ! surface->locked ) {
/* Perform the lock */ /* Perform the lock */
if ( surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT) ) { if ( surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT) ) {
...@@ -657,78 +653,6 @@ int SDL_LockSurface (SDL_Surface *surface) ...@@ -657,78 +653,6 @@ int SDL_LockSurface (SDL_Surface *surface)
/* Ready to go.. */ /* Ready to go.. */
return(0); return(0);
} }
int SDL_LockRect (SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitch)
{
int retval = 0;
/* Check to see if the surface is already locked */
*pixels = NULL;
if ( surface->locked != 0 ) {
SDL_SetError("Surface is already locked");
return(-1);
}
/* Clip the lock to the clipping rectangle of the surface */
{
SDL_Rect *clip = &surface->clip_rect;
int dx, dy;
int h = rect->h;
int w = rect->w;
dx = clip->x - rect->x;
if(dx > 0) {
w -= dx;
rect->x += dx;
}
dx = rect->x + w - clip->x - clip->w;
if(dx > 0)
w -= dx;
dy = clip->y - rect->y;
if(dy > 0) {
h -= dy;
rect->y += dy;
}
dy = rect->y + h - clip->y - clip->h;
if(dy > 0)
h -= dy;
if(w > 0 && h > 0) {
rect->w = w;
rect->h = h;
} else {
rect->w = 0;
rect->h = 0;
SDL_SetError("Rectangle was clipped");
return(-1);
}
}
/* Perform the lock */
if ( surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT) ) {
SDL_VideoDevice *video = current_video;
SDL_VideoDevice *this = current_video;
if ( video->LockHWSurfaceRect ) {
retval = video->LockHWSurfaceRect(this, surface, rect, pixels, pitch);
if ( retval == 0 ) {
surface->locked = -1;
return 0;
}
}
}
if ( SDL_MUSTLOCK(surface) ) {
retval = SDL_LockSurface(surface);
if ( retval < 0 ) {
return retval;
}
}
surface->locked = -1;
*pixels = (Uint8 *)surface->pixels + rect->y * surface->pitch + rect->x * surface->format->BytesPerPixel;
*pitch = surface->pitch;
/* Ready to go.. */
return(0);
}
/* /*
* Unlock a previously locked surface * Unlock a previously locked surface
* -- Do not call this from any blit function, as SDL_DrawCursor() may recurse * -- Do not call this from any blit function, as SDL_DrawCursor() may recurse
...@@ -739,9 +663,6 @@ int SDL_LockRect (SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitc ...@@ -739,9 +663,6 @@ int SDL_LockRect (SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitc
void SDL_UnlockSurface (SDL_Surface *surface) void SDL_UnlockSurface (SDL_Surface *surface)
{ {
/* Only perform an unlock if we are locked */ /* Only perform an unlock if we are locked */
if ( surface->locked < 0 ) {
return;
}
if ( ! surface->locked || (--surface->locked > 0) ) { if ( ! surface->locked || (--surface->locked > 0) ) {
return; return;
} }
...@@ -762,29 +683,6 @@ void SDL_UnlockSurface (SDL_Surface *surface) ...@@ -762,29 +683,6 @@ void SDL_UnlockSurface (SDL_Surface *surface)
} }
} }
} }
void SDL_UnlockRect (SDL_Surface *surface)
{
/* Only perform an unlock if we are locked */
if ( surface->locked != -1 ) {
return;
}
/* Perform the unlock */
if ( surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT) ) {
SDL_VideoDevice *video = current_video;
SDL_VideoDevice *this = current_video;
if ( video->LockHWSurfaceRect ) {
video->UnlockHWSurfaceRect(this, surface);
return;
}
}
if ( SDL_MUSTLOCK(surface) ) {
surface->locked = 1;
SDL_UnlockSurface(surface);
} else {
surface->locked = 0;
}
}
/* /*
* Convert a surface into the specified pixel format. * Convert a surface into the specified pixel format.
......
...@@ -153,8 +153,6 @@ struct SDL_VideoDevice { ...@@ -153,8 +153,6 @@ struct SDL_VideoDevice {
/* Returns a readable/writable surface */ /* Returns a readable/writable surface */
int (*LockHWSurface)(_THIS, SDL_Surface *surface); int (*LockHWSurface)(_THIS, SDL_Surface *surface);
void (*UnlockHWSurface)(_THIS, SDL_Surface *surface); void (*UnlockHWSurface)(_THIS, SDL_Surface *surface);
int (*LockHWSurfaceRect)(_THIS, SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitch);
void (*UnlockHWSurfaceRect)(_THIS, SDL_Surface *surface);
/* Performs hardware flipping */ /* Performs hardware flipping */
int (*FlipHWSurface)(_THIS, SDL_Surface *surface); int (*FlipHWSurface)(_THIS, SDL_Surface *surface);
......
...@@ -421,7 +421,6 @@ static int DX5_FillHWRect(_THIS, SDL_Surface *dst, SDL_Rect *dstrect, Uint32 col ...@@ -421,7 +421,6 @@ static int DX5_FillHWRect(_THIS, SDL_Surface *dst, SDL_Rect *dstrect, Uint32 col
static int DX5_SetHWColorKey(_THIS, SDL_Surface *surface, Uint32 key); static int DX5_SetHWColorKey(_THIS, SDL_Surface *surface, Uint32 key);
static int DX5_SetHWAlpha(_THIS, SDL_Surface *surface, Uint8 alpha); static int DX5_SetHWAlpha(_THIS, SDL_Surface *surface, Uint8 alpha);
static int DX5_LockHWSurface(_THIS, SDL_Surface *surface); static int DX5_LockHWSurface(_THIS, SDL_Surface *surface);
static int DX5_LockHWSurfaceRect(_THIS, SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitch);
static void DX5_UnlockHWSurface(_THIS, SDL_Surface *surface); static void DX5_UnlockHWSurface(_THIS, SDL_Surface *surface);
static int DX5_FlipHWSurface(_THIS, SDL_Surface *surface); static int DX5_FlipHWSurface(_THIS, SDL_Surface *surface);
static void DX5_FreeHWSurface(_THIS, SDL_Surface *surface); static void DX5_FreeHWSurface(_THIS, SDL_Surface *surface);
...@@ -592,9 +591,7 @@ static SDL_VideoDevice *DX5_CreateDevice(int devindex) ...@@ -592,9 +591,7 @@ static SDL_VideoDevice *DX5_CreateDevice(int devindex)
device->SetHWColorKey = DX5_SetHWColorKey; device->SetHWColorKey = DX5_SetHWColorKey;
device->SetHWAlpha = DX5_SetHWAlpha; device->SetHWAlpha = DX5_SetHWAlpha;
device->LockHWSurface = DX5_LockHWSurface; device->LockHWSurface = DX5_LockHWSurface;
device->LockHWSurfaceRect = DX5_LockHWSurfaceRect;
device->UnlockHWSurface = DX5_UnlockHWSurface; device->UnlockHWSurface = DX5_UnlockHWSurface;
device->UnlockHWSurfaceRect = DX5_UnlockHWSurface;
device->FlipHWSurface = DX5_FlipHWSurface; device->FlipHWSurface = DX5_FlipHWSurface;
device->FreeHWSurface = DX5_FreeHWSurface; device->FreeHWSurface = DX5_FreeHWSurface;
#ifdef IID_IDirectDrawGammaControl #ifdef IID_IDirectDrawGammaControl
...@@ -1913,43 +1910,6 @@ static int DX5_LockHWSurface(_THIS, SDL_Surface *surface) ...@@ -1913,43 +1910,6 @@ static int DX5_LockHWSurface(_THIS, SDL_Surface *surface)
surface->pixels = ddsd.lpSurface; surface->pixels = ddsd.lpSurface;
return(0); return(0);
} }
static int DX5_LockHWSurfaceRect(_THIS, SDL_Surface *surface, SDL_Rect *rect, void **pixels, int *pitch)
{
HRESULT result;
LPDIRECTDRAWSURFACE3 dd_surface;
DDSURFACEDESC ddsd;
RECT ddrect;
/* Calculate the lock rectangle */
ddrect.top = rect->y;
ddrect.bottom = rect->y+rect->h;
ddrect.left = rect->x;
ddrect.right = rect->x+rect->w;
/* Lock and load! */
dd_surface = surface->hwdata->dd_writebuf;
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
result = IDirectDrawSurface3_Lock(dd_surface, &ddrect, &ddsd,
(DDLOCK_NOSYSLOCK|DDLOCK_WAIT), NULL);
if ( result == DDERR_SURFACELOST ) {
result = IDirectDrawSurface3_Restore(
surface->hwdata->dd_surface);
result = IDirectDrawSurface3_Lock(dd_surface, &ddrect, &ddsd,
(DDLOCK_NOSYSLOCK|DDLOCK_WAIT), NULL);
}
if ( result != DD_OK ) {
SetDDerror("DirectDrawSurface3::Lock", result);
return(-1);
}
*pixels = ddsd.lpSurface;
#if defined(NONAMELESSUNION)
*pitch = ddsd.u1.lPitch;
#else
*pitch = (Uint16)ddsd.lPitch;
#endif
return(0);
}
static void DX5_UnlockHWSurface(_THIS, SDL_Surface *surface) static void DX5_UnlockHWSurface(_THIS, SDL_Surface *surface)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment