Removed the API changes to preserve SDL 1.2 stability
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40297
This commit is contained in:
parent
40435096bc
commit
6ece4d1c0e
21 changed files with 24 additions and 215 deletions
12
WhatsNew
12
WhatsNew
|
@ -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
|
||||||
|
|
26
configure.in
26
configure.in
|
@ -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()
|
||||||
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()
|
||||||
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,9 +1006,11 @@ 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"
|
||||||
|
if test x$use_dlopen != xyes; then
|
||||||
AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl")
|
AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl")
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
dnl Find QNX RtP OpenGL
|
dnl Find QNX RtP OpenGL
|
||||||
|
@ -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()
|
||||||
|
|
||||||
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>.
|
||||||
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 = \
|
||||||
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 =
|
||||||
#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);
|
||||||
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@
|
||||||
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 = \
|
||||||
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 =
|
||||||
/*#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 =
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
/* 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 = \
|
||||||
../../../../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
|
||||||
_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
|
||||||
_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 = \
|
||||||
../../../../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 @@
|
||||||
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 @@
|
||||||
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 = \
|
||||||
../../../../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 @@
|
||||||
_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 @@
|
||||||
_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 = \
|
||||||
../../../../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_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_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)
|
||||||
*/
|
*/
|
||||||
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)
|
||||||
/* 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
|
||||||
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 {
|
||||||
/* 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
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue