include: Filled in some missing documentation.
This commit is contained in:
@@ -58,9 +58,18 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* \since This struct is available since SDL 3.0.0.
|
* \since This struct is available since SDL 3.0.0.
|
||||||
*/
|
*/
|
||||||
struct SDL_Gamepad;
|
|
||||||
typedef struct SDL_Gamepad SDL_Gamepad;
|
typedef struct SDL_Gamepad SDL_Gamepad;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Standard gamepad types.
|
||||||
|
*
|
||||||
|
* This type does not necessarily map to first-party controllers
|
||||||
|
* from Microsoft/Sony/Nintendo; in many cases, third-party controllers
|
||||||
|
* can report as these, either because they were designed for a
|
||||||
|
* specific console, or they simply most closely match that console's
|
||||||
|
* controllers (does it have A/B/X/Y buttons or X/O/Square/Triangle?
|
||||||
|
* Does it have a touchpad? etc).
|
||||||
|
*/
|
||||||
typedef enum SDL_GamepadType
|
typedef enum SDL_GamepadType
|
||||||
{
|
{
|
||||||
SDL_GAMEPAD_TYPE_UNKNOWN = 0,
|
SDL_GAMEPAD_TYPE_UNKNOWN = 0,
|
||||||
@@ -182,6 +191,16 @@ typedef enum SDL_GamepadAxis
|
|||||||
SDL_GAMEPAD_AXIS_MAX
|
SDL_GAMEPAD_AXIS_MAX
|
||||||
} SDL_GamepadAxis;
|
} SDL_GamepadAxis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types of gamepad control bindings.
|
||||||
|
*
|
||||||
|
* A gamepad is a collection of bindings that map arbitrary joystick
|
||||||
|
* buttons, axes and hat switches to specific positions on a generic
|
||||||
|
* console-style gamepad. This enum is used as part of SDL_GamepadBinding
|
||||||
|
* to specify those mappings.
|
||||||
|
*
|
||||||
|
* \since This enum is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef enum SDL_GamepadBindingType
|
typedef enum SDL_GamepadBindingType
|
||||||
{
|
{
|
||||||
SDL_GAMEPAD_BINDTYPE_NONE = 0,
|
SDL_GAMEPAD_BINDTYPE_NONE = 0,
|
||||||
@@ -190,6 +209,22 @@ typedef enum SDL_GamepadBindingType
|
|||||||
SDL_GAMEPAD_BINDTYPE_HAT
|
SDL_GAMEPAD_BINDTYPE_HAT
|
||||||
} SDL_GamepadBindingType;
|
} SDL_GamepadBindingType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A mapping between one joystick input to a gamepad control.
|
||||||
|
*
|
||||||
|
* A gamepad has a collection of several bindings, to say, for
|
||||||
|
* example, when joystick button number 5 is pressed, that should
|
||||||
|
* be treated like the gamepad's "start" button.
|
||||||
|
*
|
||||||
|
* SDL has these bindings built-in for many popular controllers,
|
||||||
|
* and can add more with a simple text string. Those strings are
|
||||||
|
* parsed into a collection of these structs to make it easier
|
||||||
|
* to operate on the data.
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*
|
||||||
|
* \sa SDL_GetGamepadBindings
|
||||||
|
*/
|
||||||
typedef struct SDL_GamepadBinding
|
typedef struct SDL_GamepadBinding
|
||||||
{
|
{
|
||||||
SDL_GamepadBindingType input_type;
|
SDL_GamepadBindingType input_type;
|
||||||
@@ -225,7 +260,6 @@ typedef struct SDL_GamepadBinding
|
|||||||
} axis;
|
} axis;
|
||||||
|
|
||||||
} output;
|
} output;
|
||||||
|
|
||||||
} SDL_GamepadBinding;
|
} SDL_GamepadBinding;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -63,16 +63,31 @@ extern "C" {
|
|||||||
* SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS
|
* SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* The joystick structure used to identify an SDL joystick
|
|
||||||
*/
|
|
||||||
#ifdef SDL_THREAD_SAFETY_ANALYSIS
|
#ifdef SDL_THREAD_SAFETY_ANALYSIS
|
||||||
|
/*
|
||||||
|
* This is not an exported symbol from SDL, this is only in the headers to
|
||||||
|
* help Clang's thread safety analysis tools to function. Do not attempt
|
||||||
|
* to access this symbol from your app, it will not work!
|
||||||
|
*/
|
||||||
extern SDL_Mutex *SDL_joystick_lock;
|
extern SDL_Mutex *SDL_joystick_lock;
|
||||||
#endif
|
#endif
|
||||||
struct SDL_Joystick;
|
|
||||||
|
/**
|
||||||
|
* The joystick structure used to identify an SDL joystick.
|
||||||
|
*
|
||||||
|
* This is opaque data.
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_Joystick SDL_Joystick;
|
typedef struct SDL_Joystick SDL_Joystick;
|
||||||
|
|
||||||
/* A structure that encodes the stable unique id for a joystick device */
|
/**
|
||||||
|
* A structure that encodes the stable unique id for a joystick device.
|
||||||
|
*
|
||||||
|
* This is just a standard SDL_GUID by a different name.
|
||||||
|
*
|
||||||
|
* \since This datatype is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef SDL_GUID SDL_JoystickGUID;
|
typedef SDL_GUID SDL_JoystickGUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,6 +103,18 @@ typedef SDL_GUID SDL_JoystickGUID;
|
|||||||
*/
|
*/
|
||||||
typedef Uint32 SDL_JoystickID;
|
typedef Uint32 SDL_JoystickID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An enum of some common joystick types.
|
||||||
|
*
|
||||||
|
* In some cases, SDL can identify a low-level joystick as being a certain
|
||||||
|
* type of device, and will report it through SDL_GetJoystickType (or
|
||||||
|
* SDL_GetJoystickInstanceType).
|
||||||
|
*
|
||||||
|
* This is by no means a complete list of everything that can be plugged
|
||||||
|
* into a computer.
|
||||||
|
*
|
||||||
|
* \since This enum is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef enum SDL_JoystickType
|
typedef enum SDL_JoystickType
|
||||||
{
|
{
|
||||||
SDL_JOYSTICK_TYPE_UNKNOWN,
|
SDL_JOYSTICK_TYPE_UNKNOWN,
|
||||||
@@ -102,6 +129,14 @@ typedef enum SDL_JoystickType
|
|||||||
SDL_JOYSTICK_TYPE_THROTTLE
|
SDL_JOYSTICK_TYPE_THROTTLE
|
||||||
} SDL_JoystickType;
|
} SDL_JoystickType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible connection states for a joystick device.
|
||||||
|
*
|
||||||
|
* This is used by SDL_GetJoystickConnectionState to report how a device
|
||||||
|
* is connected to the system.
|
||||||
|
*
|
||||||
|
* \since This enum is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef enum SDL_JoystickConnectionState
|
typedef enum SDL_JoystickConnectionState
|
||||||
{
|
{
|
||||||
SDL_JOYSTICK_CONNECTION_INVALID = -1,
|
SDL_JOYSTICK_CONNECTION_INVALID = -1,
|
||||||
@@ -110,9 +145,27 @@ typedef enum SDL_JoystickConnectionState
|
|||||||
SDL_JOYSTICK_CONNECTION_WIRELESS
|
SDL_JOYSTICK_CONNECTION_WIRELESS
|
||||||
} SDL_JoystickConnectionState;
|
} SDL_JoystickConnectionState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The largest value an SDL_Joystick's axis can report.
|
||||||
|
*
|
||||||
|
* \since This macro is available since SDL 3.0.0.
|
||||||
|
*
|
||||||
|
* \sa SDL_JOYSTICK_AXIS_MIN
|
||||||
|
*/
|
||||||
#define SDL_JOYSTICK_AXIS_MAX 32767
|
#define SDL_JOYSTICK_AXIS_MAX 32767
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The smallest value an SDL_Joystick's axis can report.
|
||||||
|
*
|
||||||
|
* This is a negative number!
|
||||||
|
*
|
||||||
|
* \since This macro is available since SDL 3.0.0.
|
||||||
|
*
|
||||||
|
* \sa SDL_JOYSTICK_AXIS_MAX
|
||||||
|
*/
|
||||||
#define SDL_JOYSTICK_AXIS_MIN -32768
|
#define SDL_JOYSTICK_AXIS_MIN -32768
|
||||||
|
|
||||||
|
|
||||||
/* Set max recognized G-force from accelerometer
|
/* Set max recognized G-force from accelerometer
|
||||||
See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed
|
See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed
|
||||||
*/
|
*/
|
||||||
@@ -929,35 +982,10 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GetJoystickAxisInitialState(SDL_Joystick *j
|
|||||||
*/
|
*/
|
||||||
extern DECLSPEC int SDLCALL SDL_GetJoystickBall(SDL_Joystick *joystick, int ball, int *dx, int *dy);
|
extern DECLSPEC int SDLCALL SDL_GetJoystickBall(SDL_Joystick *joystick, int ball, int *dx, int *dy);
|
||||||
|
|
||||||
/**
|
|
||||||
* \name Hat positions
|
|
||||||
*/
|
|
||||||
/* @{ */
|
|
||||||
#define SDL_HAT_CENTERED 0x00
|
|
||||||
#define SDL_HAT_UP 0x01
|
|
||||||
#define SDL_HAT_RIGHT 0x02
|
|
||||||
#define SDL_HAT_DOWN 0x04
|
|
||||||
#define SDL_HAT_LEFT 0x08
|
|
||||||
#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP)
|
|
||||||
#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)
|
|
||||||
#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)
|
|
||||||
#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)
|
|
||||||
/* @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current state of a POV hat on a joystick.
|
* Get the current state of a POV hat on a joystick.
|
||||||
*
|
*
|
||||||
* The returned value will be one of the following positions:
|
* The returned value will be one of the `SDL_HAT_*` values.
|
||||||
*
|
|
||||||
* - `SDL_HAT_CENTERED`
|
|
||||||
* - `SDL_HAT_UP`
|
|
||||||
* - `SDL_HAT_RIGHT`
|
|
||||||
* - `SDL_HAT_DOWN`
|
|
||||||
* - `SDL_HAT_LEFT`
|
|
||||||
* - `SDL_HAT_RIGHTUP`
|
|
||||||
* - `SDL_HAT_RIGHTDOWN`
|
|
||||||
* - `SDL_HAT_LEFTUP`
|
|
||||||
* - `SDL_HAT_LEFTDOWN`
|
|
||||||
*
|
*
|
||||||
* \param joystick an SDL_Joystick structure containing joystick information
|
* \param joystick an SDL_Joystick structure containing joystick information
|
||||||
* \param hat the hat index to get the state from; indices start at index 0
|
* \param hat the hat index to get the state from; indices start at index 0
|
||||||
@@ -969,6 +997,16 @@ extern DECLSPEC int SDLCALL SDL_GetJoystickBall(SDL_Joystick *joystick, int ball
|
|||||||
*/
|
*/
|
||||||
extern DECLSPEC Uint8 SDLCALL SDL_GetJoystickHat(SDL_Joystick *joystick, int hat);
|
extern DECLSPEC Uint8 SDLCALL SDL_GetJoystickHat(SDL_Joystick *joystick, int hat);
|
||||||
|
|
||||||
|
#define SDL_HAT_CENTERED 0x00
|
||||||
|
#define SDL_HAT_UP 0x01
|
||||||
|
#define SDL_HAT_RIGHT 0x02
|
||||||
|
#define SDL_HAT_DOWN 0x04
|
||||||
|
#define SDL_HAT_LEFT 0x08
|
||||||
|
#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP)
|
||||||
|
#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)
|
||||||
|
#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)
|
||||||
|
#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current state of a button on a joystick.
|
* Get the current state of a button on a joystick.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -39,6 +39,17 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a unique ID for a keyboard for the time it is connected to the
|
||||||
|
* system, and is never reused for the lifetime of the application.
|
||||||
|
*
|
||||||
|
* If the keyboard is disconnected and reconnected, it will get a new ID.
|
||||||
|
*
|
||||||
|
* The ID value starts at 1 and increments from there. The value 0 is an
|
||||||
|
* invalid ID.
|
||||||
|
*
|
||||||
|
* \since This datatype is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef Uint32 SDL_KeyboardID;
|
typedef Uint32 SDL_KeyboardID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -116,8 +116,9 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Synchronization functions which can time out return this value if they time
|
* Synchronization functions return this value if they time out.
|
||||||
* out.
|
*
|
||||||
|
* Not all functions _can_ time out; some will block indefinitely.
|
||||||
*
|
*
|
||||||
* \since This macro is available since SDL 3.0.0.
|
* \since This macro is available since SDL 3.0.0.
|
||||||
*/
|
*/
|
||||||
@@ -129,8 +130,18 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
/* @{ */
|
/* @{ */
|
||||||
|
|
||||||
/* The SDL mutex structure, defined in SDL_sysmutex.c */
|
/**
|
||||||
struct SDL_Mutex;
|
* A means to serialize access to a resource between threads.
|
||||||
|
*
|
||||||
|
* Mutexes (short for "mutual exclusion") are a synchronization primitive
|
||||||
|
* that allows exactly one thread to proceed at a time.
|
||||||
|
*
|
||||||
|
* Wikipedia has a thorough explanation of the concept:
|
||||||
|
*
|
||||||
|
* https://en.wikipedia.org/wiki/Mutex
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_Mutex SDL_Mutex;
|
typedef struct SDL_Mutex SDL_Mutex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -247,13 +258,37 @@ extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_Mutex *mutex);
|
|||||||
*/
|
*/
|
||||||
/* @{ */
|
/* @{ */
|
||||||
|
|
||||||
/* The SDL read/write lock structure, defined in SDL_sysrwlock.c */
|
/**
|
||||||
struct SDL_RWLock;
|
* A mutex that allows read-only threads to run in parallel.
|
||||||
|
*
|
||||||
|
* A rwlock is roughly the same concept as SDL_Mutex, but allows
|
||||||
|
* threads that request read-only access to all hold the lock at
|
||||||
|
* the same time. If a thread requests write access, it will block
|
||||||
|
* until all read-only threads have released the lock, and no one
|
||||||
|
* else can hold the thread (for reading or writing) at the same
|
||||||
|
* time as the writing thread.
|
||||||
|
*
|
||||||
|
* This can be more efficient in cases where several threads need
|
||||||
|
* to access data frequently, but changes to that data are rare.
|
||||||
|
*
|
||||||
|
* There are other rules that apply to rwlocks that don't apply
|
||||||
|
* to mutexes, about how threads are scheduled and when they can
|
||||||
|
* be recursively locked. These are documented in the other rwlock
|
||||||
|
* functions.
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_RWLock SDL_RWLock;
|
typedef struct SDL_RWLock SDL_RWLock;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Synchronization functions which can time out return this value
|
* Synchronization functions return this value if they time out.
|
||||||
* if they time out.
|
*
|
||||||
|
* Not all functions _can_ time out; some will block indefinitely.
|
||||||
|
*
|
||||||
|
* This symbol is just for clarity when dealing with SDL_RWLock
|
||||||
|
* functions; its value is equivalent to SDL_MUTEX_TIMEOUT.
|
||||||
|
*
|
||||||
|
* \since This macro is available since SDL 3.0.0.
|
||||||
*/
|
*/
|
||||||
#define SDL_RWLOCK_TIMEDOUT SDL_MUTEX_TIMEDOUT
|
#define SDL_RWLOCK_TIMEDOUT SDL_MUTEX_TIMEDOUT
|
||||||
|
|
||||||
@@ -479,8 +514,21 @@ extern DECLSPEC void SDLCALL SDL_DestroyRWLock(SDL_RWLock *rwlock);
|
|||||||
*/
|
*/
|
||||||
/* @{ */
|
/* @{ */
|
||||||
|
|
||||||
/* The SDL semaphore structure, defined in SDL_syssem.c */
|
/**
|
||||||
struct SDL_Semaphore;
|
* A means to manage access to a resource, by count, between threads.
|
||||||
|
*
|
||||||
|
* Semaphores (specifically, "counting semaphores"), let X number of
|
||||||
|
* threads request access at the same time, each thread granted access
|
||||||
|
* decrementing a counter. When the counter reaches zero, future requests
|
||||||
|
* block until a prior thread releases their request, incrementing the
|
||||||
|
* counter again.
|
||||||
|
*
|
||||||
|
* Wikipedia has a thorough explanation of the concept:
|
||||||
|
*
|
||||||
|
* https://en.wikipedia.org/wiki/Semaphore_(programming)
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_Semaphore SDL_Semaphore;
|
typedef struct SDL_Semaphore SDL_Semaphore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -620,8 +668,19 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetSemaphoreValue(SDL_Semaphore *sem);
|
|||||||
*/
|
*/
|
||||||
/* @{ */
|
/* @{ */
|
||||||
|
|
||||||
/* The SDL condition variable structure, defined in SDL_syscond.c */
|
/**
|
||||||
struct SDL_Condition;
|
* A means to block multiple threads until a condition is satisfied.
|
||||||
|
*
|
||||||
|
* Condition variables, paired with an SDL_Mutex, let an app
|
||||||
|
* halt multiple threads until a condition has occurred, at which
|
||||||
|
* time the app can release one or all waiting threads.
|
||||||
|
*
|
||||||
|
* Wikipedia has a thorough explanation of the concept:
|
||||||
|
*
|
||||||
|
* https://en.wikipedia.org/wiki/Condition_variable
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_Condition SDL_Condition;
|
typedef struct SDL_Condition SDL_Condition;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -42,6 +42,19 @@ extern "C" {
|
|||||||
|
|
||||||
/* !!! FIXME: Don't let this ship without async R/W support!!! */
|
/* !!! FIXME: Don't let this ship without async R/W support!!! */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function interface for SDL_Storage.
|
||||||
|
*
|
||||||
|
* Apps that want to supply a custom implementation of SDL_Storage
|
||||||
|
* will fill in all the functions in this struct, and then pass it to
|
||||||
|
* SDL_OpenStorage to create a custom SDL_Storage object.
|
||||||
|
*
|
||||||
|
* It is not usually necessary to do this; SDL provides standard
|
||||||
|
* implementations for many things you might expect to do with
|
||||||
|
* an SDL_Storage.
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_StorageInterface
|
typedef struct SDL_StorageInterface
|
||||||
{
|
{
|
||||||
/* Called when the storage is closed */
|
/* Called when the storage is closed */
|
||||||
@@ -73,9 +86,18 @@ typedef struct SDL_StorageInterface
|
|||||||
|
|
||||||
/* Get the space remaining, optional for read-only storage */
|
/* Get the space remaining, optional for read-only storage */
|
||||||
Uint64 (SDLCALL *space_remaining)(void *userdata);
|
Uint64 (SDLCALL *space_remaining)(void *userdata);
|
||||||
|
|
||||||
} SDL_StorageInterface;
|
} SDL_StorageInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An abstract interface for filesystem access.
|
||||||
|
*
|
||||||
|
* This is an opaque datatype. One can create this object
|
||||||
|
* using standard SDL functions like SDL_OpenTitleStorage or
|
||||||
|
* SDL_OpenUserStorage, etc, or create an object with a custom
|
||||||
|
* implementation using SDL_OpenStorage.
|
||||||
|
*
|
||||||
|
* \since This struct is available since SDL 3.0.0.
|
||||||
|
*/
|
||||||
typedef struct SDL_Storage SDL_Storage;
|
typedef struct SDL_Storage SDL_Storage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user