merged with the latest, official, SDL 2 sources
This commit is contained in:
commit
273b32b983
432 changed files with 17819 additions and 20811 deletions
|
@ -49,9 +49,9 @@ on the assertion line and not in some random guts of SDL, and so each
|
|||
assert can have unique static variables associated with it.
|
||||
*/
|
||||
|
||||
#if defined(_MSC_VER) && !defined(_WIN32_WCE)
|
||||
#if defined(_MSC_VER)
|
||||
/* Don't include intrin.h here because it contains C++ code */
|
||||
extern void __cdecl __debugbreak(void);
|
||||
extern void __cdecl __debugbreak(void);
|
||||
#define SDL_TriggerBreakpoint() __debugbreak()
|
||||
#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))
|
||||
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
|
||||
/* Need to do this here because intrin.h has C++ code in it */
|
||||
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && !defined(_WIN32_WCE)
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
||||
#include <intrin.h>
|
||||
#define HAVE_MSC_ATOMICS 1
|
||||
#endif
|
||||
|
@ -161,10 +161,10 @@ void _ReadWriteBarrier(void);
|
|||
#include <libkern/OSAtomic.h>
|
||||
|
||||
#define SDL_AtomicCAS(a, oldval, newval) OSAtomicCompareAndSwap32Barrier((oldval), (newval), &(a)->value)
|
||||
#if SIZEOF_VOIDP == 4
|
||||
#define SDL_AtomicCASPtr(a, oldval, newval) OSAtomicCompareAndSwap32Barrier((int32_t)(oldval), (int32_t)(newval), (int32_t*)(a))
|
||||
#elif SIZEOF_VOIDP == 8
|
||||
#ifdef __LP64__
|
||||
#define SDL_AtomicCASPtr(a, oldval, newval) OSAtomicCompareAndSwap64Barrier((int64_t)(oldval), (int64_t)(newval), (int64_t*)(a))
|
||||
#else
|
||||
#define SDL_AtomicCASPtr(a, oldval, newval) OSAtomicCompareAndSwap32Barrier((int32_t)(oldval), (int32_t)(newval), (int32_t*)(a))
|
||||
#endif
|
||||
|
||||
#elif defined(HAVE_GCC_ATOMICS)
|
||||
|
|
|
@ -242,7 +242,6 @@
|
|||
#undef SDL_TIMER_NDS
|
||||
#undef SDL_TIMER_UNIX
|
||||
#undef SDL_TIMER_WINDOWS
|
||||
#undef SDL_TIMER_WINCE
|
||||
|
||||
/* Enable various video drivers */
|
||||
#undef SDL_VIDEO_DRIVER_BWINDOW
|
||||
|
|
|
@ -130,4 +130,7 @@
|
|||
#define SDL_VIDEO_RENDER_OGL_ES 1
|
||||
#define SDL_VIDEO_RENDER_OGL_ES2 1
|
||||
|
||||
#endif /* _SDL_config_minimal_h */
|
||||
/* Enable system power support */
|
||||
#define SDL_POWER_ANDROID 1
|
||||
|
||||
#endif /* _SDL_config_android_h */
|
||||
|
|
|
@ -85,9 +85,7 @@ typedef unsigned int uintptr_t;
|
|||
#define HAVE_STRING_H 1
|
||||
#define HAVE_CTYPE_H 1
|
||||
#define HAVE_MATH_H 1
|
||||
#ifndef _WIN32_WCE
|
||||
#define HAVE_SIGNAL_H 1
|
||||
#endif
|
||||
|
||||
/* C library functions */
|
||||
#define HAVE_MALLOC 1
|
||||
|
@ -143,22 +141,15 @@ typedef unsigned int uintptr_t;
|
|||
#endif
|
||||
|
||||
/* Enable various audio drivers */
|
||||
#ifndef _WIN32_WCE
|
||||
#define SDL_AUDIO_DRIVER_DSOUND 1
|
||||
#define SDL_AUDIO_DRIVER_XAUDIO2 1
|
||||
#endif
|
||||
#define SDL_AUDIO_DRIVER_WINMM 1
|
||||
#define SDL_AUDIO_DRIVER_DISK 1
|
||||
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||
|
||||
/* Enable various input drivers */
|
||||
#ifdef _WIN32_WCE
|
||||
#define SDL_JOYSTICK_DISABLED 1
|
||||
#define SDL_HAPTIC_DUMMY 1
|
||||
#else
|
||||
#define SDL_JOYSTICK_DINPUT 1
|
||||
#define SDL_HAPTIC_DINPUT 1
|
||||
#endif
|
||||
|
||||
/* Enable various shared object loading systems */
|
||||
#define SDL_LOADSO_WINDOWS 1
|
||||
|
@ -167,24 +158,17 @@ typedef unsigned int uintptr_t;
|
|||
#define SDL_THREAD_WINDOWS 1
|
||||
|
||||
/* Enable various timer systems */
|
||||
#ifdef _WIN32_WCE
|
||||
#define SDL_TIMER_WINCE 1
|
||||
#else
|
||||
#define SDL_TIMER_WINDOWS 1
|
||||
#endif
|
||||
|
||||
/* Enable various video drivers */
|
||||
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||
#define SDL_VIDEO_DRIVER_WINDOWS 1
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
#ifndef SDL_VIDEO_RENDER_D3D
|
||||
#define SDL_VIDEO_RENDER_D3D 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Enable OpenGL support */
|
||||
#ifndef _WIN32_WCE
|
||||
#ifndef SDL_VIDEO_OPENGL
|
||||
#define SDL_VIDEO_OPENGL 1
|
||||
#endif
|
||||
|
@ -194,7 +178,6 @@ typedef unsigned int uintptr_t;
|
|||
#ifndef SDL_VIDEO_RENDER_OGL
|
||||
#define SDL_VIDEO_RENDER_OGL 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Enable system power support */
|
||||
#define SDL_POWER_WINDOWS 1
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
/* Need to do this here because intrin.h has C++ code in it */
|
||||
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && !defined(_WIN32_WCE)
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
||||
#include <intrin.h>
|
||||
#ifndef _WIN64
|
||||
#define __MMX__
|
||||
|
|
|
@ -118,7 +118,40 @@ extern "C" {
|
|||
* By default SDL does not sync screen surface updates with vertical refresh.
|
||||
*/
|
||||
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
|
||||
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether the X11 VidMode extension should be used.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Disable XVidMode
|
||||
* "1" - Enable XVidMode
|
||||
*
|
||||
* By default SDL will use XVidMode if it is available.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether the X11 Xinerama extension should be used.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Disable Xinerama
|
||||
* "1" - Enable Xinerama
|
||||
*
|
||||
* By default SDL will use Xinerama if it is available.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether the X11 XRandR extension should be used.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Disable XRandR
|
||||
* "1" - Enable XRandR
|
||||
*
|
||||
* By default SDL will not use XRandR because of window manager issues.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether the idle timer is disabled on iOS.
|
||||
*
|
||||
|
|
|
@ -373,7 +373,7 @@ extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture,
|
|||
const void *pixels, int pitch);
|
||||
|
||||
/**
|
||||
* \brief Lock a portion of the texture for pixel access.
|
||||
* \brief Lock a portion of the texture for write-only pixel access.
|
||||
*
|
||||
* \param texture The texture to lock for access, which was created with
|
||||
* ::SDL_TEXTUREACCESS_STREAMING.
|
||||
|
@ -413,10 +413,55 @@ extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *rendere
|
|||
* \param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target
|
||||
*
|
||||
* \return 0 on success, or -1 on error
|
||||
*
|
||||
* \sa SDL_GetRenderTarget()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer,
|
||||
SDL_Texture *texture);
|
||||
|
||||
/**
|
||||
* \brief Get the current render target or NULL for the default render target.
|
||||
*
|
||||
* \return The current render target
|
||||
*
|
||||
* \sa SDL_SetRenderTarget()
|
||||
*/
|
||||
extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer);
|
||||
|
||||
/**
|
||||
* \brief Set device independent resolution for rendering
|
||||
*
|
||||
* \param w The width of the logical resolution
|
||||
* \param h The height of the logical resolution
|
||||
*
|
||||
* This function uses the viewport and scaling functionality to allow a fixed logical
|
||||
* resolution for rendering, regardless of the actual output resolution. If the actual
|
||||
* output resolution doesn't have the same aspect ratio the output rendering will be
|
||||
* centered within the output display.
|
||||
*
|
||||
* If the output display is a window, mouse events in the window will be filtered
|
||||
* and scaled so they seem to arrive within the logical resolution.
|
||||
*
|
||||
* \note If this function results in scaling or subpixel drawing by the
|
||||
* rendering backend, it will be handled using the appropriate
|
||||
* quality hints.
|
||||
*
|
||||
* \sa SDL_RenderGetLogicalSize()
|
||||
* \sa SDL_RenderSetScale()
|
||||
* \sa SDL_RenderSetViewport()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h);
|
||||
|
||||
/**
|
||||
* \brief Get device independent resolution for rendering
|
||||
*
|
||||
* \param w A pointer filled with the width of the logical resolution
|
||||
* \param h A pointer filled with the height of the logical resolution
|
||||
*
|
||||
* \sa SDL_RenderSetLogicalSize()
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *y);
|
||||
|
||||
/**
|
||||
* \brief Set the drawing area for rendering on the current target.
|
||||
*
|
||||
|
@ -426,16 +471,52 @@ extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer,
|
|||
*
|
||||
* \note When the window is resized, the current viewport is automatically
|
||||
* centered within the new window size.
|
||||
*
|
||||
* \sa SDL_RenderGetViewport()
|
||||
* \sa SDL_RenderSetLogicalSize()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer,
|
||||
const SDL_Rect * rect);
|
||||
|
||||
/**
|
||||
* \brief Get the drawing area for the current target.
|
||||
*
|
||||
* \sa SDL_RenderSetViewport()
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer,
|
||||
SDL_Rect * rect);
|
||||
|
||||
/**
|
||||
* \brief Set the drawing scale for rendering on the current target.
|
||||
*
|
||||
* \param scaleX The horizontal scaling factor
|
||||
* \param scaleY The vertical scaling factor
|
||||
*
|
||||
* The drawing coordinates are scaled by the x/y scaling factors
|
||||
* before they are used by the renderer. This allows resolution
|
||||
* independent drawing with a single coordinate system.
|
||||
*
|
||||
* \note If this results in scaling or subpixel drawing by the
|
||||
* rendering backend, it will be handled using the appropriate
|
||||
* quality hints. For best results use integer scaling factors.
|
||||
*
|
||||
* \sa SDL_RenderGetScale()
|
||||
* \sa SDL_RenderSetLogicalSize()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer,
|
||||
float scaleX, float scaleY);
|
||||
|
||||
/**
|
||||
* \brief Get the drawing scale for the current target.
|
||||
*
|
||||
* \param scaleX A pointer filled in with the horizontal scaling factor
|
||||
* \param scaleY A pointer filled in with the vertical scaling factor
|
||||
*
|
||||
* \sa SDL_RenderSetScale()
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer,
|
||||
float *scaleX, float *scaleY);
|
||||
|
||||
/**
|
||||
* \brief Set the color used for drawing operations (Rect, Line and Clear).
|
||||
*
|
||||
|
@ -672,6 +753,28 @@ extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture);
|
|||
extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer);
|
||||
|
||||
|
||||
/**
|
||||
* \brief Bind the texture to the current OpenGL/ES/ES2 context for use with
|
||||
* OpenGL instructions.
|
||||
*
|
||||
* \param texture The SDL texture to bind
|
||||
* \param texw A pointer to a float that will be filled with the texture width
|
||||
* \param texh A pointer to a float that will be filled with the texture height
|
||||
*
|
||||
* \return 0 on success, or -1 if the operation is not supported
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh);
|
||||
|
||||
/**
|
||||
* \brief Unbind a texture from the current OpenGL/ES/ES2 context.
|
||||
*
|
||||
* \param texture The SDL texture to unbind
|
||||
*
|
||||
* \return 0 on success, or -1 if the operation is not supported
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture);
|
||||
|
||||
|
||||
/* Ends C function definitions when using C++ */
|
||||
#ifdef __cplusplus
|
||||
/* *INDENT-OFF* */
|
||||
|
|
|
@ -86,9 +86,7 @@ typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
|
|||
* library!
|
||||
*/
|
||||
#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
|
||||
#ifndef _WIN32_WCE
|
||||
#include <process.h> /* This has _beginthread() and _endthread() defined! */
|
||||
#endif
|
||||
|
||||
typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned,
|
||||
unsigned (__stdcall *
|
||||
|
@ -106,21 +104,11 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
|
|||
pfnSDL_CurrentBeginThread pfnBeginThread,
|
||||
pfnSDL_CurrentEndThread pfnEndThread);
|
||||
|
||||
#if defined(_WIN32_WCE)
|
||||
|
||||
/**
|
||||
* Create a thread.
|
||||
*/
|
||||
#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, NULL, NULL)
|
||||
|
||||
#else
|
||||
|
||||
/**
|
||||
* Create a thread.
|
||||
*/
|
||||
#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, _beginthreadex, _endthreadex)
|
||||
|
||||
#endif
|
||||
#else
|
||||
|
||||
/**
|
||||
|
|
|
@ -84,6 +84,7 @@ typedef struct
|
|||
* \sa SDL_SetWindowIcon()
|
||||
* \sa SDL_SetWindowPosition()
|
||||
* \sa SDL_SetWindowSize()
|
||||
* \sa SDL_SetWindowBordered()
|
||||
* \sa SDL_SetWindowTitle()
|
||||
* \sa SDL_ShowWindow()
|
||||
*/
|
||||
|
@ -517,6 +518,23 @@ extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w,
|
|||
extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w,
|
||||
int *h);
|
||||
|
||||
/**
|
||||
* \brief Set the border state of a window.
|
||||
*
|
||||
* This will add or remove the window's SDL_WINDOW_BORDERLESS flag and
|
||||
* add or remove the border from the actual window. This is a no-op if the
|
||||
* window's border already matches the requested state.
|
||||
*
|
||||
* \param window The window of which to change the border state.
|
||||
* \param bordered SDL_FALSE to remove border, SDL_TRUE to add border.
|
||||
*
|
||||
* \note You can't change the border state of a fullscreen window.
|
||||
*
|
||||
* \sa SDL_GetWindowFlags()
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window,
|
||||
SDL_bool bordered);
|
||||
|
||||
/**
|
||||
* \brief Show a window.
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue