mirror of
https://github.com/FWGS/hlsdk-xash3d
synced 2024-11-25 11:19:39 +01:00
Remove redundant SDL2 headers. Keep only those that are used by SDL2_mouse.h and SDL2_gamecontroller.h
This commit is contained in:
parent
fbe839d33e
commit
5abda91a7b
163
external/SDL2/SDL.h
vendored
163
external/SDL2/SDL.h
vendored
@ -1,163 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL.h
|
|
||||||
*
|
|
||||||
* Main include header for the SDL library
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \mainpage Simple DirectMedia Layer (SDL)
|
|
||||||
*
|
|
||||||
* http://www.libsdl.org/
|
|
||||||
*
|
|
||||||
* \section intro_sec Introduction
|
|
||||||
*
|
|
||||||
* This is the Simple DirectMedia Layer, a general API that provides low
|
|
||||||
* level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
|
|
||||||
* and 2D framebuffer across multiple platforms.
|
|
||||||
*
|
|
||||||
* SDL is written in C, but works with C++ natively, and has bindings to
|
|
||||||
* several other languages, including Ada, C#, Eiffel, Erlang, Euphoria,
|
|
||||||
* Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP,
|
|
||||||
* Pike, Pliant, Python, Ruby, and Smalltalk.
|
|
||||||
*
|
|
||||||
* This library is distributed under the zlib license, which can be
|
|
||||||
* found in the file "COPYING". This license allows you to use SDL
|
|
||||||
* freely for any purpose as long as you retain the copyright notice.
|
|
||||||
*
|
|
||||||
* The best way to learn how to use SDL is to check out the header files in
|
|
||||||
* the "include" subdirectory and the programs in the "test" subdirectory.
|
|
||||||
* The header files and test programs are well commented and always up to date.
|
|
||||||
* More documentation and FAQs are available online at:
|
|
||||||
* http://wiki.libsdl.org/
|
|
||||||
*
|
|
||||||
* If you need help with the library, or just want to discuss SDL related
|
|
||||||
* issues, you can join the developers mailing list:
|
|
||||||
* http://www.libsdl.org/mailing-list.php
|
|
||||||
*
|
|
||||||
* Enjoy!
|
|
||||||
* Sam Lantinga (slouken@libsdl.org)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_H
|
|
||||||
#define _SDL_H
|
|
||||||
|
|
||||||
#include "SDL_main.h"
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_assert.h"
|
|
||||||
#include "SDL_atomic.h"
|
|
||||||
#include "SDL_audio.h"
|
|
||||||
#include "SDL_clipboard.h"
|
|
||||||
#include "SDL_cpuinfo.h"
|
|
||||||
#include "SDL_endian.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_events.h"
|
|
||||||
#include "SDL_joystick.h"
|
|
||||||
#include "SDL_gamecontroller.h"
|
|
||||||
#include "SDL_haptic.h"
|
|
||||||
#include "SDL_hints.h"
|
|
||||||
#include "SDL_loadso.h"
|
|
||||||
#include "SDL_log.h"
|
|
||||||
#include "SDL_messagebox.h"
|
|
||||||
#include "SDL_mutex.h"
|
|
||||||
#include "SDL_power.h"
|
|
||||||
#include "SDL_render.h"
|
|
||||||
#include "SDL_rwops.h"
|
|
||||||
#include "SDL_system.h"
|
|
||||||
#include "SDL_thread.h"
|
|
||||||
#include "SDL_timer.h"
|
|
||||||
#include "SDL_version.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* As of version 0.5, SDL is loaded dynamically into the application */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name SDL_INIT_*
|
|
||||||
*
|
|
||||||
* These are the flags which may be passed to SDL_Init(). You should
|
|
||||||
* specify the subsystems which you will be using in your application.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#define SDL_INIT_TIMER 0x00000001
|
|
||||||
#define SDL_INIT_AUDIO 0x00000010
|
|
||||||
#define SDL_INIT_VIDEO 0x00000020
|
|
||||||
#define SDL_INIT_JOYSTICK 0x00000200
|
|
||||||
#define SDL_INIT_HAPTIC 0x00001000
|
|
||||||
#define SDL_INIT_GAMECONTROLLER 0x00002000 /**< turn on game controller also implicitly does JOYSTICK */
|
|
||||||
#define SDL_INIT_NOPARACHUTE 0x00100000 /**< Don't catch fatal signals */
|
|
||||||
#define SDL_INIT_EVERYTHING ( \
|
|
||||||
SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | \
|
|
||||||
SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER \
|
|
||||||
)
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function initializes the subsystems specified by \c flags
|
|
||||||
* Unless the ::SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
|
|
||||||
* signal handlers for some commonly ignored fatal signals (like SIGSEGV).
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function initializes specific SDL subsystems
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function cleans up specific SDL subsystems
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns a mask of the specified subsystems which have
|
|
||||||
* previously been initialized.
|
|
||||||
*
|
|
||||||
* If \c flags is 0, it returns a mask of all initialized subsystems.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function cleans up all initialized subsystems. You should
|
|
||||||
* call it upon all exit conditions.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_Quit(void);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_H */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
241
external/SDL2/SDL_assert.h
vendored
241
external/SDL2/SDL_assert.h
vendored
@ -1,241 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_assert_h
|
|
||||||
#define _SDL_assert_h
|
|
||||||
|
|
||||||
#include "SDL_config.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SDL_ASSERT_LEVEL
|
|
||||||
#ifdef SDL_DEFAULT_ASSERT_LEVEL
|
|
||||||
#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL
|
|
||||||
#elif defined(_DEBUG) || defined(DEBUG) || \
|
|
||||||
(defined(__GNUC__) && !defined(__OPTIMIZE__))
|
|
||||||
#define SDL_ASSERT_LEVEL 2
|
|
||||||
#else
|
|
||||||
#define SDL_ASSERT_LEVEL 1
|
|
||||||
#endif
|
|
||||||
#endif /* SDL_ASSERT_LEVEL */
|
|
||||||
|
|
||||||
/*
|
|
||||||
These are macros and not first class functions so that the debugger breaks
|
|
||||||
on the assertion line and not in some random guts of SDL, and so each
|
|
||||||
assert can have unique static variables associated with it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
/* Don't include intrin.h here because it contains C++ code */
|
|
||||||
extern void __cdecl __debugbreak(void);
|
|
||||||
#define SDL_TriggerBreakpoint() __debugbreak()
|
|
||||||
#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))
|
|
||||||
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
|
|
||||||
#elif defined(HAVE_SIGNAL_H)
|
|
||||||
#include <signal.h>
|
|
||||||
#define SDL_TriggerBreakpoint() raise(SIGTRAP)
|
|
||||||
#else
|
|
||||||
/* How do we trigger breakpoints on this platform? */
|
|
||||||
#define SDL_TriggerBreakpoint()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */
|
|
||||||
# define SDL_FUNCTION __func__
|
|
||||||
#elif ((__GNUC__ >= 2) || defined(_MSC_VER))
|
|
||||||
# define SDL_FUNCTION __FUNCTION__
|
|
||||||
#else
|
|
||||||
# define SDL_FUNCTION "???"
|
|
||||||
#endif
|
|
||||||
#define SDL_FILE __FILE__
|
|
||||||
#define SDL_LINE __LINE__
|
|
||||||
|
|
||||||
/*
|
|
||||||
sizeof (x) makes the compiler still parse the expression even without
|
|
||||||
assertions enabled, so the code is always checked at compile time, but
|
|
||||||
doesn't actually generate code for it, so there are no side effects or
|
|
||||||
expensive checks at run time, just the constant size of what x WOULD be,
|
|
||||||
which presumably gets optimized out as unused.
|
|
||||||
This also solves the problem of...
|
|
||||||
|
|
||||||
int somevalue = blah();
|
|
||||||
SDL_assert(somevalue == 1);
|
|
||||||
|
|
||||||
...which would cause compiles to complain that somevalue is unused if we
|
|
||||||
disable assertions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define SDL_disabled_assert(condition) \
|
|
||||||
do { (void) sizeof ((condition)); } while (0)
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_ASSERTION_RETRY, /**< Retry the assert immediately. */
|
|
||||||
SDL_ASSERTION_BREAK, /**< Make the debugger trigger a breakpoint. */
|
|
||||||
SDL_ASSERTION_ABORT, /**< Terminate the program. */
|
|
||||||
SDL_ASSERTION_IGNORE, /**< Ignore the assert. */
|
|
||||||
SDL_ASSERTION_ALWAYS_IGNORE /**< Ignore the assert from now on. */
|
|
||||||
} SDL_assert_state;
|
|
||||||
|
|
||||||
typedef struct SDL_assert_data
|
|
||||||
{
|
|
||||||
int always_ignore;
|
|
||||||
unsigned int trigger_count;
|
|
||||||
const char *condition;
|
|
||||||
const char *filename;
|
|
||||||
int linenum;
|
|
||||||
const char *function;
|
|
||||||
const struct SDL_assert_data *next;
|
|
||||||
} SDL_assert_data;
|
|
||||||
|
|
||||||
#if (SDL_ASSERT_LEVEL > 0)
|
|
||||||
|
|
||||||
/* Never call this directly. Use the SDL_assert* macros. */
|
|
||||||
extern DECLSPEC SDL_assert_state SDLCALL SDL_ReportAssertion(SDL_assert_data *,
|
|
||||||
const char *,
|
|
||||||
const char *, int);
|
|
||||||
|
|
||||||
/* the do {} while(0) avoids dangling else problems:
|
|
||||||
if (x) SDL_assert(y); else blah();
|
|
||||||
... without the do/while, the "else" could attach to this macro's "if".
|
|
||||||
We try to handle just the minimum we need here in a macro...the loop,
|
|
||||||
the static vars, and break points. The heavy lifting is handled in
|
|
||||||
SDL_ReportAssertion(), in SDL_assert.c.
|
|
||||||
*/
|
|
||||||
#define SDL_enabled_assert(condition) \
|
|
||||||
do { \
|
|
||||||
while ( !(condition) ) { \
|
|
||||||
static struct SDL_assert_data assert_data = { \
|
|
||||||
0, 0, #condition, 0, 0, 0, 0 \
|
|
||||||
}; \
|
|
||||||
const SDL_assert_state state = SDL_ReportAssertion(&assert_data, \
|
|
||||||
SDL_FUNCTION, \
|
|
||||||
SDL_FILE, \
|
|
||||||
SDL_LINE); \
|
|
||||||
if (state == SDL_ASSERTION_RETRY) { \
|
|
||||||
continue; /* go again. */ \
|
|
||||||
} else if (state == SDL_ASSERTION_BREAK) { \
|
|
||||||
SDL_TriggerBreakpoint(); \
|
|
||||||
} \
|
|
||||||
break; /* not retrying. */ \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#endif /* enabled assertions support code */
|
|
||||||
|
|
||||||
/* Enable various levels of assertions. */
|
|
||||||
#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */
|
|
||||||
# define SDL_assert(condition) SDL_disabled_assert(condition)
|
|
||||||
# define SDL_assert_release(condition) SDL_disabled_assert(condition)
|
|
||||||
# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition)
|
|
||||||
#elif SDL_ASSERT_LEVEL == 1 /* release settings. */
|
|
||||||
# define SDL_assert(condition) SDL_disabled_assert(condition)
|
|
||||||
# define SDL_assert_release(condition) SDL_enabled_assert(condition)
|
|
||||||
# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition)
|
|
||||||
#elif SDL_ASSERT_LEVEL == 2 /* normal settings. */
|
|
||||||
# define SDL_assert(condition) SDL_enabled_assert(condition)
|
|
||||||
# define SDL_assert_release(condition) SDL_enabled_assert(condition)
|
|
||||||
# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition)
|
|
||||||
#elif SDL_ASSERT_LEVEL == 3 /* paranoid settings. */
|
|
||||||
# define SDL_assert(condition) SDL_enabled_assert(condition)
|
|
||||||
# define SDL_assert_release(condition) SDL_enabled_assert(condition)
|
|
||||||
# define SDL_assert_paranoid(condition) SDL_enabled_assert(condition)
|
|
||||||
#else
|
|
||||||
# error Unknown assertion level.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
typedef SDL_assert_state (SDLCALL *SDL_AssertionHandler)(
|
|
||||||
const SDL_assert_data* data, void* userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set an application-defined assertion handler.
|
|
||||||
*
|
|
||||||
* This allows an app to show its own assertion UI and/or force the
|
|
||||||
* response to an assertion failure. If the app doesn't provide this, SDL
|
|
||||||
* will try to do the right thing, popping up a system-specific GUI dialog,
|
|
||||||
* and probably minimizing any fullscreen windows.
|
|
||||||
*
|
|
||||||
* This callback may fire from any thread, but it runs wrapped in a mutex, so
|
|
||||||
* it will only fire from one thread at a time.
|
|
||||||
*
|
|
||||||
* Setting the callback to NULL restores SDL's original internal handler.
|
|
||||||
*
|
|
||||||
* This callback is NOT reset to SDL's internal handler upon SDL_Quit()!
|
|
||||||
*
|
|
||||||
* \return SDL_assert_state value of how to handle the assertion failure.
|
|
||||||
*
|
|
||||||
* \param handler Callback function, called when an assertion fails.
|
|
||||||
* \param userdata A pointer passed to the callback as-is.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_SetAssertionHandler(
|
|
||||||
SDL_AssertionHandler handler,
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a list of all assertion failures.
|
|
||||||
*
|
|
||||||
* Get all assertions triggered since last call to SDL_ResetAssertionReport(),
|
|
||||||
* or the start of the program.
|
|
||||||
*
|
|
||||||
* The proper way to examine this data looks something like this:
|
|
||||||
*
|
|
||||||
* <code>
|
|
||||||
* const SDL_assert_data *item = SDL_GetAssertionReport();
|
|
||||||
* while (item) {
|
|
||||||
* printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\n",
|
|
||||||
* item->condition, item->function, item->filename,
|
|
||||||
* item->linenum, item->trigger_count,
|
|
||||||
* item->always_ignore ? "yes" : "no");
|
|
||||||
* item = item->next;
|
|
||||||
* }
|
|
||||||
* </code>
|
|
||||||
*
|
|
||||||
* \return List of all assertions.
|
|
||||||
* \sa SDL_ResetAssertionReport
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const SDL_assert_data * SDLCALL SDL_GetAssertionReport(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Reset the list of all assertion failures.
|
|
||||||
*
|
|
||||||
* Reset list of all assertions triggered.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetAssertionReport
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_assert_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
316
external/SDL2/SDL_atomic.h
vendored
316
external/SDL2/SDL_atomic.h
vendored
@ -1,316 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_atomic.h
|
|
||||||
*
|
|
||||||
* Atomic operations.
|
|
||||||
*
|
|
||||||
* IMPORTANT:
|
|
||||||
* If you are not an expert in concurrent lockless programming, you should
|
|
||||||
* only be using the atomic lock and reference counting functions in this
|
|
||||||
* file. In all other cases you should be protecting your data structures
|
|
||||||
* with full mutexes.
|
|
||||||
*
|
|
||||||
* The list of "safe" functions to use are:
|
|
||||||
* SDL_AtomicLock()
|
|
||||||
* SDL_AtomicUnlock()
|
|
||||||
* SDL_AtomicIncRef()
|
|
||||||
* SDL_AtomicDecRef()
|
|
||||||
*
|
|
||||||
* Seriously, here be dragons!
|
|
||||||
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
*
|
|
||||||
* You can find out a little more about lockless programming and the
|
|
||||||
* subtle issues that can arise here:
|
|
||||||
* http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx
|
|
||||||
*
|
|
||||||
* There's also lots of good information here:
|
|
||||||
* http://www.1024cores.net/home/lock-free-algorithms
|
|
||||||
*
|
|
||||||
* These operations may or may not actually be implemented using
|
|
||||||
* processor specific atomic operations. When possible they are
|
|
||||||
* implemented as true processor specific atomic operations. When that
|
|
||||||
* is not possible the are implemented using locks that *do* use the
|
|
||||||
* available atomic operations.
|
|
||||||
*
|
|
||||||
* All of the atomic operations that modify memory are full memory barriers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_atomic_h_
|
|
||||||
#define _SDL_atomic_h_
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_platform.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
|
|
||||||
/* Need to do this here because intrin.h has C++ code in it */
|
|
||||||
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
|
||||||
#include <intrin.h>
|
|
||||||
#define HAVE_MSC_ATOMICS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name SDL AtomicLock
|
|
||||||
*
|
|
||||||
* The atomic locks are efficient spinlocks using CPU instructions,
|
|
||||||
* but are vulnerable to starvation and can spin forever if a thread
|
|
||||||
* holding a lock has been terminated. For this reason you should
|
|
||||||
* minimize the code executed inside an atomic lock and never do
|
|
||||||
* expensive things like API or system calls while holding them.
|
|
||||||
*
|
|
||||||
* The atomic locks are not safe to lock recursively.
|
|
||||||
*
|
|
||||||
* Porting Note:
|
|
||||||
* The spin lock functions and type are required and can not be
|
|
||||||
* emulated because they are used in the atomic emulation code.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
typedef int SDL_SpinLock;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Try to lock a spin lock by setting it to a non-zero value.
|
|
||||||
*
|
|
||||||
* \param lock Points to the lock.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already held.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Lock a spin lock by setting it to a non-zero value.
|
|
||||||
*
|
|
||||||
* \param lock Points to the lock.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Unlock a spin lock by setting it to 0. Always returns immediately
|
|
||||||
*
|
|
||||||
* \param lock Points to the lock.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock);
|
|
||||||
|
|
||||||
/*@}*//*SDL AtomicLock*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The compiler barrier prevents the compiler from reordering
|
|
||||||
* reads and writes to globally visible variables across the call.
|
|
||||||
*/
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER > 1200)
|
|
||||||
void _ReadWriteBarrier(void);
|
|
||||||
#pragma intrinsic(_ReadWriteBarrier)
|
|
||||||
#define SDL_CompilerBarrier() _ReadWriteBarrier()
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory")
|
|
||||||
#else
|
|
||||||
#define SDL_CompilerBarrier() \
|
|
||||||
{ SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Platform specific optimized versions of the atomic functions,
|
|
||||||
* you can disable these by defining SDL_DISABLE_ATOMIC_INLINE
|
|
||||||
*/
|
|
||||||
#if defined(SDL_ATOMIC_DISABLED) && SDL_ATOMIC_DISABLED
|
|
||||||
#define SDL_DISABLE_ATOMIC_INLINE
|
|
||||||
#endif
|
|
||||||
#ifndef SDL_DISABLE_ATOMIC_INLINE
|
|
||||||
|
|
||||||
#ifdef HAVE_MSC_ATOMICS
|
|
||||||
|
|
||||||
#define SDL_AtomicSet(a, v) _InterlockedExchange((long*)&(a)->value, (v))
|
|
||||||
#define SDL_AtomicAdd(a, v) _InterlockedExchangeAdd((long*)&(a)->value, (v))
|
|
||||||
#define SDL_AtomicCAS(a, oldval, newval) (_InterlockedCompareExchange((long*)&(a)->value, (newval), (oldval)) == (oldval))
|
|
||||||
#define SDL_AtomicSetPtr(a, v) _InterlockedExchangePointer((a), (v))
|
|
||||||
#if _M_IX86
|
|
||||||
#define SDL_AtomicCASPtr(a, oldval, newval) (_InterlockedCompareExchange((long*)(a), (long)(newval), (long)(oldval)) == (long)(oldval))
|
|
||||||
#else
|
|
||||||
#define SDL_AtomicCASPtr(a, oldval, newval) (_InterlockedCompareExchangePointer((a), (newval), (oldval)) == (oldval))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__MACOSX__)
|
|
||||||
#include <libkern/OSAtomic.h>
|
|
||||||
|
|
||||||
#define SDL_AtomicCAS(a, oldval, newval) OSAtomicCompareAndSwap32Barrier((oldval), (newval), &(a)->value)
|
|
||||||
#ifdef __LP64__
|
|
||||||
#define SDL_AtomicCASPtr(a, oldval, newval) OSAtomicCompareAndSwap64Barrier((int64_t)(oldval), (int64_t)(newval), (int64_t*)(a))
|
|
||||||
#else
|
|
||||||
#define SDL_AtomicCASPtr(a, oldval, newval) OSAtomicCompareAndSwap32Barrier((int32_t)(oldval), (int32_t)(newval), (int32_t*)(a))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(HAVE_GCC_ATOMICS)
|
|
||||||
|
|
||||||
#define SDL_AtomicSet(a, v) __sync_lock_test_and_set(&(a)->value, v)
|
|
||||||
#define SDL_AtomicAdd(a, v) __sync_fetch_and_add(&(a)->value, v)
|
|
||||||
#define SDL_AtomicSetPtr(a, v) __sync_lock_test_and_set(a, v)
|
|
||||||
#define SDL_AtomicCAS(a, oldval, newval) __sync_bool_compare_and_swap(&(a)->value, oldval, newval)
|
|
||||||
#define SDL_AtomicCASPtr(a, oldval, newval) __sync_bool_compare_and_swap(a, oldval, newval)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !SDL_DISABLE_ATOMIC_INLINE */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A type representing an atomic integer value. It is a struct
|
|
||||||
* so people don't accidentally use numeric operations on it.
|
|
||||||
*/
|
|
||||||
#ifndef SDL_atomic_t_defined
|
|
||||||
typedef struct { int value; } SDL_atomic_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set an atomic variable to a new value if it is currently an old value.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise.
|
|
||||||
*
|
|
||||||
* \note If you don't know what this function is for, you shouldn't use it!
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicCAS
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set an atomic variable to a value.
|
|
||||||
*
|
|
||||||
* \return The previous value of the atomic variable.
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicSet
|
|
||||||
SDL_FORCE_INLINE int SDL_AtomicSet(SDL_atomic_t *a, int v)
|
|
||||||
{
|
|
||||||
int value;
|
|
||||||
do {
|
|
||||||
value = a->value;
|
|
||||||
} while (!SDL_AtomicCAS(a, value, v));
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the value of an atomic variable
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicGet
|
|
||||||
SDL_FORCE_INLINE int SDL_AtomicGet(SDL_atomic_t *a)
|
|
||||||
{
|
|
||||||
int value = a->value;
|
|
||||||
SDL_CompilerBarrier();
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Add to an atomic variable.
|
|
||||||
*
|
|
||||||
* \return The previous value of the atomic variable.
|
|
||||||
*
|
|
||||||
* \note This same style can be used for any number operation
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicAdd
|
|
||||||
SDL_FORCE_INLINE int SDL_AtomicAdd(SDL_atomic_t *a, int v)
|
|
||||||
{
|
|
||||||
int value;
|
|
||||||
do {
|
|
||||||
value = a->value;
|
|
||||||
} while (!SDL_AtomicCAS(a, value, (value + v)));
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Increment an atomic variable used as a reference count.
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicIncRef
|
|
||||||
#define SDL_AtomicIncRef(a) SDL_AtomicAdd(a, 1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Decrement an atomic variable used as a reference count.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the variable reached zero after decrementing,
|
|
||||||
* SDL_FALSE otherwise
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicDecRef
|
|
||||||
#define SDL_AtomicDecRef(a) (SDL_AtomicAdd(a, -1) == 1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set a pointer to a new value if it is currently an old value.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the pointer was set, SDL_FALSE otherwise.
|
|
||||||
*
|
|
||||||
* \note If you don't know what this function is for, you shouldn't use it!
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicCASPtr
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void* *a, void *oldval, void *newval);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set a pointer to a value atomically.
|
|
||||||
*
|
|
||||||
* \return The previous value of the pointer.
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicSetPtr
|
|
||||||
SDL_FORCE_INLINE void* SDL_AtomicSetPtr(void* *a, void* v)
|
|
||||||
{
|
|
||||||
void* value;
|
|
||||||
do {
|
|
||||||
value = *a;
|
|
||||||
} while (!SDL_AtomicCASPtr(a, value, v));
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the value of a pointer atomically.
|
|
||||||
*/
|
|
||||||
#ifndef SDL_AtomicGetPtr
|
|
||||||
SDL_FORCE_INLINE void* SDL_AtomicGetPtr(void* *a)
|
|
||||||
{
|
|
||||||
void* value = *a;
|
|
||||||
SDL_CompilerBarrier();
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_atomic_h_ */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
509
external/SDL2/SDL_audio.h
vendored
509
external/SDL2/SDL_audio.h
vendored
@ -1,509 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_audio.h
|
|
||||||
*
|
|
||||||
* Access to the raw audio mixing buffer for the SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_audio_h
|
|
||||||
#define _SDL_audio_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_endian.h"
|
|
||||||
#include "SDL_mutex.h"
|
|
||||||
#include "SDL_thread.h"
|
|
||||||
#include "SDL_rwops.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Audio format flags.
|
|
||||||
*
|
|
||||||
* These are what the 16 bits in SDL_AudioFormat currently mean...
|
|
||||||
* (Unspecified bits are always zero).
|
|
||||||
*
|
|
||||||
* \verbatim
|
|
||||||
++-----------------------sample is signed if set
|
|
||||||
||
|
|
||||||
|| ++-----------sample is bigendian if set
|
|
||||||
|| ||
|
|
||||||
|| || ++---sample is float if set
|
|
||||||
|| || ||
|
|
||||||
|| || || +---sample bit size---+
|
|
||||||
|| || || | |
|
|
||||||
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
|
|
||||||
\endverbatim
|
|
||||||
*
|
|
||||||
* There are macros in SDL 2.0 and later to query these bits.
|
|
||||||
*/
|
|
||||||
typedef Uint16 SDL_AudioFormat;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Audio flags
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
#define SDL_AUDIO_MASK_BITSIZE (0xFF)
|
|
||||||
#define SDL_AUDIO_MASK_DATATYPE (1<<8)
|
|
||||||
#define SDL_AUDIO_MASK_ENDIAN (1<<12)
|
|
||||||
#define SDL_AUDIO_MASK_SIGNED (1<<15)
|
|
||||||
#define SDL_AUDIO_BITSIZE(x) (x & SDL_AUDIO_MASK_BITSIZE)
|
|
||||||
#define SDL_AUDIO_ISFLOAT(x) (x & SDL_AUDIO_MASK_DATATYPE)
|
|
||||||
#define SDL_AUDIO_ISBIGENDIAN(x) (x & SDL_AUDIO_MASK_ENDIAN)
|
|
||||||
#define SDL_AUDIO_ISSIGNED(x) (x & SDL_AUDIO_MASK_SIGNED)
|
|
||||||
#define SDL_AUDIO_ISINT(x) (!SDL_AUDIO_ISFLOAT(x))
|
|
||||||
#define SDL_AUDIO_ISLITTLEENDIAN(x) (!SDL_AUDIO_ISBIGENDIAN(x))
|
|
||||||
#define SDL_AUDIO_ISUNSIGNED(x) (!SDL_AUDIO_ISSIGNED(x))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Audio format flags
|
|
||||||
*
|
|
||||||
* Defaults to LSB byte order.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */
|
|
||||||
#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */
|
|
||||||
#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */
|
|
||||||
#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */
|
|
||||||
#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */
|
|
||||||
#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */
|
|
||||||
#define AUDIO_U16 AUDIO_U16LSB
|
|
||||||
#define AUDIO_S16 AUDIO_S16LSB
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name int32 support
|
|
||||||
*
|
|
||||||
* New to SDL 1.3.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#define AUDIO_S32LSB 0x8020 /**< 32-bit integer samples */
|
|
||||||
#define AUDIO_S32MSB 0x9020 /**< As above, but big-endian byte order */
|
|
||||||
#define AUDIO_S32 AUDIO_S32LSB
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name float32 support
|
|
||||||
*
|
|
||||||
* New to SDL 1.3.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#define AUDIO_F32LSB 0x8120 /**< 32-bit floating point samples */
|
|
||||||
#define AUDIO_F32MSB 0x9120 /**< As above, but big-endian byte order */
|
|
||||||
#define AUDIO_F32 AUDIO_F32LSB
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Native audio byte ordering
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
|
|
||||||
#define AUDIO_U16SYS AUDIO_U16LSB
|
|
||||||
#define AUDIO_S16SYS AUDIO_S16LSB
|
|
||||||
#define AUDIO_S32SYS AUDIO_S32LSB
|
|
||||||
#define AUDIO_F32SYS AUDIO_F32LSB
|
|
||||||
#else
|
|
||||||
#define AUDIO_U16SYS AUDIO_U16MSB
|
|
||||||
#define AUDIO_S16SYS AUDIO_S16MSB
|
|
||||||
#define AUDIO_S32SYS AUDIO_S32MSB
|
|
||||||
#define AUDIO_F32SYS AUDIO_F32MSB
|
|
||||||
#endif
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Allow change flags
|
|
||||||
*
|
|
||||||
* Which audio format changes are allowed when opening a device.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#define SDL_AUDIO_ALLOW_FREQUENCY_CHANGE 0x00000001
|
|
||||||
#define SDL_AUDIO_ALLOW_FORMAT_CHANGE 0x00000002
|
|
||||||
#define SDL_AUDIO_ALLOW_CHANNELS_CHANGE 0x00000004
|
|
||||||
#define SDL_AUDIO_ALLOW_ANY_CHANGE (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE)
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/*@}*//*Audio flags*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function is called when the audio device needs more data.
|
|
||||||
*
|
|
||||||
* \param userdata An application-specific parameter saved in
|
|
||||||
* the SDL_AudioSpec structure
|
|
||||||
* \param stream A pointer to the audio data buffer.
|
|
||||||
* \param len The length of that buffer in bytes.
|
|
||||||
*
|
|
||||||
* Once the callback returns, the buffer will no longer be valid.
|
|
||||||
* Stereo samples are stored in a LRLRLR ordering.
|
|
||||||
*/
|
|
||||||
typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream,
|
|
||||||
int len);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The calculated values in this structure are calculated by SDL_OpenAudio().
|
|
||||||
*/
|
|
||||||
typedef struct SDL_AudioSpec
|
|
||||||
{
|
|
||||||
int freq; /**< DSP frequency -- samples per second */
|
|
||||||
SDL_AudioFormat format; /**< Audio data format */
|
|
||||||
Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */
|
|
||||||
Uint8 silence; /**< Audio buffer silence value (calculated) */
|
|
||||||
Uint16 samples; /**< Audio buffer size in samples (power of 2) */
|
|
||||||
Uint16 padding; /**< Necessary for some compile environments */
|
|
||||||
Uint32 size; /**< Audio buffer size in bytes (calculated) */
|
|
||||||
SDL_AudioCallback callback;
|
|
||||||
void *userdata;
|
|
||||||
} SDL_AudioSpec;
|
|
||||||
|
|
||||||
|
|
||||||
struct SDL_AudioCVT;
|
|
||||||
typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt,
|
|
||||||
SDL_AudioFormat format);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A structure to hold a set of audio conversion filters and buffers.
|
|
||||||
*/
|
|
||||||
typedef struct SDL_AudioCVT
|
|
||||||
{
|
|
||||||
int needed; /**< Set to 1 if conversion possible */
|
|
||||||
SDL_AudioFormat src_format; /**< Source audio format */
|
|
||||||
SDL_AudioFormat dst_format; /**< Target audio format */
|
|
||||||
double rate_incr; /**< Rate conversion increment */
|
|
||||||
Uint8 *buf; /**< Buffer to hold entire audio data */
|
|
||||||
int len; /**< Length of original audio buffer */
|
|
||||||
int len_cvt; /**< Length of converted audio buffer */
|
|
||||||
int len_mult; /**< buffer must be len*len_mult big */
|
|
||||||
double len_ratio; /**< Given len, final size is len*len_ratio */
|
|
||||||
SDL_AudioFilter filters[10]; /**< Filter list */
|
|
||||||
int filter_index; /**< Current audio conversion function */
|
|
||||||
} SDL_AudioCVT;
|
|
||||||
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Driver discovery functions
|
|
||||||
*
|
|
||||||
* These functions return the list of built in audio drivers, in the
|
|
||||||
* order that they are normally initialized by default.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void);
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index);
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Initialization and cleanup
|
|
||||||
*
|
|
||||||
* \internal These functions are used internally, and should not be used unless
|
|
||||||
* you have a specific need to specify the audio driver you want to
|
|
||||||
* use. You should normally use SDL_Init() or SDL_InitSubSystem().
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_AudioQuit(void);
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns the name of the current audio driver, or NULL
|
|
||||||
* if no driver has been initialized.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function opens the audio device with the desired parameters, and
|
|
||||||
* returns 0 if successful, placing the actual hardware parameters in the
|
|
||||||
* structure pointed to by \c obtained. If \c obtained is NULL, the audio
|
|
||||||
* data passed to the callback function will be guaranteed to be in the
|
|
||||||
* requested format, and will be automatically converted to the hardware
|
|
||||||
* audio format if necessary. This function returns -1 if it failed
|
|
||||||
* to open the audio device, or couldn't set up the audio thread.
|
|
||||||
*
|
|
||||||
* When filling in the desired audio spec structure,
|
|
||||||
* - \c desired->freq should be the desired audio frequency in samples-per-
|
|
||||||
* second.
|
|
||||||
* - \c desired->format should be the desired audio format.
|
|
||||||
* - \c desired->samples is the desired size of the audio buffer, in
|
|
||||||
* samples. This number should be a power of two, and may be adjusted by
|
|
||||||
* the audio driver to a value more suitable for the hardware. Good values
|
|
||||||
* seem to range between 512 and 8096 inclusive, depending on the
|
|
||||||
* application and CPU speed. Smaller values yield faster response time,
|
|
||||||
* but can lead to underflow if the application is doing heavy processing
|
|
||||||
* and cannot fill the audio buffer in time. A stereo sample consists of
|
|
||||||
* both right and left channels in LR ordering.
|
|
||||||
* Note that the number of samples is directly related to time by the
|
|
||||||
* following formula: \code ms = (samples*1000)/freq \endcode
|
|
||||||
* - \c desired->size is the size in bytes of the audio buffer, and is
|
|
||||||
* calculated by SDL_OpenAudio().
|
|
||||||
* - \c desired->silence is the value used to set the buffer to silence,
|
|
||||||
* and is calculated by SDL_OpenAudio().
|
|
||||||
* - \c desired->callback should be set to a function that will be called
|
|
||||||
* when the audio device is ready for more data. It is passed a pointer
|
|
||||||
* to the audio buffer, and the length in bytes of the audio buffer.
|
|
||||||
* This function usually runs in a separate thread, and so you should
|
|
||||||
* protect data structures that it accesses by calling SDL_LockAudio()
|
|
||||||
* and SDL_UnlockAudio() in your code.
|
|
||||||
* - \c desired->userdata is passed as the first parameter to your callback
|
|
||||||
* function.
|
|
||||||
*
|
|
||||||
* The audio device starts out playing silence when it's opened, and should
|
|
||||||
* be enabled for playing by calling \c SDL_PauseAudio(0) when you are ready
|
|
||||||
* for your audio callback function to be called. Since the audio driver
|
|
||||||
* may modify the requested size of the audio buffer, you should allocate
|
|
||||||
* any local mixing buffers after you open the audio device.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired,
|
|
||||||
SDL_AudioSpec * obtained);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* SDL Audio Device IDs.
|
|
||||||
*
|
|
||||||
* A successful call to SDL_OpenAudio() is always device id 1, and legacy
|
|
||||||
* SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls
|
|
||||||
* always returns devices >= 2 on success. The legacy calls are good both
|
|
||||||
* for backwards compatibility and when you don't care about multiple,
|
|
||||||
* specific, or capture devices.
|
|
||||||
*/
|
|
||||||
typedef Uint32 SDL_AudioDeviceID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the number of available devices exposed by the current driver.
|
|
||||||
* Only valid after a successfully initializing the audio subsystem.
|
|
||||||
* Returns -1 if an explicit list of devices can't be determined; this is
|
|
||||||
* not an error. For example, if SDL is set up to talk to a remote audio
|
|
||||||
* server, it can't list every one available on the Internet, but it will
|
|
||||||
* still allow a specific host to be specified to SDL_OpenAudioDevice().
|
|
||||||
*
|
|
||||||
* In many common cases, when this function returns a value <= 0, it can still
|
|
||||||
* successfully open the default device (NULL for first argument of
|
|
||||||
* SDL_OpenAudioDevice()).
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the human-readable name of a specific audio device.
|
|
||||||
* Must be a value between 0 and (number of audio devices-1).
|
|
||||||
* Only valid after a successfully initializing the audio subsystem.
|
|
||||||
* The values returned by this function reflect the latest call to
|
|
||||||
* SDL_GetNumAudioDevices(); recall that function to redetect available
|
|
||||||
* hardware.
|
|
||||||
*
|
|
||||||
* The string returned by this function is UTF-8 encoded, read-only, and
|
|
||||||
* managed internally. You are not to free it. If you need to keep the
|
|
||||||
* string for any length of time, you should make your own copy of it, as it
|
|
||||||
* will be invalid next time any of several other SDL functions is called.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index,
|
|
||||||
int iscapture);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Open a specific audio device. Passing in a device name of NULL requests
|
|
||||||
* the most reasonable default (and is equivalent to calling SDL_OpenAudio()).
|
|
||||||
*
|
|
||||||
* The device name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but
|
|
||||||
* some drivers allow arbitrary and driver-specific strings, such as a
|
|
||||||
* hostname/IP address for a remote audio server, or a filename in the
|
|
||||||
* diskaudio driver.
|
|
||||||
*
|
|
||||||
* \return 0 on error, a valid device ID that is >= 2 on success.
|
|
||||||
*
|
|
||||||
* SDL_OpenAudio(), unlike this function, always acts on device ID 1.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_OpenAudioDevice(const char
|
|
||||||
*device,
|
|
||||||
int iscapture,
|
|
||||||
const
|
|
||||||
SDL_AudioSpec *
|
|
||||||
desired,
|
|
||||||
SDL_AudioSpec *
|
|
||||||
obtained,
|
|
||||||
int
|
|
||||||
allowed_changes);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Audio state
|
|
||||||
*
|
|
||||||
* Get the current audio state.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_AUDIO_STOPPED = 0,
|
|
||||||
SDL_AUDIO_PLAYING,
|
|
||||||
SDL_AUDIO_PAUSED
|
|
||||||
} SDL_AudioStatus;
|
|
||||||
extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void);
|
|
||||||
|
|
||||||
extern DECLSPEC SDL_AudioStatus SDLCALL
|
|
||||||
SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev);
|
|
||||||
/*@}*//*Audio State*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Pause audio functions
|
|
||||||
*
|
|
||||||
* These functions pause and unpause the audio callback processing.
|
|
||||||
* They should be called with a parameter of 0 after opening the audio
|
|
||||||
* device to start playing sound. This is so you can safely initialize
|
|
||||||
* data for your callback function after opening the audio device.
|
|
||||||
* Silence will be written to the audio device during the pause.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev,
|
|
||||||
int pause_on);
|
|
||||||
/*@}*//*Pause audio functions*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function loads a WAVE from the data source, automatically freeing
|
|
||||||
* that source if \c freesrc is non-zero. For example, to load a WAVE file,
|
|
||||||
* you could do:
|
|
||||||
* \code
|
|
||||||
* SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...);
|
|
||||||
* \endcode
|
|
||||||
*
|
|
||||||
* If this function succeeds, it returns the given SDL_AudioSpec,
|
|
||||||
* filled with the audio data format of the wave data, and sets
|
|
||||||
* \c *audio_buf to a malloc()'d buffer containing the audio data,
|
|
||||||
* and sets \c *audio_len to the length of that audio buffer, in bytes.
|
|
||||||
* You need to free the audio buffer with SDL_FreeWAV() when you are
|
|
||||||
* done with it.
|
|
||||||
*
|
|
||||||
* This function returns NULL and sets the SDL error message if the
|
|
||||||
* wave file cannot be opened, uses an unknown data format, or is
|
|
||||||
* corrupt. Currently raw and MS-ADPCM WAVE files are supported.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
|
|
||||||
int freesrc,
|
|
||||||
SDL_AudioSpec * spec,
|
|
||||||
Uint8 ** audio_buf,
|
|
||||||
Uint32 * audio_len);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads a WAV from a file.
|
|
||||||
* Compatibility convenience function.
|
|
||||||
*/
|
|
||||||
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
|
|
||||||
SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function frees data previously allocated with SDL_LoadWAV_RW()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function takes a source format and rate and a destination format
|
|
||||||
* and rate, and initializes the \c cvt structure with information needed
|
|
||||||
* by SDL_ConvertAudio() to convert a buffer of audio data from one format
|
|
||||||
* to the other.
|
|
||||||
*
|
|
||||||
* \return -1 if the format conversion is not supported, 0 if there's
|
|
||||||
* no conversion needed, or 1 if the audio filter is set up.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt,
|
|
||||||
SDL_AudioFormat src_format,
|
|
||||||
Uint8 src_channels,
|
|
||||||
int src_rate,
|
|
||||||
SDL_AudioFormat dst_format,
|
|
||||||
Uint8 dst_channels,
|
|
||||||
int dst_rate);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Once you have initialized the \c cvt structure using SDL_BuildAudioCVT(),
|
|
||||||
* created an audio buffer \c cvt->buf, and filled it with \c cvt->len bytes of
|
|
||||||
* audio data in the source format, this function will convert it in-place
|
|
||||||
* to the desired format.
|
|
||||||
*
|
|
||||||
* The data conversion may expand the size of the audio data, so the buffer
|
|
||||||
* \c cvt->buf should be allocated after the \c cvt structure is initialized by
|
|
||||||
* SDL_BuildAudioCVT(), and should be \c cvt->len*cvt->len_mult bytes long.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt);
|
|
||||||
|
|
||||||
#define SDL_MIX_MAXVOLUME 128
|
|
||||||
/**
|
|
||||||
* This takes two audio buffers of the playing audio format and mixes
|
|
||||||
* them, performing addition, volume adjustment, and overflow clipping.
|
|
||||||
* The volume ranges from 0 - 128, and should be set to ::SDL_MIX_MAXVOLUME
|
|
||||||
* for full audio volume. Note this does not change hardware volume.
|
|
||||||
* This is provided for convenience -- you can mix your own audio data.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src,
|
|
||||||
Uint32 len, int volume);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This works like SDL_MixAudio(), but you specify the audio format instead of
|
|
||||||
* using the format of audio device 1. Thus it can be used when no audio
|
|
||||||
* device is open at all.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst,
|
|
||||||
const Uint8 * src,
|
|
||||||
SDL_AudioFormat format,
|
|
||||||
Uint32 len, int volume);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Audio lock functions
|
|
||||||
*
|
|
||||||
* The lock manipulated by these functions protects the callback function.
|
|
||||||
* During a SDL_LockAudio()/SDL_UnlockAudio() pair, you can be guaranteed that
|
|
||||||
* the callback function is not running. Do not call these from the callback
|
|
||||||
* function or you will cause deadlock.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LockAudio(void);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LockAudioDevice(SDL_AudioDeviceID dev);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_UnlockAudio(void);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_UnlockAudioDevice(SDL_AudioDeviceID dev);
|
|
||||||
/*@}*//*Audio lock functions*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function shuts down audio processing and closes the audio device.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_CloseAudio(void);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \return 1 if audio device is still functioning, zero if not, -1 on error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_AudioDeviceConnected(SDL_AudioDeviceID dev);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_audio_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
94
external/SDL2/SDL_bits.h
vendored
94
external/SDL2/SDL_bits.h
vendored
@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_bits.h
|
|
||||||
*
|
|
||||||
* Functions for fiddling with bits and bitmasks.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_bits_h
|
|
||||||
#define _SDL_bits_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_bits.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the index of the most significant bit. Result is undefined when called
|
|
||||||
* with 0. This operation can also be stated as "count leading zeroes" and
|
|
||||||
* "log base 2".
|
|
||||||
*
|
|
||||||
* \return Index of the most significant bit.
|
|
||||||
*/
|
|
||||||
SDL_FORCE_INLINE Sint8
|
|
||||||
SDL_MostSignificantBitIndex32(Uint32 x)
|
|
||||||
{
|
|
||||||
#if defined(__GNUC__) && __GNUC__ >= 4
|
|
||||||
/* Count Leading Zeroes builtin in GCC.
|
|
||||||
* http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html
|
|
||||||
*/
|
|
||||||
return 31 - __builtin_clz(x);
|
|
||||||
#else
|
|
||||||
/* Based off of Bit Twiddling Hacks by Sean Eron Anderson
|
|
||||||
* <seander@cs.stanford.edu>, released in the public domain.
|
|
||||||
* http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog
|
|
||||||
*/
|
|
||||||
const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000};
|
|
||||||
const Uint8 S[] = {1, 2, 4, 8, 16};
|
|
||||||
|
|
||||||
Uint8 msbIndex = 0;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 4; i >= 0; i--)
|
|
||||||
{
|
|
||||||
if (x & b[i])
|
|
||||||
{
|
|
||||||
x >>= S[i];
|
|
||||||
msbIndex |= S[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return msbIndex;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_bits_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
75
external/SDL2/SDL_clipboard.h
vendored
75
external/SDL2/SDL_clipboard.h
vendored
@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_clipboard.h
|
|
||||||
*
|
|
||||||
* Include file for SDL clipboard handling
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_clipboard_h
|
|
||||||
#define _SDL_clipboard_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Put UTF-8 text into the clipboard
|
|
||||||
*
|
|
||||||
* \sa SDL_GetClipboardText()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get UTF-8 text from the clipboard, which must be freed with SDL_free()
|
|
||||||
*
|
|
||||||
* \sa SDL_SetClipboardText()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty
|
|
||||||
*
|
|
||||||
* \sa SDL_GetClipboardText()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_clipboard_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
20
external/SDL2/SDL_copying.h
vendored
20
external/SDL2/SDL_copying.h
vendored
@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
150
external/SDL2/SDL_cpuinfo.h
vendored
150
external/SDL2/SDL_cpuinfo.h
vendored
@ -1,150 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_cpuinfo.h
|
|
||||||
*
|
|
||||||
* CPU feature detection for SDL.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_cpuinfo_h
|
|
||||||
#define _SDL_cpuinfo_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
/* Need to do this here because intrin.h has C++ code in it */
|
|
||||||
/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
|
||||||
#include <intrin.h>
|
|
||||||
#ifndef _WIN64
|
|
||||||
#define __MMX__
|
|
||||||
#define __3dNOW__
|
|
||||||
#endif
|
|
||||||
#define __SSE__
|
|
||||||
#define __SSE2__
|
|
||||||
#elif defined(__MINGW64_VERSION_MAJOR)
|
|
||||||
#include <intrin.h>
|
|
||||||
#else
|
|
||||||
#ifdef __ALTIVEC__
|
|
||||||
#if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__)
|
|
||||||
#include <altivec.h>
|
|
||||||
#undef pixel
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifdef __MMX__
|
|
||||||
#include <mmintrin.h>
|
|
||||||
#endif
|
|
||||||
#ifdef __3dNOW__
|
|
||||||
#include <mm3dnow.h>
|
|
||||||
#endif
|
|
||||||
#ifdef __SSE__
|
|
||||||
#include <xmmintrin.h>
|
|
||||||
#endif
|
|
||||||
#ifdef __SSE2__
|
|
||||||
#include <emmintrin.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This is a guess for the cacheline size used for padding.
|
|
||||||
* Most x86 processors have a 64 byte cache line.
|
|
||||||
* The 64-bit PowerPC processors have a 128 byte cache line.
|
|
||||||
* We'll use the larger value to be generally safe.
|
|
||||||
*/
|
|
||||||
#define SDL_CACHELINE_SIZE 128
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns the number of CPU cores available.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetCPUCount(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns the L1 cache line size of the CPU
|
|
||||||
*
|
|
||||||
* This is useful for determining multi-threaded structure padding
|
|
||||||
* or SIMD prefetch sizes.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has the RDTSC instruction.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has AltiVec features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has MMX features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has 3DNow! features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has SSE features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has SSE2 features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has SSE3 features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has SSE4.1 features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function returns true if the CPU has SSE4.2 features.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_cpuinfo_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
243
external/SDL2/SDL_endian.h
vendored
243
external/SDL2/SDL_endian.h
vendored
@ -1,243 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_endian.h
|
|
||||||
*
|
|
||||||
* Functions for reading and writing endian-specific values
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_endian_h
|
|
||||||
#define _SDL_endian_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name The two types of endianness
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#define SDL_LIL_ENDIAN 1234
|
|
||||||
#define SDL_BIG_ENDIAN 4321
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */
|
|
||||||
#ifdef __linux__
|
|
||||||
#include <endian.h>
|
|
||||||
#define SDL_BYTEORDER __BYTE_ORDER
|
|
||||||
#else /* __linux __ */
|
|
||||||
#if defined(__hppa__) || \
|
|
||||||
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
|
|
||||||
(defined(__MIPS__) && defined(__MISPEB__)) || \
|
|
||||||
defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
|
|
||||||
defined(__sparc__)
|
|
||||||
#define SDL_BYTEORDER SDL_BIG_ENDIAN
|
|
||||||
#else
|
|
||||||
#define SDL_BYTEORDER SDL_LIL_ENDIAN
|
|
||||||
#endif
|
|
||||||
#endif /* __linux __ */
|
|
||||||
#endif /* !SDL_BYTEORDER */
|
|
||||||
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_endian.h
|
|
||||||
*/
|
|
||||||
#if defined(__GNUC__) && defined(__i386__) && \
|
|
||||||
!(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */)
|
|
||||||
SDL_FORCE_INLINE Uint16
|
|
||||||
SDL_Swap16(Uint16 x)
|
|
||||||
{
|
|
||||||
__asm__("xchgb %b0,%h0": "=q"(x):"0"(x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && defined(__x86_64__)
|
|
||||||
SDL_FORCE_INLINE Uint16
|
|
||||||
SDL_Swap16(Uint16 x)
|
|
||||||
{
|
|
||||||
__asm__("xchgb %b0,%h0": "=Q"(x):"0"(x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
|
|
||||||
SDL_FORCE_INLINE Uint16
|
|
||||||
SDL_Swap16(Uint16 x)
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
|
|
||||||
__asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x));
|
|
||||||
return (Uint16)result;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__)
|
|
||||||
SDL_FORCE_INLINE Uint16
|
|
||||||
SDL_Swap16(Uint16 x)
|
|
||||||
{
|
|
||||||
__asm__("rorw #8,%0": "=d"(x): "0"(x):"cc");
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
SDL_FORCE_INLINE Uint16
|
|
||||||
SDL_Swap16(Uint16 x)
|
|
||||||
{
|
|
||||||
return SDL_static_cast(Uint16, ((x << 8) | (x >> 8)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__i386__)
|
|
||||||
SDL_FORCE_INLINE Uint32
|
|
||||||
SDL_Swap32(Uint32 x)
|
|
||||||
{
|
|
||||||
__asm__("bswap %0": "=r"(x):"0"(x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && defined(__x86_64__)
|
|
||||||
SDL_FORCE_INLINE Uint32
|
|
||||||
SDL_Swap32(Uint32 x)
|
|
||||||
{
|
|
||||||
__asm__("bswapl %0": "=r"(x):"0"(x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
|
|
||||||
SDL_FORCE_INLINE Uint32
|
|
||||||
SDL_Swap32(Uint32 x)
|
|
||||||
{
|
|
||||||
Uint32 result;
|
|
||||||
|
|
||||||
__asm__("rlwimi %0,%2,24,16,23": "=&r"(result):"0"(x >> 24), "r"(x));
|
|
||||||
__asm__("rlwimi %0,%2,8,8,15": "=&r"(result):"0"(result), "r"(x));
|
|
||||||
__asm__("rlwimi %0,%2,24,0,7": "=&r"(result):"0"(result), "r"(x));
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__)
|
|
||||||
SDL_FORCE_INLINE Uint32
|
|
||||||
SDL_Swap32(Uint32 x)
|
|
||||||
{
|
|
||||||
__asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc");
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
SDL_FORCE_INLINE Uint32
|
|
||||||
SDL_Swap32(Uint32 x)
|
|
||||||
{
|
|
||||||
return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) |
|
|
||||||
((x >> 8) & 0x0000FF00) | (x >> 24)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__i386__)
|
|
||||||
SDL_FORCE_INLINE Uint64
|
|
||||||
SDL_Swap64(Uint64 x)
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Uint32 a, b;
|
|
||||||
} s;
|
|
||||||
Uint64 u;
|
|
||||||
} v;
|
|
||||||
v.u = x;
|
|
||||||
__asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1": "=r"(v.s.a), "=r"(v.s.b):"0"(v.s.a),
|
|
||||||
"1"(v.s.
|
|
||||||
b));
|
|
||||||
return v.u;
|
|
||||||
}
|
|
||||||
#elif defined(__GNUC__) && defined(__x86_64__)
|
|
||||||
SDL_FORCE_INLINE Uint64
|
|
||||||
SDL_Swap64(Uint64 x)
|
|
||||||
{
|
|
||||||
__asm__("bswapq %0": "=r"(x):"0"(x));
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
SDL_FORCE_INLINE Uint64
|
|
||||||
SDL_Swap64(Uint64 x)
|
|
||||||
{
|
|
||||||
Uint32 hi, lo;
|
|
||||||
|
|
||||||
/* Separate into high and low 32-bit values and swap them */
|
|
||||||
lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
|
|
||||||
x >>= 32;
|
|
||||||
hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
|
|
||||||
x = SDL_Swap32(lo);
|
|
||||||
x <<= 32;
|
|
||||||
x |= SDL_Swap32(hi);
|
|
||||||
return (x);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
SDL_FORCE_INLINE float
|
|
||||||
SDL_SwapFloat(float x)
|
|
||||||
{
|
|
||||||
union
|
|
||||||
{
|
|
||||||
float f;
|
|
||||||
Uint32 ui32;
|
|
||||||
} swapper;
|
|
||||||
swapper.f = x;
|
|
||||||
swapper.ui32 = SDL_Swap32(swapper.ui32);
|
|
||||||
return swapper.f;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Swap to native
|
|
||||||
* Byteswap item from the specified endianness to the native endianness.
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
|
|
||||||
#define SDL_SwapLE16(X) (X)
|
|
||||||
#define SDL_SwapLE32(X) (X)
|
|
||||||
#define SDL_SwapLE64(X) (X)
|
|
||||||
#define SDL_SwapFloatLE(X) (X)
|
|
||||||
#define SDL_SwapBE16(X) SDL_Swap16(X)
|
|
||||||
#define SDL_SwapBE32(X) SDL_Swap32(X)
|
|
||||||
#define SDL_SwapBE64(X) SDL_Swap64(X)
|
|
||||||
#define SDL_SwapFloatBE(X) SDL_SwapFloat(X)
|
|
||||||
#else
|
|
||||||
#define SDL_SwapLE16(X) SDL_Swap16(X)
|
|
||||||
#define SDL_SwapLE32(X) SDL_Swap32(X)
|
|
||||||
#define SDL_SwapLE64(X) SDL_Swap64(X)
|
|
||||||
#define SDL_SwapFloatLE(X) SDL_SwapFloat(X)
|
|
||||||
#define SDL_SwapBE16(X) (X)
|
|
||||||
#define SDL_SwapBE32(X) (X)
|
|
||||||
#define SDL_SwapBE64(X) (X)
|
|
||||||
#define SDL_SwapFloatBE(X) (X)
|
|
||||||
#endif
|
|
||||||
/*@}*//*Swap to native*/
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_endian_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
690
external/SDL2/SDL_events.h
vendored
690
external/SDL2/SDL_events.h
vendored
@ -1,690 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_events.h
|
|
||||||
*
|
|
||||||
* Include file for SDL event handling.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_events_h
|
|
||||||
#define _SDL_events_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
#include "SDL_keyboard.h"
|
|
||||||
#include "SDL_mouse.h"
|
|
||||||
#include "SDL_joystick.h"
|
|
||||||
#include "SDL_gamecontroller.h"
|
|
||||||
#include "SDL_quit.h"
|
|
||||||
#include "SDL_gesture.h"
|
|
||||||
#include "SDL_touch.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* General keyboard/mouse state definitions */
|
|
||||||
#define SDL_RELEASED 0
|
|
||||||
#define SDL_PRESSED 1
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The types of events that can be delivered.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */
|
|
||||||
|
|
||||||
/* Application events */
|
|
||||||
SDL_QUIT = 0x100, /**< User-requested quit */
|
|
||||||
|
|
||||||
/* Window events */
|
|
||||||
SDL_WINDOWEVENT = 0x200, /**< Window state change */
|
|
||||||
SDL_SYSWMEVENT, /**< System specific event */
|
|
||||||
|
|
||||||
/* Keyboard events */
|
|
||||||
SDL_KEYDOWN = 0x300, /**< Key pressed */
|
|
||||||
SDL_KEYUP, /**< Key released */
|
|
||||||
SDL_TEXTEDITING, /**< Keyboard text editing (composition) */
|
|
||||||
SDL_TEXTINPUT, /**< Keyboard text input */
|
|
||||||
|
|
||||||
/* Mouse events */
|
|
||||||
SDL_MOUSEMOTION = 0x400, /**< Mouse moved */
|
|
||||||
SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */
|
|
||||||
SDL_MOUSEBUTTONUP, /**< Mouse button released */
|
|
||||||
SDL_MOUSEWHEEL, /**< Mouse wheel motion */
|
|
||||||
|
|
||||||
/* Joystick events */
|
|
||||||
SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */
|
|
||||||
SDL_JOYBALLMOTION, /**< Joystick trackball motion */
|
|
||||||
SDL_JOYHATMOTION, /**< Joystick hat position change */
|
|
||||||
SDL_JOYBUTTONDOWN, /**< Joystick button pressed */
|
|
||||||
SDL_JOYBUTTONUP, /**< Joystick button released */
|
|
||||||
SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */
|
|
||||||
SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */
|
|
||||||
|
|
||||||
/* Game controller events */
|
|
||||||
SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */
|
|
||||||
SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */
|
|
||||||
SDL_CONTROLLERBUTTONUP, /**< Game controller button released */
|
|
||||||
SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */
|
|
||||||
SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */
|
|
||||||
SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */
|
|
||||||
|
|
||||||
/* Touch events */
|
|
||||||
SDL_FINGERDOWN = 0x700,
|
|
||||||
SDL_FINGERUP,
|
|
||||||
SDL_FINGERMOTION,
|
|
||||||
|
|
||||||
/* Gesture events */
|
|
||||||
SDL_DOLLARGESTURE = 0x800,
|
|
||||||
SDL_DOLLARRECORD,
|
|
||||||
SDL_MULTIGESTURE,
|
|
||||||
|
|
||||||
/* Clipboard events */
|
|
||||||
SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */
|
|
||||||
|
|
||||||
/* Drag and drop events */
|
|
||||||
SDL_DROPFILE = 0x1000, /**< The system requests a file open */
|
|
||||||
|
|
||||||
/** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
|
|
||||||
* and should be allocated with SDL_RegisterEvents()
|
|
||||||
*/
|
|
||||||
SDL_USEREVENT = 0x8000,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This last event is only for bounding internal arrays
|
|
||||||
*/
|
|
||||||
SDL_LASTEVENT = 0xFFFF
|
|
||||||
} SDL_EventType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Fields shared by every event
|
|
||||||
*/
|
|
||||||
typedef struct SDL_GenericEvent
|
|
||||||
{
|
|
||||||
Uint32 type;
|
|
||||||
Uint32 timestamp;
|
|
||||||
} SDL_GenericEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Window state change event data (event.window.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_WindowEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_WINDOWEVENT */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The associated window */
|
|
||||||
Uint8 event; /**< ::SDL_WindowEventID */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
Uint8 padding3;
|
|
||||||
Sint32 data1; /**< event dependent data */
|
|
||||||
Sint32 data2; /**< event dependent data */
|
|
||||||
} SDL_WindowEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Keyboard button event structure (event.key.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_KeyboardEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The window with keyboard focus, if any */
|
|
||||||
Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
|
|
||||||
Uint8 repeat; /**< Non-zero if this is a key repeat */
|
|
||||||
Uint8 padding2;
|
|
||||||
Uint8 padding3;
|
|
||||||
SDL_Keysym keysym; /**< The key that was pressed or released */
|
|
||||||
} SDL_KeyboardEvent;
|
|
||||||
|
|
||||||
#define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32)
|
|
||||||
/**
|
|
||||||
* \brief Keyboard text editing event structure (event.edit.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_TextEditingEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_TEXTEDITING */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The window with keyboard focus, if any */
|
|
||||||
char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */
|
|
||||||
Sint32 start; /**< The start cursor of selected editing text */
|
|
||||||
Sint32 length; /**< The length of selected editing text */
|
|
||||||
} SDL_TextEditingEvent;
|
|
||||||
|
|
||||||
|
|
||||||
#define SDL_TEXTINPUTEVENT_TEXT_SIZE (32)
|
|
||||||
/**
|
|
||||||
* \brief Keyboard text input event structure (event.text.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_TextInputEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_TEXTINPUT */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The window with keyboard focus, if any */
|
|
||||||
char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */
|
|
||||||
} SDL_TextInputEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Mouse motion event structure (event.motion.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_MouseMotionEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_MOUSEMOTION */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The window with mouse focus, if any */
|
|
||||||
Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
|
|
||||||
Uint8 state; /**< The current button state */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
Uint8 padding3;
|
|
||||||
Sint32 x; /**< X coordinate, relative to window */
|
|
||||||
Sint32 y; /**< Y coordinate, relative to window */
|
|
||||||
Sint32 xrel; /**< The relative motion in the X direction */
|
|
||||||
Sint32 yrel; /**< The relative motion in the Y direction */
|
|
||||||
} SDL_MouseMotionEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Mouse button event structure (event.button.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_MouseButtonEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The window with mouse focus, if any */
|
|
||||||
Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
|
|
||||||
Uint8 button; /**< The mouse button index */
|
|
||||||
Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
Sint32 x; /**< X coordinate, relative to window */
|
|
||||||
Sint32 y; /**< Y coordinate, relative to window */
|
|
||||||
} SDL_MouseButtonEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Mouse wheel event structure (event.wheel.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_MouseWheelEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_MOUSEWHEEL */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The window with mouse focus, if any */
|
|
||||||
Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
|
|
||||||
Sint32 x; /**< The amount scrolled horizontally */
|
|
||||||
Sint32 y; /**< The amount scrolled vertically */
|
|
||||||
} SDL_MouseWheelEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Joystick axis motion event structure (event.jaxis.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_JoyAxisEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_JOYAXISMOTION */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_JoystickID which; /**< The joystick instance id */
|
|
||||||
Uint8 axis; /**< The joystick axis index */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
Uint8 padding3;
|
|
||||||
Sint16 value; /**< The axis value (range: -32768 to 32767) */
|
|
||||||
Uint16 padding4;
|
|
||||||
} SDL_JoyAxisEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Joystick trackball motion event structure (event.jball.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_JoyBallEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_JOYBALLMOTION */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_JoystickID which; /**< The joystick instance id */
|
|
||||||
Uint8 ball; /**< The joystick trackball index */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
Uint8 padding3;
|
|
||||||
Sint16 xrel; /**< The relative motion in the X direction */
|
|
||||||
Sint16 yrel; /**< The relative motion in the Y direction */
|
|
||||||
} SDL_JoyBallEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Joystick hat position change event structure (event.jhat.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_JoyHatEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_JOYHATMOTION */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_JoystickID which; /**< The joystick instance id */
|
|
||||||
Uint8 hat; /**< The joystick hat index */
|
|
||||||
Uint8 value; /**< The hat position value.
|
|
||||||
* \sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP
|
|
||||||
* \sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT
|
|
||||||
* \sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN
|
|
||||||
*
|
|
||||||
* Note that zero means the POV is centered.
|
|
||||||
*/
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
} SDL_JoyHatEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Joystick button event structure (event.jbutton.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_JoyButtonEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_JoystickID which; /**< The joystick instance id */
|
|
||||||
Uint8 button; /**< The joystick button index */
|
|
||||||
Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
} SDL_JoyButtonEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Joystick device event structure (event.jdevice.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_JoyDeviceEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */
|
|
||||||
} SDL_JoyDeviceEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Game controller axis motion event structure (event.caxis.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_ControllerAxisEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_JoystickID which; /**< The joystick instance id */
|
|
||||||
Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
Uint8 padding3;
|
|
||||||
Sint16 value; /**< The axis value (range: -32768 to 32767) */
|
|
||||||
Uint16 padding4;
|
|
||||||
} SDL_ControllerAxisEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Game controller button event structure (event.cbutton.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_ControllerButtonEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_JoystickID which; /**< The joystick instance id */
|
|
||||||
Uint8 button; /**< The controller button (SDL_GameControllerButton) */
|
|
||||||
Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
|
|
||||||
Uint8 padding1;
|
|
||||||
Uint8 padding2;
|
|
||||||
} SDL_ControllerButtonEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Controller device event structure (event.cdevice.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_ControllerDeviceEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */
|
|
||||||
} SDL_ControllerDeviceEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Touch finger event structure (event.tfinger.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_TouchFingerEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_TouchID touchId; /**< The touch device id */
|
|
||||||
SDL_FingerID fingerId;
|
|
||||||
float x; /**< Normalized in the range 0...1 */
|
|
||||||
float y; /**< Normalized in the range 0...1 */
|
|
||||||
float dx; /**< Normalized in the range 0...1 */
|
|
||||||
float dy; /**< Normalized in the range 0...1 */
|
|
||||||
float pressure; /**< Normalized in the range 0...1 */
|
|
||||||
} SDL_TouchFingerEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Multiple Finger Gesture Event (event.mgesture.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_MultiGestureEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_MULTIGESTURE */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_TouchID touchId; /**< The touch device index */
|
|
||||||
float dTheta;
|
|
||||||
float dDist;
|
|
||||||
float x;
|
|
||||||
float y;
|
|
||||||
Uint16 numFingers;
|
|
||||||
Uint16 padding;
|
|
||||||
} SDL_MultiGestureEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/* (event.dgesture.*) */
|
|
||||||
typedef struct SDL_DollarGestureEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_DOLLARGESTURE */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_TouchID touchId; /**< The touch device id */
|
|
||||||
SDL_GestureID gestureId;
|
|
||||||
Uint32 numFingers;
|
|
||||||
float error;
|
|
||||||
float x; /**< Normalized center of gesture */
|
|
||||||
float y; /**< Normalized center of gesture */
|
|
||||||
} SDL_DollarGestureEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief An event used to request a file open by the system (event.drop.*)
|
|
||||||
* This event is disabled by default, you can enable it with SDL_EventState()
|
|
||||||
* \note If you enable this event, you must free the filename in the event.
|
|
||||||
*/
|
|
||||||
typedef struct SDL_DropEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_DROPFILE */
|
|
||||||
Uint32 timestamp;
|
|
||||||
char *file; /**< The file name, which should be freed with SDL_free() */
|
|
||||||
} SDL_DropEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The "quit requested" event
|
|
||||||
*/
|
|
||||||
typedef struct SDL_QuitEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_QUIT */
|
|
||||||
Uint32 timestamp;
|
|
||||||
} SDL_QuitEvent;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A user-defined event type (event.user.*)
|
|
||||||
*/
|
|
||||||
typedef struct SDL_UserEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_USEREVENT through ::SDL_NUMEVENTS-1 */
|
|
||||||
Uint32 timestamp;
|
|
||||||
Uint32 windowID; /**< The associated window if any */
|
|
||||||
Sint32 code; /**< User defined event code */
|
|
||||||
void *data1; /**< User defined data pointer */
|
|
||||||
void *data2; /**< User defined data pointer */
|
|
||||||
} SDL_UserEvent;
|
|
||||||
|
|
||||||
|
|
||||||
struct SDL_SysWMmsg;
|
|
||||||
typedef struct SDL_SysWMmsg SDL_SysWMmsg;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A video driver dependent system event (event.syswm.*)
|
|
||||||
* This event is disabled by default, you can enable it with SDL_EventState()
|
|
||||||
*
|
|
||||||
* \note If you want to use this event, you should include SDL_syswm.h.
|
|
||||||
*/
|
|
||||||
typedef struct SDL_SysWMEvent
|
|
||||||
{
|
|
||||||
Uint32 type; /**< ::SDL_SYSWMEVENT */
|
|
||||||
Uint32 timestamp;
|
|
||||||
SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */
|
|
||||||
} SDL_SysWMEvent;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief General event structure
|
|
||||||
*/
|
|
||||||
typedef union SDL_Event
|
|
||||||
{
|
|
||||||
Uint32 type; /**< Event type, shared with all events */
|
|
||||||
SDL_GenericEvent generic; /**< Generic event data */
|
|
||||||
SDL_WindowEvent window; /**< Window event data */
|
|
||||||
SDL_KeyboardEvent key; /**< Keyboard event data */
|
|
||||||
SDL_TextEditingEvent edit; /**< Text editing event data */
|
|
||||||
SDL_TextInputEvent text; /**< Text input event data */
|
|
||||||
SDL_MouseMotionEvent motion; /**< Mouse motion event data */
|
|
||||||
SDL_MouseButtonEvent button; /**< Mouse button event data */
|
|
||||||
SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */
|
|
||||||
SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */
|
|
||||||
SDL_JoyBallEvent jball; /**< Joystick ball event data */
|
|
||||||
SDL_JoyHatEvent jhat; /**< Joystick hat event data */
|
|
||||||
SDL_JoyButtonEvent jbutton; /**< Joystick button event data */
|
|
||||||
SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */
|
|
||||||
SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */
|
|
||||||
SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */
|
|
||||||
SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */
|
|
||||||
SDL_QuitEvent quit; /**< Quit request event data */
|
|
||||||
SDL_UserEvent user; /**< Custom event data */
|
|
||||||
SDL_SysWMEvent syswm; /**< System dependent window event data */
|
|
||||||
SDL_TouchFingerEvent tfinger; /**< Touch finger event data */
|
|
||||||
SDL_MultiGestureEvent mgesture; /**< Gesture event data */
|
|
||||||
SDL_DollarGestureEvent dgesture; /**< Gesture event data */
|
|
||||||
SDL_DropEvent drop; /**< Drag and drop event data */
|
|
||||||
|
|
||||||
/* This is necessary for ABI compatibility between Visual C++ and GCC
|
|
||||||
Visual C++ will respect the push pack pragma and use 52 bytes for
|
|
||||||
this structure, and GCC will use the alignment of the largest datatype
|
|
||||||
within the union, which is 8 bytes.
|
|
||||||
|
|
||||||
So... we'll add padding to force the size to be 56 bytes for both.
|
|
||||||
*/
|
|
||||||
Uint8 padding[56];
|
|
||||||
} SDL_Event;
|
|
||||||
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pumps the event loop, gathering events from the input devices.
|
|
||||||
*
|
|
||||||
* This function updates the event queue and internal input device state.
|
|
||||||
*
|
|
||||||
* This should only be run in the thread that sets the video mode.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_PumpEvents(void);
|
|
||||||
|
|
||||||
/*@{*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_ADDEVENT,
|
|
||||||
SDL_PEEKEVENT,
|
|
||||||
SDL_GETEVENT
|
|
||||||
} SDL_eventaction;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks the event queue for messages and optionally returns them.
|
|
||||||
*
|
|
||||||
* If \c action is ::SDL_ADDEVENT, up to \c numevents events will be added to
|
|
||||||
* the back of the event queue.
|
|
||||||
*
|
|
||||||
* If \c action is ::SDL_PEEKEVENT, up to \c numevents events at the front
|
|
||||||
* of the event queue, within the specified minimum and maximum type,
|
|
||||||
* will be returned and will not be removed from the queue.
|
|
||||||
*
|
|
||||||
* If \c action is ::SDL_GETEVENT, up to \c numevents events at the front
|
|
||||||
* of the event queue, within the specified minimum and maximum type,
|
|
||||||
* will be returned and will be removed from the queue.
|
|
||||||
*
|
|
||||||
* \return The number of events actually stored, or -1 if there was an error.
|
|
||||||
*
|
|
||||||
* This function is thread-safe.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents,
|
|
||||||
SDL_eventaction action,
|
|
||||||
Uint32 minType, Uint32 maxType);
|
|
||||||
/*@}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks to see if certain event types are in the event queue.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type);
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function clears events from the event queue
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Polls for currently pending events.
|
|
||||||
*
|
|
||||||
* \return 1 if there are any pending events, or 0 if there are none available.
|
|
||||||
*
|
|
||||||
* \param event If not NULL, the next event is removed from the queue and
|
|
||||||
* stored in that area.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Waits indefinitely for the next available event.
|
|
||||||
*
|
|
||||||
* \return 1, or 0 if there was an error while waiting for events.
|
|
||||||
*
|
|
||||||
* \param event If not NULL, the next event is removed from the queue and
|
|
||||||
* stored in that area.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Waits until the specified timeout (in milliseconds) for the next
|
|
||||||
* available event.
|
|
||||||
*
|
|
||||||
* \return 1, or 0 if there was an error while waiting for events.
|
|
||||||
*
|
|
||||||
* \param event If not NULL, the next event is removed from the queue and
|
|
||||||
* stored in that area.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event,
|
|
||||||
int timeout);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Add an event to the event queue.
|
|
||||||
*
|
|
||||||
* \return 1 on success, 0 if the event was filtered, or -1 if the event queue
|
|
||||||
* was full or there was some other error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event);
|
|
||||||
|
|
||||||
typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets up a filter to process all events before they change internal state and
|
|
||||||
* are posted to the internal event queue.
|
|
||||||
*
|
|
||||||
* The filter is protypted as:
|
|
||||||
* \code
|
|
||||||
* int SDL_EventFilter(void *userdata, SDL_Event * event);
|
|
||||||
* \endcode
|
|
||||||
*
|
|
||||||
* If the filter returns 1, then the event will be added to the internal queue.
|
|
||||||
* If it returns 0, then the event will be dropped from the queue, but the
|
|
||||||
* internal state will still be updated. This allows selective filtering of
|
|
||||||
* dynamically arriving events.
|
|
||||||
*
|
|
||||||
* \warning Be very careful of what you do in the event filter function, as
|
|
||||||
* it may run in a different thread!
|
|
||||||
*
|
|
||||||
* There is one caveat when dealing with the ::SDL_QUITEVENT event type. The
|
|
||||||
* event filter is only called when the window manager desires to close the
|
|
||||||
* application window. If the event filter returns 1, then the window will
|
|
||||||
* be closed, otherwise the window will remain open if possible.
|
|
||||||
*
|
|
||||||
* If the quit event is generated by an interrupt signal, it will bypass the
|
|
||||||
* internal queue and be delivered to the application at the next event poll.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter,
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the current event filter - can be used to "chain" filters.
|
|
||||||
* If there is no event filter set, this function returns SDL_FALSE.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter,
|
|
||||||
void **userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a function which is called when an event is added to the queue.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter,
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove an event watch function added with SDL_AddEventWatch()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter,
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the filter function on the current event queue, removing any
|
|
||||||
* events for which the filter returns 0.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter,
|
|
||||||
void *userdata);
|
|
||||||
|
|
||||||
/*@{*/
|
|
||||||
#define SDL_QUERY -1
|
|
||||||
#define SDL_IGNORE 0
|
|
||||||
#define SDL_DISABLE 0
|
|
||||||
#define SDL_ENABLE 1
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function allows you to set the state of processing certain events.
|
|
||||||
* - If \c state is set to ::SDL_IGNORE, that event will be automatically
|
|
||||||
* dropped from the event queue and will not event be filtered.
|
|
||||||
* - If \c state is set to ::SDL_ENABLE, that event will be processed
|
|
||||||
* normally.
|
|
||||||
* - If \c state is set to ::SDL_QUERY, SDL_EventState() will return the
|
|
||||||
* current processing state of the specified event.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state);
|
|
||||||
/*@}*/
|
|
||||||
#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function allocates a set of user-defined events, and returns
|
|
||||||
* the beginning event number for that set of events.
|
|
||||||
*
|
|
||||||
* If there aren't enough user-defined events left, this function
|
|
||||||
* returns (Uint32)-1
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_events_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
91
external/SDL2/SDL_gesture.h
vendored
91
external/SDL2/SDL_gesture.h
vendored
@ -1,91 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_gesture.h
|
|
||||||
*
|
|
||||||
* Include file for SDL gesture event handling.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_gesture_h
|
|
||||||
#define _SDL_gesture_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "SDL_touch.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef Sint64 SDL_GestureID;
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Begin Recording a gesture on the specified touch, or all touches (-1)
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Save all currently loaded Dollar Gesture templates
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *src);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Save a currently loaded Dollar Gesture template
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *src);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Load Dollar Gesture templates from a file
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_gesture_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
1200
external/SDL2/SDL_haptic.h
vendored
1200
external/SDL2/SDL_haptic.h
vendored
File diff suppressed because it is too large
Load Diff
290
external/SDL2/SDL_hints.h
vendored
290
external/SDL2/SDL_hints.h
vendored
@ -1,290 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_hints.h
|
|
||||||
*
|
|
||||||
* Official documentation for SDL configuration variables
|
|
||||||
*
|
|
||||||
* This file contains functions to set and get configuration hints,
|
|
||||||
* as well as listing each of them alphabetically.
|
|
||||||
*
|
|
||||||
* The convention for naming hints is SDL_HINT_X, where "SDL_X" is
|
|
||||||
* the environment variable that can be used to override the default.
|
|
||||||
*
|
|
||||||
* In general these hints are just that - they may or may not be
|
|
||||||
* supported or applicable on any given platform, but they provide
|
|
||||||
* a way for an application or user to give the library a hint as
|
|
||||||
* to how they would like the library to work.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_hints_h
|
|
||||||
#define _SDL_hints_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling how 3D acceleration is used to accelerate the SDL 1.2 screen surface.
|
|
||||||
*
|
|
||||||
* SDL can try to accelerate the SDL 1.2 screen surface by using streaming
|
|
||||||
* textures with a 3D rendering engine. This variable controls whether and
|
|
||||||
* how this is done.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Disable 3D acceleration
|
|
||||||
* "1" - Enable 3D acceleration, using the default renderer.
|
|
||||||
* "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.)
|
|
||||||
*
|
|
||||||
* By default SDL tries to make a best guess for each platform whether
|
|
||||||
* to use acceleration or not.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable specifying which render driver to use.
|
|
||||||
*
|
|
||||||
* If the application doesn't pick a specific renderer to use, this variable
|
|
||||||
* specifies the name of the preferred renderer. If the preferred renderer
|
|
||||||
* can't be initialized, the normal default renderer is used.
|
|
||||||
*
|
|
||||||
* This variable is case insensitive and can be set to the following values:
|
|
||||||
* "direct3d"
|
|
||||||
* "opengl"
|
|
||||||
* "opengles2"
|
|
||||||
* "opengles"
|
|
||||||
* "software"
|
|
||||||
*
|
|
||||||
* The default varies by platform, but it's the first one in the list that
|
|
||||||
* is available on the current platform.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether the OpenGL render driver uses shaders if they are available.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Disable shaders
|
|
||||||
* "1" - Enable shaders
|
|
||||||
*
|
|
||||||
* By default shaders are used if OpenGL supports them.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling the scaling quality
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" or "nearest" - Nearest pixel sampling
|
|
||||||
* "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D)
|
|
||||||
* "2" or "best" - Anisotropic filtering (supported by Direct3D)
|
|
||||||
*
|
|
||||||
* By default nearest pixel sampling is used
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether updates to the SDL 1.2 screen surface should be synchronized with the vertical refresh, to avoid tearing.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Disable vsync
|
|
||||||
* "1" - Enable vsync
|
|
||||||
*
|
|
||||||
* By default SDL does not sync screen surface updates with vertical refresh.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether the X11 VidMode extension should be used.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Disable XVidMode
|
|
||||||
* "1" - Enable XVidMode
|
|
||||||
*
|
|
||||||
* By default SDL will use XVidMode if it is available.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether the X11 Xinerama extension should be used.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Disable Xinerama
|
|
||||||
* "1" - Enable Xinerama
|
|
||||||
*
|
|
||||||
* By default SDL will use Xinerama if it is available.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether the X11 XRandR extension should be used.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Disable XRandR
|
|
||||||
* "1" - Enable XRandR
|
|
||||||
*
|
|
||||||
* By default SDL will not use XRandR because of window manager issues.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether grabbing input grabs the keyboard
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Grab will affect only the mouse
|
|
||||||
* "1" - Grab will affect mouse and keyboard
|
|
||||||
*
|
|
||||||
* By default SDL will not grab the keyboard so system shortcuts still work.
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Minimize your SDL_Window if it loses key focus when in Fullscreen mode. Defaults to true.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling whether the idle timer is disabled on iOS.
|
|
||||||
*
|
|
||||||
* When an iOS app does not receive touches for some time, the screen is
|
|
||||||
* dimmed automatically. For games where the accelerometer is the only input
|
|
||||||
* this is problematic. This functionality can be disabled by setting this
|
|
||||||
* hint.
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - Enable idle timer
|
|
||||||
* "1" - Disable idle timer
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable controlling which orientations are allowed on iOS.
|
|
||||||
*
|
|
||||||
* In some circumstances it is necessary to be able to explicitly control
|
|
||||||
* which UI orientations are allowed.
|
|
||||||
*
|
|
||||||
* This variable is a space delimited list of the following values:
|
|
||||||
* "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown"
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable that lets you disable the detection and use of Xinput gamepad devices
|
|
||||||
*
|
|
||||||
* The variable can be set to the following values:
|
|
||||||
* "0" - Disable XInput timer (only uses direct input)
|
|
||||||
* "1" - Enable XInput timer (the default)
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A variable that lets you manually hint extra gamecontroller db entries
|
|
||||||
*
|
|
||||||
* The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h
|
|
||||||
*
|
|
||||||
* This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER)
|
|
||||||
* You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping()
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief If set to 0 then never set the top most bit on a SDL Window, even if the video mode expects it.
|
|
||||||
* This is a debugging aid for developers and not expected to be used by end users. The default is "1"
|
|
||||||
*
|
|
||||||
* This variable can be set to the following values:
|
|
||||||
* "0" - don't allow topmost
|
|
||||||
* "1" - allow topmost
|
|
||||||
*/
|
|
||||||
#define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief An enumeration of hint priorities
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_HINT_DEFAULT,
|
|
||||||
SDL_HINT_NORMAL,
|
|
||||||
SDL_HINT_OVERRIDE
|
|
||||||
} SDL_HintPriority;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set a hint with a specific priority
|
|
||||||
*
|
|
||||||
* The priority controls the behavior when setting a hint that already
|
|
||||||
* has a value. Hints will replace existing hints of their priority and
|
|
||||||
* lower. Environment variables are considered to have override priority.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the hint was set, SDL_FALSE otherwise
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name,
|
|
||||||
const char *value,
|
|
||||||
SDL_HintPriority priority);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set a hint with normal priority
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the hint was set, SDL_FALSE otherwise
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name,
|
|
||||||
const char *value);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a hint
|
|
||||||
*
|
|
||||||
* \return The string value of a hint variable.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Clear all hints
|
|
||||||
*
|
|
||||||
* This function is called during SDL_Quit() to free stored hints.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_ClearHints(void);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_hints_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
87
external/SDL2/SDL_input.h
vendored
87
external/SDL2/SDL_input.h
vendored
@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_input.h
|
|
||||||
*
|
|
||||||
* Include file for lowlevel SDL input device handling.
|
|
||||||
*
|
|
||||||
* This talks about individual devices, and not the system cursor. If you
|
|
||||||
* just want to know when the user moves the pointer somewhere in your
|
|
||||||
* window, this is NOT the API you want. This one handles things like
|
|
||||||
* multi-touch, drawing tablets, and multiple, separate mice.
|
|
||||||
*
|
|
||||||
* The other API is in SDL_mouse.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_input_h
|
|
||||||
#define _SDL_input_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/* !!! FIXME: real documentation
|
|
||||||
* - Redetect devices
|
|
||||||
* - This invalidates all existing device information from previous queries!
|
|
||||||
* - There is an implicit (re)detect upon SDL_Init().
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RedetectInputDevices(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the number of mouse input devices available.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumInputDevices(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Gets the name of a device with the given index.
|
|
||||||
*
|
|
||||||
* \param index is the index of the device, whose name is to be returned.
|
|
||||||
*
|
|
||||||
* \return the name of the device with the specified index
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetInputDeviceName(int index);
|
|
||||||
|
|
||||||
|
|
||||||
extern DECLSPEC int SDLCALL SDL_IsDeviceDisconnected(int index);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_mouse_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
219
external/SDL2/SDL_keyboard.h
vendored
219
external/SDL2/SDL_keyboard.h
vendored
@ -1,219 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_keyboard.h
|
|
||||||
*
|
|
||||||
* Include file for SDL keyboard event handling
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_keyboard_h
|
|
||||||
#define _SDL_keyboard_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_keycode.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The SDL keysym structure, used in key events.
|
|
||||||
*/
|
|
||||||
typedef struct SDL_Keysym
|
|
||||||
{
|
|
||||||
SDL_Scancode scancode; /**< SDL physical key code - see ::SDL_Scancode for details */
|
|
||||||
SDL_Keycode sym; /**< SDL virtual key code - see ::SDL_Keycode for details */
|
|
||||||
Uint16 mod; /**< current key modifiers */
|
|
||||||
Uint32 unicode; /**< \deprecated use SDL_TextInputEvent instead */
|
|
||||||
} SDL_Keysym;
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the window which currently has keyboard focus.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a snapshot of the current state of the keyboard.
|
|
||||||
*
|
|
||||||
* \param numkeys if non-NULL, receives the length of the returned array.
|
|
||||||
*
|
|
||||||
* \return An array of key states. Indexes into this array are obtained by using ::SDL_Scancode values.
|
|
||||||
*
|
|
||||||
* \b Example:
|
|
||||||
* \code
|
|
||||||
* Uint8 *state = SDL_GetKeyboardState(NULL);
|
|
||||||
* if ( state[SDL_SCANCODE_RETURN] ) {
|
|
||||||
* printf("<RETURN> is pressed.\n");
|
|
||||||
* }
|
|
||||||
* \endcode
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the current key modifier state for the keyboard.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Keymod SDLCALL SDL_GetModState(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the current key modifier state for the keyboard.
|
|
||||||
*
|
|
||||||
* \note This does not change the keyboard state, only the key modifier flags.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_SetModState(SDL_Keymod modstate);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the key code corresponding to the given scancode according
|
|
||||||
* to the current keyboard layout.
|
|
||||||
*
|
|
||||||
* See ::SDL_Keycode for details.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetKeyName()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromScancode(SDL_Scancode scancode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the scancode corresponding to the given key code according to the
|
|
||||||
* current keyboard layout.
|
|
||||||
*
|
|
||||||
* See ::SDL_Scancode for details.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetScancodeName()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromKey(SDL_Keycode key);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a human-readable name for a scancode.
|
|
||||||
*
|
|
||||||
* \return A pointer to the name for the scancode.
|
|
||||||
* If the scancode doesn't have a name, this function returns
|
|
||||||
* an empty string ("").
|
|
||||||
*
|
|
||||||
* \sa SDL_Scancode
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetScancodeName(SDL_Scancode scancode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a scancode from a human-readable name
|
|
||||||
*
|
|
||||||
* \return scancode, or SDL_SCANCODE_UNKNOWN if the name wasn't recognized
|
|
||||||
*
|
|
||||||
* \sa SDL_Scancode
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a human-readable name for a key.
|
|
||||||
*
|
|
||||||
* \return A pointer to a UTF-8 string that stays valid at least until the next
|
|
||||||
* call to this function. If you need it around any longer, you must
|
|
||||||
* copy it. If the key doesn't have a name, this function returns an
|
|
||||||
* empty string ("").
|
|
||||||
*
|
|
||||||
* \sa SDL_Key
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get a key code from a human-readable name
|
|
||||||
*
|
|
||||||
* \return key code, or SDLK_UNKNOWN if the name wasn't recognized
|
|
||||||
*
|
|
||||||
* \sa SDL_Keycode
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromName(const char *name);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Start accepting Unicode text input events.
|
|
||||||
* This function will show the on-screen keyboard if supported.
|
|
||||||
*
|
|
||||||
* \sa SDL_StopTextInput()
|
|
||||||
* \sa SDL_SetTextInputRect()
|
|
||||||
* \sa SDL_HasScreenKeyboardSupport()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_StartTextInput(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Return whether or not Unicode text input events are enabled.
|
|
||||||
*
|
|
||||||
* \sa SDL_StartTextInput()
|
|
||||||
* \sa SDL_StopTextInput()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Stop receiving any text input events.
|
|
||||||
* This function will hide the on-screen keyboard if supported.
|
|
||||||
*
|
|
||||||
* \sa SDL_StartTextInput()
|
|
||||||
* \sa SDL_HasScreenKeyboardSupport()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_StopTextInput(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the rectangle used to type Unicode text inputs.
|
|
||||||
* This is used as a hint for IME and on-screen keyboard placement.
|
|
||||||
*
|
|
||||||
* \sa SDL_StartTextInput()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_SetTextInputRect(SDL_Rect *rect);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Returns whether the platform has some screen keyboard support.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if some keyboard support is available else SDL_FALSE.
|
|
||||||
*
|
|
||||||
* \note Not all screen keyboard functions are supported on all platforms.
|
|
||||||
*
|
|
||||||
* \sa SDL_IsScreenKeyboardShown()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_HasScreenKeyboardSupport(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Returns whether the screen keyboard is shown for given window.
|
|
||||||
*
|
|
||||||
* \param window The window for which screen keyboard should be queried.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if screen keyboard is shown else SDL_FALSE.
|
|
||||||
*
|
|
||||||
* \sa SDL_HasScreenKeyboardSupport()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_keyboard_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
341
external/SDL2/SDL_keycode.h
vendored
341
external/SDL2/SDL_keycode.h
vendored
@ -1,341 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_keycode.h
|
|
||||||
*
|
|
||||||
* Defines constants which identify keyboard keys and modifiers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_keycode_h
|
|
||||||
#define _SDL_keycode_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_scancode.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The SDL virtual key representation.
|
|
||||||
*
|
|
||||||
* Values of this type are used to represent keyboard keys using the current
|
|
||||||
* layout of the keyboard. These values include Unicode values representing
|
|
||||||
* the unmodified character that would be generated by pressing the key, or
|
|
||||||
* an SDLK_* constant for those keys that do not generate characters.
|
|
||||||
*/
|
|
||||||
typedef Sint32 SDL_Keycode;
|
|
||||||
|
|
||||||
#define SDLK_SCANCODE_MASK (1<<30)
|
|
||||||
#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
SDLK_UNKNOWN = 0,
|
|
||||||
|
|
||||||
SDLK_RETURN = '\r',
|
|
||||||
SDLK_ESCAPE = '\033',
|
|
||||||
SDLK_BACKSPACE = '\b',
|
|
||||||
SDLK_TAB = '\t',
|
|
||||||
SDLK_SPACE = ' ',
|
|
||||||
SDLK_EXCLAIM = '!',
|
|
||||||
SDLK_QUOTEDBL = '"',
|
|
||||||
SDLK_HASH = '#',
|
|
||||||
SDLK_PERCENT = '%',
|
|
||||||
SDLK_DOLLAR = '$',
|
|
||||||
SDLK_AMPERSAND = '&',
|
|
||||||
SDLK_QUOTE = '\'',
|
|
||||||
SDLK_LEFTPAREN = '(',
|
|
||||||
SDLK_RIGHTPAREN = ')',
|
|
||||||
SDLK_ASTERISK = '*',
|
|
||||||
SDLK_PLUS = '+',
|
|
||||||
SDLK_COMMA = ',',
|
|
||||||
SDLK_MINUS = '-',
|
|
||||||
SDLK_PERIOD = '.',
|
|
||||||
SDLK_SLASH = '/',
|
|
||||||
SDLK_0 = '0',
|
|
||||||
SDLK_1 = '1',
|
|
||||||
SDLK_2 = '2',
|
|
||||||
SDLK_3 = '3',
|
|
||||||
SDLK_4 = '4',
|
|
||||||
SDLK_5 = '5',
|
|
||||||
SDLK_6 = '6',
|
|
||||||
SDLK_7 = '7',
|
|
||||||
SDLK_8 = '8',
|
|
||||||
SDLK_9 = '9',
|
|
||||||
SDLK_COLON = ':',
|
|
||||||
SDLK_SEMICOLON = ';',
|
|
||||||
SDLK_LESS = '<',
|
|
||||||
SDLK_EQUALS = '=',
|
|
||||||
SDLK_GREATER = '>',
|
|
||||||
SDLK_QUESTION = '?',
|
|
||||||
SDLK_AT = '@',
|
|
||||||
/*
|
|
||||||
Skip uppercase letters
|
|
||||||
*/
|
|
||||||
SDLK_LEFTBRACKET = '[',
|
|
||||||
SDLK_BACKSLASH = '\\',
|
|
||||||
SDLK_RIGHTBRACKET = ']',
|
|
||||||
SDLK_CARET = '^',
|
|
||||||
SDLK_UNDERSCORE = '_',
|
|
||||||
SDLK_BACKQUOTE = '`',
|
|
||||||
SDLK_a = 'a',
|
|
||||||
SDLK_b = 'b',
|
|
||||||
SDLK_c = 'c',
|
|
||||||
SDLK_d = 'd',
|
|
||||||
SDLK_e = 'e',
|
|
||||||
SDLK_f = 'f',
|
|
||||||
SDLK_g = 'g',
|
|
||||||
SDLK_h = 'h',
|
|
||||||
SDLK_i = 'i',
|
|
||||||
SDLK_j = 'j',
|
|
||||||
SDLK_k = 'k',
|
|
||||||
SDLK_l = 'l',
|
|
||||||
SDLK_m = 'm',
|
|
||||||
SDLK_n = 'n',
|
|
||||||
SDLK_o = 'o',
|
|
||||||
SDLK_p = 'p',
|
|
||||||
SDLK_q = 'q',
|
|
||||||
SDLK_r = 'r',
|
|
||||||
SDLK_s = 's',
|
|
||||||
SDLK_t = 't',
|
|
||||||
SDLK_u = 'u',
|
|
||||||
SDLK_v = 'v',
|
|
||||||
SDLK_w = 'w',
|
|
||||||
SDLK_x = 'x',
|
|
||||||
SDLK_y = 'y',
|
|
||||||
SDLK_z = 'z',
|
|
||||||
|
|
||||||
SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK),
|
|
||||||
|
|
||||||
SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1),
|
|
||||||
SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2),
|
|
||||||
SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3),
|
|
||||||
SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4),
|
|
||||||
SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5),
|
|
||||||
SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6),
|
|
||||||
SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7),
|
|
||||||
SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8),
|
|
||||||
SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9),
|
|
||||||
SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10),
|
|
||||||
SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11),
|
|
||||||
SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12),
|
|
||||||
|
|
||||||
SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN),
|
|
||||||
SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK),
|
|
||||||
SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE),
|
|
||||||
SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT),
|
|
||||||
SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME),
|
|
||||||
SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP),
|
|
||||||
SDLK_DELETE = '\177',
|
|
||||||
SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END),
|
|
||||||
SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN),
|
|
||||||
SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT),
|
|
||||||
SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT),
|
|
||||||
SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN),
|
|
||||||
SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP),
|
|
||||||
|
|
||||||
SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR),
|
|
||||||
SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE),
|
|
||||||
SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY),
|
|
||||||
SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS),
|
|
||||||
SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS),
|
|
||||||
SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER),
|
|
||||||
SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1),
|
|
||||||
SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2),
|
|
||||||
SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3),
|
|
||||||
SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4),
|
|
||||||
SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5),
|
|
||||||
SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6),
|
|
||||||
SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7),
|
|
||||||
SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8),
|
|
||||||
SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9),
|
|
||||||
SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0),
|
|
||||||
SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD),
|
|
||||||
|
|
||||||
SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION),
|
|
||||||
SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER),
|
|
||||||
SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS),
|
|
||||||
SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13),
|
|
||||||
SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14),
|
|
||||||
SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15),
|
|
||||||
SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16),
|
|
||||||
SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17),
|
|
||||||
SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18),
|
|
||||||
SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19),
|
|
||||||
SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20),
|
|
||||||
SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21),
|
|
||||||
SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22),
|
|
||||||
SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23),
|
|
||||||
SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24),
|
|
||||||
SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE),
|
|
||||||
SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP),
|
|
||||||
SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU),
|
|
||||||
SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT),
|
|
||||||
SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP),
|
|
||||||
SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN),
|
|
||||||
SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO),
|
|
||||||
SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT),
|
|
||||||
SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY),
|
|
||||||
SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE),
|
|
||||||
SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND),
|
|
||||||
SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE),
|
|
||||||
SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP),
|
|
||||||
SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN),
|
|
||||||
SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA),
|
|
||||||
SDLK_KP_EQUALSAS400 =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400),
|
|
||||||
|
|
||||||
SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE),
|
|
||||||
SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ),
|
|
||||||
SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL),
|
|
||||||
SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR),
|
|
||||||
SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR),
|
|
||||||
SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2),
|
|
||||||
SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR),
|
|
||||||
SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT),
|
|
||||||
SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER),
|
|
||||||
SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN),
|
|
||||||
SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL),
|
|
||||||
SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL),
|
|
||||||
|
|
||||||
SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00),
|
|
||||||
SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000),
|
|
||||||
SDLK_THOUSANDSSEPARATOR =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR),
|
|
||||||
SDLK_DECIMALSEPARATOR =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR),
|
|
||||||
SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT),
|
|
||||||
SDLK_CURRENCYSUBUNIT =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT),
|
|
||||||
SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN),
|
|
||||||
SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN),
|
|
||||||
SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE),
|
|
||||||
SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE),
|
|
||||||
SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB),
|
|
||||||
SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE),
|
|
||||||
SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A),
|
|
||||||
SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B),
|
|
||||||
SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C),
|
|
||||||
SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D),
|
|
||||||
SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E),
|
|
||||||
SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F),
|
|
||||||
SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR),
|
|
||||||
SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER),
|
|
||||||
SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT),
|
|
||||||
SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS),
|
|
||||||
SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER),
|
|
||||||
SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND),
|
|
||||||
SDLK_KP_DBLAMPERSAND =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND),
|
|
||||||
SDLK_KP_VERTICALBAR =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR),
|
|
||||||
SDLK_KP_DBLVERTICALBAR =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR),
|
|
||||||
SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON),
|
|
||||||
SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH),
|
|
||||||
SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE),
|
|
||||||
SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT),
|
|
||||||
SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM),
|
|
||||||
SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE),
|
|
||||||
SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL),
|
|
||||||
SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR),
|
|
||||||
SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD),
|
|
||||||
SDLK_KP_MEMSUBTRACT =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT),
|
|
||||||
SDLK_KP_MEMMULTIPLY =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY),
|
|
||||||
SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE),
|
|
||||||
SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS),
|
|
||||||
SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR),
|
|
||||||
SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY),
|
|
||||||
SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY),
|
|
||||||
SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL),
|
|
||||||
SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL),
|
|
||||||
SDLK_KP_HEXADECIMAL =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL),
|
|
||||||
|
|
||||||
SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL),
|
|
||||||
SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT),
|
|
||||||
SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT),
|
|
||||||
SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI),
|
|
||||||
SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL),
|
|
||||||
SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT),
|
|
||||||
SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT),
|
|
||||||
SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI),
|
|
||||||
|
|
||||||
SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE),
|
|
||||||
|
|
||||||
SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT),
|
|
||||||
SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV),
|
|
||||||
SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP),
|
|
||||||
SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY),
|
|
||||||
SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE),
|
|
||||||
SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT),
|
|
||||||
SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW),
|
|
||||||
SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL),
|
|
||||||
SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR),
|
|
||||||
SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER),
|
|
||||||
SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH),
|
|
||||||
SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME),
|
|
||||||
SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK),
|
|
||||||
SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD),
|
|
||||||
SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP),
|
|
||||||
SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH),
|
|
||||||
SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS),
|
|
||||||
|
|
||||||
SDLK_BRIGHTNESSDOWN =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN),
|
|
||||||
SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP),
|
|
||||||
SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH),
|
|
||||||
SDLK_KBDILLUMTOGGLE =
|
|
||||||
SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE),
|
|
||||||
SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN),
|
|
||||||
SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP),
|
|
||||||
SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT),
|
|
||||||
SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP)
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Enumeration of valid key mods (possibly OR'd together).
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
KMOD_NONE = 0x0000,
|
|
||||||
KMOD_LSHIFT = 0x0001,
|
|
||||||
KMOD_RSHIFT = 0x0002,
|
|
||||||
KMOD_LCTRL = 0x0040,
|
|
||||||
KMOD_RCTRL = 0x0080,
|
|
||||||
KMOD_LALT = 0x0100,
|
|
||||||
KMOD_RALT = 0x0200,
|
|
||||||
KMOD_LGUI = 0x0400,
|
|
||||||
KMOD_RGUI = 0x0800,
|
|
||||||
KMOD_NUM = 0x1000,
|
|
||||||
KMOD_CAPS = 0x2000,
|
|
||||||
KMOD_MODE = 0x4000,
|
|
||||||
KMOD_RESERVED = 0x8000
|
|
||||||
} SDL_Keymod;
|
|
||||||
|
|
||||||
#define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL)
|
|
||||||
#define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT)
|
|
||||||
#define KMOD_ALT (KMOD_LALT|KMOD_RALT)
|
|
||||||
#define KMOD_GUI (KMOD_LGUI|KMOD_RGUI)
|
|
||||||
|
|
||||||
#endif /* _SDL_keycode_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
85
external/SDL2/SDL_loadso.h
vendored
85
external/SDL2/SDL_loadso.h
vendored
@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_loadso.h
|
|
||||||
*
|
|
||||||
* System dependent library loading routines
|
|
||||||
*
|
|
||||||
* Some things to keep in mind:
|
|
||||||
* \li These functions only work on C function names. Other languages may
|
|
||||||
* have name mangling and intrinsic language support that varies from
|
|
||||||
* compiler to compiler.
|
|
||||||
* \li Make sure you declare your function pointers with the same calling
|
|
||||||
* convention as the actual library function. Your code will crash
|
|
||||||
* mysteriously if you do not do this.
|
|
||||||
* \li Avoid namespace collisions. If you load a symbol from the library,
|
|
||||||
* it is not defined whether or not it goes into the global symbol
|
|
||||||
* namespace for the application. If it does and it conflicts with
|
|
||||||
* symbols in your code or other shared libraries, you will not get
|
|
||||||
* the results you expect. :)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_loadso_h
|
|
||||||
#define _SDL_loadso_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function dynamically loads a shared object and returns a pointer
|
|
||||||
* to the object handle (or NULL if there was an error).
|
|
||||||
* The 'sofile' parameter is a system dependent name of the object file.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Given an object handle, this function looks up the address of the
|
|
||||||
* named function in the shared object and returns it. This address
|
|
||||||
* is no longer valid after calling SDL_UnloadObject().
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unload a shared object from memory.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_loadso_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
215
external/SDL2/SDL_log.h
vendored
215
external/SDL2/SDL_log.h
vendored
@ -1,215 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_log.h
|
|
||||||
*
|
|
||||||
* Simple log messages with categories and priorities.
|
|
||||||
*
|
|
||||||
* By default logs are quiet, but if you're debugging SDL you might want:
|
|
||||||
*
|
|
||||||
* SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN);
|
|
||||||
*
|
|
||||||
* Here's where the messages go on different platforms:
|
|
||||||
* Windows: debug output stream
|
|
||||||
* Android: log output
|
|
||||||
* Others: standard error output (stderr)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_log_h
|
|
||||||
#define _SDL_log_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The maximum size of a log message
|
|
||||||
*
|
|
||||||
* Messages longer than the maximum size will be truncated
|
|
||||||
*/
|
|
||||||
#define SDL_MAX_LOG_MESSAGE 4096
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The predefined log categories
|
|
||||||
*
|
|
||||||
* By default the application category is enabled at the INFO level,
|
|
||||||
* the assert category is enabled at the WARN level, test is enabled
|
|
||||||
* at the VERBOSE level and all other categories are enabled at the
|
|
||||||
* CRITICAL level.
|
|
||||||
*/
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
SDL_LOG_CATEGORY_APPLICATION,
|
|
||||||
SDL_LOG_CATEGORY_ERROR,
|
|
||||||
SDL_LOG_CATEGORY_ASSERT,
|
|
||||||
SDL_LOG_CATEGORY_SYSTEM,
|
|
||||||
SDL_LOG_CATEGORY_AUDIO,
|
|
||||||
SDL_LOG_CATEGORY_VIDEO,
|
|
||||||
SDL_LOG_CATEGORY_RENDER,
|
|
||||||
SDL_LOG_CATEGORY_INPUT,
|
|
||||||
SDL_LOG_CATEGORY_TEST,
|
|
||||||
|
|
||||||
/* Reserved for future SDL library use */
|
|
||||||
SDL_LOG_CATEGORY_RESERVED1,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED2,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED3,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED4,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED5,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED6,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED7,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED8,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED9,
|
|
||||||
SDL_LOG_CATEGORY_RESERVED10,
|
|
||||||
|
|
||||||
/* Beyond this point is reserved for application use, e.g.
|
|
||||||
enum {
|
|
||||||
MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM,
|
|
||||||
MYAPP_CATEGORY_AWESOME2,
|
|
||||||
MYAPP_CATEGORY_AWESOME3,
|
|
||||||
...
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
SDL_LOG_CATEGORY_CUSTOM
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The predefined log priorities
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_LOG_PRIORITY_VERBOSE = 1,
|
|
||||||
SDL_LOG_PRIORITY_DEBUG,
|
|
||||||
SDL_LOG_PRIORITY_INFO,
|
|
||||||
SDL_LOG_PRIORITY_WARN,
|
|
||||||
SDL_LOG_PRIORITY_ERROR,
|
|
||||||
SDL_LOG_PRIORITY_CRITICAL,
|
|
||||||
SDL_NUM_LOG_PRIORITIES
|
|
||||||
} SDL_LogPriority;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the priority of all log categories
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the priority of a particular log category
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category,
|
|
||||||
SDL_LogPriority priority);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the priority of a particular log category
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Reset all priorities to default.
|
|
||||||
*
|
|
||||||
* \note This is called in SDL_Quit().
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_Log(const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_PRIORITY_VERBOSE
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_PRIORITY_DEBUG
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogDebug(int category, const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_PRIORITY_INFO
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogInfo(int category, const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_PRIORITY_WARN
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogWarn(int category, const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_PRIORITY_ERROR
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogError(int category, const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with SDL_LOG_PRIORITY_CRITICAL
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogCritical(int category, const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with the specified category and priority.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogMessage(int category,
|
|
||||||
SDL_LogPriority priority,
|
|
||||||
const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Log a message with the specified category and priority.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogMessageV(int category,
|
|
||||||
SDL_LogPriority priority,
|
|
||||||
const char *fmt, va_list ap);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The prototype for the log output function
|
|
||||||
*/
|
|
||||||
typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the current log output function.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief This function allows you to replace the default log output
|
|
||||||
* function with one of your own.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_log_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
98
external/SDL2/SDL_main.h
vendored
98
external/SDL2/SDL_main.h
vendored
@ -1,98 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_main_h
|
|
||||||
#define _SDL_main_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_main.h
|
|
||||||
*
|
|
||||||
* Redefine main() on some platforms so that it is called by SDL.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(__IPHONEOS__) || defined(__ANDROID__)
|
|
||||||
#ifndef SDL_MAIN_HANDLED
|
|
||||||
#define SDL_MAIN_NEEDED
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define C_LINKAGE "C"
|
|
||||||
#else
|
|
||||||
#define C_LINKAGE
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_main.h
|
|
||||||
*
|
|
||||||
* The application's main() function must be called with C linkage,
|
|
||||||
* and should be declared like this:
|
|
||||||
* \code
|
|
||||||
* #ifdef __cplusplus
|
|
||||||
* extern "C"
|
|
||||||
* #endif
|
|
||||||
* int main(int argc, char *argv[])
|
|
||||||
* {
|
|
||||||
* }
|
|
||||||
* \endcode
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef SDL_MAIN_NEEDED
|
|
||||||
#define main SDL_main
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The prototype for the application's main() function
|
|
||||||
*/
|
|
||||||
extern C_LINKAGE int SDL_main(int argc, char *argv[]);
|
|
||||||
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __WIN32__
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This can be called to set the application class at startup
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style,
|
|
||||||
void *hInst);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
|
|
||||||
|
|
||||||
#endif /* __WIN32__ */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_main_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
147
external/SDL2/SDL_messagebox.h
vendored
147
external/SDL2/SDL_messagebox.h
vendored
@ -1,147 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_messagebox_h
|
|
||||||
#define _SDL_messagebox_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_video.h" /* For SDL_Window */
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief SDL_MessageBox flags. If supported will display warning icon, etc.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_MESSAGEBOX_ERROR = 0x00000010, /**< error dialog */
|
|
||||||
SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */
|
|
||||||
SDL_MESSAGEBOX_INFORMATION = 0x00000040 /**< informational dialog */
|
|
||||||
} SDL_MessageBoxFlags;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Flags for SDL_MessageBoxButtonData.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, /**< Marks the default button when return is hit */
|
|
||||||
SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 /**< Marks the default button when escape is hit */
|
|
||||||
} SDL_MessageBoxButtonFlags;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Individual button data.
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
Uint32 flags; /**< ::SDL_MessageBoxButtonFlags */
|
|
||||||
int buttonid; /**< User defined button id (value returned via SDL_MessageBox) */
|
|
||||||
const char * text; /**< The UTF-8 button text */
|
|
||||||
} SDL_MessageBoxButtonData;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief RGB value used in a message box color scheme
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
Uint8 r, g, b;
|
|
||||||
} SDL_MessageBoxColor;
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_MESSAGEBOX_COLOR_BACKGROUND,
|
|
||||||
SDL_MESSAGEBOX_COLOR_TEXT,
|
|
||||||
SDL_MESSAGEBOX_COLOR_BUTTON_BORDER,
|
|
||||||
SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND,
|
|
||||||
SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED,
|
|
||||||
SDL_MESSAGEBOX_COLOR_MAX
|
|
||||||
} SDL_MessageBoxColorType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A set of colors to use for message box dialogs
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX];
|
|
||||||
} SDL_MessageBoxColorScheme;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief MessageBox structure containing title, text, window, etc.
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
Uint32 flags; /**< ::SDL_MessageBoxFlags */
|
|
||||||
SDL_Window *window; /**< Parent window, can be NULL */
|
|
||||||
const char *title; /**< UTF-8 title */
|
|
||||||
const char *message; /**< UTF-8 message text */
|
|
||||||
|
|
||||||
int numbuttons;
|
|
||||||
const SDL_MessageBoxButtonData *buttons;
|
|
||||||
|
|
||||||
const SDL_MessageBoxColorScheme *colorScheme; /**< ::SDL_MessageBoxColorScheme, can be NULL to use system settings */
|
|
||||||
} SDL_MessageBoxData;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a modal message box.
|
|
||||||
*
|
|
||||||
* \param messagebox The SDL_MessageBox structure with title, text, etc.
|
|
||||||
*
|
|
||||||
* \return -1 on error, otherwise 0 and buttonid contains user id of button
|
|
||||||
* hit or -1 if dialog was closed.
|
|
||||||
*
|
|
||||||
* \note This function should be called on the thread that created the parent
|
|
||||||
* window, or on the main thread if the messagebox has no parent. It will
|
|
||||||
* block execution of that thread until the user clicks a button or
|
|
||||||
* closes the messagebox.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a simple modal message box
|
|
||||||
*
|
|
||||||
* \param flags ::SDL_MessageBoxFlags
|
|
||||||
* \param title UTF-8 title text
|
|
||||||
* \param message UTF-8 message text
|
|
||||||
* \param window The parent window, or NULL for no parent
|
|
||||||
*
|
|
||||||
* \return 0 on success, -1 on error
|
|
||||||
*
|
|
||||||
* \sa SDL_ShowMessageBox
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_messagebox_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
255
external/SDL2/SDL_mutex.h
vendored
255
external/SDL2/SDL_mutex.h
vendored
@ -1,255 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_mutex_h
|
|
||||||
#define _SDL_mutex_h
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_mutex.h
|
|
||||||
*
|
|
||||||
* Functions to provide thread synchronization primitives.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Synchronization functions which can time out return this value
|
|
||||||
* if they time out.
|
|
||||||
*/
|
|
||||||
#define SDL_MUTEX_TIMEDOUT 1
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the timeout value which corresponds to never time out.
|
|
||||||
*/
|
|
||||||
#define SDL_MUTEX_MAXWAIT (~(Uint32)0)
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Mutex functions
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
/* The SDL mutex structure, defined in SDL_mutex.c */
|
|
||||||
struct SDL_mutex;
|
|
||||||
typedef struct SDL_mutex SDL_mutex;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a mutex, initialized unlocked.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lock the mutex.
|
|
||||||
*
|
|
||||||
* \return 0, or -1 on error.
|
|
||||||
*/
|
|
||||||
#define SDL_mutexP(m) SDL_LockMutex(m)
|
|
||||||
extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Try to lock the mutex
|
|
||||||
*
|
|
||||||
* \return 0, SDL_MUTEX_TIMEDOUT, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unlock the mutex.
|
|
||||||
*
|
|
||||||
* \return 0, or -1 on error.
|
|
||||||
*
|
|
||||||
* \warning It is an error to unlock a mutex that has not been locked by
|
|
||||||
* the current thread, and doing so results in undefined behavior.
|
|
||||||
*/
|
|
||||||
#define SDL_mutexV(m) SDL_UnlockMutex(m)
|
|
||||||
extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroy a mutex.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex);
|
|
||||||
|
|
||||||
/*@}*//*Mutex functions*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Semaphore functions
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
/* The SDL semaphore structure, defined in SDL_sem.c */
|
|
||||||
struct SDL_semaphore;
|
|
||||||
typedef struct SDL_semaphore SDL_sem;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a semaphore, initialized with value, returns NULL on failure.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroy a semaphore.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function suspends the calling thread until the semaphore pointed
|
|
||||||
* to by \c sem has a positive count. It then atomically decreases the
|
|
||||||
* semaphore count.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Non-blocking variant of SDL_SemWait().
|
|
||||||
*
|
|
||||||
* \return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait would
|
|
||||||
* block, and -1 on error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Variant of SDL_SemWait() with a timeout in milliseconds.
|
|
||||||
*
|
|
||||||
* \return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait does not
|
|
||||||
* succeed in the allotted time, and -1 on error.
|
|
||||||
*
|
|
||||||
* \warning On some platforms this function is implemented by looping with a
|
|
||||||
* delay of 1 ms, and so should be avoided if possible.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Atomically increases the semaphore's count (not blocking).
|
|
||||||
*
|
|
||||||
* \return 0, or -1 on error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the current count of the semaphore.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem);
|
|
||||||
|
|
||||||
/*@}*//*Semaphore functions*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Condition variable functions
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
/* The SDL condition variable structure, defined in SDL_cond.c */
|
|
||||||
struct SDL_cond;
|
|
||||||
typedef struct SDL_cond SDL_cond;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a condition variable.
|
|
||||||
*
|
|
||||||
* Typical use of condition variables:
|
|
||||||
*
|
|
||||||
* Thread A:
|
|
||||||
* SDL_LockMutex(lock);
|
|
||||||
* while ( ! condition ) {
|
|
||||||
* SDL_CondWait(cond, lock);
|
|
||||||
* }
|
|
||||||
* SDL_UnlockMutex(lock);
|
|
||||||
*
|
|
||||||
* Thread B:
|
|
||||||
* SDL_LockMutex(lock);
|
|
||||||
* ...
|
|
||||||
* condition = true;
|
|
||||||
* ...
|
|
||||||
* SDL_CondSignal(cond);
|
|
||||||
* SDL_UnlockMutex(lock);
|
|
||||||
*
|
|
||||||
* There is some discussion whether to signal the condition variable
|
|
||||||
* with the mutex locked or not. There is some potential performance
|
|
||||||
* benefit to unlocking first on some platforms, but there are some
|
|
||||||
* potential race conditions depending on how your code is structured.
|
|
||||||
*
|
|
||||||
* In general it's safer to signal the condition variable while the
|
|
||||||
* mutex is locked.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Destroy a condition variable.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Restart one of the threads that are waiting on the condition variable.
|
|
||||||
*
|
|
||||||
* \return 0 or -1 on error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Restart all threads that are waiting on the condition variable.
|
|
||||||
*
|
|
||||||
* \return 0 or -1 on error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wait on the condition variable, unlocking the provided mutex.
|
|
||||||
*
|
|
||||||
* \warning The mutex must be locked before entering this function!
|
|
||||||
*
|
|
||||||
* The mutex is re-locked once the condition variable is signaled.
|
|
||||||
*
|
|
||||||
* \return 0 when it is signaled, or -1 on error.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Waits for at most \c ms milliseconds, and returns 0 if the condition
|
|
||||||
* variable is signaled, ::SDL_MUTEX_TIMEDOUT if the condition is not
|
|
||||||
* signaled in the allotted time, and -1 on error.
|
|
||||||
*
|
|
||||||
* \warning On some platforms this function is implemented by looping with a
|
|
||||||
* delay of 1 ms, and so should be avoided if possible.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond,
|
|
||||||
SDL_mutex * mutex, Uint32 ms);
|
|
||||||
|
|
||||||
/*@}*//*Condition variable functions*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_mutex_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
11
external/SDL2/SDL_name.h
vendored
11
external/SDL2/SDL_name.h
vendored
@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
#ifndef _SDLname_h_
|
|
||||||
#define _SDLname_h_
|
|
||||||
|
|
||||||
#if defined(__STDC__) || defined(__cplusplus)
|
|
||||||
#define NeedFunctionPrototypes 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SDL_NAME(X) SDL_##X
|
|
||||||
|
|
||||||
#endif /* _SDLname_h_ */
|
|
11132
external/SDL2/SDL_opengl.h
vendored
11132
external/SDL2/SDL_opengl.h
vendored
File diff suppressed because it is too large
Load Diff
38
external/SDL2/SDL_opengles.h
vendored
38
external/SDL2/SDL_opengles.h
vendored
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_opengles.h
|
|
||||||
*
|
|
||||||
* This is a simple file to encapsulate the OpenGL ES 1.X API headers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __IPHONEOS__
|
|
||||||
#include <OpenGLES/ES1/gl.h>
|
|
||||||
#include <OpenGLES/ES1/glext.h>
|
|
||||||
#else
|
|
||||||
#include <GLES/gl.h>
|
|
||||||
#include <GLES/glext.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef APIENTRY
|
|
||||||
#define APIENTRY
|
|
||||||
#endif
|
|
38
external/SDL2/SDL_opengles2.h
vendored
38
external/SDL2/SDL_opengles2.h
vendored
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_opengles.h
|
|
||||||
*
|
|
||||||
* This is a simple file to encapsulate the OpenGL ES 2.0 API headers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __IPHONEOS__
|
|
||||||
#include <OpenGLES/ES2/gl.h>
|
|
||||||
#include <OpenGLES/ES2/glext.h>
|
|
||||||
#else
|
|
||||||
#include <GLES2/gl2.h>
|
|
||||||
#include <GLES2/gl2ext.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef APIENTRY
|
|
||||||
#define APIENTRY
|
|
||||||
#endif
|
|
79
external/SDL2/SDL_power.h
vendored
79
external/SDL2/SDL_power.h
vendored
@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_power_h
|
|
||||||
#define _SDL_power_h
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_power.h
|
|
||||||
*
|
|
||||||
* Header for the SDL power management routines.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The basic state for the system's power supply.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_POWERSTATE_UNKNOWN, /**< cannot determine power status */
|
|
||||||
SDL_POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */
|
|
||||||
SDL_POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */
|
|
||||||
SDL_POWERSTATE_CHARGING, /**< Plugged in, charging battery */
|
|
||||||
SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */
|
|
||||||
} SDL_PowerState;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the current power supply details.
|
|
||||||
*
|
|
||||||
* \param secs Seconds of battery life left. You can pass a NULL here if
|
|
||||||
* you don't care. Will return -1 if we can't determine a
|
|
||||||
* value, or we're not running on a battery.
|
|
||||||
*
|
|
||||||
* \param pct Percentage of battery life left, between 0 and 100. You can
|
|
||||||
* pass a NULL here if you don't care. Will return -1 if we
|
|
||||||
* can't determine a value, or we're not running on a battery.
|
|
||||||
*
|
|
||||||
* \return The state of the battery (if any).
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_power_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
58
external/SDL2/SDL_quit.h
vendored
58
external/SDL2/SDL_quit.h
vendored
@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_quit.h
|
|
||||||
*
|
|
||||||
* Include file for SDL quit event handling.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_quit_h
|
|
||||||
#define _SDL_quit_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_quit.h
|
|
||||||
*
|
|
||||||
* An ::SDL_QUIT event is generated when the user tries to close the application
|
|
||||||
* window. If it is ignored or filtered out, the window will remain open.
|
|
||||||
* If it is not ignored or filtered, it is queued normally and the window
|
|
||||||
* is allowed to close. When the window is closed, screen updates will
|
|
||||||
* complete, but have no effect.
|
|
||||||
*
|
|
||||||
* SDL_Init() installs signal handlers for SIGINT (keyboard interrupt)
|
|
||||||
* and SIGTERM (system termination request), if handlers do not already
|
|
||||||
* exist, that generate ::SDL_QUIT events as well. There is no way
|
|
||||||
* to determine the cause of an ::SDL_QUIT event, but setting a signal
|
|
||||||
* handler in your application will override the default generation of
|
|
||||||
* quit events for that signal.
|
|
||||||
*
|
|
||||||
* \sa SDL_Quit()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* There are no functions directly affecting the quit event */
|
|
||||||
|
|
||||||
#define SDL_QuitRequested() \
|
|
||||||
(SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0))
|
|
||||||
|
|
||||||
#endif /* _SDL_quit_h */
|
|
788
external/SDL2/SDL_render.h
vendored
788
external/SDL2/SDL_render.h
vendored
@ -1,788 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_render.h
|
|
||||||
*
|
|
||||||
* Header file for SDL 2D rendering functions.
|
|
||||||
*
|
|
||||||
* This API supports the following features:
|
|
||||||
* * single pixel points
|
|
||||||
* * single pixel lines
|
|
||||||
* * filled rectangles
|
|
||||||
* * texture images
|
|
||||||
*
|
|
||||||
* The primitives may be drawn in opaque, blended, or additive modes.
|
|
||||||
*
|
|
||||||
* The texture images may be drawn in opaque, blended, or additive modes.
|
|
||||||
* They can have an additional color tint or alpha modulation applied to
|
|
||||||
* them, and may also be stretched with linear interpolation.
|
|
||||||
*
|
|
||||||
* This API is designed to accelerate simple 2D operations. You may
|
|
||||||
* want more functionality such as rotation and particle effects and
|
|
||||||
* in that case you should use SDL's OpenGL/Direct3D support or one
|
|
||||||
* of the many good 3D engines.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_render_h
|
|
||||||
#define _SDL_render_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_rect.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Flags used when creating a rendering context
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */
|
|
||||||
SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware
|
|
||||||
acceleration */
|
|
||||||
SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized
|
|
||||||
with the refresh rate */
|
|
||||||
SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports
|
|
||||||
rendering to texture */
|
|
||||||
} SDL_RendererFlags;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Information on the capabilities of a render driver or context.
|
|
||||||
*/
|
|
||||||
typedef struct SDL_RendererInfo
|
|
||||||
{
|
|
||||||
const char *name; /**< The name of the renderer */
|
|
||||||
Uint32 flags; /**< Supported ::SDL_RendererFlags */
|
|
||||||
Uint32 num_texture_formats; /**< The number of available texture formats */
|
|
||||||
Uint32 texture_formats[16]; /**< The available texture formats */
|
|
||||||
int max_texture_width; /**< The maximimum texture width */
|
|
||||||
int max_texture_height; /**< The maximimum texture height */
|
|
||||||
} SDL_RendererInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The access pattern allowed for a texture.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */
|
|
||||||
SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */
|
|
||||||
SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */
|
|
||||||
} SDL_TextureAccess;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The texture channel modulation used in SDL_RenderCopy().
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */
|
|
||||||
SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */
|
|
||||||
SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */
|
|
||||||
} SDL_TextureModulate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Flip constants for SDL_RenderCopyEx
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_FLIP_NONE = 0x00000000, /**< Do not flip */
|
|
||||||
SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */
|
|
||||||
SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */
|
|
||||||
} SDL_RendererFlip;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief A structure representing rendering state
|
|
||||||
*/
|
|
||||||
struct SDL_Renderer;
|
|
||||||
typedef struct SDL_Renderer SDL_Renderer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief An efficient driver-specific representation of pixel data
|
|
||||||
*/
|
|
||||||
struct SDL_Texture;
|
|
||||||
typedef struct SDL_Texture SDL_Texture;
|
|
||||||
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the number of 2D rendering drivers available for the current
|
|
||||||
* display.
|
|
||||||
*
|
|
||||||
* A render driver is a set of code that handles rendering and texture
|
|
||||||
* management on a particular display. Normally there is only one, but
|
|
||||||
* some drivers may have several available with different capabilities.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetRenderDriverInfo()
|
|
||||||
* \sa SDL_CreateRenderer()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get information about a specific 2D rendering driver for the current
|
|
||||||
* display.
|
|
||||||
*
|
|
||||||
* \param index The index of the driver to query information about.
|
|
||||||
* \param info A pointer to an SDL_RendererInfo struct to be filled with
|
|
||||||
* information on the rendering driver.
|
|
||||||
*
|
|
||||||
* \return 0 on success, -1 if the index was out of range.
|
|
||||||
*
|
|
||||||
* \sa SDL_CreateRenderer()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index,
|
|
||||||
SDL_RendererInfo * info);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a window and default renderer
|
|
||||||
*
|
|
||||||
* \param width The width of the window
|
|
||||||
* \param height The height of the window
|
|
||||||
* \param window_flags The flags used to create the window
|
|
||||||
* \param window A pointer filled with the window, or NULL on error
|
|
||||||
* \param renderer A pointer filled with the renderer, or NULL on error
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer(
|
|
||||||
int width, int height, Uint32 window_flags,
|
|
||||||
SDL_Window **window, SDL_Renderer **renderer);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a 2D rendering context for a window.
|
|
||||||
*
|
|
||||||
* \param window The window where rendering is displayed.
|
|
||||||
* \param index The index of the rendering driver to initialize, or -1 to
|
|
||||||
* initialize the first one supporting the requested flags.
|
|
||||||
* \param flags ::SDL_RendererFlags.
|
|
||||||
*
|
|
||||||
* \return A valid rendering context or NULL if there was an error.
|
|
||||||
*
|
|
||||||
* \sa SDL_CreateSoftwareRenderer()
|
|
||||||
* \sa SDL_GetRendererInfo()
|
|
||||||
* \sa SDL_DestroyRenderer()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window,
|
|
||||||
int index, Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a 2D software rendering context for a surface.
|
|
||||||
*
|
|
||||||
* \param surface The surface where rendering is done.
|
|
||||||
*
|
|
||||||
* \return A valid rendering context or NULL if there was an error.
|
|
||||||
*
|
|
||||||
* \sa SDL_CreateRenderer()
|
|
||||||
* \sa SDL_DestroyRenderer()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the renderer associated with a window.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get information about a rendering context.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer,
|
|
||||||
SDL_RendererInfo * info);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a texture for a rendering context.
|
|
||||||
*
|
|
||||||
* \param format The format of the texture.
|
|
||||||
* \param access One of the enumerated values in ::SDL_TextureAccess.
|
|
||||||
* \param w The width of the texture in pixels.
|
|
||||||
* \param h The height of the texture in pixels.
|
|
||||||
*
|
|
||||||
* \return The created texture is returned, or 0 if no rendering context was
|
|
||||||
* active, the format was unsupported, or the width or height were out
|
|
||||||
* of range.
|
|
||||||
*
|
|
||||||
* \sa SDL_QueryTexture()
|
|
||||||
* \sa SDL_UpdateTexture()
|
|
||||||
* \sa SDL_DestroyTexture()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer,
|
|
||||||
Uint32 format,
|
|
||||||
int access, int w,
|
|
||||||
int h);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a texture from an existing surface.
|
|
||||||
*
|
|
||||||
* \param surface The surface containing pixel data used to fill the texture.
|
|
||||||
*
|
|
||||||
* \return The created texture is returned, or 0 on error.
|
|
||||||
*
|
|
||||||
* \note The surface is not modified or freed by this function.
|
|
||||||
*
|
|
||||||
* \sa SDL_QueryTexture()
|
|
||||||
* \sa SDL_DestroyTexture()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Query the attributes of a texture
|
|
||||||
*
|
|
||||||
* \param texture A texture to be queried.
|
|
||||||
* \param format A pointer filled in with the raw format of the texture. The
|
|
||||||
* actual format may differ, but pixel transfers will use this
|
|
||||||
* format.
|
|
||||||
* \param access A pointer filled in with the actual access to the texture.
|
|
||||||
* \param w A pointer filled in with the width of the texture in pixels.
|
|
||||||
* \param h A pointer filled in with the height of the texture in pixels.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture,
|
|
||||||
Uint32 * format, int *access,
|
|
||||||
int *w, int *h);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set an additional color value used in render copy operations.
|
|
||||||
*
|
|
||||||
* \param texture The texture to update.
|
|
||||||
* \param r The red color value multiplied into copy operations.
|
|
||||||
* \param g The green color value multiplied into copy operations.
|
|
||||||
* \param b The blue color value multiplied into copy operations.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid or color modulation
|
|
||||||
* is not supported.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetTextureColorMod()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture,
|
|
||||||
Uint8 r, Uint8 g, Uint8 b);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the additional color value used in render copy operations.
|
|
||||||
*
|
|
||||||
* \param texture The texture to query.
|
|
||||||
* \param r A pointer filled in with the current red color value.
|
|
||||||
* \param g A pointer filled in with the current green color value.
|
|
||||||
* \param b A pointer filled in with the current blue color value.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid.
|
|
||||||
*
|
|
||||||
* \sa SDL_SetTextureColorMod()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture,
|
|
||||||
Uint8 * r, Uint8 * g,
|
|
||||||
Uint8 * b);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set an additional alpha value used in render copy operations.
|
|
||||||
*
|
|
||||||
* \param texture The texture to update.
|
|
||||||
* \param alpha The alpha value multiplied into copy operations.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid or alpha modulation
|
|
||||||
* is not supported.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetTextureAlphaMod()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture,
|
|
||||||
Uint8 alpha);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the additional alpha value used in render copy operations.
|
|
||||||
*
|
|
||||||
* \param texture The texture to query.
|
|
||||||
* \param alpha A pointer filled in with the current alpha value.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid.
|
|
||||||
*
|
|
||||||
* \sa SDL_SetTextureAlphaMod()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture,
|
|
||||||
Uint8 * alpha);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the blend mode used for texture copy operations.
|
|
||||||
*
|
|
||||||
* \param texture The texture to update.
|
|
||||||
* \param blendMode ::SDL_BlendMode to use for texture blending.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid or the blend mode is
|
|
||||||
* not supported.
|
|
||||||
*
|
|
||||||
* \note If the blend mode is not supported, the closest supported mode is
|
|
||||||
* chosen.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetTextureBlendMode()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture,
|
|
||||||
SDL_BlendMode blendMode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the blend mode used for texture copy operations.
|
|
||||||
*
|
|
||||||
* \param texture The texture to query.
|
|
||||||
* \param blendMode A pointer filled in with the current blend mode.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid.
|
|
||||||
*
|
|
||||||
* \sa SDL_SetTextureBlendMode()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture,
|
|
||||||
SDL_BlendMode *blendMode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Update the given texture rectangle with new pixel data.
|
|
||||||
*
|
|
||||||
* \param texture The texture to update
|
|
||||||
* \param rect A pointer to the rectangle of pixels to update, or NULL to
|
|
||||||
* update the entire texture.
|
|
||||||
* \param pixels The raw pixel data.
|
|
||||||
* \param pitch The number of bytes between rows of pixel data.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid.
|
|
||||||
*
|
|
||||||
* \note This is a fairly slow function.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture,
|
|
||||||
const SDL_Rect * rect,
|
|
||||||
const void *pixels, int pitch);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Lock a portion of the texture for write-only pixel access.
|
|
||||||
*
|
|
||||||
* \param texture The texture to lock for access, which was created with
|
|
||||||
* ::SDL_TEXTUREACCESS_STREAMING.
|
|
||||||
* \param rect A pointer to the rectangle to lock for access. If the rect
|
|
||||||
* is NULL, the entire texture will be locked.
|
|
||||||
* \param pixels This is filled in with a pointer to the locked pixels,
|
|
||||||
* appropriately offset by the locked area.
|
|
||||||
* \param pitch This is filled in with the pitch of the locked pixels.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING.
|
|
||||||
*
|
|
||||||
* \sa SDL_UnlockTexture()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture,
|
|
||||||
const SDL_Rect * rect,
|
|
||||||
void **pixels, int *pitch);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Unlock a texture, uploading the changes to video memory, if needed.
|
|
||||||
*
|
|
||||||
* \sa SDL_LockTexture()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Determines whether a window supports the use of render targets
|
|
||||||
*
|
|
||||||
* \param renderer The renderer that will be checked
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if supported, SDL_FALSE if not.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set a texture as the current rendering target.
|
|
||||||
*
|
|
||||||
* \param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*
|
|
||||||
* \sa SDL_GetRenderTarget()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer,
|
|
||||||
SDL_Texture *texture);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the current render target or NULL for the default render target.
|
|
||||||
*
|
|
||||||
* \return The current render target
|
|
||||||
*
|
|
||||||
* \sa SDL_SetRenderTarget()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set device independent resolution for rendering
|
|
||||||
*
|
|
||||||
* \param w The width of the logical resolution
|
|
||||||
* \param h The height of the logical resolution
|
|
||||||
*
|
|
||||||
* This function uses the viewport and scaling functionality to allow a fixed logical
|
|
||||||
* resolution for rendering, regardless of the actual output resolution. If the actual
|
|
||||||
* output resolution doesn't have the same aspect ratio the output rendering will be
|
|
||||||
* centered within the output display.
|
|
||||||
*
|
|
||||||
* If the output display is a window, mouse events in the window will be filtered
|
|
||||||
* and scaled so they seem to arrive within the logical resolution.
|
|
||||||
*
|
|
||||||
* \note If this function results in scaling or subpixel drawing by the
|
|
||||||
* rendering backend, it will be handled using the appropriate
|
|
||||||
* quality hints.
|
|
||||||
*
|
|
||||||
* \sa SDL_RenderGetLogicalSize()
|
|
||||||
* \sa SDL_RenderSetScale()
|
|
||||||
* \sa SDL_RenderSetViewport()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get device independent resolution for rendering
|
|
||||||
*
|
|
||||||
* \param w A pointer filled with the width of the logical resolution
|
|
||||||
* \param h A pointer filled with the height of the logical resolution
|
|
||||||
*
|
|
||||||
* \sa SDL_RenderSetLogicalSize()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *y);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the drawing area for rendering on the current target.
|
|
||||||
*
|
|
||||||
* \param rect The rectangle representing the drawing area, or NULL to set the viewport to the entire target.
|
|
||||||
*
|
|
||||||
* The x,y of the viewport rect represents the origin for rendering.
|
|
||||||
*
|
|
||||||
* \note When the window is resized, the current viewport is automatically
|
|
||||||
* centered within the new window size.
|
|
||||||
*
|
|
||||||
* \sa SDL_RenderGetViewport()
|
|
||||||
* \sa SDL_RenderSetLogicalSize()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer,
|
|
||||||
const SDL_Rect * rect);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the drawing area for the current target.
|
|
||||||
*
|
|
||||||
* \sa SDL_RenderSetViewport()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer,
|
|
||||||
SDL_Rect * rect);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the drawing scale for rendering on the current target.
|
|
||||||
*
|
|
||||||
* \param scaleX The horizontal scaling factor
|
|
||||||
* \param scaleY The vertical scaling factor
|
|
||||||
*
|
|
||||||
* The drawing coordinates are scaled by the x/y scaling factors
|
|
||||||
* before they are used by the renderer. This allows resolution
|
|
||||||
* independent drawing with a single coordinate system.
|
|
||||||
*
|
|
||||||
* \note If this results in scaling or subpixel drawing by the
|
|
||||||
* rendering backend, it will be handled using the appropriate
|
|
||||||
* quality hints. For best results use integer scaling factors.
|
|
||||||
*
|
|
||||||
* \sa SDL_RenderGetScale()
|
|
||||||
* \sa SDL_RenderSetLogicalSize()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer,
|
|
||||||
float scaleX, float scaleY);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the drawing scale for the current target.
|
|
||||||
*
|
|
||||||
* \param scaleX A pointer filled in with the horizontal scaling factor
|
|
||||||
* \param scaleY A pointer filled in with the vertical scaling factor
|
|
||||||
*
|
|
||||||
* \sa SDL_RenderSetScale()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer,
|
|
||||||
float *scaleX, float *scaleY);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the color used for drawing operations (Rect, Line and Clear).
|
|
||||||
*
|
|
||||||
* \param r The red value used to draw on the rendering target.
|
|
||||||
* \param g The green value used to draw on the rendering target.
|
|
||||||
* \param b The blue value used to draw on the rendering target.
|
|
||||||
* \param a The alpha value used to draw on the rendering target, usually
|
|
||||||
* ::SDL_ALPHA_OPAQUE (255).
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDL_SetRenderDrawColor(SDL_Renderer * renderer,
|
|
||||||
Uint8 r, Uint8 g, Uint8 b,
|
|
||||||
Uint8 a);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the color used for drawing operations (Rect, Line and Clear).
|
|
||||||
*
|
|
||||||
* \param r A pointer to the red value used to draw on the rendering target.
|
|
||||||
* \param g A pointer to the green value used to draw on the rendering target.
|
|
||||||
* \param b A pointer to the blue value used to draw on the rendering target.
|
|
||||||
* \param a A pointer to the alpha value used to draw on the rendering target,
|
|
||||||
* usually ::SDL_ALPHA_OPAQUE (255).
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDL_GetRenderDrawColor(SDL_Renderer * renderer,
|
|
||||||
Uint8 * r, Uint8 * g, Uint8 * b,
|
|
||||||
Uint8 * a);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the blend mode used for drawing operations (Fill and Line).
|
|
||||||
*
|
|
||||||
* \param blendMode ::SDL_BlendMode to use for blending.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*
|
|
||||||
* \note If the blend mode is not supported, the closest supported mode is
|
|
||||||
* chosen.
|
|
||||||
*
|
|
||||||
* \sa SDL_GetRenderDrawBlendMode()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer,
|
|
||||||
SDL_BlendMode blendMode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the blend mode used for drawing operations.
|
|
||||||
*
|
|
||||||
* \param blendMode A pointer filled in with the current blend mode.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*
|
|
||||||
* \sa SDL_SetRenderDrawBlendMode()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer,
|
|
||||||
SDL_BlendMode *blendMode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Clear the current rendering target with the drawing color
|
|
||||||
*
|
|
||||||
* This function clears the entire rendering target, ignoring the viewport.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw a point on the current rendering target.
|
|
||||||
*
|
|
||||||
* \param x The x coordinate of the point.
|
|
||||||
* \param y The y coordinate of the point.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer,
|
|
||||||
int x, int y);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw multiple points on the current rendering target.
|
|
||||||
*
|
|
||||||
* \param points The points to draw
|
|
||||||
* \param count The number of points to draw
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer,
|
|
||||||
const SDL_Point * points,
|
|
||||||
int count);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw a line on the current rendering target.
|
|
||||||
*
|
|
||||||
* \param x1 The x coordinate of the start point.
|
|
||||||
* \param y1 The y coordinate of the start point.
|
|
||||||
* \param x2 The x coordinate of the end point.
|
|
||||||
* \param y2 The y coordinate of the end point.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer,
|
|
||||||
int x1, int y1, int x2, int y2);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw a series of connected lines on the current rendering target.
|
|
||||||
*
|
|
||||||
* \param points The points along the lines
|
|
||||||
* \param count The number of points, drawing count-1 lines
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer,
|
|
||||||
const SDL_Point * points,
|
|
||||||
int count);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw a rectangle on the current rendering target.
|
|
||||||
*
|
|
||||||
* \param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer,
|
|
||||||
const SDL_Rect * rect);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw some number of rectangles on the current rendering target.
|
|
||||||
*
|
|
||||||
* \param rects A pointer to an array of destination rectangles.
|
|
||||||
* \param count The number of rectangles.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer,
|
|
||||||
const SDL_Rect * rects,
|
|
||||||
int count);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Fill a rectangle on the current rendering target with the drawing color.
|
|
||||||
*
|
|
||||||
* \param rect A pointer to the destination rectangle, or NULL for the entire
|
|
||||||
* rendering target.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer,
|
|
||||||
const SDL_Rect * rect);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Fill some number of rectangles on the current rendering target with the drawing color.
|
|
||||||
*
|
|
||||||
* \param rects A pointer to an array of destination rectangles.
|
|
||||||
* \param count The number of rectangles.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer,
|
|
||||||
const SDL_Rect * rects,
|
|
||||||
int count);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Copy a portion of the texture to the current rendering target.
|
|
||||||
*
|
|
||||||
* \param texture The source texture.
|
|
||||||
* \param srcrect A pointer to the source rectangle, or NULL for the entire
|
|
||||||
* texture.
|
|
||||||
* \param dstrect A pointer to the destination rectangle, or NULL for the
|
|
||||||
* entire rendering target.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer,
|
|
||||||
SDL_Texture * texture,
|
|
||||||
const SDL_Rect * srcrect,
|
|
||||||
const SDL_Rect * dstrect);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center
|
|
||||||
*
|
|
||||||
* \param texture The source texture.
|
|
||||||
* \param srcrect A pointer to the source rectangle, or NULL for the entire
|
|
||||||
* texture.
|
|
||||||
* \param dstrect A pointer to the destination rectangle, or NULL for the
|
|
||||||
* entire rendering target.
|
|
||||||
* \param angle An angle in degrees that indicates the rotation that will be applied to dstrect
|
|
||||||
* \param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done aroud dstrect.w/2, dstrect.h/2)
|
|
||||||
* \param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 on error
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer,
|
|
||||||
SDL_Texture * texture,
|
|
||||||
const SDL_Rect * srcrect,
|
|
||||||
const SDL_Rect * dstrect,
|
|
||||||
const double angle,
|
|
||||||
const SDL_Point *center,
|
|
||||||
const SDL_RendererFlip flip);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Read pixels from the current rendering target.
|
|
||||||
*
|
|
||||||
* \param rect A pointer to the rectangle to read, or NULL for the entire
|
|
||||||
* render target.
|
|
||||||
* \param format The desired format of the pixel data, or 0 to use the format
|
|
||||||
* of the rendering target
|
|
||||||
* \param pixels A pointer to be filled in with the pixel data
|
|
||||||
* \param pitch The pitch of the pixels parameter.
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if pixel reading is not supported.
|
|
||||||
*
|
|
||||||
* \warning This is a very slow operation, and should not be used frequently.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer,
|
|
||||||
const SDL_Rect * rect,
|
|
||||||
Uint32 format,
|
|
||||||
void *pixels, int pitch);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Update the screen with rendering performed.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Destroy the specified texture.
|
|
||||||
*
|
|
||||||
* \sa SDL_CreateTexture()
|
|
||||||
* \sa SDL_CreateTextureFromSurface()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Destroy the rendering context for a window and free associated
|
|
||||||
* textures.
|
|
||||||
*
|
|
||||||
* \sa SDL_CreateRenderer()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Bind the texture to the current OpenGL/ES/ES2 context for use with
|
|
||||||
* OpenGL instructions.
|
|
||||||
*
|
|
||||||
* \param texture The SDL texture to bind
|
|
||||||
* \param texw A pointer to a float that will be filled with the texture width
|
|
||||||
* \param texh A pointer to a float that will be filled with the texture height
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the operation is not supported
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Unbind a texture from the current OpenGL/ES/ES2 context.
|
|
||||||
*
|
|
||||||
* \param texture The SDL texture to unbind
|
|
||||||
*
|
|
||||||
* \return 0 on success, or -1 if the operation is not supported
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_render_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
2
external/SDL2/SDL_revision.h
vendored
2
external/SDL2/SDL_revision.h
vendored
@ -1,2 +0,0 @@
|
|||||||
#define SDL_REVISION "hg-0:aaaaaaaaaaah"
|
|
||||||
#define SDL_REVISION_NUMBER 0
|
|
401
external/SDL2/SDL_scancode.h
vendored
401
external/SDL2/SDL_scancode.h
vendored
@ -1,401 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_scancode.h
|
|
||||||
*
|
|
||||||
* Defines keyboard scancodes.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_scancode_h
|
|
||||||
#define _SDL_scancode_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief The SDL keyboard scancode representation.
|
|
||||||
*
|
|
||||||
* Values of this type are used to represent keyboard keys, among other places
|
|
||||||
* in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the
|
|
||||||
* SDL_Event structure.
|
|
||||||
*
|
|
||||||
* The values in this enumeration are based on the USB usage page standard:
|
|
||||||
* http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_SCANCODE_UNKNOWN = 0,
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Usage page 0x07
|
|
||||||
*
|
|
||||||
* These values are from usage page 0x07 (USB keyboard page).
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
SDL_SCANCODE_A = 4,
|
|
||||||
SDL_SCANCODE_B = 5,
|
|
||||||
SDL_SCANCODE_C = 6,
|
|
||||||
SDL_SCANCODE_D = 7,
|
|
||||||
SDL_SCANCODE_E = 8,
|
|
||||||
SDL_SCANCODE_F = 9,
|
|
||||||
SDL_SCANCODE_G = 10,
|
|
||||||
SDL_SCANCODE_H = 11,
|
|
||||||
SDL_SCANCODE_I = 12,
|
|
||||||
SDL_SCANCODE_J = 13,
|
|
||||||
SDL_SCANCODE_K = 14,
|
|
||||||
SDL_SCANCODE_L = 15,
|
|
||||||
SDL_SCANCODE_M = 16,
|
|
||||||
SDL_SCANCODE_N = 17,
|
|
||||||
SDL_SCANCODE_O = 18,
|
|
||||||
SDL_SCANCODE_P = 19,
|
|
||||||
SDL_SCANCODE_Q = 20,
|
|
||||||
SDL_SCANCODE_R = 21,
|
|
||||||
SDL_SCANCODE_S = 22,
|
|
||||||
SDL_SCANCODE_T = 23,
|
|
||||||
SDL_SCANCODE_U = 24,
|
|
||||||
SDL_SCANCODE_V = 25,
|
|
||||||
SDL_SCANCODE_W = 26,
|
|
||||||
SDL_SCANCODE_X = 27,
|
|
||||||
SDL_SCANCODE_Y = 28,
|
|
||||||
SDL_SCANCODE_Z = 29,
|
|
||||||
|
|
||||||
SDL_SCANCODE_1 = 30,
|
|
||||||
SDL_SCANCODE_2 = 31,
|
|
||||||
SDL_SCANCODE_3 = 32,
|
|
||||||
SDL_SCANCODE_4 = 33,
|
|
||||||
SDL_SCANCODE_5 = 34,
|
|
||||||
SDL_SCANCODE_6 = 35,
|
|
||||||
SDL_SCANCODE_7 = 36,
|
|
||||||
SDL_SCANCODE_8 = 37,
|
|
||||||
SDL_SCANCODE_9 = 38,
|
|
||||||
SDL_SCANCODE_0 = 39,
|
|
||||||
|
|
||||||
SDL_SCANCODE_RETURN = 40,
|
|
||||||
SDL_SCANCODE_ESCAPE = 41,
|
|
||||||
SDL_SCANCODE_BACKSPACE = 42,
|
|
||||||
SDL_SCANCODE_TAB = 43,
|
|
||||||
SDL_SCANCODE_SPACE = 44,
|
|
||||||
|
|
||||||
SDL_SCANCODE_MINUS = 45,
|
|
||||||
SDL_SCANCODE_EQUALS = 46,
|
|
||||||
SDL_SCANCODE_LEFTBRACKET = 47,
|
|
||||||
SDL_SCANCODE_RIGHTBRACKET = 48,
|
|
||||||
SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return
|
|
||||||
* key on ISO keyboards and at the right end
|
|
||||||
* of the QWERTY row on ANSI keyboards.
|
|
||||||
* Produces REVERSE SOLIDUS (backslash) and
|
|
||||||
* VERTICAL LINE in a US layout, REVERSE
|
|
||||||
* SOLIDUS and VERTICAL LINE in a UK Mac
|
|
||||||
* layout, NUMBER SIGN and TILDE in a UK
|
|
||||||
* Windows layout, DOLLAR SIGN and POUND SIGN
|
|
||||||
* in a Swiss German layout, NUMBER SIGN and
|
|
||||||
* APOSTROPHE in a German layout, GRAVE
|
|
||||||
* ACCENT and POUND SIGN in a French Mac
|
|
||||||
* layout, and ASTERISK and MICRO SIGN in a
|
|
||||||
* French Windows layout.
|
|
||||||
*/
|
|
||||||
SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code
|
|
||||||
* instead of 49 for the same key, but all
|
|
||||||
* OSes I've seen treat the two codes
|
|
||||||
* identically. So, as an implementor, unless
|
|
||||||
* your keyboard generates both of those
|
|
||||||
* codes and your OS treats them differently,
|
|
||||||
* you should generate SDL_SCANCODE_BACKSLASH
|
|
||||||
* instead of this code. As a user, you
|
|
||||||
* should not rely on this code because SDL
|
|
||||||
* will never generate it with most (all?)
|
|
||||||
* keyboards.
|
|
||||||
*/
|
|
||||||
SDL_SCANCODE_SEMICOLON = 51,
|
|
||||||
SDL_SCANCODE_APOSTROPHE = 52,
|
|
||||||
SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI
|
|
||||||
* and ISO keyboards). Produces GRAVE ACCENT and
|
|
||||||
* TILDE in a US Windows layout and in US and UK
|
|
||||||
* Mac layouts on ANSI keyboards, GRAVE ACCENT
|
|
||||||
* and NOT SIGN in a UK Windows layout, SECTION
|
|
||||||
* SIGN and PLUS-MINUS SIGN in US and UK Mac
|
|
||||||
* layouts on ISO keyboards, SECTION SIGN and
|
|
||||||
* DEGREE SIGN in a Swiss German layout (Mac:
|
|
||||||
* only on ISO keyboards), CIRCUMFLEX ACCENT and
|
|
||||||
* DEGREE SIGN in a German layout (Mac: only on
|
|
||||||
* ISO keyboards), SUPERSCRIPT TWO and TILDE in a
|
|
||||||
* French Windows layout, COMMERCIAL AT and
|
|
||||||
* NUMBER SIGN in a French Mac layout on ISO
|
|
||||||
* keyboards, and LESS-THAN SIGN and GREATER-THAN
|
|
||||||
* SIGN in a Swiss German, German, or French Mac
|
|
||||||
* layout on ANSI keyboards.
|
|
||||||
*/
|
|
||||||
SDL_SCANCODE_COMMA = 54,
|
|
||||||
SDL_SCANCODE_PERIOD = 55,
|
|
||||||
SDL_SCANCODE_SLASH = 56,
|
|
||||||
|
|
||||||
SDL_SCANCODE_CAPSLOCK = 57,
|
|
||||||
|
|
||||||
SDL_SCANCODE_F1 = 58,
|
|
||||||
SDL_SCANCODE_F2 = 59,
|
|
||||||
SDL_SCANCODE_F3 = 60,
|
|
||||||
SDL_SCANCODE_F4 = 61,
|
|
||||||
SDL_SCANCODE_F5 = 62,
|
|
||||||
SDL_SCANCODE_F6 = 63,
|
|
||||||
SDL_SCANCODE_F7 = 64,
|
|
||||||
SDL_SCANCODE_F8 = 65,
|
|
||||||
SDL_SCANCODE_F9 = 66,
|
|
||||||
SDL_SCANCODE_F10 = 67,
|
|
||||||
SDL_SCANCODE_F11 = 68,
|
|
||||||
SDL_SCANCODE_F12 = 69,
|
|
||||||
|
|
||||||
SDL_SCANCODE_PRINTSCREEN = 70,
|
|
||||||
SDL_SCANCODE_SCROLLLOCK = 71,
|
|
||||||
SDL_SCANCODE_PAUSE = 72,
|
|
||||||
SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but
|
|
||||||
does send code 73, not 117) */
|
|
||||||
SDL_SCANCODE_HOME = 74,
|
|
||||||
SDL_SCANCODE_PAGEUP = 75,
|
|
||||||
SDL_SCANCODE_DELETE = 76,
|
|
||||||
SDL_SCANCODE_END = 77,
|
|
||||||
SDL_SCANCODE_PAGEDOWN = 78,
|
|
||||||
SDL_SCANCODE_RIGHT = 79,
|
|
||||||
SDL_SCANCODE_LEFT = 80,
|
|
||||||
SDL_SCANCODE_DOWN = 81,
|
|
||||||
SDL_SCANCODE_UP = 82,
|
|
||||||
|
|
||||||
SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards
|
|
||||||
*/
|
|
||||||
SDL_SCANCODE_KP_DIVIDE = 84,
|
|
||||||
SDL_SCANCODE_KP_MULTIPLY = 85,
|
|
||||||
SDL_SCANCODE_KP_MINUS = 86,
|
|
||||||
SDL_SCANCODE_KP_PLUS = 87,
|
|
||||||
SDL_SCANCODE_KP_ENTER = 88,
|
|
||||||
SDL_SCANCODE_KP_1 = 89,
|
|
||||||
SDL_SCANCODE_KP_2 = 90,
|
|
||||||
SDL_SCANCODE_KP_3 = 91,
|
|
||||||
SDL_SCANCODE_KP_4 = 92,
|
|
||||||
SDL_SCANCODE_KP_5 = 93,
|
|
||||||
SDL_SCANCODE_KP_6 = 94,
|
|
||||||
SDL_SCANCODE_KP_7 = 95,
|
|
||||||
SDL_SCANCODE_KP_8 = 96,
|
|
||||||
SDL_SCANCODE_KP_9 = 97,
|
|
||||||
SDL_SCANCODE_KP_0 = 98,
|
|
||||||
SDL_SCANCODE_KP_PERIOD = 99,
|
|
||||||
|
|
||||||
SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO
|
|
||||||
* keyboards have over ANSI ones,
|
|
||||||
* located between left shift and Y.
|
|
||||||
* Produces GRAVE ACCENT and TILDE in a
|
|
||||||
* US or UK Mac layout, REVERSE SOLIDUS
|
|
||||||
* (backslash) and VERTICAL LINE in a
|
|
||||||
* US or UK Windows layout, and
|
|
||||||
* LESS-THAN SIGN and GREATER-THAN SIGN
|
|
||||||
* in a Swiss German, German, or French
|
|
||||||
* layout. */
|
|
||||||
SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */
|
|
||||||
SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag,
|
|
||||||
* not a physical key - but some Mac keyboards
|
|
||||||
* do have a power key. */
|
|
||||||
SDL_SCANCODE_KP_EQUALS = 103,
|
|
||||||
SDL_SCANCODE_F13 = 104,
|
|
||||||
SDL_SCANCODE_F14 = 105,
|
|
||||||
SDL_SCANCODE_F15 = 106,
|
|
||||||
SDL_SCANCODE_F16 = 107,
|
|
||||||
SDL_SCANCODE_F17 = 108,
|
|
||||||
SDL_SCANCODE_F18 = 109,
|
|
||||||
SDL_SCANCODE_F19 = 110,
|
|
||||||
SDL_SCANCODE_F20 = 111,
|
|
||||||
SDL_SCANCODE_F21 = 112,
|
|
||||||
SDL_SCANCODE_F22 = 113,
|
|
||||||
SDL_SCANCODE_F23 = 114,
|
|
||||||
SDL_SCANCODE_F24 = 115,
|
|
||||||
SDL_SCANCODE_EXECUTE = 116,
|
|
||||||
SDL_SCANCODE_HELP = 117,
|
|
||||||
SDL_SCANCODE_MENU = 118,
|
|
||||||
SDL_SCANCODE_SELECT = 119,
|
|
||||||
SDL_SCANCODE_STOP = 120,
|
|
||||||
SDL_SCANCODE_AGAIN = 121, /**< redo */
|
|
||||||
SDL_SCANCODE_UNDO = 122,
|
|
||||||
SDL_SCANCODE_CUT = 123,
|
|
||||||
SDL_SCANCODE_COPY = 124,
|
|
||||||
SDL_SCANCODE_PASTE = 125,
|
|
||||||
SDL_SCANCODE_FIND = 126,
|
|
||||||
SDL_SCANCODE_MUTE = 127,
|
|
||||||
SDL_SCANCODE_VOLUMEUP = 128,
|
|
||||||
SDL_SCANCODE_VOLUMEDOWN = 129,
|
|
||||||
/* not sure whether there's a reason to enable these */
|
|
||||||
/* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */
|
|
||||||
/* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */
|
|
||||||
/* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */
|
|
||||||
SDL_SCANCODE_KP_COMMA = 133,
|
|
||||||
SDL_SCANCODE_KP_EQUALSAS400 = 134,
|
|
||||||
|
|
||||||
SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see
|
|
||||||
footnotes in USB doc */
|
|
||||||
SDL_SCANCODE_INTERNATIONAL2 = 136,
|
|
||||||
SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */
|
|
||||||
SDL_SCANCODE_INTERNATIONAL4 = 138,
|
|
||||||
SDL_SCANCODE_INTERNATIONAL5 = 139,
|
|
||||||
SDL_SCANCODE_INTERNATIONAL6 = 140,
|
|
||||||
SDL_SCANCODE_INTERNATIONAL7 = 141,
|
|
||||||
SDL_SCANCODE_INTERNATIONAL8 = 142,
|
|
||||||
SDL_SCANCODE_INTERNATIONAL9 = 143,
|
|
||||||
SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */
|
|
||||||
SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */
|
|
||||||
SDL_SCANCODE_LANG3 = 146, /**< Katakana */
|
|
||||||
SDL_SCANCODE_LANG4 = 147, /**< Hiragana */
|
|
||||||
SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */
|
|
||||||
SDL_SCANCODE_LANG6 = 149, /**< reserved */
|
|
||||||
SDL_SCANCODE_LANG7 = 150, /**< reserved */
|
|
||||||
SDL_SCANCODE_LANG8 = 151, /**< reserved */
|
|
||||||
SDL_SCANCODE_LANG9 = 152, /**< reserved */
|
|
||||||
|
|
||||||
SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */
|
|
||||||
SDL_SCANCODE_SYSREQ = 154,
|
|
||||||
SDL_SCANCODE_CANCEL = 155,
|
|
||||||
SDL_SCANCODE_CLEAR = 156,
|
|
||||||
SDL_SCANCODE_PRIOR = 157,
|
|
||||||
SDL_SCANCODE_RETURN2 = 158,
|
|
||||||
SDL_SCANCODE_SEPARATOR = 159,
|
|
||||||
SDL_SCANCODE_OUT = 160,
|
|
||||||
SDL_SCANCODE_OPER = 161,
|
|
||||||
SDL_SCANCODE_CLEARAGAIN = 162,
|
|
||||||
SDL_SCANCODE_CRSEL = 163,
|
|
||||||
SDL_SCANCODE_EXSEL = 164,
|
|
||||||
|
|
||||||
SDL_SCANCODE_KP_00 = 176,
|
|
||||||
SDL_SCANCODE_KP_000 = 177,
|
|
||||||
SDL_SCANCODE_THOUSANDSSEPARATOR = 178,
|
|
||||||
SDL_SCANCODE_DECIMALSEPARATOR = 179,
|
|
||||||
SDL_SCANCODE_CURRENCYUNIT = 180,
|
|
||||||
SDL_SCANCODE_CURRENCYSUBUNIT = 181,
|
|
||||||
SDL_SCANCODE_KP_LEFTPAREN = 182,
|
|
||||||
SDL_SCANCODE_KP_RIGHTPAREN = 183,
|
|
||||||
SDL_SCANCODE_KP_LEFTBRACE = 184,
|
|
||||||
SDL_SCANCODE_KP_RIGHTBRACE = 185,
|
|
||||||
SDL_SCANCODE_KP_TAB = 186,
|
|
||||||
SDL_SCANCODE_KP_BACKSPACE = 187,
|
|
||||||
SDL_SCANCODE_KP_A = 188,
|
|
||||||
SDL_SCANCODE_KP_B = 189,
|
|
||||||
SDL_SCANCODE_KP_C = 190,
|
|
||||||
SDL_SCANCODE_KP_D = 191,
|
|
||||||
SDL_SCANCODE_KP_E = 192,
|
|
||||||
SDL_SCANCODE_KP_F = 193,
|
|
||||||
SDL_SCANCODE_KP_XOR = 194,
|
|
||||||
SDL_SCANCODE_KP_POWER = 195,
|
|
||||||
SDL_SCANCODE_KP_PERCENT = 196,
|
|
||||||
SDL_SCANCODE_KP_LESS = 197,
|
|
||||||
SDL_SCANCODE_KP_GREATER = 198,
|
|
||||||
SDL_SCANCODE_KP_AMPERSAND = 199,
|
|
||||||
SDL_SCANCODE_KP_DBLAMPERSAND = 200,
|
|
||||||
SDL_SCANCODE_KP_VERTICALBAR = 201,
|
|
||||||
SDL_SCANCODE_KP_DBLVERTICALBAR = 202,
|
|
||||||
SDL_SCANCODE_KP_COLON = 203,
|
|
||||||
SDL_SCANCODE_KP_HASH = 204,
|
|
||||||
SDL_SCANCODE_KP_SPACE = 205,
|
|
||||||
SDL_SCANCODE_KP_AT = 206,
|
|
||||||
SDL_SCANCODE_KP_EXCLAM = 207,
|
|
||||||
SDL_SCANCODE_KP_MEMSTORE = 208,
|
|
||||||
SDL_SCANCODE_KP_MEMRECALL = 209,
|
|
||||||
SDL_SCANCODE_KP_MEMCLEAR = 210,
|
|
||||||
SDL_SCANCODE_KP_MEMADD = 211,
|
|
||||||
SDL_SCANCODE_KP_MEMSUBTRACT = 212,
|
|
||||||
SDL_SCANCODE_KP_MEMMULTIPLY = 213,
|
|
||||||
SDL_SCANCODE_KP_MEMDIVIDE = 214,
|
|
||||||
SDL_SCANCODE_KP_PLUSMINUS = 215,
|
|
||||||
SDL_SCANCODE_KP_CLEAR = 216,
|
|
||||||
SDL_SCANCODE_KP_CLEARENTRY = 217,
|
|
||||||
SDL_SCANCODE_KP_BINARY = 218,
|
|
||||||
SDL_SCANCODE_KP_OCTAL = 219,
|
|
||||||
SDL_SCANCODE_KP_DECIMAL = 220,
|
|
||||||
SDL_SCANCODE_KP_HEXADECIMAL = 221,
|
|
||||||
|
|
||||||
SDL_SCANCODE_LCTRL = 224,
|
|
||||||
SDL_SCANCODE_LSHIFT = 225,
|
|
||||||
SDL_SCANCODE_LALT = 226, /**< alt, option */
|
|
||||||
SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */
|
|
||||||
SDL_SCANCODE_RCTRL = 228,
|
|
||||||
SDL_SCANCODE_RSHIFT = 229,
|
|
||||||
SDL_SCANCODE_RALT = 230, /**< alt gr, option */
|
|
||||||
SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */
|
|
||||||
|
|
||||||
SDL_SCANCODE_MODE = 257, /**< I'm not sure if this is really not covered
|
|
||||||
* by any of the above, but since there's a
|
|
||||||
* special KMOD_MODE for it I'm adding it here
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*@}*//*Usage page 0x07*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Usage page 0x0C
|
|
||||||
*
|
|
||||||
* These values are mapped from usage page 0x0C (USB consumer page).
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
SDL_SCANCODE_AUDIONEXT = 258,
|
|
||||||
SDL_SCANCODE_AUDIOPREV = 259,
|
|
||||||
SDL_SCANCODE_AUDIOSTOP = 260,
|
|
||||||
SDL_SCANCODE_AUDIOPLAY = 261,
|
|
||||||
SDL_SCANCODE_AUDIOMUTE = 262,
|
|
||||||
SDL_SCANCODE_MEDIASELECT = 263,
|
|
||||||
SDL_SCANCODE_WWW = 264,
|
|
||||||
SDL_SCANCODE_MAIL = 265,
|
|
||||||
SDL_SCANCODE_CALCULATOR = 266,
|
|
||||||
SDL_SCANCODE_COMPUTER = 267,
|
|
||||||
SDL_SCANCODE_AC_SEARCH = 268,
|
|
||||||
SDL_SCANCODE_AC_HOME = 269,
|
|
||||||
SDL_SCANCODE_AC_BACK = 270,
|
|
||||||
SDL_SCANCODE_AC_FORWARD = 271,
|
|
||||||
SDL_SCANCODE_AC_STOP = 272,
|
|
||||||
SDL_SCANCODE_AC_REFRESH = 273,
|
|
||||||
SDL_SCANCODE_AC_BOOKMARKS = 274,
|
|
||||||
|
|
||||||
/*@}*//*Usage page 0x0C*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Walther keys
|
|
||||||
*
|
|
||||||
* These are values that Christian Walther added (for mac keyboard?).
|
|
||||||
*/
|
|
||||||
/*@{*/
|
|
||||||
|
|
||||||
SDL_SCANCODE_BRIGHTNESSDOWN = 275,
|
|
||||||
SDL_SCANCODE_BRIGHTNESSUP = 276,
|
|
||||||
SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display
|
|
||||||
switch, video mode switch */
|
|
||||||
SDL_SCANCODE_KBDILLUMTOGGLE = 278,
|
|
||||||
SDL_SCANCODE_KBDILLUMDOWN = 279,
|
|
||||||
SDL_SCANCODE_KBDILLUMUP = 280,
|
|
||||||
SDL_SCANCODE_EJECT = 281,
|
|
||||||
SDL_SCANCODE_SLEEP = 282,
|
|
||||||
|
|
||||||
SDL_SCANCODE_APP1 = 283,
|
|
||||||
SDL_SCANCODE_APP2 = 284,
|
|
||||||
|
|
||||||
/*@}*//*Walther keys*/
|
|
||||||
|
|
||||||
/* Add any other keys here. */
|
|
||||||
|
|
||||||
SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes
|
|
||||||
for array bounds */
|
|
||||||
} SDL_Scancode;
|
|
||||||
|
|
||||||
#endif /* _SDL_scancode_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
147
external/SDL2/SDL_shape.h
vendored
147
external/SDL2/SDL_shape.h
vendored
@ -1,147 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_shape_h
|
|
||||||
#define _SDL_shape_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_pixels.h"
|
|
||||||
#include "SDL_rect.h"
|
|
||||||
#include "SDL_surface.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** \file SDL_shape.h
|
|
||||||
*
|
|
||||||
* Header file for the shaped window API.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define SDL_NONSHAPEABLE_WINDOW -1
|
|
||||||
#define SDL_INVALID_SHAPE_ARGUMENT -2
|
|
||||||
#define SDL_WINDOW_LACKS_SHAPE -3
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Create a window that can be shaped with the specified position, dimensions, and flags.
|
|
||||||
*
|
|
||||||
* \param title The title of the window, in UTF-8 encoding.
|
|
||||||
* \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or
|
|
||||||
* ::SDL_WINDOWPOS_UNDEFINED.
|
|
||||||
* \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or
|
|
||||||
* ::SDL_WINDOWPOS_UNDEFINED.
|
|
||||||
* \param w The width of the window.
|
|
||||||
* \param h The height of the window.
|
|
||||||
* \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following:
|
|
||||||
* ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED,
|
|
||||||
* ::SDL_WINDOW_SHOWN, ::SDL_WINDOW_RESIZABLE,
|
|
||||||
* ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED,
|
|
||||||
* ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset.
|
|
||||||
*
|
|
||||||
* \return The window created, or NULL if window creation failed.
|
|
||||||
*
|
|
||||||
* \sa SDL_DestroyWindow()
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Return whether the given window is a shaped window.
|
|
||||||
*
|
|
||||||
* \param window The window to query for being shaped.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL.
|
|
||||||
* \sa SDL_CreateShapedWindow
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window);
|
|
||||||
|
|
||||||
/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */
|
|
||||||
typedef enum {
|
|
||||||
/** \brief The default mode, a binarized alpha cutoff of 1. */
|
|
||||||
ShapeModeDefault,
|
|
||||||
/** \brief A binarized alpha cutoff with a given integer value. */
|
|
||||||
ShapeModeBinarizeAlpha,
|
|
||||||
/** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */
|
|
||||||
ShapeModeReverseBinarizeAlpha,
|
|
||||||
/** \brief A color key is applied. */
|
|
||||||
ShapeModeColorKey
|
|
||||||
} WindowShapeMode;
|
|
||||||
|
|
||||||
#define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha)
|
|
||||||
|
|
||||||
/** \brief A union containing parameters for shaped windows. */
|
|
||||||
typedef union {
|
|
||||||
/** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */
|
|
||||||
Uint8 binarizationCutoff;
|
|
||||||
SDL_Color colorKey;
|
|
||||||
} SDL_WindowShapeParams;
|
|
||||||
|
|
||||||
/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */
|
|
||||||
typedef struct SDL_WindowShapeMode {
|
|
||||||
/** \brief The mode of these window-shape parameters. */
|
|
||||||
WindowShapeMode mode;
|
|
||||||
/** \brief Window-shape parameters. */
|
|
||||||
SDL_WindowShapeParams parameters;
|
|
||||||
} SDL_WindowShapeMode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Set the shape and parameters of a shaped window.
|
|
||||||
*
|
|
||||||
* \param window The shaped window whose parameters should be set.
|
|
||||||
* \param shape A surface encoding the desired shape for the window.
|
|
||||||
* \param shape_mode The parameters to set for the shaped window.
|
|
||||||
*
|
|
||||||
* \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW
|
|
||||||
* if the SDL_Window* given does not reference a valid shaped window.
|
|
||||||
*
|
|
||||||
* \sa SDL_WindowShapeMode
|
|
||||||
* \sa SDL_GetShapedWindowMode.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the shape parameters of a shaped window.
|
|
||||||
*
|
|
||||||
* \param window The shaped window whose parameters should be retrieved.
|
|
||||||
* \param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape.
|
|
||||||
*
|
|
||||||
* \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode
|
|
||||||
* data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if
|
|
||||||
* the SDL_Window* given is a shapeable window currently lacking a shape.
|
|
||||||
*
|
|
||||||
* \sa SDL_WindowShapeMode
|
|
||||||
* \sa SDL_SetWindowShape
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_shape_h */
|
|
106
external/SDL2/SDL_system.h
vendored
106
external/SDL2/SDL_system.h
vendored
@ -1,106 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_system.h
|
|
||||||
*
|
|
||||||
* Include file for platform specific SDL API functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_system_h
|
|
||||||
#define _SDL_system_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#if defined(__IPHONEOS__) && __IPHONEOS__
|
|
||||||
#include "SDL_video.h"
|
|
||||||
#include "SDL_keyboard.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Platform specific functions for iOS */
|
|
||||||
#if defined(__IPHONEOS__) && __IPHONEOS__
|
|
||||||
|
|
||||||
extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
|
|
||||||
extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled);
|
|
||||||
|
|
||||||
#endif /* __IPHONEOS__ */
|
|
||||||
|
|
||||||
|
|
||||||
/* Platform specific functions for Android */
|
|
||||||
#if defined(__ANDROID__) && __ANDROID__
|
|
||||||
|
|
||||||
/* Get the JNI environment for the current thread
|
|
||||||
This returns JNIEnv*, but the prototype is void* so we don't need jni.h
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv();
|
|
||||||
|
|
||||||
/* Get the SDL Activity object for the application
|
|
||||||
This returns jobject, but the prototype is void* so we don't need jni.h
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity();
|
|
||||||
|
|
||||||
/* See the official Android developer guide for more information:
|
|
||||||
http://developer.android.com/guide/topics/data/data-storage.html
|
|
||||||
*/
|
|
||||||
#define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01
|
|
||||||
#define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02
|
|
||||||
|
|
||||||
/* Get the path used for internal storage for this application.
|
|
||||||
This path is unique to your application and cannot be written to
|
|
||||||
by other applications.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath();
|
|
||||||
|
|
||||||
/* Get the current state of external storage, a bitmask of these values:
|
|
||||||
SDL_ANDROID_EXTERNAL_STORAGE_READ
|
|
||||||
SDL_ANDROID_EXTERNAL_STORAGE_WRITE
|
|
||||||
If external storage is currently unavailable, this will return 0.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState();
|
|
||||||
|
|
||||||
/* Get the path used for external storage for this application.
|
|
||||||
This path is unique to your application, but is public and can be
|
|
||||||
written to by other applications.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath();
|
|
||||||
|
|
||||||
#endif /* __ANDROID__ */
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_system_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
241
external/SDL2/SDL_syswm.h
vendored
241
external/SDL2/SDL_syswm.h
vendored
@ -1,241 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_syswm.h
|
|
||||||
*
|
|
||||||
* Include file for SDL custom system window manager hooks.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_syswm_h
|
|
||||||
#define _SDL_syswm_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
#include "SDL_version.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_syswm.h
|
|
||||||
*
|
|
||||||
* Your application has access to a special type of event ::SDL_SYSWMEVENT,
|
|
||||||
* which contains window-manager specific information and arrives whenever
|
|
||||||
* an unhandled window event occurs. This event is ignored by default, but
|
|
||||||
* you can enable it with SDL_EventState().
|
|
||||||
*/
|
|
||||||
#ifdef SDL_PROTOTYPES_ONLY
|
|
||||||
struct SDL_SysWMinfo;
|
|
||||||
#else
|
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_WINDOWS)
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This is the structure for custom window manager events */
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_X11)
|
|
||||||
#if defined(__APPLE__) && defined(__MACH__)
|
|
||||||
/* conflicts with Quickdraw.h */
|
|
||||||
#define Cursor X11Cursor
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xatom.h>
|
|
||||||
|
|
||||||
#if defined(__APPLE__) && defined(__MACH__)
|
|
||||||
/* matches the re-define above */
|
|
||||||
#undef Cursor
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* defined(SDL_VIDEO_DRIVER_X11) */
|
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
|
|
||||||
#include <directfb.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_COCOA)
|
|
||||||
#ifdef __OBJC__
|
|
||||||
#include <Cocoa/Cocoa.h>
|
|
||||||
#else
|
|
||||||
typedef struct _NSWindow NSWindow;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_UIKIT)
|
|
||||||
#ifdef __OBJC__
|
|
||||||
#include <UIKit/UIKit.h>
|
|
||||||
#else
|
|
||||||
typedef struct _UIWindow UIWindow;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* These are the various supported windowing subsystems
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
SDL_SYSWM_UNKNOWN,
|
|
||||||
SDL_SYSWM_WINDOWS,
|
|
||||||
SDL_SYSWM_X11,
|
|
||||||
SDL_SYSWM_DIRECTFB,
|
|
||||||
SDL_SYSWM_COCOA,
|
|
||||||
SDL_SYSWM_UIKIT,
|
|
||||||
} SDL_SYSWM_TYPE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The custom event structure.
|
|
||||||
*/
|
|
||||||
struct SDL_SysWMmsg
|
|
||||||
{
|
|
||||||
SDL_version version;
|
|
||||||
SDL_SYSWM_TYPE subsystem;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_WINDOWS)
|
|
||||||
struct {
|
|
||||||
HWND hwnd; /**< The window for the message */
|
|
||||||
UINT msg; /**< The type of message */
|
|
||||||
WPARAM wParam; /**< WORD message parameter */
|
|
||||||
LPARAM lParam; /**< LONG message parameter */
|
|
||||||
} win;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_X11)
|
|
||||||
struct {
|
|
||||||
XEvent event;
|
|
||||||
} x11;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
|
|
||||||
struct {
|
|
||||||
DFBEvent event;
|
|
||||||
} dfb;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_COCOA)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* No Cocoa window events yet */
|
|
||||||
} cocoa;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_UIKIT)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
/* No UIKit window events yet */
|
|
||||||
} uikit;
|
|
||||||
#endif
|
|
||||||
/* Can't have an empty union */
|
|
||||||
int dummy;
|
|
||||||
} msg;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The custom window manager information structure.
|
|
||||||
*
|
|
||||||
* When this structure is returned, it holds information about which
|
|
||||||
* low level system it is using, and will be one of SDL_SYSWM_TYPE.
|
|
||||||
*/
|
|
||||||
struct SDL_SysWMinfo
|
|
||||||
{
|
|
||||||
SDL_version version;
|
|
||||||
SDL_SYSWM_TYPE subsystem;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_WINDOWS)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
HWND window; /**< The window handle */
|
|
||||||
} win;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_X11)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Display *display; /**< The X11 display */
|
|
||||||
Window window; /**< The X11 window */
|
|
||||||
} x11;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
IDirectFB *dfb; /**< The directfb main interface */
|
|
||||||
IDirectFBWindow *window; /**< The directfb window handle */
|
|
||||||
IDirectFBSurface *surface; /**< The directfb client surface */
|
|
||||||
} dfb;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_COCOA)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
NSWindow *window; /* The Cocoa window */
|
|
||||||
} cocoa;
|
|
||||||
#endif
|
|
||||||
#if defined(SDL_VIDEO_DRIVER_UIKIT)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
UIWindow *window; /* The UIKit window */
|
|
||||||
} uikit;
|
|
||||||
#endif
|
|
||||||
/* Can't have an empty union */
|
|
||||||
int dummy;
|
|
||||||
} info;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* SDL_PROTOTYPES_ONLY */
|
|
||||||
|
|
||||||
typedef struct SDL_SysWMinfo SDL_SysWMinfo;
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
/**
|
|
||||||
* \brief This function allows access to driver-dependent window information.
|
|
||||||
*
|
|
||||||
* \param window The window about which information is being requested
|
|
||||||
* \param info This structure must be initialized with the SDL version, and is
|
|
||||||
* then filled in with information about the given window.
|
|
||||||
*
|
|
||||||
* \return SDL_TRUE if the function is implemented and the version member of
|
|
||||||
* the \c info struct is valid, SDL_FALSE otherwise.
|
|
||||||
*
|
|
||||||
* You typically use this function like this:
|
|
||||||
* \code
|
|
||||||
* SDL_SysWMinfo info;
|
|
||||||
* SDL_VERSION(&info.version);
|
|
||||||
* if ( SDL_GetWindowWMInfo(&info) ) { ... }
|
|
||||||
* \endcode
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window,
|
|
||||||
SDL_SysWMinfo * info);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_syswm_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
72
external/SDL2/SDL_test.h
vendored
72
external/SDL2/SDL_test.h
vendored
@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_h
|
|
||||||
#define _SDL_test_h
|
|
||||||
|
|
||||||
#include "SDL.h"
|
|
||||||
#include "SDL_test_common.h"
|
|
||||||
#include "SDL_test_font.h"
|
|
||||||
#include "SDL_test_random.h"
|
|
||||||
#include "SDL_test_fuzzer.h"
|
|
||||||
#include "SDL_test_crc32.h"
|
|
||||||
#include "SDL_test_md5.h"
|
|
||||||
#include "SDL_test_log.h"
|
|
||||||
#include "SDL_test_assert.h"
|
|
||||||
#include "SDL_test_harness.h"
|
|
||||||
#include "SDL_test_images.h"
|
|
||||||
#include "SDL_test_compare.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Global definitions */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: Maximum size of SDLTest log message is less than SDLs limit
|
|
||||||
* to ensure we can fit additional information such as the timestamp.
|
|
||||||
*/
|
|
||||||
#define SDLTEST_MAX_LOGMESSAGE_LENGTH 3584
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
109
external/SDL2/SDL_test_assert.h
vendored
109
external/SDL2/SDL_test_assert.h
vendored
@ -1,109 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_assert.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Assert API for test code and test cases
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_assert_h
|
|
||||||
#define _SDL_test_assert_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Fails the assert.
|
|
||||||
*/
|
|
||||||
#define ASSERT_FAIL 0
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Passes the assert.
|
|
||||||
*/
|
|
||||||
#define ASSERT_PASS 1
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Assert that logs and break execution flow on failures.
|
|
||||||
*
|
|
||||||
* \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0).
|
|
||||||
* \param assertDescription Message to log with the assert describing it.
|
|
||||||
*/
|
|
||||||
void SDLTest_Assert(int assertCondition, const char *assertDescription, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Assert for test cases that logs but does not break execution flow on failures. Updates assertion counters.
|
|
||||||
*
|
|
||||||
* \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0).
|
|
||||||
* \param assertDescription Message to log with the assert describing it.
|
|
||||||
*
|
|
||||||
* \returns Returns the assertCondition so it can be used to externally to break execution flow if desired.
|
|
||||||
*/
|
|
||||||
int SDLTest_AssertCheck(int assertCondition, const char *assertDescription, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Explicitely pass without checking an assertion condition. Updates assertion counter.
|
|
||||||
*
|
|
||||||
* \param assertDescription Message to log with the assert describing it.
|
|
||||||
*/
|
|
||||||
void SDLTest_AssertPass(const char *assertDescription, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Resets the assert summary counters to zero.
|
|
||||||
*/
|
|
||||||
void SDLTest_ResetAssertSummary();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Logs summary of all assertions (total, pass, fail) since last reset as INFO or ERROR.
|
|
||||||
*/
|
|
||||||
void SDLTest_LogAssertSummary();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Converts the current assert summary state to a test result.
|
|
||||||
*
|
|
||||||
* \returns TEST_RESULT_PASSED, TEST_RESULT_FAILED, or TEST_RESULT_NO_ASSERT
|
|
||||||
*/
|
|
||||||
int SDLTest_AssertSummaryToTestResult();
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_assert_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
186
external/SDL2/SDL_test_common.h
vendored
186
external/SDL2/SDL_test_common.h
vendored
@ -1,186 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_common.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Ported from original test\common.h file. */
|
|
||||||
|
|
||||||
#ifndef _SDL_test_common_h
|
|
||||||
#define _SDL_test_common_h
|
|
||||||
|
|
||||||
#include "SDL.h"
|
|
||||||
|
|
||||||
#if defined(__PSP__)
|
|
||||||
#define DEFAULT_WINDOW_WIDTH 480
|
|
||||||
#define DEFAULT_WINDOW_HEIGHT 272
|
|
||||||
#else
|
|
||||||
#define DEFAULT_WINDOW_WIDTH 640
|
|
||||||
#define DEFAULT_WINDOW_HEIGHT 480
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define VERBOSE_VIDEO 0x00000001
|
|
||||||
#define VERBOSE_MODES 0x00000002
|
|
||||||
#define VERBOSE_RENDER 0x00000004
|
|
||||||
#define VERBOSE_EVENT 0x00000008
|
|
||||||
#define VERBOSE_AUDIO 0x00000010
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
/* SDL init flags */
|
|
||||||
char **argv;
|
|
||||||
Uint32 flags;
|
|
||||||
Uint32 verbose;
|
|
||||||
|
|
||||||
/* Video info */
|
|
||||||
const char *videodriver;
|
|
||||||
int display;
|
|
||||||
const char *window_title;
|
|
||||||
const char *window_icon;
|
|
||||||
Uint32 window_flags;
|
|
||||||
int window_x;
|
|
||||||
int window_y;
|
|
||||||
int window_w;
|
|
||||||
int window_h;
|
|
||||||
int window_minW;
|
|
||||||
int window_minH;
|
|
||||||
int window_maxW;
|
|
||||||
int window_maxH;
|
|
||||||
int depth;
|
|
||||||
int refresh_rate;
|
|
||||||
int num_windows;
|
|
||||||
SDL_Window **windows;
|
|
||||||
|
|
||||||
/* Renderer info */
|
|
||||||
const char *renderdriver;
|
|
||||||
Uint32 render_flags;
|
|
||||||
SDL_bool skip_renderer;
|
|
||||||
SDL_Renderer **renderers;
|
|
||||||
|
|
||||||
/* Audio info */
|
|
||||||
const char *audiodriver;
|
|
||||||
SDL_AudioSpec audiospec;
|
|
||||||
|
|
||||||
/* GL settings */
|
|
||||||
int gl_red_size;
|
|
||||||
int gl_green_size;
|
|
||||||
int gl_blue_size;
|
|
||||||
int gl_alpha_size;
|
|
||||||
int gl_buffer_size;
|
|
||||||
int gl_depth_size;
|
|
||||||
int gl_stencil_size;
|
|
||||||
int gl_double_buffer;
|
|
||||||
int gl_accum_red_size;
|
|
||||||
int gl_accum_green_size;
|
|
||||||
int gl_accum_blue_size;
|
|
||||||
int gl_accum_alpha_size;
|
|
||||||
int gl_stereo;
|
|
||||||
int gl_multisamplebuffers;
|
|
||||||
int gl_multisamplesamples;
|
|
||||||
int gl_retained_backing;
|
|
||||||
int gl_accelerated;
|
|
||||||
int gl_major_version;
|
|
||||||
int gl_minor_version;
|
|
||||||
} SDLTest_CommonState;
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Parse command line parameters and create common state.
|
|
||||||
*
|
|
||||||
* \param argv Array of command line parameters
|
|
||||||
* \param flags Flags indicating which subsystem to initialize (i.e. SDL_INIT_VIDEO | SDL_INIT_AUDIO)
|
|
||||||
*
|
|
||||||
* \returns Returns a newly allocated common state object.
|
|
||||||
*/
|
|
||||||
SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Process one common argument.
|
|
||||||
*
|
|
||||||
* \param state The common state describing the test window to create.
|
|
||||||
* \param index The index of the argument to process in argv[].
|
|
||||||
*
|
|
||||||
* \returns The number of arguments processed (i.e. 1 for --fullscreen, 2 for --video [videodriver], or -1 on error.
|
|
||||||
*/
|
|
||||||
int SDLTest_CommonArg(SDLTest_CommonState * state, int index);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Returns common usage information
|
|
||||||
*
|
|
||||||
* \param state The common state describing the test window to create.
|
|
||||||
*
|
|
||||||
* \returns String with usage information
|
|
||||||
*/
|
|
||||||
const char *SDLTest_CommonUsage(SDLTest_CommonState * state);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Open test window.
|
|
||||||
*
|
|
||||||
* \param state The common state describing the test window to create.
|
|
||||||
*
|
|
||||||
* \returns True if initialization succeeded, false otherwise
|
|
||||||
*/
|
|
||||||
SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Common event handler for test windows.
|
|
||||||
*
|
|
||||||
* \param state The common state used to create test window.
|
|
||||||
* \param event The event to handle.
|
|
||||||
* \param done Flag indicating we are done.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Close test window.
|
|
||||||
*
|
|
||||||
* \param state The common state used to create test window.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void SDLTest_CommonQuit(SDLTest_CommonState * state);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_common_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
73
external/SDL2/SDL_test_compare.h
vendored
73
external/SDL2/SDL_test_compare.h
vendored
@ -1,73 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_compare.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Defines comparison functions (i.e. for surfaces).
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_compare_h
|
|
||||||
#define _SDL_test_compare_h
|
|
||||||
|
|
||||||
#include "SDL.h"
|
|
||||||
|
|
||||||
#include "SDL_test_images.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Compares a surface and with reference image data for equality
|
|
||||||
*
|
|
||||||
* \param surface Surface used in comparison
|
|
||||||
* \param referenceSurface Test Surface used in comparison
|
|
||||||
* \param allowable_error Allowable difference (squared) in blending accuracy.
|
|
||||||
*
|
|
||||||
* \returns 0 if comparison succeeded, >0 (=number of pixels where comparison failed) if comparison failed, -1 if any of the surfaces were NULL, -2 if the surface sizes differ.
|
|
||||||
*/
|
|
||||||
int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, int allowable_error);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_compare_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
128
external/SDL2/SDL_test_crc32.h
vendored
128
external/SDL2/SDL_test_crc32.h
vendored
@ -1,128 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_crc32.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Implements CRC32 calculations (default output is Perl String::CRC32 compatible).
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_crc32_h
|
|
||||||
#define _SDL_test_crc32_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------ Definitions --------- */
|
|
||||||
|
|
||||||
/* Definition shared by all CRC routines */
|
|
||||||
|
|
||||||
#ifndef CrcUint32
|
|
||||||
#define CrcUint32 unsigned int
|
|
||||||
#endif
|
|
||||||
#ifndef CrcUint8
|
|
||||||
#define CrcUint8 unsigned char
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ORIGINAL_METHOD
|
|
||||||
#define CRC32_POLY 0x04c11db7 /* AUTODIN II, Ethernet, & FDDI */
|
|
||||||
#else
|
|
||||||
#define CRC32_POLY 0xEDB88320 /* Perl String::CRC32 compatible */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Data structure for CRC32 (checksum) computation
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
CrcUint32 crc32_table[256]; /* CRC table */
|
|
||||||
} SDLTest_Crc32Context;
|
|
||||||
|
|
||||||
/* ---------- Function Prototypes ------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* /brief Initialize the CRC context
|
|
||||||
*
|
|
||||||
* Note: The function initializes the crc table required for all crc calculations.
|
|
||||||
*
|
|
||||||
* /param crcContext pointer to context variable
|
|
||||||
*
|
|
||||||
* /returns 0 for OK, -1 on error
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
int SDLTest_Crc32Init(SDLTest_Crc32Context * crcContext);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* /brief calculate a crc32 from a data block
|
|
||||||
*
|
|
||||||
* /param crcContext pointer to context variable
|
|
||||||
* /param inBuf input buffer to checksum
|
|
||||||
* /param inLen length of input buffer
|
|
||||||
* /param crc32 pointer to Uint32 to store the final CRC into
|
|
||||||
*
|
|
||||||
* /returns 0 for OK, -1 on error
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
int SDLTest_crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32);
|
|
||||||
|
|
||||||
/* Same routine broken down into three steps */
|
|
||||||
int SDLTest_Crc32CalcStart(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32);
|
|
||||||
int SDLTest_Crc32CalcEnd(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32);
|
|
||||||
int SDLTest_Crc32CalcBuffer(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* /brief clean up CRC context
|
|
||||||
*
|
|
||||||
* /param crcContext pointer to context variable
|
|
||||||
*
|
|
||||||
* /returns 0 for OK, -1 on error
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_crc32_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
66
external/SDL2/SDL_test_font.h
vendored
66
external/SDL2/SDL_test_font.h
vendored
@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_font.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_font_h
|
|
||||||
#define _SDL_test_font_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Draw a string in the currently set font.
|
|
||||||
*
|
|
||||||
* \param renderer The renderer to draw on.
|
|
||||||
* \param x The X coordinate of the upper left corner of the string.
|
|
||||||
* \param y The Y coordinate of the upper left corner of the string.
|
|
||||||
* \param s The string to draw.
|
|
||||||
*
|
|
||||||
* \returns Returns 0 on success, -1 on failure.
|
|
||||||
*/
|
|
||||||
int SDLTest_DrawString(SDL_Renderer * renderer, int x, int y, const char *s);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_font_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
388
external/SDL2/SDL_test_fuzzer.h
vendored
388
external/SDL2/SDL_test_fuzzer.h
vendored
@ -1,388 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_fuzzer.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Data generators for fuzzing test data in a reproducible way.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_fuzzer_h
|
|
||||||
#define _SDL_test_fuzzer_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Based on GSOC code by Markus Kauppila <markus.kauppila@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file
|
|
||||||
* Note: The fuzzer implementation uses a static instance of random context
|
|
||||||
* internally which makes it thread-UNsafe.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes the fuzzer for a test
|
|
||||||
*
|
|
||||||
* /param execKey Execution "Key" that initializes the random number generator uniquely for the test.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void SDLTest_FuzzerInit(Uint64 execKey);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random Uint8
|
|
||||||
*
|
|
||||||
* \returns Generated integer
|
|
||||||
*/
|
|
||||||
Uint8 SDLTest_RandomUint8();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random Sint8
|
|
||||||
*
|
|
||||||
* \returns Generated signed integer
|
|
||||||
*/
|
|
||||||
Sint8 SDLTest_RandomSint8();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random Uint16
|
|
||||||
*
|
|
||||||
* \returns Generated integer
|
|
||||||
*/
|
|
||||||
Uint16 SDLTest_RandomUint16();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random Sint16
|
|
||||||
*
|
|
||||||
* \returns Generated signed integer
|
|
||||||
*/
|
|
||||||
Sint16 SDLTest_RandomSint16();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random integer
|
|
||||||
*
|
|
||||||
* \returns Generated integer
|
|
||||||
*/
|
|
||||||
Sint32 SDLTest_RandomSint32();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random positive integer
|
|
||||||
*
|
|
||||||
* \returns Generated integer
|
|
||||||
*/
|
|
||||||
Uint32 SDLTest_RandomUint32();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns random Uint64.
|
|
||||||
*
|
|
||||||
* \returns Generated integer
|
|
||||||
*/
|
|
||||||
Uint64 SDLTest_RandomUint64();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns random Sint64.
|
|
||||||
*
|
|
||||||
* \returns Generated signed integer
|
|
||||||
*/
|
|
||||||
Sint64 SDLTest_RandomSint64();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \returns random float in range [0.0 - 1.0[
|
|
||||||
*/
|
|
||||||
float SDLTest_RandomUnitFloat();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \returns random double in range [0.0 - 1.0[
|
|
||||||
*/
|
|
||||||
double SDLTest_RandomUnitDouble();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \returns random float.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
float SDLTest_RandomFloat();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \returns random double.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
double SDLTest_RandomDouble();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Uint8 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
|
||||||
* RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
|
||||||
* RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns 0 (error set)
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or 0 with error set
|
|
||||||
*/
|
|
||||||
Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Uint16 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
|
||||||
* RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
|
||||||
* RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns 0 (error set)
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or 0 with error set
|
|
||||||
*/
|
|
||||||
Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Uint32 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
|
||||||
* RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
|
||||||
* RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns 0 (with error set)
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or 0 with error set
|
|
||||||
*/
|
|
||||||
Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Uint64 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20
|
|
||||||
* RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21
|
|
||||||
* RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns 0 (with error set)
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or 0 with error set
|
|
||||||
*/
|
|
||||||
Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Sint8 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
|
||||||
* RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
|
||||||
* RandomSint8BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomSint8BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT8_MIN (== error value) with error set
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or SINT8_MIN with error set
|
|
||||||
*/
|
|
||||||
Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Sint16 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
|
||||||
* RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
|
||||||
* RandomSint16BoundaryValue(SINT16_MIN, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomSint16BoundaryValue(SINT16_MIN, SINT16_MAX, SDL_FALSE) returns SINT16_MIN (== error value) with error set
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or SINT16_MIN with error set
|
|
||||||
*/
|
|
||||||
Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Sint32 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
|
||||||
* RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
|
||||||
* RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value)
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or SINT32_MIN with error set
|
|
||||||
*/
|
|
||||||
Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a random boundary value for Sint64 within the given boundaries.
|
|
||||||
* Boundaries are inclusive, see the usage examples below. If validDomain
|
|
||||||
* is true, the function will only return valid boundaries, otherwise non-valid
|
|
||||||
* boundaries are also possible.
|
|
||||||
* If boundary1 > boundary2, the values are swapped
|
|
||||||
*
|
|
||||||
* Usage examples:
|
|
||||||
* RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20
|
|
||||||
* RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9
|
|
||||||
* RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100
|
|
||||||
* RandomSint64BoundaryValue(SINT64_MIN, SINT64_MAX, SDL_FALSE) returns SINT64_MIN (== error value) and error set
|
|
||||||
*
|
|
||||||
* \param boundary1 Lower boundary limit
|
|
||||||
* \param boundary2 Upper boundary limit
|
|
||||||
* \param validDomain Should the generated boundary be valid (=within the bounds) or not?
|
|
||||||
*
|
|
||||||
* \returns Random boundary value for the given range and domain or SINT64_MIN with error set
|
|
||||||
*/
|
|
||||||
Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns integer in range [min, max] (inclusive).
|
|
||||||
* Min and max values can be negative values.
|
|
||||||
* If Max in smaller tham min, then the values are swapped.
|
|
||||||
* Min and max are the same value, that value will be returned.
|
|
||||||
*
|
|
||||||
* \param min Minimum inclusive value of returned random number
|
|
||||||
* \param max Maximum inclusive value of returned random number
|
|
||||||
*
|
|
||||||
* \returns Generated random integer in range
|
|
||||||
*/
|
|
||||||
Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates random null-terminated string. The minimum length for
|
|
||||||
* the string is 1 character, maximum length for the string is 255
|
|
||||||
* characters and it can contain ASCII characters from 32 to 126.
|
|
||||||
*
|
|
||||||
* Note: Returned string needs to be deallocated.
|
|
||||||
*
|
|
||||||
* \returns Newly allocated random string; or NULL if length was invalid or string could not be allocated.
|
|
||||||
*/
|
|
||||||
char * SDLTest_RandomAsciiString();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates random null-terminated string. The maximum length for
|
|
||||||
* the string is defined by the maxLength parameter.
|
|
||||||
* String can contain ASCII characters from 32 to 126.
|
|
||||||
*
|
|
||||||
* Note: Returned string needs to be deallocated.
|
|
||||||
*
|
|
||||||
* \param maxLength The maximum length of the generated string.
|
|
||||||
*
|
|
||||||
* \returns Newly allocated random string; or NULL if maxLength was invalid or string could not be allocated.
|
|
||||||
*/
|
|
||||||
char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generates random null-terminated string. The length for
|
|
||||||
* the string is defined by the size parameter.
|
|
||||||
* String can contain ASCII characters from 32 to 126.
|
|
||||||
*
|
|
||||||
* Note: Returned string needs to be deallocated.
|
|
||||||
*
|
|
||||||
* \param size The length of the generated string
|
|
||||||
*
|
|
||||||
* \returns Newly allocated random string; or NULL if size was invalid or string could not be allocated.
|
|
||||||
*/
|
|
||||||
char * SDLTest_RandomAsciiStringOfSize(int size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the invocation count for the fuzzer since last ...FuzzerInit.
|
|
||||||
*/
|
|
||||||
int SDLTest_GetFuzzerInvocationCount();
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_fuzzer_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
126
external/SDL2/SDL_test_harness.h
vendored
126
external/SDL2/SDL_test_harness.h
vendored
@ -1,126 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_harness.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
Defines types for test case definitions and the test execution harness API.
|
|
||||||
|
|
||||||
Based on original GSOC code by Markus Kauppila <markus.kauppila@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_harness_h
|
|
||||||
#define _SDL_test_harness_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//! Definitions for test case structures
|
|
||||||
#define TEST_ENABLED 1
|
|
||||||
#define TEST_DISABLED 0
|
|
||||||
|
|
||||||
//! Definition of all the possible test return values of the test case method
|
|
||||||
#define TEST_ABORTED -1
|
|
||||||
#define TEST_COMPLETED 0
|
|
||||||
#define TEST_SKIPPED 1
|
|
||||||
|
|
||||||
//! Definition of all the possible test results for the harness
|
|
||||||
#define TEST_RESULT_PASSED 0
|
|
||||||
#define TEST_RESULT_FAILED 1
|
|
||||||
#define TEST_RESULT_NO_ASSERT 2
|
|
||||||
#define TEST_RESULT_SKIPPED 3
|
|
||||||
#define TEST_RESULT_SETUP_FAILURE 4
|
|
||||||
|
|
||||||
//!< Function pointer to a test case setup function (run before every test)
|
|
||||||
typedef void (*SDLTest_TestCaseSetUpFp)(void *arg);
|
|
||||||
|
|
||||||
//!< Function pointer to a test case function
|
|
||||||
typedef void (*SDLTest_TestCaseFp)(void *arg);
|
|
||||||
|
|
||||||
//!< Function pointer to a test case teardown function (run after every test)
|
|
||||||
typedef void (*SDLTest_TestCaseTearDownFp)(void *arg);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds information about a single test case.
|
|
||||||
*/
|
|
||||||
typedef struct SDLTest_TestCaseReference {
|
|
||||||
/*!< Func2Stress */
|
|
||||||
SDLTest_TestCaseFp testCase;
|
|
||||||
/*!< Short name (or function name) "Func2Stress" */
|
|
||||||
char *name;
|
|
||||||
/*!< Long name or full description "This test pushes func2() to the limit." */
|
|
||||||
char *description;
|
|
||||||
/*!< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */
|
|
||||||
int enabled;
|
|
||||||
} SDLTest_TestCaseReference;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds information about a test suite (multiple test cases).
|
|
||||||
*/
|
|
||||||
typedef struct SDLTest_TestSuiteReference {
|
|
||||||
/*!< "PlatformSuite" */
|
|
||||||
char *name;
|
|
||||||
/*!< The function that is run before each test. NULL skips. */
|
|
||||||
SDLTest_TestCaseSetUpFp testSetUp;
|
|
||||||
/*!< The test cases that are run as part of the suite. Last item should be NULL. */
|
|
||||||
const SDLTest_TestCaseReference **testCases;
|
|
||||||
/*!< The function that is run after each test. NULL skips. */
|
|
||||||
SDLTest_TestCaseTearDownFp testTearDown;
|
|
||||||
} SDLTest_TestSuiteReference;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Execute a test suite using the given run seed and execution key.
|
|
||||||
*
|
|
||||||
* \param testSuites Suites containing the test case.
|
|
||||||
* \param userRunSeed Custom run seed provided by user, or NULL to autogenerate one.
|
|
||||||
* \param userExecKey Custom execution key provided by user, or 0 to autogenerate one.
|
|
||||||
* \param filter Filter specification. NULL disables. Case sensitive.
|
|
||||||
* \param testIterations Number of iterations to run each test case.
|
|
||||||
*
|
|
||||||
* \returns Test run result; 0 when all tests passed, 1 if any tests failed.
|
|
||||||
*/
|
|
||||||
int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_harness_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
82
external/SDL2/SDL_test_images.h
vendored
82
external/SDL2/SDL_test_images.h
vendored
@ -1,82 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_images.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Defines some images for tests.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_images_h
|
|
||||||
#define _SDL_test_images_h
|
|
||||||
|
|
||||||
#include "SDL.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
*Type for test images.
|
|
||||||
*/
|
|
||||||
typedef struct SDLTest_SurfaceImage_s {
|
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */
|
|
||||||
const char *pixel_data;
|
|
||||||
} SDLTest_SurfaceImage_t;
|
|
||||||
|
|
||||||
/* Test images */
|
|
||||||
SDL_Surface *SDLTest_ImageBlit();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitColor();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitAlpha();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitBlendAdd();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitBlend();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitBlendMod();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitBlendNone();
|
|
||||||
SDL_Surface *SDLTest_ImageBlitBlendAll();
|
|
||||||
SDL_Surface *SDLTest_ImageFace();
|
|
||||||
SDL_Surface *SDLTest_ImagePrimitives();
|
|
||||||
SDL_Surface *SDLTest_ImagePrimitivesBlend();
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_images_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
71
external/SDL2/SDL_test_log.h
vendored
71
external/SDL2/SDL_test_log.h
vendored
@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_log.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Wrapper to log in the TEST category
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_log_h
|
|
||||||
#define _SDL_test_log_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Prints given message with a timestamp in the TEST category and INFO priority.
|
|
||||||
*
|
|
||||||
* \param fmt Message to be logged
|
|
||||||
*/
|
|
||||||
void SDLTest_Log(const char *fmt, ...);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Prints given message with a timestamp in the TEST category and the ERROR priority.
|
|
||||||
*
|
|
||||||
* \param fmt Message to be logged
|
|
||||||
*/
|
|
||||||
void SDLTest_LogError(const char *fmt, ...);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_log_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
133
external/SDL2/SDL_test_md5.h
vendored
133
external/SDL2/SDL_test_md5.h
vendored
@ -1,133 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_md5.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
***********************************************************************
|
|
||||||
** Header file for implementation of MD5 **
|
|
||||||
** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
|
|
||||||
** Created: 2/17/90 RLR **
|
|
||||||
** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version **
|
|
||||||
** Revised (for MD5): RLR 4/27/91 **
|
|
||||||
** -- G modified to have y&~z instead of y&z **
|
|
||||||
** -- FF, GG, HH modified to add in last register done **
|
|
||||||
** -- Access pattern: round 2 works mod 5, round 3 works mod 3 **
|
|
||||||
** -- distinct additive constant for each step **
|
|
||||||
** -- round 4 added, working mod 7 **
|
|
||||||
***********************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
***********************************************************************
|
|
||||||
** Message-digest routines: **
|
|
||||||
** To form the message digest for a message M **
|
|
||||||
** (1) Initialize a context buffer mdContext using MD5Init **
|
|
||||||
** (2) Call MD5Update on mdContext and M **
|
|
||||||
** (3) Call MD5Final on mdContext **
|
|
||||||
** The message digest is now in mdContext->digest[0...15] **
|
|
||||||
***********************************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_md5_h
|
|
||||||
#define _SDL_test_md5_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ------------ Definitions --------- */
|
|
||||||
|
|
||||||
/* typedef a 32-bit type */
|
|
||||||
typedef unsigned long int MD5UINT4;
|
|
||||||
|
|
||||||
/* Data structure for MD5 (Message-Digest) computation */
|
|
||||||
typedef struct {
|
|
||||||
MD5UINT4 i[2]; /* number of _bits_ handled mod 2^64 */
|
|
||||||
MD5UINT4 buf[4]; /* scratch buffer */
|
|
||||||
unsigned char in[64]; /* input buffer */
|
|
||||||
unsigned char digest[16]; /* actual digest after Md5Final call */
|
|
||||||
} SDLTest_Md5Context;
|
|
||||||
|
|
||||||
/* ---------- Function Prototypes ------------- */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* /brief initialize the context
|
|
||||||
*
|
|
||||||
* /param mdContext pointer to context variable
|
|
||||||
*
|
|
||||||
* Note: The function initializes the message-digest context
|
|
||||||
* mdContext. Call before each new use of the context -
|
|
||||||
* all fields are set to zero.
|
|
||||||
*/
|
|
||||||
void SDLTest_Md5Init(SDLTest_Md5Context * mdContext);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* /brief update digest from variable length data
|
|
||||||
*
|
|
||||||
* /param mdContext pointer to context variable
|
|
||||||
* /param inBuf pointer to data array/string
|
|
||||||
* /param inLen length of data array/string
|
|
||||||
*
|
|
||||||
* Note: The function updates the message-digest context to account
|
|
||||||
* for the presence of each of the characters inBuf[0..inLen-1]
|
|
||||||
* in the message whose digest is being computed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void SDLTest_Md5Update(SDLTest_Md5Context * mdContext, unsigned char *inBuf,
|
|
||||||
unsigned int inLen);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* /brief complete digest computation
|
|
||||||
*
|
|
||||||
* /param mdContext pointer to context variable
|
|
||||||
*
|
|
||||||
* Note: The function terminates the message-digest computation and
|
|
||||||
* ends with the desired message digest in mdContext.digest[0..15].
|
|
||||||
* Always call before using the digest[] variable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void SDLTest_Md5Final(SDLTest_Md5Context * mdContext);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_md5_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
119
external/SDL2/SDL_test_random.h
vendored
119
external/SDL2/SDL_test_random.h
vendored
@ -1,119 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_test_random.h
|
|
||||||
*
|
|
||||||
* Include file for SDL test framework.
|
|
||||||
*
|
|
||||||
* This code is a part of the SDL2_test library, not the main SDL library.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
A "32-bit Multiply with carry random number generator. Very fast.
|
|
||||||
Includes a list of recommended multipliers.
|
|
||||||
|
|
||||||
multiply-with-carry generator: x(n) = a*x(n-1) + carry mod 2^32.
|
|
||||||
period: (a*2^31)-1
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_test_random_h
|
|
||||||
#define _SDL_test_random_h
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* --- Definitions */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Macros that return a random number in a specific format.
|
|
||||||
*/
|
|
||||||
#define SDLTest_RandomInt(c) ((int)SDLTest_Random(c))
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Context structure for the random number generator state.
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
unsigned int a;
|
|
||||||
unsigned int x;
|
|
||||||
unsigned int c;
|
|
||||||
unsigned int ah;
|
|
||||||
unsigned int al;
|
|
||||||
} SDLTest_RandomContext;
|
|
||||||
|
|
||||||
|
|
||||||
/* --- Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Initialize random number generator with two integers.
|
|
||||||
*
|
|
||||||
* Note: The random sequence of numbers returned by ...Random() is the
|
|
||||||
* same for the same two integers and has a period of 2^31.
|
|
||||||
*
|
|
||||||
* \param rndContext pointer to context structure
|
|
||||||
* \param xi integer that defines the random sequence
|
|
||||||
* \param ci integer that defines the random sequence
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void SDLTest_RandomInit(SDLTest_RandomContext * rndContext, unsigned int xi,
|
|
||||||
unsigned int ci);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Initialize random number generator based on current system time.
|
|
||||||
*
|
|
||||||
* \param rndContext pointer to context structure
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Initialize random number generator based on current system time.
|
|
||||||
*
|
|
||||||
* Note: ...RandomInit() or ...RandomInitTime() must have been called
|
|
||||||
* before using this function.
|
|
||||||
*
|
|
||||||
* \param rndContext pointer to context structure
|
|
||||||
*
|
|
||||||
* \returns A random number (32bit unsigned integer)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_test_random_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
182
external/SDL2/SDL_thread.h
vendored
182
external/SDL2/SDL_thread.h
vendored
@ -1,182 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_thread_h
|
|
||||||
#define _SDL_thread_h
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_thread.h
|
|
||||||
*
|
|
||||||
* Header for the SDL thread management routines.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
|
|
||||||
/* Thread synchronization primitives */
|
|
||||||
#include "SDL_mutex.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The SDL thread structure, defined in SDL_thread.c */
|
|
||||||
struct SDL_Thread;
|
|
||||||
typedef struct SDL_Thread SDL_Thread;
|
|
||||||
|
|
||||||
/* The SDL thread ID */
|
|
||||||
typedef unsigned long SDL_threadID;
|
|
||||||
|
|
||||||
/* The SDL thread priority
|
|
||||||
*
|
|
||||||
* Note: On many systems you require special privileges to set high priority.
|
|
||||||
*/
|
|
||||||
typedef enum {
|
|
||||||
SDL_THREAD_PRIORITY_LOW,
|
|
||||||
SDL_THREAD_PRIORITY_NORMAL,
|
|
||||||
SDL_THREAD_PRIORITY_HIGH
|
|
||||||
} SDL_ThreadPriority;
|
|
||||||
|
|
||||||
/* The function passed to SDL_CreateThread()
|
|
||||||
It is passed a void* user context parameter and returns an int.
|
|
||||||
*/
|
|
||||||
typedef int (SDLCALL * SDL_ThreadFunction) (void *data);
|
|
||||||
|
|
||||||
#if defined(__WIN32__) && !defined(HAVE_LIBC)
|
|
||||||
/**
|
|
||||||
* \file SDL_thread.h
|
|
||||||
*
|
|
||||||
* We compile SDL into a DLL. This means, that it's the DLL which
|
|
||||||
* creates a new thread for the calling process with the SDL_CreateThread()
|
|
||||||
* API. There is a problem with this, that only the RTL of the SDL.DLL will
|
|
||||||
* be initialized for those threads, and not the RTL of the calling
|
|
||||||
* application!
|
|
||||||
*
|
|
||||||
* To solve this, we make a little hack here.
|
|
||||||
*
|
|
||||||
* We'll always use the caller's _beginthread() and _endthread() APIs to
|
|
||||||
* start a new thread. This way, if it's the SDL.DLL which uses this API,
|
|
||||||
* then the RTL of SDL.DLL will be used to create the new thread, and if it's
|
|
||||||
* the application, then the RTL of the application will be used.
|
|
||||||
*
|
|
||||||
* So, in short:
|
|
||||||
* Always use the _beginthread() and _endthread() of the calling runtime
|
|
||||||
* library!
|
|
||||||
*/
|
|
||||||
#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
|
|
||||||
#include <process.h> /* This has _beginthread() and _endthread() defined! */
|
|
||||||
|
|
||||||
typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned,
|
|
||||||
unsigned (__stdcall *
|
|
||||||
func) (void
|
|
||||||
*),
|
|
||||||
void *arg, unsigned,
|
|
||||||
unsigned *threadID);
|
|
||||||
typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a thread.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Thread *SDLCALL
|
|
||||||
SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
|
|
||||||
pfnSDL_CurrentBeginThread pfnBeginThread,
|
|
||||||
pfnSDL_CurrentEndThread pfnEndThread);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a thread.
|
|
||||||
*/
|
|
||||||
#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, _beginthreadex, _endthreadex)
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a thread.
|
|
||||||
*
|
|
||||||
* Thread naming is a little complicated: Most systems have very small
|
|
||||||
* limits for the string length (BeOS has 32 bytes, Linux currently has 16,
|
|
||||||
* Visual C++ 6.0 has nine!), and possibly other arbitrary rules. You'll
|
|
||||||
* have to see what happens with your system's debugger. The name should be
|
|
||||||
* UTF-8 (but using the naming limits of C identifiers is a better bet).
|
|
||||||
* There are no requirements for thread naming conventions, so long as the
|
|
||||||
* string is null-terminated UTF-8, but these guidelines are helpful in
|
|
||||||
* choosing a name:
|
|
||||||
*
|
|
||||||
* http://stackoverflow.com/questions/149932/naming-conventions-for-threads
|
|
||||||
*
|
|
||||||
* If a system imposes requirements, SDL will try to munge the string for
|
|
||||||
* it (truncate, etc), but the original string contents will be available
|
|
||||||
* from SDL_GetThreadName().
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Thread *SDLCALL
|
|
||||||
SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the thread name, as it was specified in SDL_CreateThread().
|
|
||||||
* This function returns a pointer to a UTF-8 string that names the
|
|
||||||
* specified thread, or NULL if it doesn't have a name. This is internal
|
|
||||||
* memory, not to be free()'d by the caller, and remains valid until the
|
|
||||||
* specified thread is cleaned up by SDL_WaitThread().
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetThreadName(SDL_Thread *thread);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the thread identifier for the current thread.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the thread identifier for the specified thread.
|
|
||||||
*
|
|
||||||
* Equivalent to SDL_ThreadID() if the specified thread is NULL.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the priority for the current thread
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wait for a thread to finish.
|
|
||||||
*
|
|
||||||
* The return code for the thread function is placed in the area
|
|
||||||
* pointed to by \c status, if \c status is not NULL.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_thread_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
108
external/SDL2/SDL_timer.h
vendored
108
external/SDL2/SDL_timer.h
vendored
@ -1,108 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_timer_h
|
|
||||||
#define _SDL_timer_h
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_timer.h
|
|
||||||
*
|
|
||||||
* Header for the SDL time management routines.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the number of milliseconds since the SDL library initialization.
|
|
||||||
*
|
|
||||||
* \note This value wraps if the program runs for more than ~49 days.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the current value of the high resolution counter
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the count per second of the high resolution counter
|
|
||||||
*/
|
|
||||||
extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Wait a specified number of milliseconds before returning.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function prototype for the timer callback function.
|
|
||||||
*
|
|
||||||
* The callback function is passed the current timer interval and returns
|
|
||||||
* the next timer interval. If the returned value is the same as the one
|
|
||||||
* passed in, the periodic alarm continues, otherwise a new alarm is
|
|
||||||
* scheduled. If the callback returns 0, the periodic alarm is cancelled.
|
|
||||||
*/
|
|
||||||
typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Definition of the timer ID type.
|
|
||||||
*/
|
|
||||||
typedef int SDL_TimerID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Add a new timer to the pool of timers already running.
|
|
||||||
*
|
|
||||||
* \return A timer ID, or NULL when an error occurs.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
|
|
||||||
SDL_TimerCallback callback,
|
|
||||||
void *param);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Remove a timer knowing its ID.
|
|
||||||
*
|
|
||||||
* \return A boolean value indicating success or failure.
|
|
||||||
*
|
|
||||||
* \warning It is not safe to remove a timer multiple times.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_timer_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
90
external/SDL2/SDL_touch.h
vendored
90
external/SDL2/SDL_touch.h
vendored
@ -1,90 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_touch.h
|
|
||||||
*
|
|
||||||
* Include file for SDL touch event handling.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_touch_h
|
|
||||||
#define _SDL_touch_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
#include "SDL_error.h"
|
|
||||||
#include "SDL_video.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef Sint64 SDL_TouchID;
|
|
||||||
typedef Sint64 SDL_FingerID;
|
|
||||||
|
|
||||||
typedef struct SDL_Finger
|
|
||||||
{
|
|
||||||
SDL_FingerID id;
|
|
||||||
float x;
|
|
||||||
float y;
|
|
||||||
float pressure;
|
|
||||||
} SDL_Finger;
|
|
||||||
|
|
||||||
/* Used as the device ID for mouse events simulated with touch input */
|
|
||||||
#define SDL_TOUCH_MOUSEID ((Uint32)-1)
|
|
||||||
|
|
||||||
|
|
||||||
/* Function prototypes */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the number of registered touch devices.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the touch ID with the given index, or 0 if the index is invalid.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the number of active fingers for a given touch device.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the finger object of the given touch, with the given index.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index);
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_touch_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
29
external/SDL2/SDL_types.h
vendored
29
external/SDL2/SDL_types.h
vendored
@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_types.h
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* DEPRECATED */
|
|
||||||
#include "SDL_stdinc.h"
|
|
166
external/SDL2/SDL_version.h
vendored
166
external/SDL2/SDL_version.h
vendored
@ -1,166 +0,0 @@
|
|||||||
/*
|
|
||||||
Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
|
||||||
warranty. In no event will the authors be held liable for any damages
|
|
||||||
arising from the use of this software.
|
|
||||||
|
|
||||||
Permission is granted to anyone to use this software for any purpose,
|
|
||||||
including commercial applications, and to alter it and redistribute it
|
|
||||||
freely, subject to the following restrictions:
|
|
||||||
|
|
||||||
1. The origin of this software must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original software. If you use this software
|
|
||||||
in a product, an acknowledgment in the product documentation would be
|
|
||||||
appreciated but is not required.
|
|
||||||
2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
misrepresented as being the original software.
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file SDL_version.h
|
|
||||||
*
|
|
||||||
* This header defines the current SDL version.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_version_h
|
|
||||||
#define _SDL_version_h
|
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
|
||||||
|
|
||||||
#include "begin_code.h"
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
extern "C" {
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Information the version of SDL in use.
|
|
||||||
*
|
|
||||||
* Represents the library's version as three levels: major revision
|
|
||||||
* (increments with massive changes, additions, and enhancements),
|
|
||||||
* minor revision (increments with backwards-compatible changes to the
|
|
||||||
* major revision), and patchlevel (increments with fixes to the minor
|
|
||||||
* revision).
|
|
||||||
*
|
|
||||||
* \sa SDL_VERSION
|
|
||||||
* \sa SDL_GetVersion
|
|
||||||
*/
|
|
||||||
typedef struct SDL_version
|
|
||||||
{
|
|
||||||
Uint8 major; /**< major version */
|
|
||||||
Uint8 minor; /**< minor version */
|
|
||||||
Uint8 patch; /**< update version */
|
|
||||||
} SDL_version;
|
|
||||||
|
|
||||||
/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
|
|
||||||
*/
|
|
||||||
#define SDL_MAJOR_VERSION 2
|
|
||||||
#define SDL_MINOR_VERSION 0
|
|
||||||
#define SDL_PATCHLEVEL 0
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Macro to determine SDL version program was compiled against.
|
|
||||||
*
|
|
||||||
* This macro fills in a SDL_version structure with the version of the
|
|
||||||
* library you compiled against. This is determined by what header the
|
|
||||||
* compiler uses. Note that if you dynamically linked the library, you might
|
|
||||||
* have a slightly newer or older version at runtime. That version can be
|
|
||||||
* determined with SDL_GetVersion(), which, unlike SDL_VERSION(),
|
|
||||||
* is not a macro.
|
|
||||||
*
|
|
||||||
* \param x A pointer to a SDL_version struct to initialize.
|
|
||||||
*
|
|
||||||
* \sa SDL_version
|
|
||||||
* \sa SDL_GetVersion
|
|
||||||
*/
|
|
||||||
#define SDL_VERSION(x) \
|
|
||||||
{ \
|
|
||||||
(x)->major = SDL_MAJOR_VERSION; \
|
|
||||||
(x)->minor = SDL_MINOR_VERSION; \
|
|
||||||
(x)->patch = SDL_PATCHLEVEL; \
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This macro turns the version numbers into a numeric value:
|
|
||||||
* \verbatim
|
|
||||||
(1,2,3) -> (1203)
|
|
||||||
\endverbatim
|
|
||||||
*
|
|
||||||
* This assumes that there will never be more than 100 patchlevels.
|
|
||||||
*/
|
|
||||||
#define SDL_VERSIONNUM(X, Y, Z) \
|
|
||||||
((X)*1000 + (Y)*100 + (Z))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the version number macro for the current SDL version.
|
|
||||||
*/
|
|
||||||
#define SDL_COMPILEDVERSION \
|
|
||||||
SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This macro will evaluate to true if compiled with SDL at least X.Y.Z.
|
|
||||||
*/
|
|
||||||
#define SDL_VERSION_ATLEAST(X, Y, Z) \
|
|
||||||
(SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the version of SDL that is linked against your program.
|
|
||||||
*
|
|
||||||
* If you are linking to SDL dynamically, then it is possible that the
|
|
||||||
* current version will be different than the version you compiled against.
|
|
||||||
* This function returns the current version, while SDL_VERSION() is a
|
|
||||||
* macro that tells you what version you compiled with.
|
|
||||||
*
|
|
||||||
* \code
|
|
||||||
* SDL_version compiled;
|
|
||||||
* SDL_version linked;
|
|
||||||
*
|
|
||||||
* SDL_VERSION(&compiled);
|
|
||||||
* SDL_GetVersion(&linked);
|
|
||||||
* printf("We compiled against SDL version %d.%d.%d ...\n",
|
|
||||||
* compiled.major, compiled.minor, compiled.patch);
|
|
||||||
* printf("But we linked against SDL version %d.%d.%d.\n",
|
|
||||||
* linked.major, linked.minor, linked.patch);
|
|
||||||
* \endcode
|
|
||||||
*
|
|
||||||
* This function may be called safely at any time, even before SDL_Init().
|
|
||||||
*
|
|
||||||
* \sa SDL_VERSION
|
|
||||||
*/
|
|
||||||
extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the code revision of SDL that is linked against your program.
|
|
||||||
*
|
|
||||||
* Returns an arbitrary string (a hash value) uniquely identifying the
|
|
||||||
* exact revision of the SDL library in use, and is only useful in comparing
|
|
||||||
* against other revisions. It is NOT an incrementing number.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetRevision(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get the revision number of SDL that is linked against your program.
|
|
||||||
*
|
|
||||||
* Returns a number uniquely identifying the exact revision of the SDL
|
|
||||||
* library in use. It is an incrementing number based on commits to
|
|
||||||
* hg.libsdl.org.
|
|
||||||
*/
|
|
||||||
extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void);
|
|
||||||
|
|
||||||
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
}
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
#endif
|
|
||||||
#include "close_code.h"
|
|
||||||
|
|
||||||
#endif /* _SDL_version_h */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
Loading…
Reference in New Issue
Block a user