This commit is contained in:
Shpoike 2019-11-20 05:11:26 +00:00
commit d4db22a449
80 changed files with 275 additions and 131 deletions

View file

@ -157,9 +157,10 @@ these patched libSDL binaries may help.
<sect1> Changes in 0.93.2<p> <sect1> Changes in 0.93.2<p>
<itemize> <itemize>
<item> Lightmaps are now dynamically allocated (from QSS), and BLOCK_WIDTH/HEIGHT raised from 128 to 256. <item> Lightmaps are now dynamically allocated (from QSS), and BLOCK_WIDTH/HEIGHT raised from 128 to 256.
<item> Fixed several uncheked limits that would crash the Slayer's Testaments mod. <item> Fixed several uncheked limits that would crash the Slayer's Testaments mod (sf.net bug #33).
<item> Raised MAXALIASTRIS from 2048 to 4096, so that the Slayer's Testaments mod works. <item> Raised MAXALIASTRIS from 2048 to 4096, so that the Slayer's Testaments mod works.
<item> Fixed 'pants' and 'shirt' types so that those textures load correctly on platforms where char is unsigned by default (sf.net bug #28). <item> Fixed 'pants' and 'shirt' types so that those textures load correctly on platforms where char is unsigned by default (sf.net bug #28).
<item> Windows audio: WASAPI-enabled SDL2 dlls function properly now.
<item> Update the third-party libraries. Other fixes/cleanups. <item> Update the third-party libraries. Other fixes/cleanups.
</itemize> </itemize>
</p> </p>

View file

@ -60,6 +60,12 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void);
/** This function returns true if the CPU has AltiVec features */ /** This function returns true if the CPU has AltiVec features */
extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
/** This function returns true if the CPU has ARM SIMD (ARMv6) features */
extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void);
/** This function returns true if the CPU has ARM NEON features */
extern DECLSPEC SDL_bool SDLCALL SDL_HasARMNEON(void);
/* Ends C function definitions when using C++ */ /* Ends C function definitions when using C++ */
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -42,10 +42,13 @@
#ifdef __linux__ #ifdef __linux__
#include <endian.h> #include <endian.h>
#define SDL_BYTEORDER __BYTE_ORDER #define SDL_BYTEORDER __BYTE_ORDER
#else /* __linux __ */ #elif defined(__OpenBSD__)
#include <endian.h>
#define SDL_BYTEORDER BYTE_ORDER
#else
#if defined(__hppa__) || \ #if defined(__hppa__) || \
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
(defined(__MIPS__) && defined(__MISPEB__)) || \ (defined(__MIPS__) && defined(__MIPSEB__)) || \
defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
defined(__sparc__) defined(__sparc__)
#define SDL_BYTEORDER SDL_BIG_ENDIAN #define SDL_BYTEORDER SDL_BIG_ENDIAN

View file

@ -20,6 +20,22 @@
/* Use this flag to determine whether we use SDLMain.nib or not */ /* Use this flag to determine whether we use SDLMain.nib or not */
#define SDL_USE_NIB_FILE 0 #define SDL_USE_NIB_FILE 0
/* Use this flag to determine whether we use CPS (docking) or not */
#define SDL_USE_CPS 1
#ifdef SDL_USE_CPS
/* Portions of CPS.h */
typedef struct CPSProcessSerNum
{
UInt32 lo;
UInt32 hi;
} CPSProcessSerNum;
extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn);
extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn);
#endif /* SDL_USE_CPS */
static int gArgc; static int gArgc;
static char **gArgv; static char **gArgv;
static BOOL gFinderLaunch; static BOOL gFinderLaunch;
@ -185,7 +201,18 @@ static void CustomApplicationMain (int argc, char **argv)
SDLMain *sdlMain; SDLMain *sdlMain;
/* Ensure the application object is initialised */ /* Ensure the application object is initialised */
[[NSApplication sharedApplication] activateIgnoringOtherApps: YES]; [NSApplication sharedApplication];
#ifdef SDL_USE_CPS
{
CPSProcessSerNum PSN;
/* Tell the dock about us */
if (!CPSGetCurrentProcess(&PSN))
if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
if (!CPSSetFrontProcess(&PSN))
[NSApplication sharedApplication];
}
#endif /* SDL_USE_CPS */
/* Set up the menubar */ /* Set up the menubar */
[NSApp setMainMenu:[[NSMenu alloc] init]]; [NSApp setMainMenu:[[NSMenu alloc] init]];
@ -318,6 +345,7 @@ static void CustomApplicationMain (int argc, char **argv)
@end @end
#ifdef main #ifdef main
# undef main # undef main
#endif #endif
@ -330,25 +358,16 @@ static int IsRootCwd()
return (cwd && (strcmp(cwd, "/") == 0)); return (cwd && (strcmp(cwd, "/") == 0));
} }
static int IsTenPointNineOrLater()
{
/* Gestalt() is deprecated in 10.8, but I don't care. Stop using SDL 1.2. */
SInt32 major, minor;
Gestalt(gestaltSystemVersionMajor, &major);
Gestalt(gestaltSystemVersionMinor, &minor);
return ( ((major << 16) | minor) >= ((10 << 16) | 9) );
}
static int IsFinderLaunch(const int argc, char **argv) static int IsFinderLaunch(const int argc, char **argv)
{ {
const int bIsNewerOS = IsTenPointNineOrLater(); /* -psn_XXX is passed if we are launched from Finder, SOMETIMES */
/* -psn_XXX is passed if we are launched from Finder in 10.8 and earlier */ if ( (argc >= 2) && (strncmp(argv[1], "-psn", 4) == 0) ) {
if ( (!bIsNewerOS) && (argc >= 2) && (strncmp(argv[1], "-psn", 4) == 0) ) {
return 1; return 1;
} else if ((bIsNewerOS) && (argc == 1) && IsRootCwd()) { } else if ((argc == 1) && IsRootCwd()) {
/* we might still be launched from the Finder; on 10.9+, you might not /* we might still be launched from the Finder; on 10.9+, you might not
get the -psn command line anymore. Check version, if there's no get the -psn command line anymore. If there's no
command line, and if our current working directory is "/". */ command line, and if our current working directory is "/", it
might as well be a Finder launch. */
return 1; return 1;
} }
return 0; /* not a Finder launch. */ return 0; /* not a Finder launch. */

View file

@ -159,13 +159,13 @@
#define SDL_VIDEO_DRIVER_COCOA 1 #define SDL_VIDEO_DRIVER_COCOA 1
#define SDL_VIDEO_DRIVER_DUMMY 1 #define SDL_VIDEO_DRIVER_DUMMY 1
#undef SDL_VIDEO_DRIVER_X11 #undef SDL_VIDEO_DRIVER_X11
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/opt/X11/lib/libXinerama.1.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/opt/X11/lib/libXxf86vm.1.dylib"
#define SDL_VIDEO_DRIVER_X11_XDBE 1 #define SDL_VIDEO_DRIVER_X11_XDBE 1
#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 #define SDL_VIDEO_DRIVER_X11_XINERAMA 1
#define SDL_VIDEO_DRIVER_X11_XRANDR 1 #define SDL_VIDEO_DRIVER_X11_XRANDR 1

View file

@ -84,7 +84,6 @@ typedef unsigned int uintptr_t;
#define HAVE_XINPUT_H 1 #define HAVE_XINPUT_H 1
#define HAVE_MMDEVICEAPI_H 1 #define HAVE_MMDEVICEAPI_H 1
#define HAVE_AUDIOCLIENT_H 1 #define HAVE_AUDIOCLIENT_H 1
#define HAVE_ENDPOINTVOLUME_H 1
/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ /* This is disabled by default to avoid C runtime dependencies and manifest requirements */
#ifdef HAVE_LIBC #ifdef HAVE_LIBC
@ -139,7 +138,7 @@ typedef unsigned int uintptr_t;
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1
#define HAVE_ATAN2F 1 #define HAVE_ATAN2F 1
#define HAVE_CEILF 1 #define HAVE_CEILF 1
#define HAVE__COPYSIGN 1 #define HAVE__COPYSIGN 1
#define HAVE_COS 1 #define HAVE_COS 1
#define HAVE_COSF 1 #define HAVE_COSF 1
#define HAVE_EXP 1 #define HAVE_EXP 1
@ -168,7 +167,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRTOLL 1 #define HAVE_STRTOLL 1
#define HAVE_VSSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SCALBN 1 #define HAVE_SCALBN 1
#define HAVE_SCALBNF 1 #define HAVE_SCALBNF 1
#endif #endif
/* This function is available with at least the VC++ 2008 C runtime library */ /* This function is available with at least the VC++ 2008 C runtime library */
#if _MSC_VER >= 1400 #if _MSC_VER >= 1400

View file

@ -100,7 +100,6 @@ typedef unsigned int uintptr_t;
#define HAVE_MMDEVICEAPI_H 1 #define HAVE_MMDEVICEAPI_H 1
#define HAVE_AUDIOCLIENT_H 1 #define HAVE_AUDIOCLIENT_H 1
#define HAVE_ENDPOINTVOLUME_H 1
#define HAVE_LIBC 1 #define HAVE_LIBC 1
#define STDC_HEADERS 1 #define STDC_HEADERS 1

View file

@ -186,6 +186,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void);
*/ */
extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void); extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void);
/**
* This function returns true if the CPU has ARM SIMD (ARMv6) features.
*/
extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void);
/** /**
* This function returns true if the CPU has NEON (ARM SIMD) features. * This function returns true if the CPU has NEON (ARM SIMD) features.
*/ */

View file

@ -42,10 +42,13 @@
#ifdef __linux__ #ifdef __linux__
#include <endian.h> #include <endian.h>
#define SDL_BYTEORDER __BYTE_ORDER #define SDL_BYTEORDER __BYTE_ORDER
#else /* __linux__ */ #elif defined(__OpenBSD__)
#include <endian.h>
#define SDL_BYTEORDER BYTE_ORDER
#else
#if defined(__hppa__) || \ #if defined(__hppa__) || \
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
(defined(__MIPS__) && defined(__MISPEB__)) || \ (defined(__MIPS__) && defined(__MIPSEB__)) || \
defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
defined(__sparc__) defined(__sparc__)
#define SDL_BYTEORDER SDL_BIG_ENDIAN #define SDL_BYTEORDER SDL_BIG_ENDIAN

View file

@ -559,7 +559,7 @@ typedef union SDL_Event
{ {
Uint32 type; /**< Event type, shared with all events */ Uint32 type; /**< Event type, shared with all events */
SDL_CommonEvent common; /**< Common event data */ SDL_CommonEvent common; /**< Common event data */
SDL_DisplayEvent display; /**< Window event data */ SDL_DisplayEvent display; /**< Display event data */
SDL_WindowEvent window; /**< Window event data */ SDL_WindowEvent window; /**< Window event data */
SDL_KeyboardEvent key; /**< Keyboard event data */ SDL_KeyboardEvent key; /**< Keyboard event data */
SDL_TextEditingEvent edit; /**< Text editing event data */ SDL_TextEditingEvent edit; /**< Text editing event data */

View file

@ -488,6 +488,29 @@ extern "C" {
*/ */
#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" #define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
/**
* \brief If set, game controller face buttons report their values according to their labels instead of their positional layout.
*
* For example, on Nintendo Switch controllers, normally you'd get:
*
* (Y)
* (X) (B)
* (A)
*
* but if this hint is set, you'll get:
*
* (X)
* (Y) (A)
* (B)
*
* The variable can be set to the following values:
* "0" - Report the face buttons by position, as though they were on an Xbox controller.
* "1" - Report the face buttons by label instead of position
*
* The default value is "0". This hint may be set at any time.
*/
#define SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"
/** /**
* \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background.
* *

View file

@ -47,7 +47,7 @@ typedef Sint32 SDL_Keycode;
#define SDLK_SCANCODE_MASK (1<<30) #define SDLK_SCANCODE_MASK (1<<30)
#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) #define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)
enum typedef enum
{ {
SDLK_UNKNOWN = 0, SDLK_UNKNOWN = 0,
@ -317,7 +317,7 @@ enum
SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND),
SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD) SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD)
}; } SDL_KeyCode;
/** /**
* \brief Enumeration of valid key mods (possibly OR'd together). * \brief Enumeration of valid key mods (possibly OR'd together).

View file

@ -61,7 +61,7 @@ extern "C" {
* at the VERBOSE level and all other categories are enabled at the * at the VERBOSE level and all other categories are enabled at the
* CRITICAL level. * CRITICAL level.
*/ */
enum typedef enum
{ {
SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_CATEGORY_APPLICATION,
SDL_LOG_CATEGORY_ERROR, SDL_LOG_CATEGORY_ERROR,
@ -94,7 +94,7 @@ enum
}; };
*/ */
SDL_LOG_CATEGORY_CUSTOM SDL_LOG_CATEGORY_CUSTOM
}; } SDL_LogCategory;
/** /**
* \brief The predefined log priorities * \brief The predefined log priorities

View file

@ -40,7 +40,7 @@ typedef enum
SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */ SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */
SDL_MESSAGEBOX_INFORMATION = 0x00000040, /**< informational dialog */ SDL_MESSAGEBOX_INFORMATION = 0x00000040, /**< informational dialog */
SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080, /**< buttons placed left to right */ SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080, /**< buttons placed left to right */
SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100, /**< buttons placed right to left */ SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100 /**< buttons placed right to left */
} SDL_MessageBoxFlags; } SDL_MessageBoxFlags;
/** /**

View file

@ -48,7 +48,7 @@ extern "C" {
/* @} */ /* @} */
/** Pixel type. */ /** Pixel type. */
enum typedef enum
{ {
SDL_PIXELTYPE_UNKNOWN, SDL_PIXELTYPE_UNKNOWN,
SDL_PIXELTYPE_INDEX1, SDL_PIXELTYPE_INDEX1,
@ -62,18 +62,18 @@ enum
SDL_PIXELTYPE_ARRAYU32, SDL_PIXELTYPE_ARRAYU32,
SDL_PIXELTYPE_ARRAYF16, SDL_PIXELTYPE_ARRAYF16,
SDL_PIXELTYPE_ARRAYF32 SDL_PIXELTYPE_ARRAYF32
}; } SDL_PixelType;
/** Bitmap pixel order, high bit -> low bit. */ /** Bitmap pixel order, high bit -> low bit. */
enum typedef enum
{ {
SDL_BITMAPORDER_NONE, SDL_BITMAPORDER_NONE,
SDL_BITMAPORDER_4321, SDL_BITMAPORDER_4321,
SDL_BITMAPORDER_1234 SDL_BITMAPORDER_1234
}; } SDL_BitmapOrder;
/** Packed component order, high bit -> low bit. */ /** Packed component order, high bit -> low bit. */
enum typedef enum
{ {
SDL_PACKEDORDER_NONE, SDL_PACKEDORDER_NONE,
SDL_PACKEDORDER_XRGB, SDL_PACKEDORDER_XRGB,
@ -84,12 +84,12 @@ enum
SDL_PACKEDORDER_BGRX, SDL_PACKEDORDER_BGRX,
SDL_PACKEDORDER_ABGR, SDL_PACKEDORDER_ABGR,
SDL_PACKEDORDER_BGRA SDL_PACKEDORDER_BGRA
}; } SDL_PackedOrder;
/** Array component order, low byte -> high byte. */ /** Array component order, low byte -> high byte. */
/* !!! FIXME: in 2.1, make these not overlap differently with /* !!! FIXME: in 2.1, make these not overlap differently with
!!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */
enum typedef enum
{ {
SDL_ARRAYORDER_NONE, SDL_ARRAYORDER_NONE,
SDL_ARRAYORDER_RGB, SDL_ARRAYORDER_RGB,
@ -98,10 +98,10 @@ enum
SDL_ARRAYORDER_BGR, SDL_ARRAYORDER_BGR,
SDL_ARRAYORDER_BGRA, SDL_ARRAYORDER_BGRA,
SDL_ARRAYORDER_ABGR SDL_ARRAYORDER_ABGR
}; } SDL_ArrayOrder;
/** Packed component layout. */ /** Packed component layout. */
enum typedef enum
{ {
SDL_PACKEDLAYOUT_NONE, SDL_PACKEDLAYOUT_NONE,
SDL_PACKEDLAYOUT_332, SDL_PACKEDLAYOUT_332,
@ -112,7 +112,7 @@ enum
SDL_PACKEDLAYOUT_8888, SDL_PACKEDLAYOUT_8888,
SDL_PACKEDLAYOUT_2101010, SDL_PACKEDLAYOUT_2101010,
SDL_PACKEDLAYOUT_1010102 SDL_PACKEDLAYOUT_1010102
}; } SDL_PackedLayout;
#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) #define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)

View file

@ -430,10 +430,31 @@ extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture,
const SDL_Rect * rect, const SDL_Rect * rect,
void **pixels, int *pitch); void **pixels, int *pitch);
/**
* \brief Lock a portion of the texture for write-only pixel access.
* Expose it as a SDL surface.
*
* \param texture The texture to lock for access, which was created with
* ::SDL_TEXTUREACCESS_STREAMING.
* \param rect A pointer to the rectangle to lock for access. If the rect
* is NULL, the entire texture will be locked.
* \param surface This is filled in with a SDL surface representing the locked area
* Surface is freed internally after calling SDL_UnlockTexture or SDL_DestroyTexture.
*
* \return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING.
*
* \sa SDL_UnlockTexture()
*/
extern DECLSPEC int SDLCALL SDL_LockTextureToSurface(SDL_Texture *texture,
const SDL_Rect *rect,
SDL_Surface **surface);
/** /**
* \brief Unlock a texture, uploading the changes to video memory, if needed. * \brief Unlock a texture, uploading the changes to video memory, if needed.
* If SDL_LockTextureToSurface() was called for locking, the SDL surface is freed.
* *
* \sa SDL_LockTexture() * \sa SDL_LockTexture()
* \sa SDL_LockTextureToSurface()
*/ */
extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture);

View file

@ -1,2 +1,2 @@
#define SDL_REVISION "hg-13074:2ede888544ac" #define SDL_REVISION "hg-13229:0b98870c7f72"
#define SDL_REVISION_NUMBER 13074 #define SDL_REVISION_NUMBER 13229

View file

@ -59,7 +59,7 @@ typedef struct SDL_version
*/ */
#define SDL_MAJOR_VERSION 2 #define SDL_MAJOR_VERSION 2
#define SDL_MINOR_VERSION 0 #define SDL_MINOR_VERSION 0
#define SDL_PATCHLEVEL 10 #define SDL_PATCHLEVEL 11
/** /**
* \brief Macro to determine SDL version program was compiled against. * \brief Macro to determine SDL version program was compiled against.

View file

@ -96,7 +96,6 @@ typedef struct SDL_Window SDL_Window;
*/ */
typedef enum typedef enum
{ {
/* !!! FIXME: change this to name = (1<<x). */
SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */
SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */
SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */

View file

@ -19,7 +19,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>2.0.10</string> <string>2.0.11</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>SDLX</string> <string>SDLX</string>
<key>CFBundleSupportedPlatforms</key> <key>CFBundleSupportedPlatforms</key>
@ -27,7 +27,7 @@
<string>MacOSX</string> <string>MacOSX</string>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2.0.10</string> <string>2.0.11</string>
<key>DTCompiler</key> <key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string> <string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key> <key>DTPlatformBuild</key>

View file

@ -907,7 +907,7 @@ void Mod_LoadLighting (lump_t *l)
{ {
if (8+l->filelen*3 == com_filesize) if (8+l->filelen*3 == com_filesize)
{ {
Con_DPrintf("%s loaded\n", litfilename); Con_DPrintf2("%s loaded\n", litfilename);
loadmodel->lightdata = data + 8; loadmodel->lightdata = data + 8;
return; return;
} }

View file

@ -95,8 +95,10 @@ void* lodepng_realloc(void* ptr, size_t new_size);
void lodepng_free(void* ptr); void lodepng_free(void* ptr);
#endif /*LODEPNG_COMPILE_ALLOCATORS*/ #endif /*LODEPNG_COMPILE_ALLOCATORS*/
#if (defined(__GNUC__) && defined(__GNUC_MINOR__) && (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1)) ||\ /* restrict is not available in C90, but use it when supported by the compiler */
(defined(_MSC_VER) && (_MSC_VER >= 1400)) || (defined(__WATCOMC__) && (__WATCOMC__ >= 1250)) #if (defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))) ||\
(defined(_MSC_VER) && (_MSC_VER >= 1400)) || \
(defined(__WATCOMC__) && (__WATCOMC__ >= 1250) && !defined(__cplusplus))
#define LODEPNG_RESTRICT __restrict #define LODEPNG_RESTRICT __restrict
#else #else
#define LODEPNG_RESTRICT /* not available */ #define LODEPNG_RESTRICT /* not available */
@ -2123,7 +2125,7 @@ unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, const unsig
if(!error) { if(!error) {
*outsize = deflatesize + 6; *outsize = deflatesize + 6;
*out = (unsigned char*)lodepng_malloc(*outsize); *out = (unsigned char*)lodepng_malloc(*outsize);
if(!out) error = 83; /*alloc fail*/ if(!*out) error = 83; /*alloc fail*/
} }
if(!error) { if(!error) {

View file

@ -1795,7 +1795,7 @@ qboolean M_Quit_TextEntry (void)
void M_Quit_Draw (void) //johnfitz -- modified for new quit message void M_Quit_Draw (void) //johnfitz -- modified for new quit message
{ {
char msg1[40]; char msg1[40];
char msg2[] = "by Ozkan, Ericw & Stevenaaus"; /* msg2/msg3 are mostly [40] */ char msg2[] = "by Ozkan Sezer, Eric Wasylishen, others";/* msg2/msg3 are mostly [40] */
char msg3[] = "Press y to quit"; char msg3[] = "Press y to quit";
int boxlen; int boxlen;

View file

@ -728,6 +728,8 @@ int AllocBlock (int w, int h, int *x, int *y)
lightmap_count++; lightmap_count++;
lightmap = (struct lightmap_s *) realloc(lightmap, sizeof(*lightmap)*lightmap_count); lightmap = (struct lightmap_s *) realloc(lightmap, sizeof(*lightmap)*lightmap_count);
memset(&lightmap[texnum], 0, sizeof(lightmap[texnum])); memset(&lightmap[texnum], 0, sizeof(lightmap[texnum]));
/* FIXME: we leave 'gaps' in malloc()ed data, CRC_Block() later accesses
* that uninitialized data and valgrind complains for it. use calloc() ? */
lightmap[texnum].data = (byte *) malloc(4*LMBLOCK_WIDTH*LMBLOCK_HEIGHT); lightmap[texnum].data = (byte *) malloc(4*LMBLOCK_WIDTH*LMBLOCK_HEIGHT);
//as we're only tracking one texture, we don't need multiple copies of allocated any more. //as we're only tracking one texture, we don't need multiple copies of allocated any more.
memset(allocated, 0, sizeof(allocated)); memset(allocated, 0, sizeof(allocated));
@ -875,7 +877,7 @@ with all the surfaces from all brush models
*/ */
void GL_BuildLightmaps (void) void GL_BuildLightmaps (void)
{ {
char name[16]; char name[24];
int i, j; int i, j;
struct lightmap_s *lm; struct lightmap_s *lm;
qmodel_t *m; qmodel_t *m;
@ -937,18 +939,18 @@ void GL_BuildLightmaps (void)
lm->rectchange.h = 0; lm->rectchange.h = 0;
//johnfitz -- use texture manager //johnfitz -- use texture manager
sprintf(name, "lightmap%03i",i); sprintf(name, "lightmap%07i",i);
lm->texture = TexMgr_LoadImage (cl.worldmodel, name, LMBLOCK_WIDTH, LMBLOCK_HEIGHT, lm->texture = TexMgr_LoadImage (cl.worldmodel, name, LMBLOCK_WIDTH, LMBLOCK_HEIGHT,
SRC_LIGHTMAP, lm->data, "", (src_offset_t)lm->data, TEXPREF_LINEAR | TEXPREF_NOPICMIP); SRC_LIGHTMAP, lm->data, "", (src_offset_t)lm->data, TEXPREF_LINEAR | TEXPREF_NOPICMIP);
//johnfitz //johnfitz
} }
//johnfitz -- warn about exceeding old limits //johnfitz -- warn about exceeding old limits
//Spike: note that this warning isn't accurate. //GLQuake limit was 64 textures of 128x128. Estimate how many 128x128 textures we would need
// I've doubled the lmblock dimensions, so the standard limit is more like 64/4 now. //given that we are using lightmap_count of LMBLOCK_WIDTH x LMBLOCK_HEIGHT
// additionally, ericw already changed the allocation strategy, which results in false positives. i = lightmap_count * ((LMBLOCK_WIDTH / 128) * (LMBLOCK_HEIGHT / 128));
if (i >= 64) if (i > 64)
Con_DWarning ("%i lightmaps exceeds standard limit of 64 (max = %d).\n", i, MAX_SANITY_LIGHTMAPS); Con_DWarning("%i lightmaps exceeds standard limit of 64.\n",i);
//johnfitz //johnfitz
} }

View file

@ -80,7 +80,7 @@ static void SDLCALL paint_audio (void *unused, Uint8 *stream, int len)
qboolean SNDDMA_Init (dma_t *dma) qboolean SNDDMA_Init (dma_t *dma)
{ {
SDL_AudioSpec desired, obtained; SDL_AudioSpec desired;
int tmp, val; int tmp, val;
char drivername[128]; char drivername[128];
@ -91,7 +91,7 @@ qboolean SNDDMA_Init (dma_t *dma)
} }
/* Set up the desired format */ /* Set up the desired format */
desired.freq = tmp = snd_mixspeed.value; desired.freq = snd_mixspeed.value;
desired.format = (loadas8bit.value) ? AUDIO_U8 : AUDIO_S16SYS; desired.format = (loadas8bit.value) ? AUDIO_U8 : AUDIO_S16SYS;
desired.channels = 2; /* = desired_channels; */ desired.channels = 2; /* = desired_channels; */
if (desired.freq <= 11025) if (desired.freq <= 11025)
@ -108,39 +108,25 @@ qboolean SNDDMA_Init (dma_t *dma)
desired.userdata = NULL; desired.userdata = NULL;
/* Open the audio device */ /* Open the audio device */
if (SDL_OpenAudio(&desired, &obtained) == -1) if (SDL_OpenAudio(&desired, NULL) == -1)
{ {
Con_Printf("Couldn't open SDL audio: %s\n", SDL_GetError()); Con_Printf("Couldn't open SDL audio: %s\n", SDL_GetError());
SDL_QuitSubSystem(SDL_INIT_AUDIO); SDL_QuitSubSystem(SDL_INIT_AUDIO);
return false; return false;
} }
/* Make sure we can support the audio format */
switch (obtained.format)
{
case AUDIO_S8: /* maybe needed by AHI */
case AUDIO_U8:
case AUDIO_S16SYS:
/* Supported */
break;
default:
Con_Printf ("Unsupported audio format received (%u)\n", obtained.format);
SDL_CloseAudio();
SDL_QuitSubSystem(SDL_INIT_AUDIO);
return false;
}
memset ((void *) dma, 0, sizeof(dma_t)); memset ((void *) dma, 0, sizeof(dma_t));
shm = dma; shm = dma;
/* Fill the audio DMA information block */ /* Fill the audio DMA information block */
shm->samplebits = (obtained.format & 0xFF); /* first byte of format is bits */ /* Since we passed NULL as the 'obtained' spec to SDL_OpenAudio(),
shm->signed8 = (obtained.format == AUDIO_S8); * SDL will convert to hardware format for us if needed, hence we
if (obtained.freq != tmp) * directly use the desired values here. */
Con_Printf ("Warning: Rate set (%d) didn't match requested rate (%d)!\n", obtained.freq, tmp); shm->samplebits = (desired.format & 0xFF); /* first byte of format is bits */
shm->speed = obtained.freq; shm->signed8 = (desired.format == AUDIO_S8);
shm->channels = obtained.channels; shm->speed = desired.freq;
tmp = (obtained.samples * obtained.channels) * 10; shm->channels = desired.channels;
tmp = (desired.samples * desired.channels) * 10;
if (tmp & (tmp - 1)) if (tmp & (tmp - 1))
{ /* make it a power of two */ { /* make it a power of two */
val = 1; val = 1;
@ -154,7 +140,7 @@ qboolean SNDDMA_Init (dma_t *dma)
shm->submission_chunk = 1; shm->submission_chunk = 1;
Con_Printf ("SDL audio spec : %d Hz, %d samples, %d channels\n", Con_Printf ("SDL audio spec : %d Hz, %d samples, %d channels\n",
obtained.freq, obtained.samples, obtained.channels); desired.freq, desired.samples, desired.channels);
#if defined(USE_SDL2) #if defined(USE_SDL2)
{ {
const char *driver = SDL_GetCurrentAudioDriver(); const char *driver = SDL_GetCurrentAudioDriver();

View file

@ -232,7 +232,7 @@ Compile time options include
<H2><A NAME="s5">5.</A> <A HREF="#toc5">Known Bugs </A></H2> <H2><A NAME="s5">5.</A> <A HREF="#toc5">Known Bugs </A></H2>
<P>Brightness issues should be fixed with GLSL gamma in 0.90.1, if your system supports OpenGL 2. For reference on older systems:<BR> <P>Brightness issues should be fixed with GLSL gamma in 0.90.1, if your system supports OpenGL 2. For reference on older systems:<BR>
Some versions of Xorg and SDL have brightness issues.<BR> Some versions of Xorg and SDL have brightness issues.<BR>
Try setting "export SDL_VIDEO_X11_NODIRECTCOLOR=1", or if you have Xorg >= 7.5 and broken brightness, Try setting "export SDL_VIDEO_X11_NODIRECTCOLOR=1", or if you have Xorg >= 7.5 and broken brightness,
these patched libSDL binaries may help. these patched libSDL binaries may help.
@ -253,9 +253,10 @@ these patched libSDL binaries may help.
<P> <P>
<UL> <UL>
<LI> Lightmaps are now dynamically allocated (from QSS), and BLOCK_WIDTH/HEIGHT raised from 128 to 256.</LI> <LI> Lightmaps are now dynamically allocated (from QSS), and BLOCK_WIDTH/HEIGHT raised from 128 to 256.</LI>
<LI> Fixed several uncheked limits that would crash the Slayer's Testaments mod.</LI> <LI> Fixed several uncheked limits that would crash the Slayer's Testaments mod (sf.net bug #33).</LI>
<LI> Raised MAXALIASTRIS from 2048 to 4096, so that the Slayer's Testaments mod works.</LI> <LI> Raised MAXALIASTRIS from 2048 to 4096, so that the Slayer's Testaments mod works.</LI>
<LI> Fixed 'pants' and 'shirt' types so that those textures load correctly on platforms where char is unsigned by default (sf.net bug #28).</LI> <LI> Fixed 'pants' and 'shirt' types so that those textures load correctly on platforms where char is unsigned by default (sf.net bug #28).</LI>
<LI> Windows audio: WASAPI-enabled SDL2 dlls function properly now.</LI>
<LI> Update the third-party libraries. Other fixes/cleanups.</LI> <LI> Update the third-party libraries. Other fixes/cleanups.</LI>
</UL> </UL>
</P> </P>

View file

@ -295,7 +295,7 @@
BLOCK_WIDTH/HEIGHT raised from 128 to 256. BLOCK_WIDTH/HEIGHT raised from 128 to 256.
o Fixed several uncheked limits that would crash the Slayer's o Fixed several uncheked limits that would crash the Slayer's
Testaments mod. Testaments mod (sf.net bug #33).
o Raised MAXALIASTRIS from 2048 to 4096, so that the Slayer's o Raised MAXALIASTRIS from 2048 to 4096, so that the Slayer's
Testaments mod works. Testaments mod works.
@ -304,6 +304,8 @@
correctly on platforms where char is unsigned by default correctly on platforms where char is unsigned by default
(sf.net bug #28). (sf.net bug #28).
o Windows audio: WASAPI-enabled SDL2 dlls function properly now.
o Update the third-party libraries. Other fixes/cleanups. o Update the third-party libraries. Other fixes/cleanups.

View file

@ -60,6 +60,12 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void);
/** This function returns true if the CPU has AltiVec features */ /** This function returns true if the CPU has AltiVec features */
extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
/** This function returns true if the CPU has ARM SIMD (ARMv6) features */
extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void);
/** This function returns true if the CPU has ARM NEON features */
extern DECLSPEC SDL_bool SDLCALL SDL_HasARMNEON(void);
/* Ends C function definitions when using C++ */ /* Ends C function definitions when using C++ */
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -42,10 +42,13 @@
#ifdef __linux__ #ifdef __linux__
#include <endian.h> #include <endian.h>
#define SDL_BYTEORDER __BYTE_ORDER #define SDL_BYTEORDER __BYTE_ORDER
#else /* __linux __ */ #elif defined(__OpenBSD__)
#include <endian.h>
#define SDL_BYTEORDER BYTE_ORDER
#else
#if defined(__hppa__) || \ #if defined(__hppa__) || \
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
(defined(__MIPS__) && defined(__MISPEB__)) || \ (defined(__MIPS__) && defined(__MIPSEB__)) || \
defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
defined(__sparc__) defined(__sparc__)
#define SDL_BYTEORDER SDL_BIG_ENDIAN #define SDL_BYTEORDER SDL_BIG_ENDIAN

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -82,6 +82,8 @@ SDL_GetVideoSurface
SDL_GetWMInfo SDL_GetWMInfo
SDL_Has3DNow SDL_Has3DNow
SDL_Has3DNowExt SDL_Has3DNowExt
SDL_HasARMNEON
SDL_HasARMSIMD
SDL_HasAltiVec SDL_HasAltiVec
SDL_HasMMX SDL_HasMMX
SDL_HasMMXExt SDL_HasMMXExt

View file

@ -79,6 +79,8 @@
++'_SDL_GetWMInfo'.'SDL.DLL'..'SDL_GetWMInfo' ++'_SDL_GetWMInfo'.'SDL.DLL'..'SDL_GetWMInfo'
++'_SDL_Has3DNow'.'SDL.DLL'..'SDL_Has3DNow' ++'_SDL_Has3DNow'.'SDL.DLL'..'SDL_Has3DNow'
++'_SDL_Has3DNowExt'.'SDL.DLL'..'SDL_Has3DNowExt' ++'_SDL_Has3DNowExt'.'SDL.DLL'..'SDL_Has3DNowExt'
++'_SDL_HasARMNEON'.'SDL.DLL'..'SDL_HasARMNEON'
++'_SDL_HasARMSIMD'.'SDL.DLL'..'SDL_HasARMSIMD'
++'_SDL_HasAltiVec'.'SDL.DLL'..'SDL_HasAltiVec' ++'_SDL_HasAltiVec'.'SDL.DLL'..'SDL_HasAltiVec'
++'_SDL_HasMMX'.'SDL.DLL'..'SDL_HasMMX' ++'_SDL_HasMMX'.'SDL.DLL'..'SDL_HasMMX'
++'_SDL_HasMMXExt'.'SDL.DLL'..'SDL_HasMMXExt' ++'_SDL_HasMMXExt'.'SDL.DLL'..'SDL_HasMMXExt'

View file

@ -1,6 +1,13 @@
This is a list of major changes in SDL's version history. This is a list of major changes in SDL's version history.
---------------------------------------------------------------------------
2.0.11/12:
---------------------------------------------------------------------------
General:
* Added SDL_LockTextureToSurface(), similar to SDL_LockTexture() but the locked area is exposed as a SDL surface.
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
2.0.10: 2.0.10:
--------------------------------------------------------------------------- ---------------------------------------------------------------------------

View file

@ -40,7 +40,7 @@ while test $# -gt 0; do
lib_suffix=$optarg lib_suffix=$optarg
;; ;;
--version) --version)
echo 2.0.10 echo 2.0.11
;; ;;
--cflags) --cflags)
echo -I${prefix}/include -Dmain=SDL_main echo -I${prefix}/include -Dmain=SDL_main

View file

@ -159,13 +159,13 @@
#define SDL_VIDEO_DRIVER_COCOA 1 #define SDL_VIDEO_DRIVER_COCOA 1
#define SDL_VIDEO_DRIVER_DUMMY 1 #define SDL_VIDEO_DRIVER_DUMMY 1
#undef SDL_VIDEO_DRIVER_X11 #undef SDL_VIDEO_DRIVER_X11
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/usr/X11R6/lib/libXinerama.1.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/opt/X11/lib/libXinerama.1.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/usr/X11R6/lib/libXi.6.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/usr/X11R6/lib/libXss.1.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/usr/X11R6/lib/libXxf86vm.1.dylib" #define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/opt/X11/lib/libXxf86vm.1.dylib"
#define SDL_VIDEO_DRIVER_X11_XDBE 1 #define SDL_VIDEO_DRIVER_X11_XDBE 1
#define SDL_VIDEO_DRIVER_X11_XINERAMA 1 #define SDL_VIDEO_DRIVER_X11_XINERAMA 1
#define SDL_VIDEO_DRIVER_X11_XRANDR 1 #define SDL_VIDEO_DRIVER_X11_XRANDR 1

View file

@ -84,7 +84,6 @@ typedef unsigned int uintptr_t;
#define HAVE_XINPUT_H 1 #define HAVE_XINPUT_H 1
#define HAVE_MMDEVICEAPI_H 1 #define HAVE_MMDEVICEAPI_H 1
#define HAVE_AUDIOCLIENT_H 1 #define HAVE_AUDIOCLIENT_H 1
#define HAVE_ENDPOINTVOLUME_H 1
/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ /* This is disabled by default to avoid C runtime dependencies and manifest requirements */
#ifdef HAVE_LIBC #ifdef HAVE_LIBC
@ -139,7 +138,7 @@ typedef unsigned int uintptr_t;
#define HAVE_ATAN2 1 #define HAVE_ATAN2 1
#define HAVE_ATAN2F 1 #define HAVE_ATAN2F 1
#define HAVE_CEILF 1 #define HAVE_CEILF 1
#define HAVE__COPYSIGN 1 #define HAVE__COPYSIGN 1
#define HAVE_COS 1 #define HAVE_COS 1
#define HAVE_COSF 1 #define HAVE_COSF 1
#define HAVE_EXP 1 #define HAVE_EXP 1
@ -168,7 +167,7 @@ typedef unsigned int uintptr_t;
#define HAVE_STRTOLL 1 #define HAVE_STRTOLL 1
#define HAVE_VSSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_SCALBN 1 #define HAVE_SCALBN 1
#define HAVE_SCALBNF 1 #define HAVE_SCALBNF 1
#endif #endif
/* This function is available with at least the VC++ 2008 C runtime library */ /* This function is available with at least the VC++ 2008 C runtime library */
#if _MSC_VER >= 1400 #if _MSC_VER >= 1400

View file

@ -100,7 +100,6 @@ typedef unsigned int uintptr_t;
#define HAVE_MMDEVICEAPI_H 1 #define HAVE_MMDEVICEAPI_H 1
#define HAVE_AUDIOCLIENT_H 1 #define HAVE_AUDIOCLIENT_H 1
#define HAVE_ENDPOINTVOLUME_H 1
#define HAVE_LIBC 1 #define HAVE_LIBC 1
#define STDC_HEADERS 1 #define STDC_HEADERS 1

View file

@ -186,6 +186,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void);
*/ */
extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void); extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void);
/**
* This function returns true if the CPU has ARM SIMD (ARMv6) features.
*/
extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void);
/** /**
* This function returns true if the CPU has NEON (ARM SIMD) features. * This function returns true if the CPU has NEON (ARM SIMD) features.
*/ */

View file

@ -42,10 +42,13 @@
#ifdef __linux__ #ifdef __linux__
#include <endian.h> #include <endian.h>
#define SDL_BYTEORDER __BYTE_ORDER #define SDL_BYTEORDER __BYTE_ORDER
#else /* __linux__ */ #elif defined(__OpenBSD__)
#include <endian.h>
#define SDL_BYTEORDER BYTE_ORDER
#else
#if defined(__hppa__) || \ #if defined(__hppa__) || \
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
(defined(__MIPS__) && defined(__MISPEB__)) || \ (defined(__MIPS__) && defined(__MIPSEB__)) || \
defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
defined(__sparc__) defined(__sparc__)
#define SDL_BYTEORDER SDL_BIG_ENDIAN #define SDL_BYTEORDER SDL_BIG_ENDIAN

View file

@ -559,7 +559,7 @@ typedef union SDL_Event
{ {
Uint32 type; /**< Event type, shared with all events */ Uint32 type; /**< Event type, shared with all events */
SDL_CommonEvent common; /**< Common event data */ SDL_CommonEvent common; /**< Common event data */
SDL_DisplayEvent display; /**< Window event data */ SDL_DisplayEvent display; /**< Display event data */
SDL_WindowEvent window; /**< Window event data */ SDL_WindowEvent window; /**< Window event data */
SDL_KeyboardEvent key; /**< Keyboard event data */ SDL_KeyboardEvent key; /**< Keyboard event data */
SDL_TextEditingEvent edit; /**< Text editing event data */ SDL_TextEditingEvent edit; /**< Text editing event data */

View file

@ -488,6 +488,29 @@ extern "C" {
*/ */
#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" #define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
/**
* \brief If set, game controller face buttons report their values according to their labels instead of their positional layout.
*
* For example, on Nintendo Switch controllers, normally you'd get:
*
* (Y)
* (X) (B)
* (A)
*
* but if this hint is set, you'll get:
*
* (X)
* (Y) (A)
* (B)
*
* The variable can be set to the following values:
* "0" - Report the face buttons by position, as though they were on an Xbox controller.
* "1" - Report the face buttons by label instead of position
*
* The default value is "0". This hint may be set at any time.
*/
#define SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"
/** /**
* \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background.
* *

View file

@ -47,7 +47,7 @@ typedef Sint32 SDL_Keycode;
#define SDLK_SCANCODE_MASK (1<<30) #define SDLK_SCANCODE_MASK (1<<30)
#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) #define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)
enum typedef enum
{ {
SDLK_UNKNOWN = 0, SDLK_UNKNOWN = 0,
@ -317,7 +317,7 @@ enum
SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND),
SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD) SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD)
}; } SDL_KeyCode;
/** /**
* \brief Enumeration of valid key mods (possibly OR'd together). * \brief Enumeration of valid key mods (possibly OR'd together).

View file

@ -61,7 +61,7 @@ extern "C" {
* at the VERBOSE level and all other categories are enabled at the * at the VERBOSE level and all other categories are enabled at the
* CRITICAL level. * CRITICAL level.
*/ */
enum typedef enum
{ {
SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_CATEGORY_APPLICATION,
SDL_LOG_CATEGORY_ERROR, SDL_LOG_CATEGORY_ERROR,
@ -94,7 +94,7 @@ enum
}; };
*/ */
SDL_LOG_CATEGORY_CUSTOM SDL_LOG_CATEGORY_CUSTOM
}; } SDL_LogCategory;
/** /**
* \brief The predefined log priorities * \brief The predefined log priorities

View file

@ -40,7 +40,7 @@ typedef enum
SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */ SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */
SDL_MESSAGEBOX_INFORMATION = 0x00000040, /**< informational dialog */ SDL_MESSAGEBOX_INFORMATION = 0x00000040, /**< informational dialog */
SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080, /**< buttons placed left to right */ SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080, /**< buttons placed left to right */
SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100, /**< buttons placed right to left */ SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100 /**< buttons placed right to left */
} SDL_MessageBoxFlags; } SDL_MessageBoxFlags;
/** /**

View file

@ -48,7 +48,7 @@ extern "C" {
/* @} */ /* @} */
/** Pixel type. */ /** Pixel type. */
enum typedef enum
{ {
SDL_PIXELTYPE_UNKNOWN, SDL_PIXELTYPE_UNKNOWN,
SDL_PIXELTYPE_INDEX1, SDL_PIXELTYPE_INDEX1,
@ -62,18 +62,18 @@ enum
SDL_PIXELTYPE_ARRAYU32, SDL_PIXELTYPE_ARRAYU32,
SDL_PIXELTYPE_ARRAYF16, SDL_PIXELTYPE_ARRAYF16,
SDL_PIXELTYPE_ARRAYF32 SDL_PIXELTYPE_ARRAYF32
}; } SDL_PixelType;
/** Bitmap pixel order, high bit -> low bit. */ /** Bitmap pixel order, high bit -> low bit. */
enum typedef enum
{ {
SDL_BITMAPORDER_NONE, SDL_BITMAPORDER_NONE,
SDL_BITMAPORDER_4321, SDL_BITMAPORDER_4321,
SDL_BITMAPORDER_1234 SDL_BITMAPORDER_1234
}; } SDL_BitmapOrder;
/** Packed component order, high bit -> low bit. */ /** Packed component order, high bit -> low bit. */
enum typedef enum
{ {
SDL_PACKEDORDER_NONE, SDL_PACKEDORDER_NONE,
SDL_PACKEDORDER_XRGB, SDL_PACKEDORDER_XRGB,
@ -84,12 +84,12 @@ enum
SDL_PACKEDORDER_BGRX, SDL_PACKEDORDER_BGRX,
SDL_PACKEDORDER_ABGR, SDL_PACKEDORDER_ABGR,
SDL_PACKEDORDER_BGRA SDL_PACKEDORDER_BGRA
}; } SDL_PackedOrder;
/** Array component order, low byte -> high byte. */ /** Array component order, low byte -> high byte. */
/* !!! FIXME: in 2.1, make these not overlap differently with /* !!! FIXME: in 2.1, make these not overlap differently with
!!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */
enum typedef enum
{ {
SDL_ARRAYORDER_NONE, SDL_ARRAYORDER_NONE,
SDL_ARRAYORDER_RGB, SDL_ARRAYORDER_RGB,
@ -98,10 +98,10 @@ enum
SDL_ARRAYORDER_BGR, SDL_ARRAYORDER_BGR,
SDL_ARRAYORDER_BGRA, SDL_ARRAYORDER_BGRA,
SDL_ARRAYORDER_ABGR SDL_ARRAYORDER_ABGR
}; } SDL_ArrayOrder;
/** Packed component layout. */ /** Packed component layout. */
enum typedef enum
{ {
SDL_PACKEDLAYOUT_NONE, SDL_PACKEDLAYOUT_NONE,
SDL_PACKEDLAYOUT_332, SDL_PACKEDLAYOUT_332,
@ -112,7 +112,7 @@ enum
SDL_PACKEDLAYOUT_8888, SDL_PACKEDLAYOUT_8888,
SDL_PACKEDLAYOUT_2101010, SDL_PACKEDLAYOUT_2101010,
SDL_PACKEDLAYOUT_1010102 SDL_PACKEDLAYOUT_1010102
}; } SDL_PackedLayout;
#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) #define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)

View file

@ -430,10 +430,31 @@ extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture,
const SDL_Rect * rect, const SDL_Rect * rect,
void **pixels, int *pitch); void **pixels, int *pitch);
/**
* \brief Lock a portion of the texture for write-only pixel access.
* Expose it as a SDL surface.
*
* \param texture The texture to lock for access, which was created with
* ::SDL_TEXTUREACCESS_STREAMING.
* \param rect A pointer to the rectangle to lock for access. If the rect
* is NULL, the entire texture will be locked.
* \param surface This is filled in with a SDL surface representing the locked area
* Surface is freed internally after calling SDL_UnlockTexture or SDL_DestroyTexture.
*
* \return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING.
*
* \sa SDL_UnlockTexture()
*/
extern DECLSPEC int SDLCALL SDL_LockTextureToSurface(SDL_Texture *texture,
const SDL_Rect *rect,
SDL_Surface **surface);
/** /**
* \brief Unlock a texture, uploading the changes to video memory, if needed. * \brief Unlock a texture, uploading the changes to video memory, if needed.
* If SDL_LockTextureToSurface() was called for locking, the SDL surface is freed.
* *
* \sa SDL_LockTexture() * \sa SDL_LockTexture()
* \sa SDL_LockTextureToSurface()
*/ */
extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture);

View file

@ -1,2 +1,2 @@
#define SDL_REVISION "hg-13074:2ede888544ac" #define SDL_REVISION "hg-13229:0b98870c7f72"
#define SDL_REVISION_NUMBER 13074 #define SDL_REVISION_NUMBER 13229

View file

@ -59,7 +59,7 @@ typedef struct SDL_version
*/ */
#define SDL_MAJOR_VERSION 2 #define SDL_MAJOR_VERSION 2
#define SDL_MINOR_VERSION 0 #define SDL_MINOR_VERSION 0
#define SDL_PATCHLEVEL 10 #define SDL_PATCHLEVEL 11
/** /**
* \brief Macro to determine SDL version program was compiled against. * \brief Macro to determine SDL version program was compiled against.

View file

@ -96,7 +96,6 @@ typedef struct SDL_Window SDL_Window;
*/ */
typedef enum typedef enum
{ {
/* !!! FIXME: change this to name = (1<<x). */
SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */
SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */
SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */

Binary file not shown.

Binary file not shown.

View file

@ -278,6 +278,7 @@ SDL_HapticStopEffect
SDL_HapticUnpause SDL_HapticUnpause
SDL_HapticUpdateEffect SDL_HapticUpdateEffect
SDL_Has3DNow SDL_Has3DNow
SDL_HasARMSIMD
SDL_HasAVX SDL_HasAVX
SDL_HasAVX2 SDL_HasAVX2
SDL_HasAVX512F SDL_HasAVX512F
@ -356,6 +357,7 @@ SDL_LockJoysticks
SDL_LockMutex SDL_LockMutex
SDL_LockSurface SDL_LockSurface
SDL_LockTexture SDL_LockTexture
SDL_LockTextureToSurface
SDL_Log SDL_Log
SDL_LogCritical SDL_LogCritical
SDL_LogDebug SDL_LogDebug

View file

@ -275,6 +275,7 @@
++'_SDL_HapticUnpause'.'SDL2.DLL'..'SDL_HapticUnpause' ++'_SDL_HapticUnpause'.'SDL2.DLL'..'SDL_HapticUnpause'
++'_SDL_HapticUpdateEffect'.'SDL2.DLL'..'SDL_HapticUpdateEffect' ++'_SDL_HapticUpdateEffect'.'SDL2.DLL'..'SDL_HapticUpdateEffect'
++'_SDL_Has3DNow'.'SDL2.DLL'..'SDL_Has3DNow' ++'_SDL_Has3DNow'.'SDL2.DLL'..'SDL_Has3DNow'
++'_SDL_HasARMSIMD'.'SDL2.DLL'..'SDL_HasARMSIMD'
++'_SDL_HasAVX'.'SDL2.DLL'..'SDL_HasAVX' ++'_SDL_HasAVX'.'SDL2.DLL'..'SDL_HasAVX'
++'_SDL_HasAVX2'.'SDL2.DLL'..'SDL_HasAVX2' ++'_SDL_HasAVX2'.'SDL2.DLL'..'SDL_HasAVX2'
++'_SDL_HasAVX512F'.'SDL2.DLL'..'SDL_HasAVX512F' ++'_SDL_HasAVX512F'.'SDL2.DLL'..'SDL_HasAVX512F'
@ -353,6 +354,7 @@
++'_SDL_LockMutex'.'SDL2.DLL'..'SDL_LockMutex' ++'_SDL_LockMutex'.'SDL2.DLL'..'SDL_LockMutex'
++'_SDL_LockSurface'.'SDL2.DLL'..'SDL_LockSurface' ++'_SDL_LockSurface'.'SDL2.DLL'..'SDL_LockSurface'
++'_SDL_LockTexture'.'SDL2.DLL'..'SDL_LockTexture' ++'_SDL_LockTexture'.'SDL2.DLL'..'SDL_LockTexture'
++'_SDL_LockTextureToSurface'.'SDL2.DLL'..'SDL_LockTextureToSurface'
++'_SDL_Log'.'SDL2.DLL'..'SDL_Log' ++'_SDL_Log'.'SDL2.DLL'..'SDL_Log'
++'_SDL_LogCritical'.'SDL2.DLL'..'SDL_LogCritical' ++'_SDL_LogCritical'.'SDL2.DLL'..'SDL_LogCritical'
++'_SDL_LogDebug'.'SDL2.DLL'..'SDL_LogDebug' ++'_SDL_LogDebug'.'SDL2.DLL'..'SDL_LogDebug'