mirror of
https://github.com/yawut/SDL.git
synced 2026-09-11 10:36:27 -05:00
Merged changes from the main SDL codebase
This commit is contained in:
@@ -78,6 +78,7 @@
|
||||
#include "SDL_stdinc.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"
|
||||
|
||||
@@ -118,7 +118,7 @@ extern DECLSPEC Uint32 SDLCALL SDL_AtomicFetchThenIncrement32(volatile Uint32 *
|
||||
*
|
||||
* \return The value before it was decremented.
|
||||
*
|
||||
* \param ptr Address of the value to fetch and drement
|
||||
* \param ptr Address of the value to fetch and decrement
|
||||
*/
|
||||
extern DECLSPEC Uint32 SDLCALL SDL_AtomicFetchThenDecrement32(volatile Uint32 * ptr);
|
||||
|
||||
|
||||
76
include/SDL_clipboard.h
Normal file
76
include/SDL_clipboard.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
SDL - Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2010 Sam Lantinga
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Sam Lantinga
|
||||
slouken@libsdl.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* \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 whether the clipboard has text
|
||||
*
|
||||
* \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: */
|
||||
@@ -324,6 +324,7 @@ extern DECLSPEC int SDLCALL SDL_EnableUNICODE(int enable);
|
||||
#define SDL_RenderPoint SDL_RenderDrawPoint
|
||||
#define SDL_RenderLine SDL_RenderDrawLine
|
||||
#define SDL_RenderFill(X) (X) ? SDL_RenderFillRect(X) : SDL_RenderClear()
|
||||
#define SDL_KillThread(X)
|
||||
|
||||
extern DECLSPEC int SDLCALL SDL_putenv(const char *variable);
|
||||
|
||||
|
||||
@@ -145,12 +145,9 @@ typedef unsigned long uintptr_t;
|
||||
#define SDL_POWER_UIKIT 1
|
||||
|
||||
/* enable iPhone keyboard support */
|
||||
#define SDL_IPHONE_KEYBOARD 0
|
||||
#define SDL_IPHONE_KEYBOARD 1
|
||||
|
||||
/* Enable emulation of multiple mice through multi-touch */
|
||||
#define SDL_IPHONE_MULTIPLE_MICE 1
|
||||
|
||||
/* Set max recognized G-force from acceleromter
|
||||
/* Set max recognized G-force from accelerometer
|
||||
See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed
|
||||
*/
|
||||
#define SDL_IPHONE_MAX_GFORCE 5.0
|
||||
|
||||
@@ -28,6 +28,12 @@
|
||||
/* General platform specific identifiers */
|
||||
#include "SDL_platform.h"
|
||||
|
||||
#ifdef __LP64__
|
||||
#define SIZEOF_VOIDP 8
|
||||
#else
|
||||
#define SIZEOF_VOIDP 4
|
||||
#endif
|
||||
|
||||
#define SDL_HAS_64BIT_TYPE 1
|
||||
#define SDL_BYTEORDER 1234
|
||||
|
||||
|
||||
@@ -77,9 +77,13 @@ typedef enum
|
||||
SDL_MOUSEBUTTONUP, /**< Mouse button released */
|
||||
SDL_MOUSEWHEEL, /**< Mouse wheel motion */
|
||||
|
||||
/* Tablet events */
|
||||
SDL_PROXIMITYIN = 0x500, /**< Proximity In event */
|
||||
SDL_PROXIMITYOUT, /**< Proximity Out event */
|
||||
/* Tablet or multiple mice input device events */
|
||||
SDL_INPUTMOTION = 0x500, /**< Input moved */
|
||||
SDL_INPUTBUTTONDOWN, /**< Input button pressed */
|
||||
SDL_INPUTBUTTONUP, /**< Input button released */
|
||||
SDL_INPUTWHEEL, /**< Input wheel motion */
|
||||
SDL_INPUTPROXIMITYIN, /**< Input pen entered proximity */
|
||||
SDL_INPUTPROXIMITYOUT, /**< Input pen left proximity */
|
||||
|
||||
/* Joystick events */
|
||||
SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */
|
||||
@@ -88,18 +92,21 @@ typedef enum
|
||||
SDL_JOYBUTTONDOWN, /**< Joystick button pressed */
|
||||
SDL_JOYBUTTONUP, /**< Joystick button released */
|
||||
|
||||
/*Touch events*/
|
||||
SDL_FINGERDOWN = 0x700,
|
||||
/* Touch events */
|
||||
SDL_FINGERDOWN = 0x700,
|
||||
SDL_FINGERUP,
|
||||
SDL_FINGERMOTION,
|
||||
SDL_TOUCHBUTTONDOWN,
|
||||
SDL_TOUCHBUTTONUP,
|
||||
|
||||
/*Gesture events*/
|
||||
SDL_DOLLARGESTURE = 0x800,
|
||||
/* Gesture events */
|
||||
SDL_DOLLARGESTURE = 0x800,
|
||||
SDL_DOLLARRECORD,
|
||||
SDL_MULTIGESTURE,
|
||||
|
||||
/* Clipboard events */
|
||||
SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */
|
||||
|
||||
/* Obsolete events */
|
||||
SDL_EVENT_COMPAT1 = 0x7000, /**< SDL 1.2 events for compatibility */
|
||||
SDL_EVENT_COMPAT2,
|
||||
@@ -139,10 +146,10 @@ typedef struct SDL_KeyboardEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */
|
||||
Uint32 windowID; /**< The window with keyboard focus, if any */
|
||||
Uint8 which; /**< The keyboard device index */
|
||||
Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
|
||||
Uint8 padding1;
|
||||
Uint8 padding2;
|
||||
Uint8 padding3;
|
||||
SDL_keysym keysym; /**< The key that was pressed or released */
|
||||
} SDL_KeyboardEvent;
|
||||
|
||||
@@ -154,7 +161,6 @@ typedef struct SDL_TextEditingEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_TEXTEDITING */
|
||||
Uint32 windowID; /**< The window with keyboard focus, if any */
|
||||
Uint8 which; /**< The keyboard device index */
|
||||
char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */
|
||||
int start; /**< The start cursor of selected editing text */
|
||||
int length; /**< The length of selected editing text */
|
||||
@@ -169,10 +175,6 @@ typedef struct SDL_TextInputEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_TEXTINPUT */
|
||||
Uint32 windowID; /**< The window with keyboard focus, if any */
|
||||
Uint8 which; /**< The keyboard device index */
|
||||
Uint8 padding1;
|
||||
Uint8 padding2;
|
||||
Uint8 padding3;
|
||||
char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */
|
||||
} SDL_TextInputEvent;
|
||||
|
||||
@@ -183,20 +185,12 @@ typedef struct SDL_MouseMotionEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_MOUSEMOTION */
|
||||
Uint32 windowID; /**< The window with mouse focus, if any */
|
||||
Uint8 which; /**< The mouse device index */
|
||||
Uint8 state; /**< The current button state */
|
||||
Uint8 padding1;
|
||||
Uint8 padding2;
|
||||
Uint8 padding3;
|
||||
int x; /**< X coordinate, relative to window */
|
||||
int y; /**< Y coordinate, relative to window */
|
||||
int z; /**< Z coordinate, for future use */
|
||||
int pressure; /**< Pressure reported by tablets */
|
||||
int pressure_max; /**< Maximum value of the pressure reported by the device */
|
||||
int pressure_min; /**< Minimum value of the pressure reported by the device */
|
||||
int rotation; /**< For future use */
|
||||
int tilt_x; /**< For future use */
|
||||
int tilt_y; /**< For future use */
|
||||
int cursor; /**< The cursor being used in the event */
|
||||
int xrel; /**< The relative motion in the X direction */
|
||||
int yrel; /**< The relative motion in the Y direction */
|
||||
} SDL_MouseMotionEvent;
|
||||
@@ -208,10 +202,10 @@ typedef struct SDL_MouseButtonEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */
|
||||
Uint32 windowID; /**< The window with mouse focus, if any */
|
||||
Uint8 which; /**< The mouse device index */
|
||||
Uint8 button; /**< The mouse button index */
|
||||
Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
|
||||
Uint8 padding1;
|
||||
Uint8 padding2;
|
||||
int x; /**< X coordinate, relative to window */
|
||||
int y; /**< Y coordinate, relative to window */
|
||||
} SDL_MouseButtonEvent;
|
||||
@@ -223,30 +217,10 @@ typedef struct SDL_MouseWheelEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_MOUSEWHEEL */
|
||||
Uint32 windowID; /**< The window with mouse focus, if any */
|
||||
Uint8 which; /**< The mouse device index */
|
||||
Uint8 padding1;
|
||||
Uint8 padding2;
|
||||
Uint8 padding3;
|
||||
int x; /**< The amount scrolled horizontally */
|
||||
int y; /**< The amount scrolled vertically */
|
||||
} SDL_MouseWheelEvent;
|
||||
|
||||
/**
|
||||
* \brief Tablet pen proximity event
|
||||
*/
|
||||
typedef struct SDL_ProximityEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_PROXIMITYIN or ::SDL_PROXIMITYOUT */
|
||||
Uint32 windowID; /**< The associated window */
|
||||
Uint8 which;
|
||||
Uint8 padding1;
|
||||
Uint8 padding2;
|
||||
Uint8 padding3;
|
||||
int cursor;
|
||||
int x;
|
||||
int y;
|
||||
} SDL_ProximityEvent;
|
||||
|
||||
/**
|
||||
* \brief Joystick axis motion event structure (event.jaxis.*)
|
||||
*/
|
||||
@@ -459,7 +433,6 @@ typedef union SDL_Event
|
||||
SDL_QuitEvent quit; /**< Quit request event data */
|
||||
SDL_UserEvent user; /**< Custom event data */
|
||||
SDL_SysWMEvent syswm; /**< System dependent window event data */
|
||||
SDL_ProximityEvent proximity; /**< Proximity In or Out event */
|
||||
SDL_TouchFingerEvent tfinger; /**< Touch finger event data */
|
||||
SDL_TouchButtonEvent tbutton; /**< Touch button event data */
|
||||
SDL_MultiGestureEvent mgesture; /**< Multi Finger Gesture data*/
|
||||
|
||||
88
include/SDL_input.h
Normal file
88
include/SDL_input.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
SDL - Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2010 Sam Lantinga
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Sam Lantinga
|
||||
slouken@libsdl.org
|
||||
*/
|
||||
|
||||
/**
|
||||
* \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: */
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "SDL_stdinc.h"
|
||||
#include "SDL_error.h"
|
||||
#include "SDL_keysym.h"
|
||||
#include "SDL_video.h"
|
||||
|
||||
#include "begin_code.h"
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
@@ -55,25 +56,12 @@ typedef struct SDL_keysym
|
||||
/* Function prototypes */
|
||||
|
||||
/**
|
||||
* \brief Get the number of keyboard input devices available.
|
||||
*
|
||||
* \sa SDL_SelectKeyboard()
|
||||
* \brief Get the window which currently has keyboard focus.
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_GetNumKeyboards(void);
|
||||
extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void);
|
||||
|
||||
/**
|
||||
* \brief Set the index of the currently selected keyboard.
|
||||
*
|
||||
* \return The index of the previously selected keyboard.
|
||||
*
|
||||
* \note You can query the currently selected keyboard by passing an index of -1.
|
||||
*
|
||||
* \sa SDL_GetNumKeyboards()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_SelectKeyboard(int index);
|
||||
|
||||
/**
|
||||
* \brief Get a snapshot of the current state of the selected keyboard.
|
||||
* \brief Get a snapshot of the current state of the keyboard.
|
||||
*
|
||||
* \param numkeys if non-NULL, receives the length of the returned array.
|
||||
*
|
||||
@@ -90,20 +78,20 @@ extern DECLSPEC int SDLCALL SDL_SelectKeyboard(int index);
|
||||
extern DECLSPEC Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys);
|
||||
|
||||
/**
|
||||
* \brief Get the current key modifier state for the selected keyboard.
|
||||
* \brief Get the current key modifier state for the keyboard.
|
||||
*/
|
||||
extern DECLSPEC SDLMod SDLCALL SDL_GetModState(void);
|
||||
|
||||
/**
|
||||
* \brief Set the current key modifier state for the selected keyboard.
|
||||
* \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(SDLMod modstate);
|
||||
|
||||
/**
|
||||
* \brief Get the key code corresponding to the given scancode according to the
|
||||
* current keyboard layout.
|
||||
* \brief Get the key code corresponding to the given scancode according
|
||||
* to the current keyboard layout.
|
||||
*
|
||||
* See ::SDLKey for details.
|
||||
*
|
||||
|
||||
@@ -24,6 +24,22 @@
|
||||
* \file SDL_mouse.h
|
||||
*
|
||||
* Include file for SDL mouse event handling.
|
||||
*
|
||||
* Please note that this ONLY discusses "mice" with the notion of the
|
||||
* desktop GUI. You (usually) have one system cursor, and the OS hides
|
||||
* the hardware details from you. If you plug in 10 mice, all ten move that
|
||||
* one cursor. For many applications and games, this is perfect, and this
|
||||
* API has served hundreds of SDL programs well since its birth.
|
||||
*
|
||||
* It's not the whole picture, though. If you want more lowlevel control,
|
||||
* SDL offers a different API, that gives you visibility into each input
|
||||
* device, multi-touch interfaces, etc.
|
||||
*
|
||||
* Those two APIs are incompatible, and you usually should not use both
|
||||
* at the same time. But for legacy purposes, this API refers to a "mouse"
|
||||
* when it actually means the system pointer and not a physical mouse.
|
||||
*
|
||||
* The other API is in SDL_input.h
|
||||
*/
|
||||
|
||||
#ifndef _SDL_mouse_h
|
||||
@@ -43,68 +59,16 @@ extern "C" {
|
||||
|
||||
typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */
|
||||
|
||||
|
||||
/* Function prototypes */
|
||||
|
||||
/**
|
||||
* \brief Get the number of mouse input devices available.
|
||||
*
|
||||
* \sa SDL_SelectMouse()
|
||||
* \brief Get the window which currently has mouse focus.
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_GetNumMice(void);
|
||||
extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocus(void);
|
||||
|
||||
/**
|
||||
* \brief Gets the name of a mouse with the given index.
|
||||
*
|
||||
* \param index is the index of the mouse, which name is to be returned.
|
||||
*
|
||||
* \return the name of the mouse with the specified index
|
||||
*/
|
||||
extern DECLSPEC char *SDLCALL SDL_GetMouseName(int index);
|
||||
|
||||
/**
|
||||
* \brief Set the index of the currently selected mouse.
|
||||
*
|
||||
* \return The index of the previously selected mouse.
|
||||
*
|
||||
* \note You can query the currently selected mouse by passing an index of -1.
|
||||
*
|
||||
* \sa SDL_GetNumMice()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_SelectMouse(int index);
|
||||
|
||||
/**
|
||||
* \brief Get the window which currently has focus for the specified mouse.
|
||||
*/
|
||||
extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocusWindow(int index);
|
||||
|
||||
/**
|
||||
* \brief Set relative mouse mode for the specified mouse.
|
||||
*
|
||||
* \param enabled Whether or not to enable relative mode
|
||||
*
|
||||
* \return 0 on success, or -1 if relative mode is not supported.
|
||||
*
|
||||
* While the mouse is in relative mode, the cursor is hidden, and the
|
||||
* driver will try to report continuous motion in the current window.
|
||||
* Only relative motion events will be delivered, the mouse position
|
||||
* will not change.
|
||||
*
|
||||
* \note This function will flush any pending mouse motion.
|
||||
*
|
||||
* \sa SDL_GetRelativeMouseMode()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(int index,
|
||||
SDL_bool enabled);
|
||||
|
||||
/**
|
||||
* \brief Query whether relative mouse mode is enabled for the specified mouse.
|
||||
*
|
||||
* \sa SDL_SetRelativeMouseMode()
|
||||
*/
|
||||
extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(int index);
|
||||
|
||||
/**
|
||||
* \brief Retrieve the current state of the specified mouse.
|
||||
* \brief Retrieve the current state of the mouse.
|
||||
*
|
||||
* The current button state is returned as a button bitmask, which can
|
||||
* be tested using the SDL_BUTTON(X) macros, and x and y are set to the
|
||||
@@ -114,17 +78,16 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(int index);
|
||||
extern DECLSPEC Uint8 SDLCALL SDL_GetMouseState(int *x, int *y);
|
||||
|
||||
/**
|
||||
* \brief Retrieve the state of the specified mouse.
|
||||
* \brief Retrieve the relative state of the mouse.
|
||||
*
|
||||
* The current button state is returned as a button bitmask, which can
|
||||
* be tested using the SDL_BUTTON(X) macros, and x and y are set to the
|
||||
* mouse deltas since the last call to SDL_GetRelativeMouseState().
|
||||
*/
|
||||
extern DECLSPEC Uint8 SDLCALL SDL_GetRelativeMouseState(int index, int *x,
|
||||
int *y);
|
||||
extern DECLSPEC Uint8 SDLCALL SDL_GetRelativeMouseState(int *x, int *y);
|
||||
|
||||
/**
|
||||
* \brief Moves the currently selected mouse to the given position within the window.
|
||||
* \brief Moves the mouse to the given position within the window.
|
||||
*
|
||||
* \param window The window to move the mouse into, or NULL for the current mouse focus
|
||||
* \param x The x coordinate within the window
|
||||
@@ -136,8 +99,33 @@ extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window,
|
||||
int x, int y);
|
||||
|
||||
/**
|
||||
* \brief Create a cursor for the currently selected mouse, using the
|
||||
* specified bitmap data and mask (in MSB format).
|
||||
* \brief Set relative mouse mode.
|
||||
*
|
||||
* \param enabled Whether or not to enable relative mode
|
||||
*
|
||||
* \return 0 on success, or -1 if relative mode is not supported.
|
||||
*
|
||||
* While the mouse is in relative mode, the cursor is hidden, and the
|
||||
* driver will try to report continuous motion in the current window.
|
||||
* Only relative motion events will be delivered, the mouse position
|
||||
* will not change.
|
||||
*
|
||||
* \note This function will flush any pending mouse motion.
|
||||
*
|
||||
* \sa SDL_GetRelativeMouseMode()
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled);
|
||||
|
||||
/**
|
||||
* \brief Query whether relative mouse mode is enabled.
|
||||
*
|
||||
* \sa SDL_SetRelativeMouseMode()
|
||||
*/
|
||||
extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(void);
|
||||
|
||||
/**
|
||||
* \brief Create a cursor, using the specified bitmap data and
|
||||
* mask (in MSB format).
|
||||
*
|
||||
* The cursor width must be a multiple of 8 bits.
|
||||
*
|
||||
@@ -148,7 +136,7 @@ extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window,
|
||||
* <tr><td> 1 </td><td> 1 </td><td> Black </td></tr>
|
||||
* <tr><td> 0 </td><td> 0 </td><td> Transparent </td></tr>
|
||||
* <tr><td> 1 </td><td> 0 </td><td> Inverted color if possible, black
|
||||
if not. </td></tr>
|
||||
* if not. </td></tr>
|
||||
* </table>
|
||||
*
|
||||
* \sa SDL_FreeCursor()
|
||||
@@ -159,14 +147,12 @@ extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data,
|
||||
int hot_y);
|
||||
|
||||
/**
|
||||
* \brief Set the active cursor for the currently selected mouse.
|
||||
*
|
||||
* \note The cursor must have been created for the selected mouse.
|
||||
* \brief Set the active cursor.
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor);
|
||||
|
||||
/**
|
||||
* \brief Return the active cursor for the currently selected mouse.
|
||||
* \brief Return the active cursor.
|
||||
*/
|
||||
extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void);
|
||||
|
||||
@@ -178,8 +164,7 @@ extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void);
|
||||
extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor);
|
||||
|
||||
/**
|
||||
* \brief Toggle whether or not the cursor is shown for the currently selected
|
||||
* mouse.
|
||||
* \brief Toggle whether or not the cursor is shown.
|
||||
*
|
||||
* \param toggle 1 to show the cursor, 0 to hide it, -1 to query the current
|
||||
* state.
|
||||
@@ -188,38 +173,6 @@ extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor);
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
|
||||
|
||||
/**
|
||||
* \brief Gets the number of cursors a pointing device supports.
|
||||
*
|
||||
* Useful for tablet users. Useful only under Windows.
|
||||
*
|
||||
* \param index is the index of the pointing device, which number of cursors we
|
||||
* want to receive.
|
||||
*
|
||||
* \return the number of cursors supported by the pointing device. On Windows
|
||||
* if a device is a tablet it returns a number >=1. Normal mice always
|
||||
* return 1.
|
||||
*
|
||||
* On Linux every device reports one cursor.
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_GetCursorsNumber(int index);
|
||||
|
||||
/**
|
||||
* \brief Returns the index of the current cursor used by a specific pointing
|
||||
* device.
|
||||
*
|
||||
* Useful only under Windows.
|
||||
*
|
||||
* \param index is the index of the pointing device, which cursor index we want
|
||||
* to receive.
|
||||
*
|
||||
* \return the index of the cursor currently used by a specific pointing
|
||||
* device. Always 0 under Linux. On Windows if the device isn't a
|
||||
* tablet it returns 0. If the device is the tablet it returns the
|
||||
* cursor index. 0 - stylus, 1 - eraser, 2 - cursor.
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_GetCurrentCursor(int index);
|
||||
|
||||
/**
|
||||
* Used as a mask when testing buttons in buttonstate.
|
||||
* - Button 1: Left mouse button
|
||||
|
||||
@@ -194,7 +194,7 @@ extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond);
|
||||
*
|
||||
* \return 0 when it is signaled, or -1 on error.
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mut);
|
||||
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
|
||||
|
||||
@@ -112,8 +112,7 @@ enum
|
||||
SDL_PACKEDLAYOUT_1010102
|
||||
};
|
||||
|
||||
#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) \
|
||||
((A) | ((B) << 8) | ((C) << 16) | ((D) << 24))
|
||||
#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D)
|
||||
|
||||
#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \
|
||||
((1 << 31) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
|
||||
|
||||
@@ -101,6 +101,13 @@
|
||||
#endif
|
||||
/*@}*//*Cast operators*/
|
||||
|
||||
/* Define a four character code as a Uint32 */
|
||||
#define SDL_FOURCC(A, B, C, D) \
|
||||
((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
|
||||
(SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
|
||||
(SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
|
||||
(SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))
|
||||
|
||||
/**
|
||||
* \name Basic data types
|
||||
*/
|
||||
|
||||
@@ -106,24 +106,6 @@ struct SDL_SysWMinfo
|
||||
{
|
||||
Display *display; /**< The X11 display */
|
||||
Window window; /**< The X11 display window */
|
||||
/**
|
||||
* These locking functions should be called around
|
||||
* any X11 functions using the display variable.
|
||||
* They lock the event thread, so should not be
|
||||
* called around event functions or from event filters.
|
||||
*/
|
||||
/*@{*/
|
||||
void (*lock_func) (void);
|
||||
void (*unlock_func) (void);
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* Introduced in SDL 1.0.2.
|
||||
*/
|
||||
/*@{*/
|
||||
Window fswindow; /**< The X11 fullscreen window */
|
||||
Window wmwindow; /**< The X11 managed input window */
|
||||
/*@}*/
|
||||
} x11;
|
||||
} info;
|
||||
};
|
||||
|
||||
@@ -149,16 +149,6 @@ extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread);
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status);
|
||||
|
||||
/**
|
||||
* \deprecated This function is here for binary compatibility with legacy apps,
|
||||
* but in SDL 1.3 and later, it's a no-op.
|
||||
*
|
||||
* You cannot forcibly kill a thread in a safe manner on many platforms. You
|
||||
* should instead find a way to alert your thread that it is time to terminate,
|
||||
* and then have it gracefully exit on its own. Do not ever call this function!
|
||||
*/
|
||||
extern DECLSPEC void SDLCALL SDL_KillThread(SDL_Thread * thread);
|
||||
|
||||
|
||||
/* Ends C function definitions when using C++ */
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -88,7 +88,6 @@ typedef struct
|
||||
* \sa SDL_SetWindowTitle()
|
||||
* \sa SDL_ShowWindow()
|
||||
*/
|
||||
struct SDL_Window;
|
||||
typedef struct SDL_Window SDL_Window;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user