Actualizado SDL2.framework a la versión 2.28.3

This commit is contained in:
2023-09-30 11:16:17 +02:00
parent b76e271fa7
commit 18c90a5f9c
71 changed files with 7142 additions and 2600 deletions

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -55,6 +55,8 @@ assert can have unique static variables associated with it.
#define SDL_TriggerBreakpoint() __builtin_debugtrap() #define SDL_TriggerBreakpoint() __builtin_debugtrap()
#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) ) #elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
#elif (defined(__GNUC__) || defined(__clang__)) && defined(__riscv)
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "ebreak\n\t" )
#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */ #elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" ) #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" )
#elif defined(__APPLE__) && defined(__arm__) #elif defined(__APPLE__) && defined(__arm__)
@@ -125,12 +127,10 @@ typedef struct SDL_AssertData
const struct SDL_AssertData *next; const struct SDL_AssertData *next;
} SDL_AssertData; } SDL_AssertData;
#if (SDL_ASSERT_LEVEL > 0)
/* Never call this directly. Use the SDL_assert* macros. */ /* Never call this directly. Use the SDL_assert* macros. */
extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *, extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
const char *, const char *,
const char *, int) const char *, int)
#if defined(__clang__) #if defined(__clang__)
#if __has_feature(attribute_analyzer_noreturn) #if __has_feature(attribute_analyzer_noreturn)
/* this tells Clang's static analysis that we're a custom assert function, /* this tells Clang's static analysis that we're a custom assert function,
@@ -151,9 +151,7 @@ extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
#define SDL_enabled_assert(condition) \ #define SDL_enabled_assert(condition) \
do { \ do { \
while ( !(condition) ) { \ while ( !(condition) ) { \
static struct SDL_AssertData sdl_assert_data = { \ static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, 0, 0, 0, 0 }; \
0, 0, #condition, 0, 0, 0, 0 \
}; \
const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \ const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \
if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ if (sdl_assert_state == SDL_ASSERTION_RETRY) { \
continue; /* go again. */ \ continue; /* go again. */ \
@@ -164,8 +162,6 @@ extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *,
} \ } \
} while (SDL_NULL_WHILE_LOOP_CONDITION) } while (SDL_NULL_WHILE_LOOP_CONDITION)
#endif /* enabled assertions support code */
/* Enable various levels of assertions. */ /* Enable various levels of assertions. */
#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */ #if SDL_ASSERT_LEVEL == 0 /* assertions disabled */
# define SDL_assert(condition) SDL_disabled_assert(condition) # define SDL_assert(condition) SDL_disabled_assert(condition)

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -240,7 +240,7 @@ typedef void (*SDL_KernelMemoryBarrierFunc)();
/* "REP NOP" is PAUSE, coded for tools that don't know it by that name. */ /* "REP NOP" is PAUSE, coded for tools that don't know it by that name. */
#if (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__)) #if (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))
#define SDL_CPUPauseInstruction() __asm__ __volatile__("pause\n") /* Some assemblers can't do REP NOP, so go with PAUSE. */ #define SDL_CPUPauseInstruction() __asm__ __volatile__("pause\n") /* Some assemblers can't do REP NOP, so go with PAUSE. */
#elif (defined(__arm__) && __ARM_ARCH >= 7) || defined(__aarch64__) #elif (defined(__arm__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7) || defined(__aarch64__)
#define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory") #define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory")
#elif (defined(__powerpc__) || defined(__powerpc64__)) #elif (defined(__powerpc__) || defined(__powerpc64__))
#define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27"); #define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27");
@@ -249,9 +249,8 @@ typedef void (*SDL_KernelMemoryBarrierFunc)();
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) #elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
#define SDL_CPUPauseInstruction() __yield() #define SDL_CPUPauseInstruction() __yield()
#elif defined(__WATCOMC__) && defined(__386__) #elif defined(__WATCOMC__) && defined(__386__)
/* watcom assembler rejects PAUSE if CPU < i686, and it refuses REP NOP as an invalid combination. Hardcode the bytes. */
extern __inline void SDL_CPUPauseInstruction(void); extern __inline void SDL_CPUPauseInstruction(void);
#pragma aux SDL_CPUPauseInstruction = "db 0f3h,90h" #pragma aux SDL_CPUPauseInstruction = ".686p" ".xmm2" "pause"
#else #else
#define SDL_CPUPauseInstruction() #define SDL_CPUPauseInstruction()
#endif #endif

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -169,13 +169,13 @@ typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
* The calculated values in this structure are calculated by SDL_OpenAudio(). * The calculated values in this structure are calculated by SDL_OpenAudio().
* *
* For multi-channel audio, the default SDL channel mapping is: * For multi-channel audio, the default SDL channel mapping is:
* 2: FL FR (stereo) * 2: FL FR (stereo)
* 3: FL FR LFE (2.1 surround) * 3: FL FR LFE (2.1 surround)
* 4: FL FR BL BR (quad) * 4: FL FR BL BR (quad)
* 5: FL FR LFE BL BR (4.1 surround) * 5: FL FR LFE BL BR (4.1 surround)
* 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR)
* 7: FL FR FC LFE BC SL SR (6.1 surround) * 7: FL FR FC LFE BC SL SR (6.1 surround)
* 8: FL FR FC LFE BL BR SL SR (7.1 surround) * 8: FL FR FC LFE BL BR SL SR (7.1 surround)
*/ */
typedef struct SDL_AudioSpec typedef struct SDL_AudioSpec
{ {

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -52,7 +52,7 @@ typedef enum
dstA = dstA */ dstA = dstA */
SDL_BLENDMODE_MUL = 0x00000008, /**< color multiply SDL_BLENDMODE_MUL = 0x00000008, /**< color multiply
dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA)) dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
dstA = (srcA * dstA) + (dstA * (1-srcA)) */ dstA = dstA */
SDL_BLENDMODE_INVALID = 0x7FFFFFFF SDL_BLENDMODE_INVALID = 0x7FFFFFFF
/* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */ /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -82,6 +82,53 @@ extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void);
*/ */
extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
/**
* Put UTF-8 text into the primary selection.
*
* \param text the text to store in the primary selection
* \returns 0 on success or a negative error code on failure; call
* SDL_GetError() for more information.
*
* \since This function is available since SDL 2.26.0.
*
* \sa SDL_GetPrimarySelectionText
* \sa SDL_HasPrimarySelectionText
*/
extern DECLSPEC int SDLCALL SDL_SetPrimarySelectionText(const char *text);
/**
* Get UTF-8 text from the primary selection, which must be freed with
* SDL_free().
*
* This functions returns empty string if there was not enough memory left for
* a copy of the primary selection's content.
*
* \returns the primary selection text on success or an empty string on
* failure; call SDL_GetError() for more information. Caller must
* call SDL_free() on the returned pointer when done with it (even if
* there was an error).
*
* \since This function is available since SDL 2.26.0.
*
* \sa SDL_HasPrimarySelectionText
* \sa SDL_SetPrimarySelectionText
*/
extern DECLSPEC char * SDLCALL SDL_GetPrimarySelectionText(void);
/**
* Query whether the primary selection exists and contains a non-empty text
* string.
*
* \returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it
* does not.
*
* \since This function is available since SDL 2.26.0.
*
* \sa SDL_GetPrimarySelectionText
* \sa SDL_SetPrimarySelectionText
*/
extern DECLSPEC SDL_bool SDLCALL SDL_HasPrimarySelectionText(void);
/* Ends C function definitions when using C++ */ /* Ends C function definitions when using C++ */
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -88,6 +88,7 @@
#define HAVE_STRNCMP 1 #define HAVE_STRNCMP 1
#define HAVE_STRCASECMP 1 #define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1 #define HAVE_STRNCASECMP 1
#define HAVE_STRCASESTR 1
#define HAVE_VSSCANF 1 #define HAVE_VSSCANF 1
#define HAVE_VSNPRINTF 1 #define HAVE_VSNPRINTF 1
#define HAVE_M_PI 1 #define HAVE_M_PI 1

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -90,6 +90,7 @@ _m_prefetch(void *__P)
# include <arm64intr.h> # include <arm64intr.h>
# include <arm64_neon.h> # include <arm64_neon.h>
# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ # define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */
# define __ARM_ARCH 8
# endif # endif
# endif # endif
#endif #endif

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -140,7 +140,7 @@ extern "C" {
#if HAS_BUILTIN_BSWAP16 #if HAS_BUILTIN_BSWAP16
#define SDL_Swap16(x) __builtin_bswap16(x) #define SDL_Swap16(x) __builtin_bswap16(x)
#elif defined(_MSC_VER) && (_MSC_VER >= 1400) #elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
#pragma intrinsic(_byteswap_ushort) #pragma intrinsic(_byteswap_ushort)
#define SDL_Swap16(x) _byteswap_ushort(x) #define SDL_Swap16(x) _byteswap_ushort(x)
#elif defined(__i386__) && !HAS_BROKEN_BSWAP #elif defined(__i386__) && !HAS_BROKEN_BSWAP
@@ -189,7 +189,7 @@ SDL_Swap16(Uint16 x)
#if HAS_BUILTIN_BSWAP32 #if HAS_BUILTIN_BSWAP32
#define SDL_Swap32(x) __builtin_bswap32(x) #define SDL_Swap32(x) __builtin_bswap32(x)
#elif defined(_MSC_VER) && (_MSC_VER >= 1400) #elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
#pragma intrinsic(_byteswap_ulong) #pragma intrinsic(_byteswap_ulong)
#define SDL_Swap32(x) _byteswap_ulong(x) #define SDL_Swap32(x) _byteswap_ulong(x)
#elif defined(__i386__) && !HAS_BROKEN_BSWAP #elif defined(__i386__) && !HAS_BROKEN_BSWAP
@@ -241,7 +241,7 @@ SDL_Swap32(Uint32 x)
#if HAS_BUILTIN_BSWAP64 #if HAS_BUILTIN_BSWAP64
#define SDL_Swap64(x) __builtin_bswap64(x) #define SDL_Swap64(x) __builtin_bswap64(x)
#elif defined(_MSC_VER) && (_MSC_VER >= 1400) #elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL)
#pragma intrinsic(_byteswap_uint64) #pragma intrinsic(_byteswap_uint64)
#define SDL_Swap64(x) _byteswap_uint64(x) #define SDL_Swap64(x) _byteswap_uint64(x)
#elif defined(__i386__) && !HAS_BROKEN_BSWAP #elif defined(__i386__) && !HAS_BROKEN_BSWAP

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -143,7 +143,7 @@ typedef enum
SDL_MULTIGESTURE, SDL_MULTIGESTURE,
/* Clipboard events */ /* Clipboard events */
SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */ SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard or primary selection changed */
/* Drag and drop events */ /* Drag and drop events */
SDL_DROPFILE = 0x1000, /**< The system requests a file open */ SDL_DROPFILE = 0x1000, /**< The system requests a file open */
@@ -318,6 +318,8 @@ typedef struct SDL_MouseWheelEvent
Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */
float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */
float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */
Sint32 mouseX; /**< X coordinate, relative to window (added in 2.26.0) */
Sint32 mouseY; /**< Y coordinate, relative to window (added in 2.26.0) */
} SDL_MouseWheelEvent; } SDL_MouseWheelEvent;
/** /**
@@ -474,6 +476,7 @@ typedef struct SDL_ControllerSensorEvent
SDL_JoystickID which; /**< The joystick instance id */ SDL_JoystickID which; /**< The joystick instance id */
Sint32 sensor; /**< The type of the sensor, one of the values of ::SDL_SensorType */ Sint32 sensor; /**< The type of the sensor, one of the values of ::SDL_SensorType */
float data[3]; /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */ float data[3]; /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */
Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */
} SDL_ControllerSensorEvent; } SDL_ControllerSensorEvent;
/** /**
@@ -565,6 +568,7 @@ typedef struct SDL_SensorEvent
Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */
Sint32 which; /**< The instance ID of the sensor */ Sint32 which; /**< The instance ID of the sensor */
float data[6]; /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */ float data[6]; /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */
Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */
} SDL_SensorEvent; } SDL_SensorEvent;
/** /**

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -60,6 +60,10 @@ extern "C" {
* - `parent`: the containing directory of the bundle. For example: * - `parent`: the containing directory of the bundle. For example:
* `/Applications/SDLApp/` * `/Applications/SDLApp/`
* *
* **Nintendo 3DS Specific Functionality**: This function returns "romfs"
* directory of the application as it is uncommon to store resources outside
* the executable. As such it is not a writable directory.
*
* The returned path is guaranteed to end with a path separator ('\' on * The returned path is guaranteed to end with a path separator ('\' on
* Windows, '/' on most other platforms). * Windows, '/' on most other platforms).
* *

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -724,10 +724,10 @@ typedef enum
SDL_CONTROLLER_BUTTON_DPAD_LEFT, SDL_CONTROLLER_BUTTON_DPAD_LEFT,
SDL_CONTROLLER_BUTTON_DPAD_RIGHT, SDL_CONTROLLER_BUTTON_DPAD_RIGHT,
SDL_CONTROLLER_BUTTON_MISC1, /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */ SDL_CONTROLLER_BUTTON_MISC1, /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */
SDL_CONTROLLER_BUTTON_PADDLE1, /* Xbox Elite paddle P1 */ SDL_CONTROLLER_BUTTON_PADDLE1, /* Xbox Elite paddle P1 (upper left, facing the back) */
SDL_CONTROLLER_BUTTON_PADDLE2, /* Xbox Elite paddle P3 */ SDL_CONTROLLER_BUTTON_PADDLE2, /* Xbox Elite paddle P3 (upper right, facing the back) */
SDL_CONTROLLER_BUTTON_PADDLE3, /* Xbox Elite paddle P2 */ SDL_CONTROLLER_BUTTON_PADDLE3, /* Xbox Elite paddle P2 (lower left, facing the back) */
SDL_CONTROLLER_BUTTON_PADDLE4, /* Xbox Elite paddle P4 */ SDL_CONTROLLER_BUTTON_PADDLE4, /* Xbox Elite paddle P4 (lower right, facing the back) */
SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */ SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */
SDL_CONTROLLER_BUTTON_MAX SDL_CONTROLLER_BUTTON_MAX
} SDL_GameControllerButton; } SDL_GameControllerButton;
@@ -754,7 +754,7 @@ extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFrom
* The caller should not SDL_free() the returned string. * The caller should not SDL_free() the returned string.
* *
* \param button an enum value for a given SDL_GameControllerButton * \param button an enum value for a given SDL_GameControllerButton
* \returns a string for the given button, or NULL if an invalid axis is * \returns a string for the given button, or NULL if an invalid button is
* specified. The string returned is of the format used by * specified. The string returned is of the format used by
* SDL_GameController mapping strings. * SDL_GameController mapping strings.
* *
@@ -895,6 +895,25 @@ extern DECLSPEC float SDLCALL SDL_GameControllerGetSensorDataRate(SDL_GameContro
*/ */
extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values); extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values);
/**
* Get the current state of a game controller sensor with the timestamp of the
* last update.
*
* The number of values and interpretation of the data is sensor dependent.
* See SDL_sensor.h for the details for each type of sensor.
*
* \param gamecontroller The controller to query
* \param type The type of sensor to query
* \param timestamp A pointer filled with the timestamp in microseconds of the
* current sensor reading if available, or 0 if not
* \param data A pointer filled with the current sensor state
* \param num_values The number of values to write to data
* \return 0 or -1 if an error occurred.
*
* \since This function is available since SDL 2.26.0.
*/
extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values);
/** /**
* Start a rumble effect on a game controller. * Start a rumble effect on a game controller.
* *

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -92,7 +92,7 @@ extern "C" {
* By default this hint is not set and the APK expansion files are not searched. * By default this hint is not set and the APK expansion files are not searched.
*/ */
#define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION" #define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"
/** /**
* \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc. * \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc.
* *
@@ -132,13 +132,13 @@ extern "C" {
* \brief A variable to control whether we trap the Android back button to handle it manually. * \brief A variable to control whether we trap the Android back button to handle it manually.
* This is necessary for the right mouse button to work on some Android devices, or * This is necessary for the right mouse button to work on some Android devices, or
* to be able to trap the back button for use in your code reliably. If set to true, * to be able to trap the back button for use in your code reliably. If set to true,
* the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of * the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of
* SDL_SCANCODE_AC_BACK. * SDL_SCANCODE_AC_BACK.
* *
* The variable can be set to the following values: * The variable can be set to the following values:
* "0" - Back button will be handled as usual for system. (default) * "0" - Back button will be handled as usual for system. (default)
* "1" - Back button will be trapped, allowing you to handle the key press * "1" - Back button will be trapped, allowing you to handle the key press
* manually. (This will also let right mouse click work on systems * manually. (This will also let right mouse click work on systems
* where the right mouse button functions as back.) * where the right mouse button functions as back.)
* *
* The value of this hint is used at runtime, so it can be changed at any time. * The value of this hint is used at runtime, so it can be changed at any time.
@@ -147,7 +147,7 @@ extern "C" {
/** /**
* \brief Specify an application name. * \brief Specify an application name.
* *
* This hint lets you specify the application name sent to the OS when * This hint lets you specify the application name sent to the OS when
* required. For example, this will often appear in volume control applets for * required. For example, this will often appear in volume control applets for
* audio streams, and in lists of applications which are inhibiting the * audio streams, and in lists of applications which are inhibiting the
@@ -278,10 +278,7 @@ extern "C" {
* If this hint isn't specified to a valid setting, or libsamplerate isn't * If this hint isn't specified to a valid setting, or libsamplerate isn't
* available, SDL will use the default, internal resampling algorithm. * available, SDL will use the default, internal resampling algorithm.
* *
* Note that this is currently only applicable to resampling audio that is * As of SDL 2.26, SDL_ConvertAudio() respects this hint when libsamplerate is available.
* being written to a device for playback or audio being read from a device
* for capture. SDL_AudioCVT always uses the default resampler (although this
* might change for SDL 2.1).
* *
* This hint is currently only checked at audio subsystem initialization. * This hint is currently only checked at audio subsystem initialization.
* *
@@ -380,6 +377,17 @@ extern "C" {
*/ */
#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" #define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
/**
* \brief A variable that controls whether the on-screen keyboard should be shown when text input is active
*
* The variable can be set to the following values:
* "0" - Do not show the on-screen keyboard
* "1" - Show the on-screen keyboard
*
* The default value is "1". This hint must be set before text input is activated.
*/
#define SDL_HINT_ENABLE_SCREEN_KEYBOARD "SDL_ENABLE_SCREEN_KEYBOARD"
/** /**
* \brief A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs * \brief A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs
* *
@@ -510,7 +518,7 @@ extern "C" {
/** /**
* \brief If set, game controller face buttons report their values according to their labels instead of their positional layout. * \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: * For example, on Nintendo Switch controllers, normally you'd get:
* *
* (Y) * (Y)
@@ -542,6 +550,14 @@ extern "C" {
*/ */
#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" #define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD"
/**
* \brief A variable containing a list of devices to ignore in SDL_hid_enumerate()
*
* For example, to ignore the Shanwan DS3 controller and any Valve controller, you might
* have the string "0x2563/0x0523,0x28de/0x0000"
*/
#define SDL_HINT_HIDAPI_IGNORE_DEVICES "SDL_HIDAPI_IGNORE_DEVICES"
/** /**
* \brief A variable controlling whether the idle timer is disabled on iOS. * \brief A variable controlling whether the idle timer is disabled on iOS.
* *
@@ -564,9 +580,9 @@ extern "C" {
* *
* The variable can be set to the following values: * The variable can be set to the following values:
* "0" - SDL_TEXTEDITING events are sent, and it is the application's * "0" - SDL_TEXTEDITING events are sent, and it is the application's
* responsibility to render the text from these events and * responsibility to render the text from these events and
* differentiate it somehow from committed text. (default) * differentiate it somehow from committed text. (default)
* "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, * "1" - If supported by the IME then SDL_TEXTEDITING events are not sent,
* and text that is being composed will be rendered in its own UI. * and text that is being composed will be rendered in its own UI.
*/ */
#define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING" #define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING"
@@ -672,6 +688,17 @@ extern "C" {
*/ */
#define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS" #define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS"
/**
* \brief A variable controlling whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver
*
* This variable can be set to the following values:
* "0" - Left and right Joy-Con controllers will not be in vertical mode (the default)
* "1" - Left and right Joy-Con controllers will be in vertical mode
*
* This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER)
*/
#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS"
/** /**
* \brief A variable controlling whether the HIDAPI driver for Amazon Luna controllers connected via Bluetooth should be used. * \brief A variable controlling whether the HIDAPI driver for Amazon Luna controllers connected via Bluetooth should be used.
* *
@@ -705,6 +732,20 @@ extern "C" {
*/ */
#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD" #define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD"
/**
* \brief A variable controlling whether the HIDAPI driver for PS3 controllers should be used.
*
* This variable can be set to the following values:
* "0" - HIDAPI driver is not used
* "1" - HIDAPI driver is used
*
* The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on other platforms.
*
* It is not possible to use this driver on Windows, due to limitations in the default drivers
* installed. See https://github.com/ViGEm/DsHidMini for an alternative driver on Windows.
*/
#define SDL_HINT_JOYSTICK_HIDAPI_PS3 "SDL_JOYSTICK_HIDAPI_PS3"
/** /**
* \brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used. * \brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used.
* *
@@ -787,7 +828,7 @@ extern "C" {
#define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA" #define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA"
/** /**
* \brief A variable controlling whether the HIDAPI driver for Steam Controllers should be used. * \brief A variable controlling whether the HIDAPI driver for Bluetooth Steam Controllers should be used.
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - HIDAPI driver is not used * "0" - HIDAPI driver is not used
@@ -840,6 +881,26 @@ extern "C" {
*/ */
#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED" #define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED"
/**
* \brief A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U controllers should be used.
*
* This variable can be set to the following values:
* "0" - HIDAPI driver is not used
* "1" - HIDAPI driver is used
*
* This driver doesn't work with the dolphinbar, so the default is SDL_FALSE for now.
*/
#define SDL_HINT_JOYSTICK_HIDAPI_WII "SDL_JOYSTICK_HIDAPI_WII"
/**
* \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Wii controller.
*
* This variable can be set to the following values:
* "0" - player LEDs are not enabled
* "1" - player LEDs are enabled (the default)
*/
#define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED"
/** /**
* \brief A variable controlling whether the HIDAPI driver for XBox controllers should be used. * \brief A variable controlling whether the HIDAPI driver for XBox controllers should be used.
* *
@@ -851,6 +912,59 @@ extern "C" {
*/ */
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX" #define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX"
/**
* \brief A variable controlling whether the HIDAPI driver for XBox 360 controllers should be used.
*
* This variable can be set to the following values:
* "0" - HIDAPI driver is not used
* "1" - HIDAPI driver is used
*
* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX
*/
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 "SDL_JOYSTICK_HIDAPI_XBOX_360"
/**
* \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller.
*
* This variable can be set to the following values:
* "0" - player LEDs are not enabled
* "1" - player LEDs are enabled (the default)
*/
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED"
/**
* \brief A variable controlling whether the HIDAPI driver for XBox 360 wireless controllers should be used.
*
* This variable can be set to the following values:
* "0" - HIDAPI driver is not used
* "1" - HIDAPI driver is used
*
* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360
*/
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS"
/**
* \brief A variable controlling whether the HIDAPI driver for XBox One controllers should be used.
*
* This variable can be set to the following values:
* "0" - HIDAPI driver is not used
* "1" - HIDAPI driver is used
*
* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX
*/
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE "SDL_JOYSTICK_HIDAPI_XBOX_ONE"
/**
* \brief A variable controlling whether the Home button LED should be turned on when an Xbox One controller is opened
*
* This variable can be set to the following values:
* "0" - home button LED is turned off
* "1" - home button LED is turned on
*
* By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. The default brightness is 0.4.
*/
#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED"
/** /**
* \brief A variable controlling whether the RAWINPUT joystick drivers should be used for better handling XInput-capable devices. * \brief A variable controlling whether the RAWINPUT joystick drivers should be used for better handling XInput-capable devices.
* *
@@ -893,6 +1007,15 @@ extern "C" {
*/ */
#define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD" #define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD"
/**
* \brief A variable controlling whether Windows.Gaming.Input should be used for controller handling.
*
* This variable can be set to the following values:
* "0" - WGI is not used
* "1" - WGI is used (the default)
*/
#define SDL_HINT_JOYSTICK_WGI "SDL_JOYSTICK_WGI"
/** /**
* \brief Determines whether SDL enforces that DRM master is required in order * \brief Determines whether SDL enforces that DRM master is required in order
* to initialize the KMSDRM video backend. * to initialize the KMSDRM video backend.
@@ -1064,6 +1187,17 @@ extern "C" {
*/ */
#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" #define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE"
/**
* \brief A variable controlling whether the system mouse acceleration curve is used for relative mouse motion.
*
* This variable can be set to the following values:
* "0" - Relative mouse motion will be unscaled (the default)
* "1" - Relative mouse motion will be scaled using the system mouse acceleration curve.
*
* If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will override the system speed scale.
*/
#define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE "SDL_MOUSE_RELATIVE_SYSTEM_SCALE"
/** /**
* \brief A variable controlling whether a motion event should be generated for mouse warping in relative mode. * \brief A variable controlling whether a motion event should be generated for mouse warping in relative mode.
* *
@@ -1162,7 +1296,7 @@ extern "C" {
* When polling for events, SDL_PumpEvents is used to gather new events from devices. * When polling for events, SDL_PumpEvents is used to gather new events from devices.
* If a device keeps producing new events between calls to SDL_PumpEvents, a poll loop will * If a device keeps producing new events between calls to SDL_PumpEvents, a poll loop will
* become stuck until the new events stop. * become stuck until the new events stop.
* This is most noticable when moving a high frequency mouse. * This is most noticeable when moving a high frequency mouse.
* *
* By default, poll sentinels are enabled. * By default, poll sentinels are enabled.
*/ */
@@ -1196,6 +1330,8 @@ extern "C" {
* *
* This variable can be one of the following values: * This variable can be one of the following values:
* "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" * "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape"
*
* Since SDL 2.0.22 this variable accepts a comma-separated list of values above.
*/ */
#define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION" #define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION"
@@ -1338,6 +1474,28 @@ extern "C" {
*/ */
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" #define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
/**
* \brief A variable controlling whether the Metal render driver select low power device over default one
*
* This variable can be set to the following values:
* "0" - Use the prefered OS device
* "1" - Select a low power one
*
* By default the prefered OS device is used.
*/
#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE"
/**
* \brief A variable controlling if VSYNC is automatically disable if doesn't reach the enough FPS
*
* This variable can be set to the following values:
* "0" - It will be using VSYNC as defined in the main flag. Default
* "1" - If VSYNC was previously enabled, then it will disable VSYNC if doesn't reach enough speed
*
* By default SDL does not enable the automatic VSYNC
*/
#define SDL_HINT_PS2_DYNAMIC_VSYNC "SDL_PS2_DYNAMIC_VSYNC"
/** /**
* \brief A variable to control whether the return key on the soft keyboard * \brief A variable to control whether the return key on the soft keyboard
* should hide the soft keyboard on Android and iOS. * should hide the soft keyboard on Android and iOS.
@@ -1370,7 +1528,7 @@ extern "C" {
* disabled. You should use a string that describes what your program is doing * disabled. You should use a string that describes what your program is doing
* (and, therefore, why the screensaver is disabled). For example, "Playing a * (and, therefore, why the screensaver is disabled). For example, "Playing a
* game" or "Watching a video". * game" or "Watching a video".
* *
* Setting this to "" or leaving it unset will have SDL use a reasonable * Setting this to "" or leaving it unset will have SDL use a reasonable
* default: "Playing a game" or something similar. * default: "Playing a game" or something similar.
* *
@@ -1384,13 +1542,13 @@ extern "C" {
* On some platforms, like Linux, a realtime priority thread may be subject to restrictions * On some platforms, like Linux, a realtime priority thread may be subject to restrictions
* that require special handling by the application. This hint exists to let SDL know that * that require special handling by the application. This hint exists to let SDL know that
* the app is prepared to handle said restrictions. * the app is prepared to handle said restrictions.
* *
* On Linux, SDL will apply the following configuration to any thread that becomes realtime: * On Linux, SDL will apply the following configuration to any thread that becomes realtime:
* * The SCHED_RESET_ON_FORK bit will be set on the scheduling policy, * * The SCHED_RESET_ON_FORK bit will be set on the scheduling policy,
* * An RLIMIT_RTTIME budget will be configured to the rtkit specified limit. * * An RLIMIT_RTTIME budget will be configured to the rtkit specified limit.
* * Exceeding this limit will result in the kernel sending SIGKILL to the app, * * Exceeding this limit will result in the kernel sending SIGKILL to the app,
* * Refer to the man pages for more information. * * Refer to the man pages for more information.
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - default platform specific behaviour * "0" - default platform specific behaviour
* "1" - Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling policy * "1" - Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling policy
@@ -1478,7 +1636,7 @@ extern "C" {
#define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK" #define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK"
/** /**
* \brief A variable controlling whether the screensaver is enabled. * \brief A variable controlling whether the screensaver is enabled.
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - Disable screensaver * "0" - Disable screensaver
@@ -1491,7 +1649,7 @@ extern "C" {
/** /**
* \brief Tell the video driver that we only want a double buffer. * \brief Tell the video driver that we only want a double buffer.
* *
* By default, most lowlevel 2D APIs will use a triple buffer scheme that * By default, most lowlevel 2D APIs will use a triple buffer scheme that
* wastes no CPU time on waiting for vsync after issuing a flip, but * wastes no CPU time on waiting for vsync after issuing a flip, but
* introduces a frame of latency. On the other hand, using a double buffer * introduces a frame of latency. On the other hand, using a double buffer
* scheme instead is recommended for cases where low latency is an important * scheme instead is recommended for cases where low latency is an important
@@ -1603,11 +1761,28 @@ extern "C" {
*/ */
#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION" #define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION"
/**
* \brief Enable or disable mouse pointer warp emulation, needed by some older games.
*
* When this hint is set, any SDL will emulate mouse warps using relative mouse mode.
* This is required for some older games (such as Source engine games), which warp the
* mouse to the centre of the screen rather than using relative mouse motion. Note that
* relative mouse mode may have different mouse acceleration behaviour than pointer warps.
*
* This variable can be set to the following values:
* "0" - All mouse warps fail, as mouse warping is not available under wayland.
* "1" - Some mouse warps will be emulated by forcing relative mouse mode.
*
* If not set, this is automatically enabled unless an application uses relative mouse
* mode directly.
*/
#define SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP "SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP"
/** /**
* \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). * \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p").
* *
* If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has * If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has
* SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly * SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly
* created SDL_Window: * created SDL_Window:
* *
* 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is * 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is
@@ -1673,13 +1848,13 @@ extern "C" {
/** /**
* \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used. * \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used.
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - Disable _NET_WM_BYPASS_COMPOSITOR * "0" - Disable _NET_WM_BYPASS_COMPOSITOR
* "1" - Enable _NET_WM_BYPASS_COMPOSITOR * "1" - Enable _NET_WM_BYPASS_COMPOSITOR
* *
* By default SDL will use _NET_WM_BYPASS_COMPOSITOR * By default SDL will use _NET_WM_BYPASS_COMPOSITOR
* *
*/ */
#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR" #define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
@@ -1813,7 +1988,29 @@ extern "C" {
#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" #define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING"
/** /**
* \brief A variable controlling whether the windows message loop is processed by SDL * \brief Controls whether menus can be opened with their keyboard shortcut (Alt+mnemonic).
*
* If the mnemonics are enabled, then menus can be opened by pressing the Alt
* key and the corresponding mnemonic (for example, Alt+F opens the File menu).
* However, in case an invalid mnemonic is pressed, Windows makes an audible
* beep to convey that nothing happened. This is true even if the window has
* no menu at all!
*
* Because most SDL applications don't have menus, and some want to use the Alt
* key for other purposes, SDL disables mnemonics (and the beeping) by default.
*
* Note: This also affects keyboard events: with mnemonics enabled, when a
* menu is opened from the keyboard, you will not receive a KEYUP event for
* the mnemonic key, and *might* not receive one for Alt.
*
* This variable can be set to the following values:
* "0" - Alt+mnemonic does nothing, no beeping. (default)
* "1" - Alt+mnemonic opens menus, invalid mnemonics produce a beep.
*/
#define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS "SDL_WINDOWS_ENABLE_MENU_MNEMONICS"
/**
* \brief A variable controlling whether the windows message loop is processed by SDL
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - The window message loop is not run * "0" - The window message loop is not run
@@ -1854,7 +2051,7 @@ extern "C" {
#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL" #define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"
/** /**
* \brief A variable to specify custom icon resource id from RC file on Windows platform * \brief A variable to specify custom icon resource id from RC file on Windows platform
*/ */
#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" #define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON"
#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" #define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
@@ -1893,16 +2090,16 @@ extern "C" {
* *
* This hint must be set before initializing the video subsystem. * This hint must be set before initializing the video subsystem.
* *
* The main purpose of declaring DPI awareness is to disable OS bitmap scaling of SDL windows on monitors with * The main purpose of declaring DPI awareness is to disable OS bitmap scaling of SDL windows on monitors with
* a DPI scale factor. * a DPI scale factor.
* *
* This hint is equivalent to requesting DPI awareness via external means (e.g. calling SetProcessDpiAwarenessContext) * This hint is equivalent to requesting DPI awareness via external means (e.g. calling SetProcessDpiAwarenessContext)
* and does not cause SDL to use a virtualized coordinate system, so it will generally give you 1 SDL coordinate = 1 pixel * and does not cause SDL to use a virtualized coordinate system, so it will generally give you 1 SDL coordinate = 1 pixel
* even on high-DPI displays. * even on high-DPI displays.
* *
* For more information, see: * For more information, see:
* https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows * https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "" - Do not change the DPI awareness (default). * "" - Do not change the DPI awareness (default).
* "unaware" - Declare the process as DPI unaware. (Windows 8.1 and later). * "unaware" - Declare the process as DPI unaware. (Windows 8.1 and later).
@@ -1920,16 +2117,16 @@ extern "C" {
/** /**
* \brief Uses DPI-scaled points as the SDL coordinate system on Windows. * \brief Uses DPI-scaled points as the SDL coordinate system on Windows.
* *
* This changes the SDL coordinate system units to be DPI-scaled points, rather than pixels everywhere. * This changes the SDL coordinate system units to be DPI-scaled points, rather than pixels everywhere.
* This means windows will be appropriately sized, even when created on high-DPI displays with scaling. * This means windows will be appropriately sized, even when created on high-DPI displays with scaling.
* *
* e.g. requesting a 640x480 window from SDL, on a display with 125% scaling in Windows display settings, * e.g. requesting a 640x480 window from SDL, on a display with 125% scaling in Windows display settings,
* will create a window with an 800x600 client area (in pixels). * will create a window with an 800x600 client area (in pixels).
* *
* Setting this to "1" implicitly requests process DPI awareness (setting SDL_WINDOWS_DPI_AWARENESS is unnecessary), * Setting this to "1" implicitly requests process DPI awareness (setting SDL_WINDOWS_DPI_AWARENESS is unnecessary),
* and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows. * and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows.
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - SDL coordinates equal Windows coordinates. No automatic window resizing when dragging * "0" - SDL coordinates equal Windows coordinates. No automatic window resizing when dragging
* between monitors with different scale factors (unless this is performed by * between monitors with different scale factors (unless this is performed by
@@ -1940,7 +2137,7 @@ extern "C" {
#define SDL_HINT_WINDOWS_DPI_SCALING "SDL_WINDOWS_DPI_SCALING" #define SDL_HINT_WINDOWS_DPI_SCALING "SDL_WINDOWS_DPI_SCALING"
/** /**
* \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) * "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc)
@@ -1951,7 +2148,7 @@ extern "C" {
#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" #define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"
/** /**
* \brief A variable controlling whether the window is activated when the SDL_ShowWindow function is called * \brief A variable controlling whether the window is activated when the SDL_ShowWindow function is called
* *
* This variable can be set to the following values: * This variable can be set to the following values:
* "0" - The window is activated when the SDL_ShowWindow function is called * "0" - The window is activated when the SDL_ShowWindow function is called
@@ -2314,6 +2511,21 @@ extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name,
*/ */
extern DECLSPEC SDL_bool SDLCALL SDL_ResetHint(const char *name); extern DECLSPEC SDL_bool SDLCALL SDL_ResetHint(const char *name);
/**
* Reset all hints to the default values.
*
* This will reset all hints to the value of the associated environment
* variable, or NULL if the environment isn't set. Callbacks will be called
* normally with this change.
*
* \since This function is available since SDL 2.26.0.
*
* \sa SDL_GetHint
* \sa SDL_SetHint
* \sa SDL_ResetHint
*/
extern DECLSPEC void SDLCALL SDL_ResetHints(void);
/** /**
* Get the value of a hint. * Get the value of a hint.
* *
@@ -2387,9 +2599,16 @@ extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name,
/** /**
* Clear all hints. * Clear all hints.
* *
* This function is automatically called during SDL_Quit(). * This function is automatically called during SDL_Quit(), and deletes all
* callbacks without calling them and frees all memory associated with hints.
* If you're calling this from application code you probably want to call
* SDL_ResetHints() instead.
*
* This function will be removed from the API the next time we rev the ABI.
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
*
* \sa SDL_ResetHints
*/ */
extern DECLSPEC void SDLCALL SDL_ClearHints(void); extern DECLSPEC void SDLCALL SDL_ClearHints(void);

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -44,6 +44,7 @@
#include <SDL2/SDL_stdinc.h> #include <SDL2/SDL_stdinc.h>
#include <SDL2/SDL_error.h> #include <SDL2/SDL_error.h>
#include <SDL2/SDL_guid.h> #include <SDL2/SDL_guid.h>
#include <SDL2/SDL_mutex.h>
#include <SDL2/begin_code.h> #include <SDL2/begin_code.h>
/* Set up for C function definitions, even when using C++ */ /* Set up for C function definitions, even when using C++ */
@@ -66,6 +67,9 @@ extern "C" {
/** /**
* The joystick structure used to identify an SDL joystick * The joystick structure used to identify an SDL joystick
*/ */
#ifdef SDL_THREAD_SAFETY_ANALYSIS
extern SDL_mutex *SDL_joystick_lock;
#endif
struct _SDL_Joystick; struct _SDL_Joystick;
typedef struct _SDL_Joystick SDL_Joystick; typedef struct _SDL_Joystick SDL_Joystick;
@@ -124,9 +128,14 @@ typedef enum
* the API functions that take a joystick index will be valid, and joystick * the API functions that take a joystick index will be valid, and joystick
* and game controller events will not be delivered. * and game controller events will not be delivered.
* *
* As of SDL 2.26.0, you can take the joystick lock around reinitializing the
* joystick subsystem, to prevent other threads from seeing joysticks in an
* uninitialized state. However, all open joysticks will be closed and SDL
* functions called with them will fail.
*
* \since This function is available since SDL 2.0.7. * \since This function is available since SDL 2.0.7.
*/ */
extern DECLSPEC void SDLCALL SDL_LockJoysticks(void); extern DECLSPEC void SDLCALL SDL_LockJoysticks(void) SDL_ACQUIRE(SDL_joystick_lock);
/** /**
@@ -141,7 +150,7 @@ extern DECLSPEC void SDLCALL SDL_LockJoysticks(void);
* *
* \since This function is available since SDL 2.0.7. * \since This function is available since SDL 2.0.7.
*/ */
extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void); extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void) SDL_RELEASE(SDL_joystick_lock);
/** /**
* Count the number of joysticks attached to the system. * Count the number of joysticks attached to the system.
@@ -279,13 +288,12 @@ extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_in
/** /**
* Get the instance ID of a joystick. * Get the instance ID of a joystick.
* *
* This can be called before any joysticks are opened. If the index is out of * This can be called before any joysticks are opened.
* range, this function will return -1.
* *
* \param device_index the index of the joystick to query (the N'th joystick * \param device_index the index of the joystick to query (the N'th joystick
* on the system * on the system
* \returns the instance id of the selected joystick. If called on an invalid * \returns the instance id of the selected joystick. If called on an invalid
* index, this function returns zero * index, this function returns -1.
* *
* \since This function is available since SDL 2.0.6. * \since This function is available since SDL 2.0.6.
*/ */
@@ -425,6 +433,10 @@ extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index);
* the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout,
* SDL_WaitEvent. * SDL_WaitEvent.
* *
* Note that when sending trigger axes, you should scale the value to the full
* range of Sint16. For example, a trigger at rest would have the value of
* `SDL_JOYSTICK_AXIS_MIN`.
*
* \param joystick the virtual joystick on which to set state. * \param joystick the virtual joystick on which to set state.
* \param axis the specific axis on the virtual joystick to set. * \param axis the specific axis on the virtual joystick to set.
* \param value the new value for the specified axis. * \param value the new value for the specified axis.
@@ -643,6 +655,25 @@ extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, ch
*/ */
extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID);
/**
* Get the device information encoded in a SDL_JoystickGUID structure
*
* \param guid the SDL_JoystickGUID you wish to get info about
* \param vendor A pointer filled in with the device VID, or 0 if not
* available
* \param product A pointer filled in with the device PID, or 0 if not
* available
* \param version A pointer filled in with the device version, or 0 if not
* available
* \param crc16 A pointer filled in with a CRC used to distinguish different
* products with the same VID/PID, or 0 if not available
*
* \since This function is available since SDL 2.26.0.
*
* \sa SDL_JoystickGetDeviceGUID
*/
extern DECLSPEC void SDLCALL SDL_GetJoystickGUIDInfo(SDL_JoystickGUID guid, Uint16 *vendor, Uint16 *product, Uint16 *version, Uint16 *crc16);
/** /**
* Get the status of a specified joystick. * Get the status of a specified joystick.
* *

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -40,7 +40,7 @@
* an SDLK_* constant for those keys that do not generate characters. * an SDLK_* constant for those keys that do not generate characters.
* *
* A special exception is the number keys at the top of the keyboard which * A special exception is the number keys at the top of the keyboard which
* always map to SDLK_0...SDLK_9, regardless of layout. * map to SDLK_0...SDLK_9 on AZERTY layouts.
*/ */
typedef Sint32 SDL_Keycode; typedef Sint32 SDL_Keycode;

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -108,6 +108,15 @@
void reset_IOP(); \ void reset_IOP(); \
void reset_IOP() {} void reset_IOP() {}
#elif defined(__3DS__)
/*
On N3DS, SDL provides a main function that sets up the screens
and storage.
If you provide this yourself, you may define SDL_MAIN_HANDLED
*/
#define SDL_MAIN_AVAILABLE
#endif #endif
#endif /* SDL_MAIN_HANDLED */ #endif /* SDL_MAIN_HANDLED */
@@ -254,6 +263,13 @@ extern DECLSPEC int SDLCALL SDL_UIKitRunApp(int argc, char *argv[], SDL_main_fun
*/ */
extern DECLSPEC int SDLCALL SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved); extern DECLSPEC int SDLCALL SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved);
/**
* Callback from the application to let the suspend continue.
*
* \since This function is available since SDL 2.28.0.
*/
extern DECLSPEC void SDLCALL SDL_GDKSuspendComplete(void);
#endif /* __GDK__ */ #endif /* __GDK__ */
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -82,7 +82,7 @@ extern DECLSPEC void SDLCALL SDL_Metal_DestroyView(SDL_MetalView view);
* *
* \since This function is available since SDL 2.0.14. * \since This function is available since SDL 2.0.14.
* *
* \sa SDL_MetalCreateView * \sa SDL_Metal_CreateView
*/ */
extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view); extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view);

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -198,13 +198,9 @@ extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y);
/** /**
* Set relative mouse mode. * Set relative mouse mode.
* *
* While the mouse is in relative mode, the cursor is hidden, and the driver * While the mouse is in relative mode, the cursor is hidden, the mouse
* will try to report continuous motion in the current window. Only relative * position is constrained to the window, and SDL will report continuous
* motion events will be delivered, the mouse position will not change. * relative mouse motion even if the mouse is at the edge of the window.
*
* Note that this function will not be able to provide continuous relative
* motion when used over Microsoft Remote Desktop, instead motion is limited
* to the bounds of the screen.
* *
* This function will flush any pending mouse motion. * This function will flush any pending mouse motion.
* *
@@ -389,6 +385,9 @@ extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void);
/** /**
* Get the default cursor. * Get the default cursor.
* *
* You do not have to call SDL_FreeCursor() on the return value, but it is
* safe to do so.
*
* \returns the default cursor on success or NULL on failure. * \returns the default cursor on success or NULL on failure.
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -31,6 +31,80 @@
#include <SDL2/SDL_stdinc.h> #include <SDL2/SDL_stdinc.h>
#include <SDL2/SDL_error.h> #include <SDL2/SDL_error.h>
/******************************************************************************/
/* Enable thread safety attributes only with clang.
* The attributes can be safely erased when compiling with other compilers.
*/
#if defined(SDL_THREAD_SAFETY_ANALYSIS) && \
defined(__clang__) && (!defined(SWIG))
#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x))
#else
#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) /* no-op */
#endif
#define SDL_CAPABILITY(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(capability(x))
#define SDL_SCOPED_CAPABILITY \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)
#define SDL_GUARDED_BY(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x))
#define SDL_PT_GUARDED_BY(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x))
#define SDL_ACQUIRED_BEFORE(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(x))
#define SDL_ACQUIRED_AFTER(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(x))
#define SDL_REQUIRES(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(x))
#define SDL_REQUIRES_SHARED(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(x))
#define SDL_ACQUIRE(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(x))
#define SDL_ACQUIRE_SHARED(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(x))
#define SDL_RELEASE(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_capability(x))
#define SDL_RELEASE_SHARED(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(x))
#define SDL_RELEASE_GENERIC(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_generic_capability(x))
#define SDL_TRY_ACQUIRE(x, y) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(x, y))
#define SDL_TRY_ACQUIRE_SHARED(x, y) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(x, y))
#define SDL_EXCLUDES(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(x))
#define SDL_ASSERT_CAPABILITY(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x))
#define SDL_ASSERT_SHARED_CAPABILITY(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x))
#define SDL_RETURN_CAPABILITY(x) \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x))
#define SDL_NO_THREAD_SAFETY_ANALYSIS \
SDL_THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis)
/******************************************************************************/
#include <SDL2/begin_code.h> #include <SDL2/begin_code.h>
/* Set up for C function definitions, even when using C++ */ /* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus #ifdef __cplusplus
@@ -96,7 +170,7 @@ extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void);
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
*/ */
extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex); extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex) SDL_ACQUIRE(mutex);
#define SDL_mutexP(m) SDL_LockMutex(m) #define SDL_mutexP(m) SDL_LockMutex(m)
/** /**
@@ -119,7 +193,7 @@ extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex);
* \sa SDL_LockMutex * \sa SDL_LockMutex
* \sa SDL_UnlockMutex * \sa SDL_UnlockMutex
*/ */
extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex); extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex) SDL_TRY_ACQUIRE(0, mutex);
/** /**
* Unlock the mutex. * Unlock the mutex.
@@ -138,7 +212,7 @@ extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex);
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
*/ */
extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex); extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex) SDL_RELEASE(mutex);
#define SDL_mutexV(m) SDL_UnlockMutex(m) #define SDL_mutexV(m) SDL_UnlockMutex(m)
/** /**
@@ -276,7 +350,7 @@ extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem);
* successful it will atomically decrement the semaphore value. * successful it will atomically decrement the semaphore value.
* *
* \param sem the semaphore to wait on * \param sem the semaphore to wait on
* \param ms the length of the timeout, in milliseconds * \param timeout the length of the timeout, in milliseconds
* \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not
* succeed in the allotted time, or a negative error code on failure; * succeed in the allotted time, or a negative error code on failure;
* call SDL_GetError() for more information. * call SDL_GetError() for more information.
@@ -290,7 +364,7 @@ extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem);
* \sa SDL_SemValue * \sa SDL_SemValue
* \sa SDL_SemWait * \sa SDL_SemWait
*/ */
extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms); extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout);
/** /**
* Atomically increment a semaphore's value and wake waiting threads. * Atomically increment a semaphore's value and wake waiting threads.

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -2107,57 +2107,6 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh
/*
* ???. GL_MESA_packed_depth_stencil
* XXX obsolete
*/
#ifndef GL_MESA_packed_depth_stencil
#define GL_MESA_packed_depth_stencil 1
#define GL_DEPTH_STENCIL_MESA 0x8750
#define GL_UNSIGNED_INT_24_8_MESA 0x8751
#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752
#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753
#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754
#endif /* GL_MESA_packed_depth_stencil */
#ifndef GL_ATI_blend_equation_separate
#define GL_ATI_blend_equation_separate 1
#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D
GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA );
typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA);
#endif /* GL_ATI_blend_equation_separate */
/* GL_OES_EGL_image */
#ifndef GL_OES_EGL_image
typedef void* GLeglImageOES;
#endif
#ifndef GL_OES_EGL_image
#define GL_OES_EGL_image 1
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
#endif
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
#endif
/**
** NOTE!!!!! If you add new functions to this file, or update
** glext.h be sure to regenerate the gl_mangle.h file. See comments
** in that file for details.
**/
/********************************************************************** /**********************************************************************
* Begin system-specific stuff * Begin system-specific stuff
*/ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,56 +1,70 @@
#ifndef __gl2_h_ #ifndef __gles2_gl2_h_
#define __gl2_h_ #define __gles2_gl2_h_ 1
/* $Revision: 20555 $ on $Date:: 2013-02-12 14:32:47 -0800 #$ */
/*#include <GLES2/gl2platform.h>*/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* /*
* This document is licensed under the SGI Free Software B License Version ** Copyright 2013-2020 The Khronos Group Inc.
* 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . ** SPDX-License-Identifier: MIT
**
** This header is generated from the Khronos OpenGL / OpenGL ES XML
** API Registry. The current version of the Registry, generator scripts
** used to make the header, and the header can be found at
** https://github.com/KhronosGroup/OpenGL-Registry
*/
/*#include <GLES2/gl2platform.h>*/
#ifndef GL_APIENTRYP
#define GL_APIENTRYP GL_APIENTRY*
#endif
#ifndef GL_GLES_PROTOTYPES
#define GL_GLES_PROTOTYPES 1
#endif
/* Generated on date 20220530 */
/* Generated C header for:
* API: gles2
* Profile: common
* Versions considered: 2\.[0-9]
* Versions emitted: .*
* Default extensions included: None
* Additional extensions included: _nomatch_^
* Extensions removed: _nomatch_^
*/ */
/*------------------------------------------------------------------------- #ifndef GL_ES_VERSION_2_0
* Data type definitions #define GL_ES_VERSION_2_0 1
*-----------------------------------------------------------------------*/ /*#include <KHR/khrplatform.h>*/
typedef khronos_int8_t GLbyte;
typedef void GLvoid; typedef khronos_float_t GLclampf;
typedef char GLchar; typedef khronos_int32_t GLfixed;
typedef unsigned int GLenum; typedef khronos_int16_t GLshort;
typedef unsigned char GLboolean; typedef khronos_uint16_t GLushort;
typedef unsigned int GLbitfield; typedef void GLvoid;
typedef khronos_int8_t GLbyte; typedef struct __GLsync *GLsync;
typedef short GLshort; typedef khronos_int64_t GLint64;
typedef int GLint; typedef khronos_uint64_t GLuint64;
typedef int GLsizei; typedef unsigned int GLenum;
typedef khronos_uint8_t GLubyte; typedef unsigned int GLuint;
typedef unsigned short GLushort; typedef char GLchar;
typedef unsigned int GLuint; typedef khronos_float_t GLfloat;
typedef khronos_float_t GLfloat; typedef khronos_ssize_t GLsizeiptr;
typedef khronos_float_t GLclampf;
typedef khronos_int32_t GLfixed;
/* GL types for handling large vertex buffer objects */
typedef khronos_intptr_t GLintptr; typedef khronos_intptr_t GLintptr;
typedef khronos_ssize_t GLsizeiptr; typedef unsigned int GLbitfield;
typedef int GLint;
/* OpenGL ES core versions */ typedef unsigned char GLboolean;
#define GL_ES_VERSION_2_0 1 typedef int GLsizei;
typedef khronos_uint8_t GLubyte;
/* ClearBufferMask */
#define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_DEPTH_BUFFER_BIT 0x00000100
#define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_STENCIL_BUFFER_BIT 0x00000400
#define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_COLOR_BUFFER_BIT 0x00004000
/* Boolean */
#define GL_FALSE 0 #define GL_FALSE 0
#define GL_TRUE 1 #define GL_TRUE 1
/* BeginMode */
#define GL_POINTS 0x0000 #define GL_POINTS 0x0000
#define GL_LINES 0x0001 #define GL_LINES 0x0001
#define GL_LINE_LOOP 0x0002 #define GL_LINE_LOOP 0x0002
@@ -58,18 +72,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_TRIANGLES 0x0004 #define GL_TRIANGLES 0x0004
#define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_STRIP 0x0005
#define GL_TRIANGLE_FAN 0x0006 #define GL_TRIANGLE_FAN 0x0006
/* AlphaFunction (not supported in ES20) */
/* GL_NEVER */
/* GL_LESS */
/* GL_EQUAL */
/* GL_LEQUAL */
/* GL_GREATER */
/* GL_NOTEQUAL */
/* GL_GEQUAL */
/* GL_ALWAYS */
/* BlendingFactorDest */
#define GL_ZERO 0 #define GL_ZERO 0
#define GL_ONE 1 #define GL_ONE 1
#define GL_SRC_COLOR 0x0300 #define GL_SRC_COLOR 0x0300
@@ -78,29 +80,15 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_ONE_MINUS_SRC_ALPHA 0x0303
#define GL_DST_ALPHA 0x0304 #define GL_DST_ALPHA 0x0304
#define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_ONE_MINUS_DST_ALPHA 0x0305
/* BlendingFactorSrc */
/* GL_ZERO */
/* GL_ONE */
#define GL_DST_COLOR 0x0306 #define GL_DST_COLOR 0x0306
#define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_ONE_MINUS_DST_COLOR 0x0307
#define GL_SRC_ALPHA_SATURATE 0x0308 #define GL_SRC_ALPHA_SATURATE 0x0308
/* GL_SRC_ALPHA */
/* GL_ONE_MINUS_SRC_ALPHA */
/* GL_DST_ALPHA */
/* GL_ONE_MINUS_DST_ALPHA */
/* BlendEquationSeparate */
#define GL_FUNC_ADD 0x8006 #define GL_FUNC_ADD 0x8006
#define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION 0x8009
#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ #define GL_BLEND_EQUATION_RGB 0x8009
#define GL_BLEND_EQUATION_ALPHA 0x883D #define GL_BLEND_EQUATION_ALPHA 0x883D
/* BlendSubtract */
#define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_SUBTRACT 0x800A
#define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_FUNC_REVERSE_SUBTRACT 0x800B
/* Separate Blend Functions */
#define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_DST_RGB 0x80C8
#define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_SRC_RGB 0x80C9
#define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_DST_ALPHA 0x80CA
@@ -110,38 +98,19 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_CONSTANT_ALPHA 0x8003 #define GL_CONSTANT_ALPHA 0x8003
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
#define GL_BLEND_COLOR 0x8005 #define GL_BLEND_COLOR 0x8005
/* Buffer Objects */
#define GL_ARRAY_BUFFER 0x8892 #define GL_ARRAY_BUFFER 0x8892
#define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ELEMENT_ARRAY_BUFFER 0x8893
#define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ARRAY_BUFFER_BINDING 0x8894
#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
#define GL_STREAM_DRAW 0x88E0 #define GL_STREAM_DRAW 0x88E0
#define GL_STATIC_DRAW 0x88E4 #define GL_STATIC_DRAW 0x88E4
#define GL_DYNAMIC_DRAW 0x88E8 #define GL_DYNAMIC_DRAW 0x88E8
#define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_SIZE 0x8764
#define GL_BUFFER_USAGE 0x8765 #define GL_BUFFER_USAGE 0x8765
#define GL_CURRENT_VERTEX_ATTRIB 0x8626 #define GL_CURRENT_VERTEX_ATTRIB 0x8626
/* CullFaceMode */
#define GL_FRONT 0x0404 #define GL_FRONT 0x0404
#define GL_BACK 0x0405 #define GL_BACK 0x0405
#define GL_FRONT_AND_BACK 0x0408 #define GL_FRONT_AND_BACK 0x0408
/* DepthFunction */
/* GL_NEVER */
/* GL_LESS */
/* GL_EQUAL */
/* GL_LEQUAL */
/* GL_GREATER */
/* GL_NOTEQUAL */
/* GL_GEQUAL */
/* GL_ALWAYS */
/* EnableCap */
#define GL_TEXTURE_2D 0x0DE1 #define GL_TEXTURE_2D 0x0DE1
#define GL_CULL_FACE 0x0B44 #define GL_CULL_FACE 0x0B44
#define GL_BLEND 0x0BE2 #define GL_BLEND 0x0BE2
@@ -152,19 +121,13 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_POLYGON_OFFSET_FILL 0x8037
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
#define GL_SAMPLE_COVERAGE 0x80A0 #define GL_SAMPLE_COVERAGE 0x80A0
/* ErrorCode */
#define GL_NO_ERROR 0 #define GL_NO_ERROR 0
#define GL_INVALID_ENUM 0x0500 #define GL_INVALID_ENUM 0x0500
#define GL_INVALID_VALUE 0x0501 #define GL_INVALID_VALUE 0x0501
#define GL_INVALID_OPERATION 0x0502 #define GL_INVALID_OPERATION 0x0502
#define GL_OUT_OF_MEMORY 0x0505 #define GL_OUT_OF_MEMORY 0x0505
/* FrontFaceDirection */
#define GL_CW 0x0900 #define GL_CW 0x0900
#define GL_CCW 0x0901 #define GL_CCW 0x0901
/* GetPName */
#define GL_LINE_WIDTH 0x0B21 #define GL_LINE_WIDTH 0x0B21
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_POINT_SIZE_RANGE 0x846D
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
@@ -191,7 +154,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5
#define GL_VIEWPORT 0x0BA2 #define GL_VIEWPORT 0x0BA2
#define GL_SCISSOR_BOX 0x0C10 #define GL_SCISSOR_BOX 0x0C10
/* GL_SCISSOR_TEST */
#define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_CLEAR_VALUE 0x0C22
#define GL_COLOR_WRITEMASK 0x0C23 #define GL_COLOR_WRITEMASK 0x0C23
#define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_UNPACK_ALIGNMENT 0x0CF5
@@ -206,32 +168,18 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_DEPTH_BITS 0x0D56 #define GL_DEPTH_BITS 0x0D56
#define GL_STENCIL_BITS 0x0D57 #define GL_STENCIL_BITS 0x0D57
#define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_UNITS 0x2A00
/* GL_POLYGON_OFFSET_FILL */
#define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_POLYGON_OFFSET_FACTOR 0x8038
#define GL_TEXTURE_BINDING_2D 0x8069 #define GL_TEXTURE_BINDING_2D 0x8069
#define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLE_BUFFERS 0x80A8
#define GL_SAMPLES 0x80A9 #define GL_SAMPLES 0x80A9
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
/* GetTextureParameter */
/* GL_TEXTURE_MAG_FILTER */
/* GL_TEXTURE_MIN_FILTER */
/* GL_TEXTURE_WRAP_S */
/* GL_TEXTURE_WRAP_T */
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
/* HintMode */
#define GL_DONT_CARE 0x1100 #define GL_DONT_CARE 0x1100
#define GL_FASTEST 0x1101 #define GL_FASTEST 0x1101
#define GL_NICEST 0x1102 #define GL_NICEST 0x1102
#define GL_GENERATE_MIPMAP_HINT 0x8192
/* HintTarget */
#define GL_GENERATE_MIPMAP_HINT 0x8192
/* DataType */
#define GL_BYTE 0x1400 #define GL_BYTE 0x1400
#define GL_UNSIGNED_BYTE 0x1401 #define GL_UNSIGNED_BYTE 0x1401
#define GL_SHORT 0x1402 #define GL_SHORT 0x1402
@@ -240,44 +188,35 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_UNSIGNED_INT 0x1405 #define GL_UNSIGNED_INT 0x1405
#define GL_FLOAT 0x1406 #define GL_FLOAT 0x1406
#define GL_FIXED 0x140C #define GL_FIXED 0x140C
/* PixelFormat */
#define GL_DEPTH_COMPONENT 0x1902 #define GL_DEPTH_COMPONENT 0x1902
#define GL_ALPHA 0x1906 #define GL_ALPHA 0x1906
#define GL_RGB 0x1907 #define GL_RGB 0x1907
#define GL_RGBA 0x1908 #define GL_RGBA 0x1908
#define GL_LUMINANCE 0x1909 #define GL_LUMINANCE 0x1909
#define GL_LUMINANCE_ALPHA 0x190A #define GL_LUMINANCE_ALPHA 0x190A
/* PixelType */
/* GL_UNSIGNED_BYTE */
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
#define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
#define GL_FRAGMENT_SHADER 0x8B30
/* Shaders */ #define GL_VERTEX_SHADER 0x8B31
#define GL_FRAGMENT_SHADER 0x8B30 #define GL_MAX_VERTEX_ATTRIBS 0x8869
#define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
#define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VARYING_VECTORS 0x8DFC
#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
#define GL_MAX_VARYING_VECTORS 0x8DFC
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
#define GL_SHADER_TYPE 0x8B4F #define GL_SHADER_TYPE 0x8B4F
#define GL_DELETE_STATUS 0x8B80 #define GL_DELETE_STATUS 0x8B80
#define GL_LINK_STATUS 0x8B82 #define GL_LINK_STATUS 0x8B82
#define GL_VALIDATE_STATUS 0x8B83 #define GL_VALIDATE_STATUS 0x8B83
#define GL_ATTACHED_SHADERS 0x8B85 #define GL_ATTACHED_SHADERS 0x8B85
#define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORMS 0x8B86
#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
#define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTES 0x8B89
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
#define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_SHADING_LANGUAGE_VERSION 0x8B8C
#define GL_CURRENT_PROGRAM 0x8B8D #define GL_CURRENT_PROGRAM 0x8B8D
/* StencilFunction */
#define GL_NEVER 0x0200 #define GL_NEVER 0x0200
#define GL_LESS 0x0201 #define GL_LESS 0x0201
#define GL_EQUAL 0x0202 #define GL_EQUAL 0x0202
@@ -286,9 +225,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_NOTEQUAL 0x0205 #define GL_NOTEQUAL 0x0205
#define GL_GEQUAL 0x0206 #define GL_GEQUAL 0x0206
#define GL_ALWAYS 0x0207 #define GL_ALWAYS 0x0207
/* StencilOp */
/* GL_ZERO */
#define GL_KEEP 0x1E00 #define GL_KEEP 0x1E00
#define GL_REPLACE 0x1E01 #define GL_REPLACE 0x1E01
#define GL_INCR 0x1E02 #define GL_INCR 0x1E02
@@ -296,35 +232,21 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_INVERT 0x150A #define GL_INVERT 0x150A
#define GL_INCR_WRAP 0x8507 #define GL_INCR_WRAP 0x8507
#define GL_DECR_WRAP 0x8508 #define GL_DECR_WRAP 0x8508
/* StringName */
#define GL_VENDOR 0x1F00 #define GL_VENDOR 0x1F00
#define GL_RENDERER 0x1F01 #define GL_RENDERER 0x1F01
#define GL_VERSION 0x1F02 #define GL_VERSION 0x1F02
#define GL_EXTENSIONS 0x1F03 #define GL_EXTENSIONS 0x1F03
/* TextureMagFilter */
#define GL_NEAREST 0x2600 #define GL_NEAREST 0x2600
#define GL_LINEAR 0x2601 #define GL_LINEAR 0x2601
/* TextureMinFilter */
/* GL_NEAREST */
/* GL_LINEAR */
#define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_NEAREST_MIPMAP_NEAREST 0x2700
#define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_LINEAR_MIPMAP_NEAREST 0x2701
#define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_NEAREST_MIPMAP_LINEAR 0x2702
#define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_LINEAR_MIPMAP_LINEAR 0x2703
/* TextureParameterName */
#define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MAG_FILTER 0x2800
#define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_MIN_FILTER 0x2801
#define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_S 0x2802
#define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE_WRAP_T 0x2803
/* TextureTarget */
/* GL_TEXTURE_2D */
#define GL_TEXTURE 0x1702 #define GL_TEXTURE 0x1702
#define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_CUBE_MAP 0x8513
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
@@ -334,8 +256,6 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
/* TextureUnit */
#define GL_TEXTURE0 0x84C0 #define GL_TEXTURE0 0x84C0
#define GL_TEXTURE1 0x84C1 #define GL_TEXTURE1 0x84C1
#define GL_TEXTURE2 0x84C2 #define GL_TEXTURE2 0x84C2
@@ -369,13 +289,9 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_TEXTURE30 0x84DE #define GL_TEXTURE30 0x84DE
#define GL_TEXTURE31 0x84DF #define GL_TEXTURE31 0x84DF
#define GL_ACTIVE_TEXTURE 0x84E0 #define GL_ACTIVE_TEXTURE 0x84E0
/* TextureWrapMode */
#define GL_REPEAT 0x2901 #define GL_REPEAT 0x2901
#define GL_CLAMP_TO_EDGE 0x812F #define GL_CLAMP_TO_EDGE 0x812F
#define GL_MIRRORED_REPEAT 0x8370 #define GL_MIRRORED_REPEAT 0x8370
/* Uniform Types */
#define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC2 0x8B50
#define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC3 0x8B51
#define GL_FLOAT_VEC4 0x8B52 #define GL_FLOAT_VEC4 0x8B52
@@ -391,48 +307,34 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_FLOAT_MAT4 0x8B5C #define GL_FLOAT_MAT4 0x8B5C
#define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_2D 0x8B5E
#define GL_SAMPLER_CUBE 0x8B60 #define GL_SAMPLER_CUBE 0x8B60
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
/* Vertex Arrays */ #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
/* Read Format */
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
/* Shader Source */
#define GL_COMPILE_STATUS 0x8B81 #define GL_COMPILE_STATUS 0x8B81
#define GL_INFO_LOG_LENGTH 0x8B84 #define GL_INFO_LOG_LENGTH 0x8B84
#define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_SOURCE_LENGTH 0x8B88
#define GL_SHADER_COMPILER 0x8DFA #define GL_SHADER_COMPILER 0x8DFA
/* Shader Binary */
#define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_SHADER_BINARY_FORMATS 0x8DF8
#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
/* Shader Precision-Specified Types */
#define GL_LOW_FLOAT 0x8DF0 #define GL_LOW_FLOAT 0x8DF0
#define GL_MEDIUM_FLOAT 0x8DF1 #define GL_MEDIUM_FLOAT 0x8DF1
#define GL_HIGH_FLOAT 0x8DF2 #define GL_HIGH_FLOAT 0x8DF2
#define GL_LOW_INT 0x8DF3 #define GL_LOW_INT 0x8DF3
#define GL_MEDIUM_INT 0x8DF4 #define GL_MEDIUM_INT 0x8DF4
#define GL_HIGH_INT 0x8DF5 #define GL_HIGH_INT 0x8DF5
/* Framebuffer Object. */
#define GL_FRAMEBUFFER 0x8D40 #define GL_FRAMEBUFFER 0x8D40
#define GL_RENDERBUFFER 0x8D41 #define GL_RENDERBUFFER 0x8D41
#define GL_RGBA4 0x8056 #define GL_RGBA4 0x8056
#define GL_RGB5_A1 0x8057 #define GL_RGB5_A1 0x8057
#define GL_RGB565 0x8D62 #define GL_RGB565 0x8D62
#define GL_DEPTH_COMPONENT16 0x81A5 #define GL_DEPTH_COMPONENT16 0x81A5
#define GL_STENCIL_INDEX8 0x8D48 #define GL_STENCIL_INDEX8 0x8D48
#define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_WIDTH 0x8D42
#define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_HEIGHT 0x8D43
#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
@@ -442,180 +344,313 @@ typedef khronos_ssize_t GLsizeiptr;
#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
#define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_COLOR_ATTACHMENT0 0x8CE0
#define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_DEPTH_ATTACHMENT 0x8D00
#define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_STENCIL_ATTACHMENT 0x8D20
#define GL_NONE 0 #define GL_NONE 0
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
#define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_FRAMEBUFFER_BINDING 0x8CA6
#define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_RENDERBUFFER_BINDING 0x8CA7
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
/*------------------------------------------------------------------------- typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
* GL core functions. typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
*-----------------------------------------------------------------------*/ typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture);
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor);
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode ); typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask);
GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s);
GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
GL_APICALL void GL_APIENTRY glClearStencil (GLint s); typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode);
GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures);
GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func);
GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag);
GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap);
GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count);
GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices);
GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap);
GL_APICALL void GL_APIENTRY glDisable (GLenum cap); typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void);
GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void);
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
GL_APICALL void GL_APIENTRY glEnable (GLenum cap); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode);
GL_APICALL void GL_APIENTRY glFinish (void); typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
GL_APICALL void GL_APIENTRY glFlush (void); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures);
GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data);
GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void);
GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data);
GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data);
GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
GL_APICALL GLenum GL_APIENTRY glGetError (void); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name);
GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode);
GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture);
GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width);
GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param);
GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units);
GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length);
GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask);
GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask);
GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass);
GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param);
GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x); typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x); typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); #if GL_GLES_PROTOTYPES
GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode);
GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target);
GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d);
GL_APICALL void GL_APIENTRY glClearStencil (GLint s);
GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader);
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
GL_APICALL GLuint GL_APIENTRY glCreateProgram (void);
GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type);
GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program);
GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader);
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f);
GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index);
GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index);
GL_APICALL void GL_APIENTRY glFinish (void);
GL_APICALL void GL_APIENTRY glFlush (void);
GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode);
GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);
GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data);
GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
GL_APICALL GLenum GL_APIENTRY glGetError (void);
GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data);
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name);
GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode);
GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program);
GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader);
GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture);
GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width);
GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program);
GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void);
GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length);
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0);
GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0);
GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
GL_APICALL void GL_APIENTRY glUseProgram (GLuint program);
GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program);
GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
#endif
#endif /* GL_ES_VERSION_2_0 */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __gl2_h_ */ #endif

View File

@@ -1,20 +1,17 @@
#ifndef __gl2platform_h_ #ifndef __gl2platform_h_
#define __gl2platform_h_ #define __gl2platform_h_
/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
/* /*
* This document is licensed under the SGI Free Software B License Version ** Copyright 2017-2020 The Khronos Group Inc.
* 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . ** SPDX-License-Identifier: Apache-2.0
*/ */
/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h /* Platform-specific types and definitions for OpenGL ES 2.X gl2.h
* *
* Adopters may modify khrplatform.h and this file to suit their platform. * Adopters may modify khrplatform.h and this file to suit their platform.
* You are encouraged to submit all modifications to the Khronos group so that * Please contribute modifications back to Khronos as pull requests on the
* they can be included in future versions of this file. Please submit changes * public github repository:
* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) * https://github.com/KhronosGroup/OpenGL-Registry
* by filing a bug against product "OpenGL-ES" component "Registry".
*/ */
/*#include <KHR/khrplatform.h>*/ /*#include <KHR/khrplatform.h>*/

View File

@@ -2,7 +2,7 @@
#define __khrplatform_h_ #define __khrplatform_h_
/* /*
** Copyright (c) 2008-2009 The Khronos Group Inc. ** Copyright (c) 2008-2018 The Khronos Group Inc.
** **
** Permission is hereby granted, free of charge, to any person obtaining a ** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the ** copy of this software and/or associated documentation files (the
@@ -26,18 +26,16 @@
/* Khronos platform-specific types and definitions. /* Khronos platform-specific types and definitions.
* *
* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ * The master copy of khrplatform.h is maintained in the Khronos EGL
* Registry repository at https://github.com/KhronosGroup/EGL-Registry
* The last semantic modification to khrplatform.h was at commit ID:
* 67a3e0864c2d75ea5287b9f3d2eb74a745936692
* *
* Adopters may modify this file to suit their platform. Adopters are * Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos * encouraged to submit platform specific modifications to the Khronos
* group so that they can be included in future versions of this file. * group so that they can be included in future versions of this file.
* Please submit changes by sending them to the public Khronos Bugzilla * Please submit changes by filing pull requests or issues on
* (http://khronos.org/bugzilla) by filing a bug against product * the EGL Registry repository linked above.
* "Khronos (general)" component "Registry".
*
* A predefined template which fills in some of the bug fields can be
* reached using http://tinyurl.com/khrplatform-h-bugreport, but you
* must create a Bugzilla login first.
* *
* *
* See the Implementer's Guidelines for information about where this file * See the Implementer's Guidelines for information about where this file
@@ -92,15 +90,25 @@
* int arg2) KHRONOS_APIATTRIBUTES; * int arg2) KHRONOS_APIATTRIBUTES;
*/ */
#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
# define KHRONOS_STATIC 1
#endif
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Definition of KHRONOS_APICALL * Definition of KHRONOS_APICALL
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
* This precedes the return type of the function in the function prototype. * This precedes the return type of the function in the function prototype.
*/ */
#if defined(_WIN32) && !defined(__SCITECH_SNAP__) #if defined(KHRONOS_STATIC)
/* If the preprocessor constant KHRONOS_STATIC is defined, make the
* header compatible with static linking. */
# define KHRONOS_APICALL
#elif defined(_WIN32)
# define KHRONOS_APICALL __declspec(dllimport) # define KHRONOS_APICALL __declspec(dllimport)
#elif defined (__SYMBIAN32__) #elif defined (__SYMBIAN32__)
# define KHRONOS_APICALL IMPORT_C # define KHRONOS_APICALL IMPORT_C
#elif defined(__ANDROID__)
# define KHRONOS_APICALL __attribute__((visibility("default")))
#else #else
# define KHRONOS_APICALL # define KHRONOS_APICALL
#endif #endif
@@ -145,6 +153,20 @@ typedef int64_t khronos_int64_t;
typedef uint64_t khronos_uint64_t; typedef uint64_t khronos_uint64_t;
#define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_INT64 1
#define KHRONOS_SUPPORT_FLOAT 1 #define KHRONOS_SUPPORT_FLOAT 1
/*
* To support platform where unsigned long cannot be used interchangeably with
* inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
* Ideally, we could just use (u)intptr_t everywhere, but this could result in
* ABI breakage if khronos_uintptr_t is changed from unsigned long to
* unsigned long long or similar (this results in different C++ name mangling).
* To avoid changes for existing platforms, we restrict usage of intptr_t to
* platforms where the size of a pointer is larger than the size of long.
*/
#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
#define KHRONOS_USE_INTPTR_T
#endif
#endif
#elif defined(__VMS ) || defined(__sgi) #elif defined(__VMS ) || defined(__sgi)
@@ -223,18 +245,25 @@ typedef signed short int khronos_int16_t;
typedef unsigned short int khronos_uint16_t; typedef unsigned short int khronos_uint16_t;
/* /*
* Types that differ between LLP64 and LP64 architectures - in LLP64, * Types that differ between LLP64 and LP64 architectures - in LLP64,
* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
* to be the only LLP64 architecture in current use. * to be the only LLP64 architecture in current use.
*/ */
#ifdef _WIN64 #ifdef KHRONOS_USE_INTPTR_T
typedef intptr_t khronos_intptr_t;
typedef uintptr_t khronos_uintptr_t;
#elif defined(_WIN64)
typedef signed long long int khronos_intptr_t; typedef signed long long int khronos_intptr_t;
typedef unsigned long long int khronos_uintptr_t; typedef unsigned long long int khronos_uintptr_t;
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else #else
typedef signed long int khronos_intptr_t; typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t; typedef unsigned long int khronos_uintptr_t;
#endif
#if defined(_WIN64)
typedef signed long long int khronos_ssize_t;
typedef unsigned long long int khronos_usize_t;
#else
typedef signed long int khronos_ssize_t; typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t; typedef unsigned long int khronos_usize_t;
#endif #endif

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -221,6 +221,11 @@
#define __VITA__ 1 #define __VITA__ 1
#endif #endif
#if defined(__3DS__)
#undef __3DS__
#define __3DS__ 1
#endif
#include <SDL2/begin_code.h> #include <SDL2/begin_code.h>
/* Set up for C function definitions, even when using C++ */ /* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -48,7 +48,6 @@ typedef enum
SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */ SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */
} SDL_PowerState; } SDL_PowerState;
/** /**
* Get the current power supply details. * Get the current power supply details.
* *
@@ -65,17 +64,17 @@ typedef enum
* It's possible a platform can only report battery percentage or time left * It's possible a platform can only report battery percentage or time left
* but not both. * but not both.
* *
* \param secs seconds of battery life left, you can pass a NULL here if you * \param seconds seconds of battery life left, you can pass a NULL here if
* don't care, will return -1 if we can't determine a value, or * you don't care, will return -1 if we can't determine a
* we're not running on a battery * value, or we're not running on a battery
* \param pct percentage of battery life left, between 0 and 100, you can pass * \param percent percentage of battery life left, between 0 and 100, you can
* a NULL here if you don't care, will return -1 if we can't * pass a NULL here if you don't care, will return -1 if we
* determine a value, or we're not running on a battery * can't determine a value, or we're not running on a battery
* \returns an SDL_PowerState enum representing the current battery state. * \returns an SDL_PowerState enum representing the current battery state.
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
*/ */
extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct); extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *seconds, int *percent);
/* Ends C function definitions when using C++ */ /* Ends C function definitions when using C++ */
#ifdef __cplusplus #ifdef __cplusplus

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -1731,6 +1731,11 @@ extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer,
* *
* \param renderer the rendering context * \param renderer the rendering context
* *
* \threadsafety You may only call this function on the main thread. If this
* happens to work on a background thread on any given platform
* or backend, it's purely by luck and you should not rely on it
* to work next time.
*
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
* *
* \sa SDL_RenderClear * \sa SDL_RenderClear
@@ -1765,6 +1770,9 @@ extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture);
/** /**
* Destroy the rendering context for a window and free associated textures. * Destroy the rendering context for a window and free associated textures.
* *
* If `renderer` is NULL, this function will return immediately after setting
* the SDL error message to "Invalid renderer". See SDL_GetError().
*
* \param renderer the rendering context * \param renderer the rendering context
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
@@ -1882,7 +1890,7 @@ extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer);
* Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give * Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give
* SDL a drawable to render to, which might happen if the window is * SDL a drawable to render to, which might happen if the window is
* hidden/minimized/offscreen. This doesn't apply to command encoders for * hidden/minimized/offscreen. This doesn't apply to command encoders for
* render targets, just the window's backbacker. Check your return values! * render targets, just the window's backbuffer. Check your return values!
* *
* \param renderer The renderer to query * \param renderer The renderer to query
* \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the * \returns an `id<MTLRenderCommandEncoder>` on success, or NULL if the

View File

@@ -1,2 +1,7 @@
#define SDL_REVISION "https://github.com/libsdl-org/SDL.git@55b03c7493a7abed33cf803d1380a40fa8af903f" /* Generated by updaterev.sh, do not edit */
#ifdef SDL_VENDOR_INFO
#define SDL_REVISION "SDL-release-2.28.3-0-g8a5ba43d0 (" SDL_VENDOR_INFO ")"
#else
#define SDL_REVISION "SDL-release-2.28.3-0-g8a5ba43d0"
#endif
#define SDL_REVISION_NUMBER 0 #define SDL_REVISION_NUMBER 0

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -225,16 +225,16 @@ typedef enum
SDL_SCANCODE_F23 = 114, SDL_SCANCODE_F23 = 114,
SDL_SCANCODE_F24 = 115, SDL_SCANCODE_F24 = 115,
SDL_SCANCODE_EXECUTE = 116, SDL_SCANCODE_EXECUTE = 116,
SDL_SCANCODE_HELP = 117, SDL_SCANCODE_HELP = 117, /**< AL Integrated Help Center */
SDL_SCANCODE_MENU = 118, SDL_SCANCODE_MENU = 118, /**< Menu (show menu) */
SDL_SCANCODE_SELECT = 119, SDL_SCANCODE_SELECT = 119,
SDL_SCANCODE_STOP = 120, SDL_SCANCODE_STOP = 120, /**< AC Stop */
SDL_SCANCODE_AGAIN = 121, /**< redo */ SDL_SCANCODE_AGAIN = 121, /**< AC Redo/Repeat */
SDL_SCANCODE_UNDO = 122, SDL_SCANCODE_UNDO = 122, /**< AC Undo */
SDL_SCANCODE_CUT = 123, SDL_SCANCODE_CUT = 123, /**< AC Cut */
SDL_SCANCODE_COPY = 124, SDL_SCANCODE_COPY = 124, /**< AC Copy */
SDL_SCANCODE_PASTE = 125, SDL_SCANCODE_PASTE = 125, /**< AC Paste */
SDL_SCANCODE_FIND = 126, SDL_SCANCODE_FIND = 126, /**< AC Find */
SDL_SCANCODE_MUTE = 127, SDL_SCANCODE_MUTE = 127,
SDL_SCANCODE_VOLUMEUP = 128, SDL_SCANCODE_VOLUMEUP = 128,
SDL_SCANCODE_VOLUMEDOWN = 129, SDL_SCANCODE_VOLUMEDOWN = 129,
@@ -265,9 +265,9 @@ typedef enum
SDL_SCANCODE_LANG8 = 151, /**< reserved */ SDL_SCANCODE_LANG8 = 151, /**< reserved */
SDL_SCANCODE_LANG9 = 152, /**< reserved */ SDL_SCANCODE_LANG9 = 152, /**< reserved */
SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */ SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */
SDL_SCANCODE_SYSREQ = 154, SDL_SCANCODE_SYSREQ = 154,
SDL_SCANCODE_CANCEL = 155, SDL_SCANCODE_CANCEL = 155, /**< AC Cancel */
SDL_SCANCODE_CLEAR = 156, SDL_SCANCODE_CLEAR = 156,
SDL_SCANCODE_PRIOR = 157, SDL_SCANCODE_PRIOR = 157,
SDL_SCANCODE_RETURN2 = 158, SDL_SCANCODE_RETURN2 = 158,
@@ -345,6 +345,11 @@ typedef enum
* \name Usage page 0x0C * \name Usage page 0x0C
* *
* These values are mapped from usage page 0x0C (USB consumer page). * These values are mapped from usage page 0x0C (USB consumer page).
* See https://usb.org/sites/default/files/hut1_2.pdf
*
* There are way more keys in the spec than we can represent in the
* current scancode range, so pick the ones that commonly come up in
* real world usage.
*/ */
/* @{ */ /* @{ */
@@ -354,17 +359,17 @@ typedef enum
SDL_SCANCODE_AUDIOPLAY = 261, SDL_SCANCODE_AUDIOPLAY = 261,
SDL_SCANCODE_AUDIOMUTE = 262, SDL_SCANCODE_AUDIOMUTE = 262,
SDL_SCANCODE_MEDIASELECT = 263, SDL_SCANCODE_MEDIASELECT = 263,
SDL_SCANCODE_WWW = 264, SDL_SCANCODE_WWW = 264, /**< AL Internet Browser */
SDL_SCANCODE_MAIL = 265, SDL_SCANCODE_MAIL = 265,
SDL_SCANCODE_CALCULATOR = 266, SDL_SCANCODE_CALCULATOR = 266, /**< AL Calculator */
SDL_SCANCODE_COMPUTER = 267, SDL_SCANCODE_COMPUTER = 267,
SDL_SCANCODE_AC_SEARCH = 268, SDL_SCANCODE_AC_SEARCH = 268, /**< AC Search */
SDL_SCANCODE_AC_HOME = 269, SDL_SCANCODE_AC_HOME = 269, /**< AC Home */
SDL_SCANCODE_AC_BACK = 270, SDL_SCANCODE_AC_BACK = 270, /**< AC Back */
SDL_SCANCODE_AC_FORWARD = 271, SDL_SCANCODE_AC_FORWARD = 271, /**< AC Forward */
SDL_SCANCODE_AC_STOP = 272, SDL_SCANCODE_AC_STOP = 272, /**< AC Stop */
SDL_SCANCODE_AC_REFRESH = 273, SDL_SCANCODE_AC_REFRESH = 273, /**< AC Refresh */
SDL_SCANCODE_AC_BOOKMARKS = 274, SDL_SCANCODE_AC_BOOKMARKS = 274, /**< AC Bookmarks */
/* @} *//* Usage page 0x0C */ /* @} *//* Usage page 0x0C */
@@ -383,7 +388,7 @@ typedef enum
SDL_SCANCODE_KBDILLUMDOWN = 279, SDL_SCANCODE_KBDILLUMDOWN = 279,
SDL_SCANCODE_KBDILLUMUP = 280, SDL_SCANCODE_KBDILLUMUP = 280,
SDL_SCANCODE_EJECT = 281, SDL_SCANCODE_EJECT = 281,
SDL_SCANCODE_SLEEP = 282, SDL_SCANCODE_SLEEP = 282, /**< SC System Sleep */
SDL_SCANCODE_APP1 = 283, SDL_SCANCODE_APP1 = 283,
SDL_SCANCODE_APP2 = 284, SDL_SCANCODE_APP2 = 284,

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -71,7 +71,11 @@ typedef enum
SDL_SENSOR_INVALID = -1, /**< Returned for an invalid sensor */ SDL_SENSOR_INVALID = -1, /**< Returned for an invalid sensor */
SDL_SENSOR_UNKNOWN, /**< Unknown sensor type */ SDL_SENSOR_UNKNOWN, /**< Unknown sensor type */
SDL_SENSOR_ACCEL, /**< Accelerometer */ SDL_SENSOR_ACCEL, /**< Accelerometer */
SDL_SENSOR_GYRO /**< Gyroscope */ SDL_SENSOR_GYRO, /**< Gyroscope */
SDL_SENSOR_ACCEL_L, /**< Accelerometer for left Joy-Con controller and Wii nunchuk */
SDL_SENSOR_GYRO_L, /**< Gyroscope for left Joy-Con controller */
SDL_SENSOR_ACCEL_R, /**< Accelerometer for right Joy-Con controller */
SDL_SENSOR_GYRO_R /**< Gyroscope for right Joy-Con controller */
} SDL_SensorType; } SDL_SensorType;
/** /**
@@ -80,7 +84,7 @@ typedef enum
* The accelerometer returns the current acceleration in SI meters per * The accelerometer returns the current acceleration in SI meters per
* second squared. This measurement includes the force of gravity, so * second squared. This measurement includes the force of gravity, so
* a device at rest will have an value of SDL_STANDARD_GRAVITY away * a device at rest will have an value of SDL_STANDARD_GRAVITY away
* from the center of the earth. * from the center of the earth, which is a positive Y value.
* *
* values[0]: Acceleration on the x axis * values[0]: Acceleration on the x axis
* values[1]: Acceleration on the y axis * values[1]: Acceleration on the y axis
@@ -263,7 +267,24 @@ extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetInstanceID(SDL_Sensor *sensor)
* *
* \since This function is available since SDL 2.0.9. * \since This function is available since SDL 2.0.9.
*/ */
extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor * sensor, float *data, int num_values); extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor *sensor, float *data, int num_values);
/**
* Get the current state of an opened sensor with the timestamp of the last
* update.
*
* The number of values and interpretation of the data is sensor dependent.
*
* \param sensor The SDL_Sensor object to query
* \param timestamp A pointer filled with the timestamp in microseconds of the
* current sensor reading if available, or 0 if not
* \param data A pointer filled with the current sensor state
* \param num_values The number of values to write to data
* \returns 0 or -1 if an error occurred.
*
* \since This function is available since SDL 2.26.0.
*/
extern DECLSPEC int SDLCALL SDL_SensorGetDataWithTimestamp(SDL_Sensor *sensor, Uint64 *timestamp, float *data, int num_values);
/** /**
* Close a sensor previously opened with SDL_SensorOpen(). * Close a sensor previously opened with SDL_SensorOpen().
@@ -272,7 +293,7 @@ extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor * sensor, float *data,
* *
* \since This function is available since SDL 2.0.9. * \since This function is available since SDL 2.0.9.
*/ */
extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor * sensor); extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor *sensor);
/** /**
* Update the current state of the open sensors. * Update the current state of the open sensors.

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -30,12 +30,6 @@
#include <SDL2/SDL_config.h> #include <SDL2/SDL_config.h>
#ifdef __APPLE__
#ifndef _DARWIN_C_SOURCE
#define _DARWIN_C_SOURCE 1 /* for memset_pattern4() */
#endif
#endif
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif #endif
@@ -85,7 +79,9 @@
Visual Studio. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx Visual Studio. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx
for more information. for more information.
*/ */
# define _USE_MATH_DEFINES # ifndef _USE_MATH_DEFINES
# define _USE_MATH_DEFINES
# endif
# endif # endif
# include <math.h> # include <math.h>
#endif #endif
@@ -410,7 +406,7 @@ SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
/** \cond */ /** \cond */
#ifndef DOXYGEN_SHOULD_IGNORE_THIS #ifndef DOXYGEN_SHOULD_IGNORE_THIS
#if !defined(__ANDROID__) && !defined(__VITA__) #if !defined(__ANDROID__) && !defined(__VITA__) && !defined(__3DS__)
/* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
typedef enum typedef enum
{ {
@@ -528,9 +524,7 @@ extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c,
/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
{ {
#ifdef __APPLE__ #if defined(__GNUC__) && defined(__i386__)
memset_pattern4(dst, &val, dwords * 4);
#elif defined(__GNUC__) && defined(__i386__)
int u0, u1, u2; int u0, u1, u2;
__asm__ __volatile__ ( __asm__ __volatile__ (
"cld \n\t" "cld \n\t"
@@ -583,6 +577,7 @@ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str);
extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
extern DECLSPEC char *SDLCALL SDL_strcasestr(const char *haystack, const char *needle);
extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr); extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr);
extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str); extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str);
extern DECLSPEC size_t SDLCALL SDL_utf8strnlen(const char *str, size_t bytes); extern DECLSPEC size_t SDLCALL SDL_utf8strnlen(const char *str, size_t bytes);
@@ -693,7 +688,7 @@ extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf,
size_t * outbytesleft); size_t * outbytesleft);
/** /**
* This function converts a string between encodings in one pass, returning a * This function converts a buffer or string between encodings in one pass, returning a
* string that must be freed with SDL_free() or NULL on error. * string that must be freed with SDL_free() or NULL on error.
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
@@ -721,6 +716,20 @@ size_t strlcpy(char* dst, const char* src, size_t size);
size_t strlcat(char* dst, const char* src, size_t size); size_t strlcat(char* dst, const char* src, size_t size);
#endif #endif
#ifndef HAVE_WCSLCPY
size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size);
#endif
#ifndef HAVE_WCSLCAT
size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size);
#endif
/* Starting LLVM 16, the analyser errors out if these functions do not have
their prototype defined (clang-diagnostic-implicit-function-declaration) */
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define SDL_malloc malloc #define SDL_malloc malloc
#define SDL_calloc calloc #define SDL_calloc calloc
#define SDL_realloc realloc #define SDL_realloc realloc

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -35,7 +35,7 @@
#include <SDL2/SDL_atomic.h> #include <SDL2/SDL_atomic.h>
#include <SDL2/SDL_mutex.h> #include <SDL2/SDL_mutex.h>
#if defined(__WIN32__) || defined(__GDK__) #if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__)
#include <process.h> /* _beginthreadex() and _endthreadex() */ #include <process.h> /* _beginthreadex() and _endthreadex() */
#endif #endif
#if defined(__OS2__) /* for _beginthread() and _endthread() */ #if defined(__OS2__) /* for _beginthread() and _endthread() */
@@ -88,7 +88,7 @@ typedef enum {
typedef int (SDLCALL * SDL_ThreadFunction) (void *data); typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
#if defined(__WIN32__) || defined(__GDK__) #if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__)
/** /**
* \file SDL_thread.h * \file SDL_thread.h
* *
@@ -142,7 +142,7 @@ SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn,
#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
#else #else
#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
#endif #endif
#elif defined(__OS2__) #elif defined(__OS2__)
@@ -175,7 +175,7 @@ SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const siz
#undef SDL_CreateThread #undef SDL_CreateThread
#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
#undef SDL_CreateThreadWithStackSize #undef SDL_CreateThreadWithStackSize
#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
#else #else
#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)
#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) #define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread)

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -58,8 +58,8 @@ typedef struct SDL_version
/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
*/ */
#define SDL_MAJOR_VERSION 2 #define SDL_MAJOR_VERSION 2
#define SDL_MINOR_VERSION 24 #define SDL_MINOR_VERSION 28
#define SDL_PATCHLEVEL 2 #define SDL_PATCHLEVEL 3
/** /**
* Macro to determine SDL version program was compiled against. * Macro to determine SDL version program was compiled against.

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -187,7 +187,8 @@ typedef enum
SDL_DISPLAYEVENT_NONE, /**< Never used */ SDL_DISPLAYEVENT_NONE, /**< Never used */
SDL_DISPLAYEVENT_ORIENTATION, /**< Display orientation has changed to data1 */ SDL_DISPLAYEVENT_ORIENTATION, /**< Display orientation has changed to data1 */
SDL_DISPLAYEVENT_CONNECTED, /**< Display has been added to the system */ SDL_DISPLAYEVENT_CONNECTED, /**< Display has been added to the system */
SDL_DISPLAYEVENT_DISCONNECTED /**< Display has been removed from the system */ SDL_DISPLAYEVENT_DISCONNECTED, /**< Display has been removed from the system */
SDL_DISPLAYEVENT_MOVED /**< Display has changed position */
} SDL_DisplayEventID; } SDL_DisplayEventID;
/** /**
@@ -1046,6 +1047,27 @@ extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window,
int *top, int *left, int *top, int *left,
int *bottom, int *right); int *bottom, int *right);
/**
* Get the size of a window in pixels.
*
* This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI
* drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a
* platform with high-DPI support (Apple calls this "Retina"), and not
* disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint.
*
* \param window the window from which the drawable size should be queried
* \param w a pointer to variable for storing the width in pixels, may be NULL
* \param h a pointer to variable for storing the height in pixels, may be
* NULL
*
* \since This function is available since SDL 2.26.0.
*
* \sa SDL_CreateWindow
* \sa SDL_GetWindowSize
*/
extern DECLSPEC void SDLCALL SDL_GetWindowSizeInPixels(SDL_Window * window,
int *w, int *h);
/** /**
* Set the minimum size of a window's client area. * Set the minimum size of a window's client area.
* *
@@ -1253,6 +1275,17 @@ extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window);
extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window, extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window,
Uint32 flags); Uint32 flags);
/**
* Return whether the window has a surface associated with it.
*
* \returns SDL_TRUE if there is a surface associated with the window, or SDL_FALSE otherwise.
*
* \since This function is available since SDL 2.28.0.
*
* \sa SDL_GetWindowSurface
*/
extern DECLSPEC SDL_bool SDLCALL SDL_HasWindowSurface(SDL_Window *window);
/** /**
* Get the SDL surface associated with the window. * Get the SDL surface associated with the window.
* *
@@ -1273,6 +1306,8 @@ extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window,
* *
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
* *
* \sa SDL_DestroyWindowSurface
* \sa SDL_HasWindowSurface
* \sa SDL_UpdateWindowSurface * \sa SDL_UpdateWindowSurface
* \sa SDL_UpdateWindowSurfaceRects * \sa SDL_UpdateWindowSurfaceRects
*/ */
@@ -1307,7 +1342,7 @@ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window);
* *
* \param window the window to update * \param window the window to update
* \param rects an array of SDL_Rect structures representing areas of the * \param rects an array of SDL_Rect structures representing areas of the
* surface to copy * surface to copy, in pixels
* \param numrects the number of rectangles * \param numrects the number of rectangles
* \returns 0 on success or a negative error code on failure; call * \returns 0 on success or a negative error code on failure; call
* SDL_GetError() for more information. * SDL_GetError() for more information.
@@ -1321,6 +1356,20 @@ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window,
const SDL_Rect * rects, const SDL_Rect * rects,
int numrects); int numrects);
/**
* Destroy the surface associated with the window.
*
* \param window the window to update
* \returns 0 on success or a negative error code on failure; call
* SDL_GetError() for more information.
*
* \since This function is available since SDL 2.28.0.
*
* \sa SDL_GetWindowSurface
* \sa SDL_HasWindowSurface
*/
extern DECLSPEC int SDLCALL SDL_DestroyWindowSurface(SDL_Window *window);
/** /**
* Set a window's input grab mode. * Set a window's input grab mode.
* *
@@ -1790,6 +1839,9 @@ extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void);
* If you disable the screensaver, it is automatically re-enabled when SDL * If you disable the screensaver, it is automatically re-enabled when SDL
* quits. * quits.
* *
* The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2
* the screensaver was enabled by default.
*
* \since This function is available since SDL 2.0.0. * \since This function is available since SDL 2.0.0.
* *
* \sa SDL_EnableScreenSaver * \sa SDL_EnableScreenSaver

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -28,10 +28,10 @@
*/ */
/* This shouldn't be nested -- included it around code only. */ /* This shouldn't be nested -- included it around code only. */
#ifdef _begin_code_h #ifdef SDL_begin_code_h
#error Nested inclusion of begin_code.h #error Nested inclusion of begin_code.h
#endif #endif
#define _begin_code_h #define SDL_begin_code_h
#ifndef SDL_DEPRECATED #ifndef SDL_DEPRECATED
# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ # if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */
@@ -171,17 +171,17 @@
#define SDL_FALLTHROUGH [[fallthrough]] #define SDL_FALLTHROUGH [[fallthrough]]
#else #else
#if defined(__has_attribute) #if defined(__has_attribute)
#define _HAS_FALLTHROUGH __has_attribute(__fallthrough__) #define SDL_HAS_FALLTHROUGH __has_attribute(__fallthrough__)
#else #else
#define _HAS_FALLTHROUGH 0 #define SDL_HAS_FALLTHROUGH 0
#endif /* __has_attribute */ #endif /* __has_attribute */
#if _HAS_FALLTHROUGH && \ #if SDL_HAS_FALLTHROUGH && \
((defined(__GNUC__) && __GNUC__ >= 7) || \ ((defined(__GNUC__) && __GNUC__ >= 7) || \
(defined(__clang_major__) && __clang_major__ >= 10)) (defined(__clang_major__) && __clang_major__ >= 10))
#define SDL_FALLTHROUGH __attribute__((__fallthrough__)) #define SDL_FALLTHROUGH __attribute__((__fallthrough__))
#else #else
#define SDL_FALLTHROUGH do {} while (0) /* fallthrough */ #define SDL_FALLTHROUGH do {} while (0) /* fallthrough */
#endif /* _HAS_FALLTHROUGH */ #endif /* SDL_HAS_FALLTHROUGH */
#undef _HAS_FALLTHROUGH #undef SDL_HAS_FALLTHROUGH
#endif /* C++17 or C2x */ #endif /* C++17 or C2x */
#endif /* SDL_FALLTHROUGH not defined */ #endif /* SDL_FALLTHROUGH not defined */

View File

@@ -1,6 +1,6 @@
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages
@@ -26,10 +26,10 @@
* after you finish any function and structure declarations in your headers * after you finish any function and structure declarations in your headers
*/ */
#ifndef _begin_code_h #ifndef SDL_begin_code_h
#error close_code.h included without matching begin_code.h #error close_code.h included without matching begin_code.h
#endif #endif
#undef _begin_code_h #undef SDL_begin_code_h
/* Reset structure packing at previous byte alignment */ /* Reset structure packing at previous byte alignment */
#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)

View File

@@ -39,7 +39,7 @@ string(REGEX REPLACE "SDL2\\.framework.*" "" SDL2_FRAMEWORK_PARENT_PATH "${CMAKE
set_and_check(SDL2_PREFIX "${SDL2_FRAMEWORK_PATH}") set_and_check(SDL2_PREFIX "${SDL2_FRAMEWORK_PATH}")
set_and_check(SDL2_EXEC_PREFIX "${SDL2_FRAMEWORK_PATH}") set_and_check(SDL2_EXEC_PREFIX "${SDL2_FRAMEWORK_PATH}")
set_and_check(SDL2_INCLUDE_DIR "${SDL2_FRAMEWORK_PATH}/Headers") set_and_check(SDL2_INCLUDE_DIR "${SDL2_FRAMEWORK_PATH}/Headers")
set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR}") set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR};${SDL2_FRAMEWORK_PATH}")
set_and_check(SDL2_BINDIR "${SDL2_FRAMEWORK_PATH}") set_and_check(SDL2_BINDIR "${SDL2_FRAMEWORK_PATH}")
set_and_check(SDL2_LIBDIR "${SDL2_FRAMEWORK_PATH}") set_and_check(SDL2_LIBDIR "${SDL2_FRAMEWORK_PATH}")
@@ -53,10 +53,12 @@ if(NOT TARGET SDL2::SDL2)
set_target_properties(SDL2::SDL2 set_target_properties(SDL2::SDL2
PROPERTIES PROPERTIES
INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\"" INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\""
INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
INTERFACE_LINK_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\";SHELL:-framework SDL2" INTERFACE_LINK_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\";SHELL:-framework SDL2"
COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED" COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED"
INTERFACE_SDL2_SHARED "ON" INTERFACE_SDL2_SHARED "ON"
COMPATIBLE_INTERFACE_STRING "SDL_VERSION"
INTERFACE_SDL_VERSION "SDL2"
) )
endif() endif()
set(SDL2_SDL2_FOUND TRUE) set(SDL2_SDL2_FOUND TRUE)

View File

@@ -3,7 +3,7 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>BuildMachineOSBuild</key> <key>BuildMachineOSBuild</key>
<string>21G83</string> <string>22F82</string>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>English</string> <string>English</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@@ -19,7 +19,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>2.24.2</string> <string>2.28.3</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>SDLX</string> <string>SDLX</string>
<key>CFBundleSupportedPlatforms</key> <key>CFBundleSupportedPlatforms</key>
@@ -27,24 +27,24 @@
<string>MacOSX</string> <string>MacOSX</string>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2.24.2</string> <string>2.28.3</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>
<string>14A400</string> <string></string>
<key>DTPlatformName</key> <key>DTPlatformName</key>
<string>macosx</string> <string>macosx</string>
<key>DTPlatformVersion</key> <key>DTPlatformVersion</key>
<string>12.3</string> <string>13.3</string>
<key>DTSDKBuild</key> <key>DTSDKBuild</key>
<string>21E226</string> <string>22E245</string>
<key>DTSDKName</key> <key>DTSDKName</key>
<string>macosx12.3</string> <string>macosx13.3</string>
<key>DTXcode</key> <key>DTXcode</key>
<string>1401</string> <string>1431</string>
<key>DTXcodeBuild</key> <key>DTXcodeBuild</key>
<string>14A400</string> <string>14E300c</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>10.9</string> <string>10.11</string>
</dict> </dict>
</plist> </plist>

View File

@@ -1,6 +1,6 @@
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages warranty. In no event will the authors be held liable for any damages

View File

@@ -10,15 +10,15 @@
</data> </data>
<key>Resources/CMake/sdl2-config.cmake</key> <key>Resources/CMake/sdl2-config.cmake</key>
<data> <data>
XSGoflduFZf82qGl/+WskdKOBw0= s2hXhDxzy/ilC+gLamGy/Kq13jo=
</data> </data>
<key>Resources/Info.plist</key> <key>Resources/Info.plist</key>
<data> <data>
WI02IQDXCxx7srPlDXWkzuIFOWI= O0+yH6th+YqPy5qBlROGAOJkywk=
</data> </data>
<key>Resources/License.txt</key> <key>Resources/License.txt</key>
<data> <data>
VoVWJNSXNFkj10nxdQKhgCnXJjE= fCUUBjJ4JuUAC8MRSCszNcY21v8=
</data> </data>
<key>Resources/ReadMe.txt</key> <key>Resources/ReadMe.txt</key>
<data> <data>
@@ -26,7 +26,7 @@
</data> </data>
<key>Resources/default.metallib</key> <key>Resources/default.metallib</key>
<data> <data>
4l5HIH0YrJO09WMMo9BAQG+BSjY= 07w7GQmm31+NEK8ne4mSo7m70Do=
</data> </data>
</dict> </dict>
<key>files2</key> <key>files2</key>
@@ -35,693 +35,693 @@
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
AglD0HQ7wpywki02o+5BHIzEnL0= hzPz83uejvKAqzL0Xoi6aO8h8jw=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
rEJ7JEx5CQypooSpXSwzBg0rnDQ0Y7Ctkcgr6WARMso= 9u/or17IhYmY6rFVU14yva0lEIgG9DmS4LbiwXBLBL8=
</data> </data>
</dict> </dict>
<key>Headers/SDL_assert.h</key> <key>Headers/SDL_assert.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
B9H6Q9JU0i9oid03T1/Ca86gZUU= S50t60okfb3/ykWKavFC3tnkGgE=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
uqj30tfXL8YY+MVK9XMh/XKClSKrCsikaNhPIt2HSYM= uPZQOi25pO/BZWjREOhxmXsoreSNJyZrNOnVJ/TyYzs=
</data> </data>
</dict> </dict>
<key>Headers/SDL_atomic.h</key> <key>Headers/SDL_atomic.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
S7vGRTzBHVXKyXwYhhvUpfME4bs= yrv6uC/CjYpeCteZDUbBFr2nwiU=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
yyqMgvtuNLSklwq2qM62TTuiLks55E6BNKOB08e6EzQ= Mrfc980NeBAvQ5I040V8xusL6cHBcFfPaA9B2prA4dw=
</data> </data>
</dict> </dict>
<key>Headers/SDL_audio.h</key> <key>Headers/SDL_audio.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
y0WyGUpd2J2rVMxjUi3zQZoj9ok= ATRDpv42XjNUWqjKPDAPYqIqvDY=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
UYQL32SIkpxyWOGt7YsCsrwbchOvuBsgcFhTnyFcC/I= MThYj7HEVNC7MdUTbzgyHDqlDMDS9g664b6M5d7tsdY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_bits.h</key> <key>Headers/SDL_bits.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
6MCXzkSXZ4Ba7/9ksdUPcPxqpLc= Y7zU8XCX6cvmN/FK9COruPP8VGs=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
moRKyE7GpCyBzoyt2Eib7jqJ/ZMO1vTCWSjtHxP3Few= 5bLOm9HAk5AScYemc5V1usN7NqP685ZYN5MOBjzC2IE=
</data> </data>
</dict> </dict>
<key>Headers/SDL_blendmode.h</key> <key>Headers/SDL_blendmode.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
R0DC+lE1tBOALESAuGbbBcDXF24= ThQw2vcWPo/mLtvKmhQrjhSQhLk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
RenGdg0rma2j6y9cRvHsTayslInVYfxWvAS3fGUv+Aw= o3UtzbWJqnTeh6+r+oLVdOzcJZ1b3XhfPINDjKHftu4=
</data> </data>
</dict> </dict>
<key>Headers/SDL_clipboard.h</key> <key>Headers/SDL_clipboard.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
b+5HV8QB/rNcY8Xz71ajJZhr9FY= pFjnEWnFn2vCXZrSDQ6m8N6h0MM=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
XVgTrx+C/8H9Hrh/SRD4u4/rsx5MeBiKb2Orzx6fKVI= t9Fr9UxC9zwgfkCY5P5DW9k3TndMFRn+tU/heffUOQk=
</data> </data>
</dict> </dict>
<key>Headers/SDL_config.h</key> <key>Headers/SDL_config.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
6XTkjBo2D+0gCdBLcSva+glQ00M= B13VD2wcb7zADcKXB+B/kBYhpHw=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
VIvoehwuIKTef6WBop2Nd0NS05vrTj3rIQMzU50wCuo= LmXzL1O6PasyaBOUhPezJnqtqwCV9rqOyiJNEvGKgHo=
</data> </data>
</dict> </dict>
<key>Headers/SDL_config_macosx.h</key> <key>Headers/SDL_config_macosx.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
OzmTF1uiICIhlC7h32zwOn5PqWE= /CrGe7lmePlmR7DD9sqN4LHqM/0=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
d/5n13ACXAeYbzU8JL6aHOfY8s5OHyT6+E1jI9bGK64= EpnSzka/wAuxi4wcgIktwQnuYWsMAATYMt6yDmo4zOg=
</data> </data>
</dict> </dict>
<key>Headers/SDL_copying.h</key> <key>Headers/SDL_copying.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
topzn4TKpy+ywX5uHtzXPOb/EWk= OzEuv+IaGVfj3A2BEoXc87vV+Wk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
nXmV15qsx3hLFUWnzkeUClLg3jiNhHqPhtRo9asqkPI= 5zsYMLhj8aKXm4gWJoGHC55ipiUi1OIxXdOtUIHQQw4=
</data> </data>
</dict> </dict>
<key>Headers/SDL_cpuinfo.h</key> <key>Headers/SDL_cpuinfo.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
OxKz9tarv+BN6HZcd11A9kgKjC4= 4/UkY/aNgAY5RsZ61XSnwtCXW9I=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
LJ2E3SmiAFu5mqI6xxqZ14u5zBWps8OXrbDY4LEQiq0= pWPZkQcmPyAzgZNKcmiYutw8VFjBcHOinO+VVKIBeN0=
</data> </data>
</dict> </dict>
<key>Headers/SDL_endian.h</key> <key>Headers/SDL_endian.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
3SKom++C+iyjKSaAzELahcbZb9w= j6/tuHiJfdv8YaI9k3fogDw4bNc=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
itvFDymfM/B7KSiRLqeXPtmP1Pae7Hr6PKV536yb19k= P5KOVzR2wBlhdSw7biIJ3O78dnYnoGdi4pHxvyFcLdY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_error.h</key> <key>Headers/SDL_error.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
49T3z69eEOBmcFSD+a3fLxkRZOI= 6cwM6B1MfW2wTFB+g6c1GO9UH7g=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
opYHpNi3KkdFqGsd3UAYaRbjKh6kPnu16gD/ZZQ/jt8= ULQrtxP4RfbnV5GGj3i+PrYSI/rzDYskl0XQtCd72SU=
</data> </data>
</dict> </dict>
<key>Headers/SDL_events.h</key> <key>Headers/SDL_events.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
BdXEyKTMfk5GqMJXjX9BS8BnKtE= feHsZTKREoq2xXa4dv/4lzZqzUc=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
DV1SmLmr37ujp5UDAeTugWPgIQjvC1OoEIbgPxnbkxo= FVz2yvXnjsUNWBsWQOcBqaZrXCCdohSRWDh1l3SKqRY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_filesystem.h</key> <key>Headers/SDL_filesystem.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
PoeYaqU+WGFkNISl6SWsnlL8rwQ= sicIJ2kroxv3QVkoKklHGN3tbWo=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
zVudQ4vBqMuXpQQnzZFPN98wlxfFh3JbsuqtpL5a2h8= k3ybgbDF/Ap8kf4vKxLVZnRXoXtZwpFb4Nsk8GWqDCY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_gamecontroller.h</key> <key>Headers/SDL_gamecontroller.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
sVD98kanhzhCejv4HtOc2nLqEok= DGpJeIYXN/t/Yyqilband2kKOSk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
9vFNNLtx9sV+5MgN8s2yADYmorHfIpP4da9R00YkpGk= hgAaf8SQwVfc94yXKjNFA3VpsTCYwL65W5X6lXEnsgI=
</data> </data>
</dict> </dict>
<key>Headers/SDL_gesture.h</key> <key>Headers/SDL_gesture.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
eOm09gklTuHk4CAnY8+N+AOWU1w= iBwReSkmy4b/H3FD3mZZtLNdCMk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
3Jzx8qKPiLBEeimWYGEMjqACvDfAm8j8qVyKZPyot6o= H7K4JyorBvI9vlJegmEZ6NvapE7/l/2bhOGeQ9zudiE=
</data> </data>
</dict> </dict>
<key>Headers/SDL_guid.h</key> <key>Headers/SDL_guid.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
crNLOtYvZUPZiAe8ZhVvIlKHL1k= jTpr9nvDtYvix2njIOclQs9xYuk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
8faGizimrTUdyyQeGyHX3YXB92lt5jgs6kJpGEpBoKY= ifUKQBbQRJdNqsJBO7Mor3KqQyqDulvyNC82/RWPXhs=
</data> </data>
</dict> </dict>
<key>Headers/SDL_haptic.h</key> <key>Headers/SDL_haptic.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
2P/RhAx7yVVau0ImN4IRu0PKJwM= +Wt7zxeuXghMudXSohdJr12ueGM=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
Irx+pJE/K0azzSlTpm9Rst1n2EmNLTpbLY3kmpEinJ0= VhCeKNAvsH+lrvZW9g65G84lg0FofrbORvS0TqPWaRQ=
</data> </data>
</dict> </dict>
<key>Headers/SDL_hidapi.h</key> <key>Headers/SDL_hidapi.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
gerk57ttnkfcx6wYtwW4C8Utt60= CBwPZQMZ5wsa03aBND8rQvsLfUg=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
KYySNLgkVh6cIAiPYvDk/Yk2SvQafFytdHZOKvxzZOw= CJEdgW9T0b2VRNRFaEZqPeCTg3FjsEFOHZvwuJbVHX0=
</data> </data>
</dict> </dict>
<key>Headers/SDL_hints.h</key> <key>Headers/SDL_hints.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
xYbJKIk1b/dU070K46elN3+mRgE= SWTHcoPzInj/HwBHNEFfQGmL6Dw=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
CGPQWyZQWAIltmta5ogO3yTbp8bsLA65wBotBwl+0ME= BQwW6YWVYXbaOLc9Id+ZjuKHs2VIfcSjM/Oo9JBI6Yk=
</data> </data>
</dict> </dict>
<key>Headers/SDL_joystick.h</key> <key>Headers/SDL_joystick.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
bvqXmRQEmT+7pu66OUIAgcF/qdU= Y/dkiMb7+9Wmo8oyyOuh4igQK4o=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
XAw62auzvMWnTxik4mFxfz1k1dRT0k0JslXzaN2mYZs= d3rYIj9RV45IuiYZAbOQyNe3iR4DORkkqwYiSA81c6k=
</data> </data>
</dict> </dict>
<key>Headers/SDL_keyboard.h</key> <key>Headers/SDL_keyboard.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
daaK2d9/FS98QIeRbwHDjK6MbM4= 4jiEP+XRfvz8VFmNWlHkcsMS2nI=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
BOPhdmyBg4iHctggySFsXHD+2dk0qPQ1glPpc56gEoI= EPdkxf3E/uXb/dm3gpxepX+d5JNWswuHP+PG/c33p84=
</data> </data>
</dict> </dict>
<key>Headers/SDL_keycode.h</key> <key>Headers/SDL_keycode.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
L6VgO8ptH7uIWMYxqiYDitWP2+0= j4z7vftDr05ahrBr5bZnBxZ3Ufs=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
o+cvRpzlGHktvrWgdp69oT8gP310gr6qMuoz/bkvsJU= abAEws/ibkdlWSE/bP/uq0oIjcebU59aul5g4Lu0pbA=
</data> </data>
</dict> </dict>
<key>Headers/SDL_loadso.h</key> <key>Headers/SDL_loadso.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
BnfRn8au8VfS8nOYd+Og6CqxQtQ= 1fe02ZD9+yDX75ZVM1rk7RqDLCc=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
ViHwtMagclIe0iTK9fUbYuesvQ1nv8rC+9675X5dk3Y= eOcuzAcWhFDvl3bV+3m54GtOrTQztPLIiFHK6NOQuZM=
</data> </data>
</dict> </dict>
<key>Headers/SDL_locale.h</key> <key>Headers/SDL_locale.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
B7JrCP37jV9Gs+1YoxkyXgaA3/0= UOhBMG0JOnoQAEGMY7S6as755IY=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
NfBH1vQU0RfPYtW0AzShJFmv8MulTUzc/kAQZ9C6ygw= yM4RN7sKzLhnVlwbW1pJX3S6YLZl2LM/0qsLyQf5GXM=
</data> </data>
</dict> </dict>
<key>Headers/SDL_log.h</key> <key>Headers/SDL_log.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
aaLQi9U7ijhEeR6nQB97Eb5kLcY= Ij4wEHg0aIMC28dTUSur/CAxQss=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
HiRdEa7+l/wQ6D1HrCHHIIWuTmbSu/TDzwJZPE4T414= A1Xc1+qvTtDHCz8f4e6oWq8SlifqizcVZ1Q37GJkhG0=
</data> </data>
</dict> </dict>
<key>Headers/SDL_main.h</key> <key>Headers/SDL_main.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
Qi/WIvr8HU0GJprv7Fs6yfpNR5A= j0/bBvlkrYcnXeoB6sWoCQiIlV0=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
VrF7Og9RQm8oM1rSzdhI/s1IjZsL8N0lNbo1yNKaEfo= QOjL/8v8HMC/N+1jocNxIGBB5pifTDWxbwOvD7wJtRg=
</data> </data>
</dict> </dict>
<key>Headers/SDL_messagebox.h</key> <key>Headers/SDL_messagebox.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
Jyd+Z0oJkOyu7GqxrGoj92kX33E= TZHRdWCuyxbRdc1GZjnTjHdKV5A=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
b/2BVaUV14/zSF4P4vqsBKHdmHO39bcQh+Iw5cIjiUs= Y+cutYk+JQOcbC9kbCdqbLr4oIBCxcX8HIzKJW+MOTE=
</data> </data>
</dict> </dict>
<key>Headers/SDL_metal.h</key> <key>Headers/SDL_metal.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
lgw/jPhvwM+nsqA0HITlLaESI1Y= yggpDR8fWdb4ZAxZDLO7ztOMa84=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
8e2u8Lp9cp5tnfxLkwSsyerOA213Z/Con+WQe/U+QYI= aVk9kP7LRPopLu52brj5b7qNwMeUyUOwDPVyXwOm4O0=
</data> </data>
</dict> </dict>
<key>Headers/SDL_misc.h</key> <key>Headers/SDL_misc.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
GDQyA6cRKZi3FJ3qPXMgIG19Xic= wkzkXLc/0JwEBj+pVGBGODS/N7g=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
ouIje4tauHjysbz3ObtyFzAB6lTCyhdwb4ndhQ3Z9n4= qClRwcNymRF0gmpjyJ+EQ7fChV48OUN8NAAM2x8NsRM=
</data> </data>
</dict> </dict>
<key>Headers/SDL_mouse.h</key> <key>Headers/SDL_mouse.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
nrOK2z4t0YZ5ivxuTWB+9cXUf68= AL6jjX5llLXh3nscuX0MJQQJ7C0=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
a1uWINzkYwydY2X/EhrWYcmHb2VG1Jy3C5nU6xOJAnk= 8R3uVCCs2wF9vtwJEqAi+xjYtAtJ1F6UIqCPUhiBwxU=
</data> </data>
</dict> </dict>
<key>Headers/SDL_mutex.h</key> <key>Headers/SDL_mutex.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
aG58/w/wU0G8N8tgCdD8ecbbbe4= c4s6haEURwhr1L/ZsIoQHgDC1Rw=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
XUDMtaFm4qzh0iFhMP4Gnl9H7BDRtZnfFZx6UVvw6uQ= L1kG6r9N1C+njGEvU0sAJeAVFwr6gkCCwGcBxsjDuNU=
</data> </data>
</dict> </dict>
<key>Headers/SDL_name.h</key> <key>Headers/SDL_name.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
gOOcQtMKUerG67yCwPV+v0SxzCw= 86Aic9zf8RE0YQGymeyFxdGck34=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
1axhwEeJjGS3A6JMrU9788wocEZRLyZNcaB/B6XRAMs= U6Hh9de6D0JfccwHBmoAy/zaFw30VuNT1ofo30X7cCw=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengl.h</key> <key>Headers/SDL_opengl.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
7MOKOotpNv44gQkv/pUbTkn8IoE= a83WQIdV8u+rut4US8joNjpA6kA=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
zkUzBymyrkFMTK7R21v1NrPrq1gm+FRVcWQ+BUYXbjo= HxWMmpZ2o+Z1atgt7Ou2sf5/4s2raLbApxzyqqzQcGY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengl_glext.h</key> <key>Headers/SDL_opengl_glext.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
R1nHUIy7DpXf2BZyzO+VT33j3bE= eOvalGUielSzNuOWWDLYkwqpYrg=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
RwZcYEr740srGsvbe4jQhHYTTNwp+e05VGDjqyNkYr4= GrsoiRybBmG2/zdJ3iZx2l/hK+tbyxgzsta99ciezfg=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengles.h</key> <key>Headers/SDL_opengles.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
gNgYlz+/uLgvjec6r0AW7Be2DJI= Vc//lrKlqY/bME9ocSWczplleP4=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
gpV8CPolshDeFDmSwWdoE1szEa7jY6uW06q61w+0g8k= hJHBadVAgpV3dIMW++DPSJKqsNOCvkA8qNrMoFbXd5g=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengles2.h</key> <key>Headers/SDL_opengles2.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
JAC+taTpU61KVFADpZvYguHPY/A= gyrJUUv02Am+DYc5V42xH7EQev4=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
4VPaduWoVpL5jy0A9S+tAoRXm0of4K+lqTZ2HRlDNT8= T7CsPQJXfeZ3+pVjGLqzKBfEjyHX2Ne0vV44iZMKDgs=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengles2_gl2.h</key> <key>Headers/SDL_opengles2_gl2.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
g4y04zPFy1H/qujSNGRd0vB7ClQ= GbD4M9ZIR9sxgLX4G8T/ojLVQJk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
9GAwK0cg8YPrZHWVqMGpyVwKFz3Ay9VHiyz70jzWltA= 1uxEsdc/OvzjogrGl223+z2sZWxRkPC1Y+TOkNeaFao=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengles2_gl2ext.h</key> <key>Headers/SDL_opengles2_gl2ext.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
bTlnL+42kbi+n/gH//X2p0pqeuM= frTvd+EfShO/uonAvnnsnPkqc80=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
5404JOHXH4pGO60gR/uLhz9zW6fKy9jvdMw5i1WTcpo= T8WwA03N6cElki4+cNAUiaazNQdoVu5mApThpjBaNxk=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengles2_gl2platform.h</key> <key>Headers/SDL_opengles2_gl2platform.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
ByFMXJFtjcRglS/e0+DujyjC3dM= JO1DB28zz7TCz/P5YCSvV1PaqWg=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
wlKRTsmTMrnniYqSvQklJfb9VF07J0MDpqzYOcfiDDY= R3m+mZrNGQRFgjjwnIaYO3lgrEDmEuBdstuX22FfHg8=
</data> </data>
</dict> </dict>
<key>Headers/SDL_opengles2_khrplatform.h</key> <key>Headers/SDL_opengles2_khrplatform.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
NLpJq9uBqjOpWhXISOQHPnTp/XQ= mBjqEs+5bGC9u1ED2M93VNzONPQ=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
djHeDyzmR0e/2JNIbqpBqgi56MXlxlAbgcBFxuvwSyo= ex4Bqqetj2/DS1x733nr9RibsJ4sTS55/F01BiPRHoM=
</data> </data>
</dict> </dict>
<key>Headers/SDL_pixels.h</key> <key>Headers/SDL_pixels.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
APvnWU71OTgg8nF2ZBdVu+N0OGo= 4PRTgauh2fx03ubJfuuHNOPhN28=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
6VtEW9W48E5QT0eLhrzHm6TM2ZuskMlgjcaAwsilSlY= GZQPt4sz55DRDRzw6E2c1WMjhNqInkQA3gxLQiTPQlw=
</data> </data>
</dict> </dict>
<key>Headers/SDL_platform.h</key> <key>Headers/SDL_platform.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
i6mueiGp/xhX/L+32oRz5Lq1h5I= Ey0u3gHjhY9CsV6rnGPL6l/Lqx4=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
+bUBkFH5eTYbCwRAQKwdm9F9wyVoV+fCFCnjgc6LXyI= n9zH0IFb2hWb/ZQ3TBMQxLzDre/VQcI6Obhdmq8O7QU=
</data> </data>
</dict> </dict>
<key>Headers/SDL_power.h</key> <key>Headers/SDL_power.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
CZt1YqOCoPff+ZX5nsgeLs2abiM= SmO5g1nUZ1IAgDQGIlzbR8F5udg=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
WuENeZEjbiPGXwmzKPi9End4ZRDqxD7gCGDnrgDjgJc= Lmp/XdN6xQbqR/eAmoKFcpqk+MM65gGxjv1cLYUqG8c=
</data> </data>
</dict> </dict>
<key>Headers/SDL_quit.h</key> <key>Headers/SDL_quit.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
tPbozXmJ7atsNAXI2sOnYySxxE0= xxqxk2GqAVUt7s8YiRcGMegy160=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
2OKt3rHgSNG9eTiP7SP0r7oy3zP+xN2i4s6r9i2FLOg= cd4fDfe+MqMZ35xoFn5VPkGBafcN9tPvL9J74IeKtXI=
</data> </data>
</dict> </dict>
<key>Headers/SDL_rect.h</key> <key>Headers/SDL_rect.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
iHOu4GrnG9wq51NGY+KM2d+2M0g= AtB+xgoXRW94PDzzbBVBYyAW0gI=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
Tntu1hV6+rDYjtkylyY+L1sksaom8tHOa/2CWh+sgtg= rFxcleBxja/rwskrEIytxw3evL+Drkx3YsihtllIw78=
</data> </data>
</dict> </dict>
<key>Headers/SDL_render.h</key> <key>Headers/SDL_render.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
99vR7BI+q1DOT92PKbDwd0aJC9U= 5yyytzTD1eS/K13NSzW6faLAUlA=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
/sE6eLwCW6hgGvZVO5t6tqwveFueUOM1AhBYEVvLAhk= +ljWDPQHFdheD/Z6QxHzbpNQVg/XVlqx5+B3ovMbIF0=
</data> </data>
</dict> </dict>
<key>Headers/SDL_revision.h</key> <key>Headers/SDL_revision.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
/pi405aC2raNPbxIENW8uenPSd8= ACsjWsXuUQwHVlG5aPLRf54/dIQ=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
6F1hyeq+AjOwP9z5NDOiYGsYGRRtb/0JDIaseF4V/Ns= FdzvRtvvNjmf4LikKB9CV7MkieGdfgsJbfoN4kxwtqs=
</data> </data>
</dict> </dict>
<key>Headers/SDL_rwops.h</key> <key>Headers/SDL_rwops.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
L/Twsg6Wmiwo1H5Qs8STE8WIR24= sCmzKOj8q3vee6JV6acptKOzBoQ=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
km34IYEvTAj4qaziyAtJzgUinazvYYMTaAF2iFAKo9w= j6rnTfnMJaCsq2CviHQP8obbVNgrElC0OXJBt3ltyVg=
</data> </data>
</dict> </dict>
<key>Headers/SDL_scancode.h</key> <key>Headers/SDL_scancode.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
VwbcuI+yrOTXtol5lZyennpTAAQ= JPnDQuCIC32+ugD3OX3igjdGfmE=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
yaEmKrGcD3svKPTqjQbhjFsq7d5AezJIARLOnsVnyFk= vC/EC0A66ywzXwlp8iGE7nlOpWGZ18iHhEdS7BsM3VU=
</data> </data>
</dict> </dict>
<key>Headers/SDL_sensor.h</key> <key>Headers/SDL_sensor.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
cAqB17JLRyFN5n8MAJrIkY1AqBw= J+9woN1Qec074rah/rly1BHM5sY=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
uBC/ANStES2g4wtWn7Mk/4MJeHp+wr7wEfurKfzv3dc= sEfbN4S8Lpxm0XDblgOvnVV0fsgx/zo/q0s5h9OvhmE=
</data> </data>
</dict> </dict>
<key>Headers/SDL_shape.h</key> <key>Headers/SDL_shape.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
UWs6SO78LJYdrBlGs1tY10DrJUI= Hv8O7XLnXLIVAOf6cjF56yyrRkg=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
CFJEICmokjpIcOYx1hTgGJ8fqLjaj+k9VuxREOUDJaA= XFA3qPWL1vJ3EQtae2baJlOZ9ESEmhB1FMYI3fITLZY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_stdinc.h</key> <key>Headers/SDL_stdinc.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
KfSR5oVYjXJ+CHncpikkzBxA544= iliyExriwpoxEAgG8CI8CG8go54=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
v7r0Q6ZmJ0lU5eBZ/VjAwinrzjLFzJfHeq2/3YmztH0= I4aI+ExJq+16kZfDjF++Uaa2lHZjUWmuFc83IUDfuIk=
</data> </data>
</dict> </dict>
<key>Headers/SDL_surface.h</key> <key>Headers/SDL_surface.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
bc5QzhwXbUo4XnD7q4NOSWOuTxs= Toy3u0xKUfSMmknlIToaUmf5vwE=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
xouGGI808iRhAh/0XTNJv2QTIUi3LPrZW5oHvGDm/7E= CDctL0QJDSDvlB+uXO69kLW2uA0Xdc0xiJBN8h3pX74=
</data> </data>
</dict> </dict>
<key>Headers/SDL_system.h</key> <key>Headers/SDL_system.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
s6lznhqSlL+KFtBJSEELBCTTp1U= I1i3X5zfVBg7YFzag2Dj43RzuUI=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
AlgtfPI6N0Jukp6N7fmTnNV3AzBzEBj5HZREFJSkMmY= mt328KSVoSMSjZ4Wy268tC04JQmyCAsDM60TWeG3K4s=
</data> </data>
</dict> </dict>
<key>Headers/SDL_syswm.h</key> <key>Headers/SDL_syswm.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
oxVccR9E/ARZqqPl+BjVMKNdDNw= 7sdDIYSuCZbE13gdwZ+rmiqUBEk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
LRcM/Fhcqwv6Qf3YhgaLGkkEuFqXFTvl6pWfaQCNw9g= 6QWGeehhVCpiwN9fQv1by5vpdNg8JqxY1XgR48Fxpdc=
</data> </data>
</dict> </dict>
<key>Headers/SDL_thread.h</key> <key>Headers/SDL_thread.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
5xZpdbtxabSCqxFchsbPpUHLNQ0= rdWafQMEiS2pSqeEGdRXDjaU96Q=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
4fpEGwWz/MZXi0gbsOZzM4CclNzbsUUBso62NcHZs0o= pVkN+av2tjneOX9IafFyXjDRaWe/ROSrLwUQRfCrYYA=
</data> </data>
</dict> </dict>
<key>Headers/SDL_timer.h</key> <key>Headers/SDL_timer.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
Ltnz4OrvTc2eABw8uX/0L/nuca4= Nstsm7GCSSnoH66923lImFIE0fY=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
W+hRt3f94ZHPIpQ4xN7D/U0OVtTTZBAA9Nphtq8fgeg= 6jmEztIQClT68gsMRHHP9tVPF5TxqLfBgmkTqOA00fs=
</data> </data>
</dict> </dict>
<key>Headers/SDL_touch.h</key> <key>Headers/SDL_touch.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
rwC4gDU7l5kY0ZZEIhd7RT3axUU= LWDPymUVgQxlg3DwBCJ8klXPq6U=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
DVFA8C77fiVhyFFtqV/lglia5PShpk967pt+huaItwo= y/Kqn35XtKznNX9foqsPjC+jlnbRvBuF8A1MzKIjBmY=
</data> </data>
</dict> </dict>
<key>Headers/SDL_types.h</key> <key>Headers/SDL_types.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
ARZgD/WKM8LbXYcplBCyws5jmmo= 8xeioL5fy1QauaS4i9g5UdMotoM=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
vvFj+McRdgHRX9HrooW/E7jX5C74rxEwVv18wMyvSC0= Em64WSsB0scWcgjtDOAhVyy4XoRBRciw+YaG3vyn6hM=
</data> </data>
</dict> </dict>
<key>Headers/SDL_version.h</key> <key>Headers/SDL_version.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
TvqfVbwSqTUKq2Z5nSi4bpqkpvY= RxJkcIBwFx85nADiCWZgVRs8k7g=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
DvoyLmK5FsDSJk24cNqaa+XKCKfjI5xwKRP7Hc53HUk= 0lwD8QVtsPTM6vhZbDu05D8v6so3iTdjrj3mVjcfhWA=
</data> </data>
</dict> </dict>
<key>Headers/SDL_video.h</key> <key>Headers/SDL_video.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
uJc4I4G8WWjQewCsj9laubKnfks= oDSfm7hvyakVAn3MJ/vPYpDiTi8=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
argj1/xE3Y/fcUyhn1aF8GGrCxfWV9j8+KbXwMzZRD8= 4kgMp+1L702uCbe5U3mPNYx/zonCSDmAoqKxZGMWlC0=
</data> </data>
</dict> </dict>
<key>Headers/SDL_vulkan.h</key> <key>Headers/SDL_vulkan.h</key>
@@ -739,22 +739,22 @@
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
u4PDdbvfemkyR1H1QsODd6pLFRA= BXr58UQDjOvu3YEpLqbL6MzdnEw=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
mOMdpMYdVHyciBhBNbcuPQFKemkQLlxtdYNQI3z2snE= lZjnBGKuQiSupwtm3kZTliIMMPlHVmUsVTRtQ7E0WMU=
</data> </data>
</dict> </dict>
<key>Headers/close_code.h</key> <key>Headers/close_code.h</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
l886gK0WewF9TLQ2N3wuuk5YOK8= b9BWGnHVTllZJNggBlv8S0bczLA=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
9JEAM14hpDRV6tDnQvfIFtBJQXHOEJSONje5q/PKlTo= /x8Gxc1GaIoziXOz/sebI7d0PytDiEWi8kWZfjkp0Ww=
</data> </data>
</dict> </dict>
<key>Resources/CMake/sdl2-config-version.cmake</key> <key>Resources/CMake/sdl2-config-version.cmake</key>
@@ -772,33 +772,33 @@
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
XSGoflduFZf82qGl/+WskdKOBw0= s2hXhDxzy/ilC+gLamGy/Kq13jo=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
oO7paOWdt4AGUK6i7ifbCbWdp4I741YtJf3U2SIi9ro= DuTUW8idzRp7WT1FT5x/m1C1SbVH0FKvKRKOgVlRVhU=
</data> </data>
</dict> </dict>
<key>Resources/Info.plist</key> <key>Resources/Info.plist</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
WI02IQDXCxx7srPlDXWkzuIFOWI= O0+yH6th+YqPy5qBlROGAOJkywk=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
RJJpkVslJPaeuEtumKjXzzrTI41SuVlqOYADrS8YPSk= sIWVXC/W1heu51j6IrNeI7fFPvxyVxJPCvMlZ8YpVFA=
</data> </data>
</dict> </dict>
<key>Resources/License.txt</key> <key>Resources/License.txt</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
VoVWJNSXNFkj10nxdQKhgCnXJjE= fCUUBjJ4JuUAC8MRSCszNcY21v8=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
IY4SCBLx/QICUzUIfTw/MBGoah4TzstyMeoTfwWSuDM= d+3CuMuNTuvjYs+HODz44b3nsOHwwJqlcyQOq7qhAPc=
</data> </data>
</dict> </dict>
<key>Resources/ReadMe.txt</key> <key>Resources/ReadMe.txt</key>
@@ -816,11 +816,11 @@
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
4l5HIH0YrJO09WMMo9BAQG+BSjY= 07w7GQmm31+NEK8ne4mSo7m70Do=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
mG4gq0ZWuiydHgb5Xh0OvlnGHDkCdvaqQKnD5G1m7xc= vmrmeHQ4l7Q4flA5dILQw27M4T0Sc70MQIfP+lFY/do=
</data> </data>
</dict> </dict>
</dict> </dict>