| | |
| | | * 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 /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ |
| | | #define SDL_INIT_JOYSTICK 0x00000200 /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ |
| | | #define SDL_INIT_HAPTIC 0x00001000 |
| | | #define SDL_INIT_GAMECONTROLLER 0x00002000 /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ |
| | | #define SDL_INIT_EVENTS 0x00004000 |
| | | #define SDL_INIT_NOPARACHUTE 0x00100000 /**< compatibility; this flag is ignored. */ |
| | | #define SDL_INIT_TIMER 0x00000001u |
| | | #define SDL_INIT_AUDIO 0x00000010u |
| | | #define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ |
| | | #define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ |
| | | #define SDL_INIT_HAPTIC 0x00001000u |
| | | #define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ |
| | | #define SDL_INIT_EVENTS 0x00004000u |
| | | #define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */ |
| | | #define SDL_INIT_EVERYTHING ( \ |
| | | SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ |
| | | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER \ |
| | |
| | | * This function initializes specific SDL subsystems |
| | | * |
| | | * Subsystem initialization is ref-counted, you must call |
| | | * SDL_QuitSubSystem for each SDL_InitSubSystem to correctly |
| | | * shutdown a subsystem manually (or call SDL_Quit to force shutdown). |
| | | * SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly |
| | | * shutdown a subsystem manually (or call SDL_Quit() to force shutdown). |
| | | * If a subsystem is already loaded then this call will |
| | | * increase the ref-count and return. |
| | | */ |
| | |
| | | * protect data structures that it accesses by calling SDL_LockAudio() |
| | | * and SDL_UnlockAudio() in your code. Alternately, you may pass a NULL |
| | | * pointer here, and call SDL_QueueAudio() with some frequency, to queue |
| | | * more audio samples to be played. |
| | | * more audio samples to be played (or for capture devices, call |
| | | * SDL_DequeueAudio() with some frequency, to obtain audio samples). |
| | | * - \c desired->userdata is passed as the first parameter to your callback |
| | | * function. If you passed a NULL callback, this value is ignored. |
| | | * |
| | |
| | | /** |
| | | * Queue more audio on non-callback devices. |
| | | * |
| | | * (If you are looking to retrieve queued audio from a non-callback capture |
| | | * device, you want SDL_DequeueAudio() instead. This will return -1 to |
| | | * signify an error if you use it with capture devices.) |
| | | * |
| | | * SDL offers two ways to feed audio to the device: you can either supply a |
| | | * callback that SDL triggers with some frequency to obtain more audio |
| | | * (pull method), or you can supply no callback, and then SDL will expect |
| | |
| | | extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); |
| | | |
| | | /** |
| | | * Dequeue more audio on non-callback devices. |
| | | * |
| | | * (If you are looking to queue audio for output on a non-callback playback |
| | | * device, you want SDL_QueueAudio() instead. This will always return 0 |
| | | * if you use it with playback devices.) |
| | | * |
| | | * SDL offers two ways to retrieve audio from a capture device: you can |
| | | * either supply a callback that SDL triggers with some frequency as the |
| | | * device records more audio data, (push method), or you can supply no |
| | | * callback, and then SDL will expect you to retrieve data at regular |
| | | * intervals (pull method) with this function. |
| | | * |
| | | * There are no limits on the amount of data you can queue, short of |
| | | * exhaustion of address space. Data from the device will keep queuing as |
| | | * necessary without further intervention from you. This means you will |
| | | * eventually run out of memory if you aren't routinely dequeueing data. |
| | | * |
| | | * Capture devices will not queue data when paused; if you are expecting |
| | | * to not need captured audio for some length of time, use |
| | | * SDL_PauseAudioDevice() to stop the capture device from queueing more |
| | | * data. This can be useful during, say, level loading times. When |
| | | * unpaused, capture devices will start queueing data from that point, |
| | | * having flushed any capturable data available while paused. |
| | | * |
| | | * This function is thread-safe, but dequeueing from the same device from |
| | | * two threads at once does not promise which thread will dequeued data |
| | | * first. |
| | | * |
| | | * You may not dequeue audio from a device that is using an |
| | | * application-supplied callback; doing so returns an error. You have to use |
| | | * the audio callback, or dequeue audio with this function, but not both. |
| | | * |
| | | * You should not call SDL_LockAudio() on the device before queueing; SDL |
| | | * handles locking internally for this function. |
| | | * |
| | | * \param dev The device ID from which we will dequeue audio. |
| | | * \param data A pointer into where audio data should be copied. |
| | | * \param len The number of bytes (not samples!) to which (data) points. |
| | | * \return number of bytes dequeued, which could be less than requested. |
| | | * |
| | | * \sa SDL_GetQueuedAudioSize |
| | | * \sa SDL_ClearQueuedAudio |
| | | */ |
| | | extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *data, Uint32 len); |
| | | |
| | | /** |
| | | * Get the number of bytes of still-queued audio. |
| | | * |
| | | * This is the number of bytes that have been queued for playback with |
| | | * SDL_QueueAudio(), but have not yet been sent to the hardware. |
| | | * For playback device: |
| | | * |
| | | * Once we've sent it to the hardware, this function can not decide the exact |
| | | * byte boundary of what has been played. It's possible that we just gave the |
| | | * hardware several kilobytes right before you called this function, but it |
| | | * hasn't played any of it yet, or maybe half of it, etc. |
| | | * This is the number of bytes that have been queued for playback with |
| | | * SDL_QueueAudio(), but have not yet been sent to the hardware. This |
| | | * number may shrink at any time, so this only informs of pending data. |
| | | * |
| | | * Once we've sent it to the hardware, this function can not decide the |
| | | * exact byte boundary of what has been played. It's possible that we just |
| | | * gave the hardware several kilobytes right before you called this |
| | | * function, but it hasn't played any of it yet, or maybe half of it, etc. |
| | | * |
| | | * For capture devices: |
| | | * |
| | | * This is the number of bytes that have been captured by the device and |
| | | * are waiting for you to dequeue. This number may grow at any time, so |
| | | * this only informs of the lower-bound of available data. |
| | | * |
| | | * You may not queue audio on a device that is using an application-supplied |
| | | * callback; calling this function on such a device always returns 0. |
| | | * You have to use the audio callback or queue audio with SDL_QueueAudio(), |
| | | * but not both. |
| | | * You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use |
| | | * the audio callback, but not both. |
| | | * |
| | | * You should not call SDL_LockAudio() on the device before querying; SDL |
| | | * handles locking internally for this function. |
| | |
| | | extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); |
| | | |
| | | /** |
| | | * Drop any queued audio data waiting to be sent to the hardware. |
| | | * Drop any queued audio data. For playback devices, this is any queued data |
| | | * still waiting to be submitted to the hardware. For capture devices, this |
| | | * is any data that was queued by the device that hasn't yet been dequeued by |
| | | * the application. |
| | | * |
| | | * Immediately after this call, SDL_GetQueuedAudioSize() will return 0 and |
| | | * the hardware will start playing silence if more audio isn't queued. |
| | | * Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For |
| | | * playback devices, the hardware will start playing silence if more audio |
| | | * isn't queued. Unpaused capture devices will start filling the queue again |
| | | * as soon as they have more data available (which, depending on the state |
| | | * of the hardware and the thread, could be before this function call |
| | | * returns!). |
| | | * |
| | | * This will not prevent playback of queued audio that's already been sent |
| | | * to the hardware, as we can not undo that, so expect there to be some |
| | |
| | | * |
| | | * You may not queue audio on a device that is using an application-supplied |
| | | * callback; calling this function on such a device is always a no-op. |
| | | * You have to use the audio callback or queue audio with SDL_QueueAudio(), |
| | | * but not both. |
| | | * You have to queue audio with SDL_QueueAudio()/SDL_DequeueAudio(), or use |
| | | * the audio callback, but not both. |
| | | * |
| | | * You should not call SDL_LockAudio() on the device before clearing the |
| | | * queue; SDL handles locking internally for this function. |
| | |
| | | #define HAVE_LIBUDEV_H 1 |
| | | #define HAVE_DBUS_DBUS_H 1 |
| | | #define HAVE_IBUS_IBUS_H 1 |
| | | /* #undef HAVE_FCITX_FRONTEND_H */ |
| | | |
| | | /* C library functions */ |
| | | #define HAVE_MALLOC 1 |
| | |
| | | #define SDL_VIDEO_DRIVER_X11_XSHAPE 1 |
| | | #define SDL_VIDEO_DRIVER_X11_XVIDMODE 1 |
| | | #define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 |
| | | #define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 1 |
| | | #define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1 |
| | | #define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 |
| | | /* #undef SDL_VIDEO_DRIVER_NACL */ |
| | |
| | | #define SDL_ASSEMBLY_ROUTINES 1 |
| | | /* #undef SDL_ALTIVEC_BLITTERS */ |
| | | |
| | | /* Enable ime support */ |
| | | #define SDL_USE_IME 1 |
| | | |
| | | #endif /* _SDL_config_linux_h */ |
| | |
| | | |
| | | /* Drag and drop events */ |
| | | SDL_DROPFILE = 0x1000, /**< The system requests a file open */ |
| | | SDL_DROPTEXT, /**< text/plain drag-and-drop event */ |
| | | SDL_DROPBEGIN, /**< A new set of drops is beginning (NULL filename) */ |
| | | SDL_DROPCOMPLETE, /**< Current set of drops is now complete (NULL filename) */ |
| | | |
| | | /* Audio hotplug events */ |
| | | SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ |
| | |
| | | */ |
| | | typedef struct SDL_DropEvent |
| | | { |
| | | Uint32 type; /**< ::SDL_DROPFILE */ |
| | | Uint32 type; /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ |
| | | Uint32 timestamp; |
| | | char *file; /**< The file name, which should be freed with SDL_free() */ |
| | | char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ |
| | | Uint32 windowID; /**< The window that was dropped on, if any */ |
| | | } SDL_DropEvent; |
| | | |
| | | |
| | |
| | | * } |
| | | * } |
| | | * |
| | | * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: |
| | | * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: |
| | | * guid,name,mappings |
| | | * |
| | | * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. |
| | |
| | | /** |
| | | * Get a mapping string for a GUID |
| | | * |
| | | * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available |
| | | * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available |
| | | */ |
| | | extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); |
| | | |
| | | /** |
| | | * Get a mapping string for an open GameController |
| | | * |
| | | * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available |
| | | * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available |
| | | */ |
| | | extern DECLSPEC char * SDLCALL SDL_GameControllerMapping( SDL_GameController * gamecontroller ); |
| | | |
| | |
| | | * |
| | | * \sa SDL_HapticCondition |
| | | */ |
| | | #define SDL_HAPTIC_CONSTANT (1<<0) |
| | | #define SDL_HAPTIC_CONSTANT (1u<<0) |
| | | |
| | | /** |
| | | * \brief Sine wave effect supported. |
| | |
| | | * |
| | | * \sa SDL_HapticPeriodic |
| | | */ |
| | | #define SDL_HAPTIC_SINE (1<<1) |
| | | #define SDL_HAPTIC_SINE (1u<<1) |
| | | |
| | | /** |
| | | * \brief Left/Right effect supported. |
| | |
| | | * \warning this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, |
| | | * we ran out of bits, and this is important for XInput devices. |
| | | */ |
| | | #define SDL_HAPTIC_LEFTRIGHT (1<<2) |
| | | #define SDL_HAPTIC_LEFTRIGHT (1u<<2) |
| | | |
| | | /* !!! FIXME: put this back when we have more bits in 2.1 */ |
| | | /* #define SDL_HAPTIC_SQUARE (1<<2) */ |
| | |
| | | * |
| | | * \sa SDL_HapticPeriodic |
| | | */ |
| | | #define SDL_HAPTIC_TRIANGLE (1<<3) |
| | | #define SDL_HAPTIC_TRIANGLE (1u<<3) |
| | | |
| | | /** |
| | | * \brief Sawtoothup wave effect supported. |
| | |
| | | * |
| | | * \sa SDL_HapticPeriodic |
| | | */ |
| | | #define SDL_HAPTIC_SAWTOOTHUP (1<<4) |
| | | #define SDL_HAPTIC_SAWTOOTHUP (1u<<4) |
| | | |
| | | /** |
| | | * \brief Sawtoothdown wave effect supported. |
| | |
| | | * |
| | | * \sa SDL_HapticPeriodic |
| | | */ |
| | | #define SDL_HAPTIC_SAWTOOTHDOWN (1<<5) |
| | | #define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5) |
| | | |
| | | /** |
| | | * \brief Ramp effect supported. |
| | |
| | | * |
| | | * \sa SDL_HapticRamp |
| | | */ |
| | | #define SDL_HAPTIC_RAMP (1<<6) |
| | | #define SDL_HAPTIC_RAMP (1u<<6) |
| | | |
| | | /** |
| | | * \brief Spring effect supported - uses axes position. |
| | |
| | | * |
| | | * \sa SDL_HapticCondition |
| | | */ |
| | | #define SDL_HAPTIC_SPRING (1<<7) |
| | | #define SDL_HAPTIC_SPRING (1u<<7) |
| | | |
| | | /** |
| | | * \brief Damper effect supported - uses axes velocity. |
| | |
| | | * |
| | | * \sa SDL_HapticCondition |
| | | */ |
| | | #define SDL_HAPTIC_DAMPER (1<<8) |
| | | #define SDL_HAPTIC_DAMPER (1u<<8) |
| | | |
| | | /** |
| | | * \brief Inertia effect supported - uses axes acceleration. |
| | |
| | | * |
| | | * \sa SDL_HapticCondition |
| | | */ |
| | | #define SDL_HAPTIC_INERTIA (1<<9) |
| | | #define SDL_HAPTIC_INERTIA (1u<<9) |
| | | |
| | | /** |
| | | * \brief Friction effect supported - uses axes movement. |
| | |
| | | * |
| | | * \sa SDL_HapticCondition |
| | | */ |
| | | #define SDL_HAPTIC_FRICTION (1<<10) |
| | | #define SDL_HAPTIC_FRICTION (1u<<10) |
| | | |
| | | /** |
| | | * \brief Custom effect is supported. |
| | | * |
| | | * User defined custom haptic effect. |
| | | */ |
| | | #define SDL_HAPTIC_CUSTOM (1<<11) |
| | | #define SDL_HAPTIC_CUSTOM (1u<<11) |
| | | |
| | | /* @} *//* Haptic effects */ |
| | | |
| | |
| | | * |
| | | * \sa SDL_HapticSetGain |
| | | */ |
| | | #define SDL_HAPTIC_GAIN (1<<12) |
| | | #define SDL_HAPTIC_GAIN (1u<<12) |
| | | |
| | | /** |
| | | * \brief Device can set autocenter. |
| | |
| | | * |
| | | * \sa SDL_HapticSetAutocenter |
| | | */ |
| | | #define SDL_HAPTIC_AUTOCENTER (1<<13) |
| | | #define SDL_HAPTIC_AUTOCENTER (1u<<13) |
| | | |
| | | /** |
| | | * \brief Device can be queried for effect status. |
| | |
| | | * |
| | | * \sa SDL_HapticGetEffectStatus |
| | | */ |
| | | #define SDL_HAPTIC_STATUS (1<<14) |
| | | #define SDL_HAPTIC_STATUS (1u<<14) |
| | | |
| | | /** |
| | | * \brief Device can be paused. |
| | |
| | | * \sa SDL_HapticPause |
| | | * \sa SDL_HapticUnpause |
| | | */ |
| | | #define SDL_HAPTIC_PAUSE (1<<15) |
| | | #define SDL_HAPTIC_PAUSE (1u<<15) |
| | | |
| | | |
| | | /** |
| | |
| | | #define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" |
| | | |
| | | /** |
| | | * \brief A variable controlling whether relative mouse mode is implemented using mouse warping |
| | | * |
| | | * This variable can be set to the following values: |
| | | * "0" - Relative mouse mode uses raw input |
| | | * "1" - Relative mouse mode uses mouse warping |
| | | * |
| | | * By default SDL will use raw input for relative mouse mode |
| | | */ |
| | | * \brief A variable controlling whether relative mouse mode is implemented using mouse warping |
| | | * |
| | | * This variable can be set to the following values: |
| | | * "0" - Relative mouse mode uses raw input |
| | | * "1" - Relative mouse mode uses mouse warping |
| | | * |
| | | * By default SDL will use raw input for relative mouse mode |
| | | */ |
| | | #define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" |
| | | |
| | | /** |
| | | * \brief Allow mouse click events when clicking to focus an SDL window |
| | | * |
| | | * This variable can be set to the following values: |
| | | * "0" - Ignore mouse clicks that activate a window |
| | | * "1" - Generate events for mouse clicks that activate a window |
| | | * |
| | | * By default SDL will ignore mouse clicks that activate a window |
| | | */ |
| | | #define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" |
| | | |
| | | /** |
| | | * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. |
| | |
| | | * this is problematic. This functionality can be disabled by setting this |
| | | * hint. |
| | | * |
| | | * As of SDL 2.0.4, SDL_EnableScreenSaver and SDL_DisableScreenSaver accomplish |
| | | * the same thing on iOS. They should be preferred over this hint. |
| | | * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() |
| | | * accomplish the same thing on iOS. They should be preferred over this hint. |
| | | * |
| | | * This variable can be set to the following values: |
| | | * "0" - Enable idle timer |
| | |
| | | * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" |
| | | */ |
| | | #define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" |
| | | |
| | | |
| | | /** |
| | | * \brief A variable controlling whether controllers used with the Apple TV |
| | | * generate UI events. |
| | | * |
| | | * When UI events are generated by controller input, the app will be |
| | | * backgrounded when the Apple TV remote's menu button is pressed, and when the |
| | | * pause or B buttons on gamepads are pressed. |
| | | * |
| | | * More information about properly making use of controllers for the Apple TV |
| | | * can be found here: |
| | | * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ |
| | | * |
| | | * This variable can be set to the following values: |
| | | * "0" - Controller input does not generate UI events (the default). |
| | | * "1" - Controller input generates UI events. |
| | | */ |
| | | #define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" |
| | | |
| | | /** |
| | | * \brief A variable controlling whether the Apple TV remote's joystick axes |
| | | * will automatically match the rotation of the remote. |
| | | * |
| | | * This variable can be set to the following values: |
| | | * "0" - Remote orientation does not affect joystick axes (the default). |
| | | * "1" - Joystick axes are based on the orientation of the remote. |
| | | */ |
| | | #define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" |
| | | |
| | | /** |
| | | * \brief A variable controlling whether the Android / iOS built-in |
| | | * accelerometer should be listed as a joystick device, rather than listing |
| | |
| | | * Use this hint in case you need to set SDL's threads stack size to other than the default. |
| | | * This is specially useful if you build SDL against a non glibc libc library (such as musl) which |
| | | * provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). |
| | | * Support for this hint is currently available only in the pthread backend. |
| | | * Support for this hint is currently available only in the pthread, Windows, and PSP backend. |
| | | */ |
| | | #define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" |
| | | |
| | |
| | | * privacy policy. |
| | | * |
| | | * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL |
| | | * before calling any SDL_Init functions. The contents of the hint should |
| | | * before calling any SDL_Init() functions. The contents of the hint should |
| | | * be a valid URL. For example, "http://www.example.com". |
| | | * |
| | | * The default value is "", which will prevent SDL from adding a privacy policy |
| | |
| | | * The contents of this hint should be encoded as a UTF8 string. |
| | | * |
| | | * The default value is "Privacy Policy". This hint should only be set during app |
| | | * initialization, preferably before any calls to SDL_Init. |
| | | * initialization, preferably before any calls to SDL_Init(). |
| | | * |
| | | * For additional information on linking to a privacy policy, see the documentation for |
| | | * SDL_HINT_WINRT_PRIVACY_POLICY_URL. |
| | |
| | | #define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" |
| | | |
| | | /** |
| | | * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs. |
| | | * |
| | | * The bitmap header version 4 is required for proper alpha channel support and |
| | | * SDL will use it when required. Should this not be desired, this hint can |
| | | * force the use of the 40 byte header version which is supported everywhere. |
| | | * |
| | | * The variable can be set to the following values: |
| | | * "0" - Surfaces with a colorkey or an alpha channel are saved to a |
| | | * 32-bit BMP file with an alpha mask. SDL will use the bitmap |
| | | * header version 4 and set the alpha mask accordingly. |
| | | * "1" - Surfaces with a colorkey or an alpha channel are saved to a |
| | | * 32-bit BMP file without an alpha mask. The alpha channel data |
| | | * will be in the file, but applications are going to ignore it. |
| | | * |
| | | * The default value is "0". |
| | | */ |
| | | #define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" |
| | | |
| | | /** |
| | | * \brief Tell SDL not to name threads on Windows. |
| | | * |
| | | * The variable can be set to the following values: |
| | | * "0" - SDL will raise the 0x406D1388 Exception to name threads. |
| | | * This is the default behavior of SDL <= 2.0.4. (default) |
| | | * "1" - SDL will not raise this exception, and threads will be unnamed. |
| | | * For .NET languages this is required when running under a debugger. |
| | | */ |
| | | #define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" |
| | | |
| | | /** |
| | | * \brief Tell SDL which Dispmanx layer to use on a Raspberry PI |
| | | * |
| | | * Also known as Z-order. The variable can take a negative or positive value. |
| | | * The default is 10000. |
| | | */ |
| | | #define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" |
| | | |
| | | /** |
| | | * \brief An enumeration of hint priorities |
| | | */ |
| | | typedef enum |
| | |
| | | extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); |
| | | |
| | | /** |
| | | * \brief Get a hint |
| | | * |
| | | * \return The boolean value of a hint variable. |
| | | */ |
| | | extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); |
| | | |
| | | /** |
| | | * \brief Add a function to watch a particular hint |
| | | * |
| | | * \param name The hint to watch |
| | |
| | | * |
| | | * Include file for SDL joystick event handling |
| | | * |
| | | * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks, with the exact joystick |
| | | * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks(), with the exact joystick |
| | | * behind a device_index changing as joysticks are plugged and unplugged. |
| | | * |
| | | * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted |
| | |
| | | * copy it. If the key doesn't have a name, this function returns an |
| | | * empty string (""). |
| | | * |
| | | * \sa SDL_Key |
| | | * \sa SDL_Keycode |
| | | */ |
| | | extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); |
| | | |
| | |
| | | /* On Android SDL provides a Java class in SDLActivity.java that is the |
| | | main activity entry point. |
| | | |
| | | See README-android.txt for more details on extending that class. |
| | | See README-android.md for more details on extending that class. |
| | | */ |
| | | #define SDL_MAIN_NEEDED |
| | | |
| | |
| | | typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */ |
| | | |
| | | /** |
| | | * \brief Cursor types for SDL_CreateSystemCursor. |
| | | * \brief Cursor types for SDL_CreateSystemCursor(). |
| | | */ |
| | | typedef enum |
| | | { |
| | |
| | | extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); |
| | | |
| | | /** |
| | | * \brief Frees a cursor created with SDL_CreateCursor(). |
| | | * \brief Frees a cursor created with SDL_CreateCursor() or similar functions. |
| | | * |
| | | * \sa SDL_CreateCursor() |
| | | * \sa SDL_CreateColorCursor() |
| | | * \sa SDL_CreateSystemCursor() |
| | | */ |
| | | extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); |
| | | |
| | |
| | | * |
| | | * This is a simple file to encapsulate the OpenGL ES 1.X API headers. |
| | | */ |
| | | #include "SDL_config.h" |
| | | |
| | | #ifdef __IPHONEOS__ |
| | | #include <OpenGLES/ES1/gl.h> |
| | |
| | | * |
| | | * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. |
| | | */ |
| | | #include "SDL_config.h" |
| | | |
| | | #ifndef _MSC_VER |
| | | |
| | | #ifdef __IPHONEOS__ |
| | |
| | | #define _SDL_pixels_h |
| | | |
| | | #include "SDL_stdinc.h" |
| | | #include "SDL_endian.h" |
| | | |
| | | #include "begin_code.h" |
| | | /* Set up for C function definitions, even when using C++ */ |
| | |
| | | SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, |
| | | SDL_PACKEDLAYOUT_2101010, 32, 4), |
| | | |
| | | /* Aliases for RGBA byte arrays of color data, for the current platform */ |
| | | #if SDL_BYTEORDER == SDL_BIG_ENDIAN |
| | | SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888, |
| | | SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888, |
| | | SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888, |
| | | SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888, |
| | | #else |
| | | SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888, |
| | | SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888, |
| | | SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888, |
| | | SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888, |
| | | #endif |
| | | |
| | | SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ |
| | | SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), |
| | | SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ |
| | |
| | | /* lets us know what version of Mac OS X we're compiling on */ |
| | | #include "AvailabilityMacros.h" |
| | | #include "TargetConditionals.h" |
| | | #if TARGET_OS_TV |
| | | #undef __TVOS__ |
| | | #define __TVOS__ 1 |
| | | #endif |
| | | #if TARGET_OS_IPHONE |
| | | /* if compiling for iPhone */ |
| | | /* if compiling for iOS */ |
| | | #undef __IPHONEOS__ |
| | | #define __IPHONEOS__ 1 |
| | | #undef __MACOSX__ |
| | | #else |
| | | /* if not compiling for iPhone */ |
| | | /* if not compiling for iOS */ |
| | | #undef __MACOSX__ |
| | | #define __MACOSX__ 1 |
| | | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 |
| | | # error SDL for Mac OS X only supports deploying on 10.5 and above. |
| | | #endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1050 */ |
| | | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 |
| | | # error SDL for Mac OS X only supports deploying on 10.6 and above. |
| | | #endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */ |
| | | #endif /* TARGET_OS_IPHONE */ |
| | | #endif /* defined(__APPLE__) */ |
| | | |
| | |
| | | extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); |
| | | |
| | | /** |
| | | * \brief Set whether to force integer scales for resolution-independent rendering |
| | | * |
| | | * \param renderer The renderer for which integer scaling should be set. |
| | | * \param enable Enable or disable integer scaling |
| | | * |
| | | * This function restricts the logical viewport to integer values - that is, when |
| | | * a resolution is between two multiples of a logical size, the viewport size is |
| | | * rounded down to the lower multiple. |
| | | * |
| | | * \sa SDL_RenderSetLogicalSize() |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_RenderSetIntegerScale(SDL_Renderer * renderer, |
| | | SDL_bool enable); |
| | | |
| | | /** |
| | | * \brief Get whether integer scales are forced for resolution-independent rendering |
| | | * |
| | | * \param renderer The renderer from which integer scaling should be queried. |
| | | * |
| | | * \sa SDL_RenderSetIntegerScale() |
| | | */ |
| | | extern DECLSPEC SDL_bool SDLCALL SDL_RenderGetIntegerScale(SDL_Renderer * renderer); |
| | | |
| | | /** |
| | | * \brief Set the drawing area for rendering on the current target. |
| | | * |
| | | * \param renderer The renderer for which the drawing area should be set. |
| | |
| | | /** |
| | | * \brief Clear the current rendering target with the drawing color |
| | | * |
| | | * This function clears the entire rendering target, ignoring the viewport. |
| | | * This function clears the entire rendering target, ignoring the viewport and |
| | | * the clip rectangle. |
| | | * |
| | | * \return 0 on success, or -1 on error |
| | | */ |
| | |
| | | #endif |
| | | |
| | | /* RWops Types */ |
| | | #define SDL_RWOPS_UNKNOWN 0 /* Unknown stream type */ |
| | | #define SDL_RWOPS_WINFILE 1 /* Win32 file */ |
| | | #define SDL_RWOPS_STDFILE 2 /* Stdio file */ |
| | | #define SDL_RWOPS_JNIFILE 3 /* Android asset */ |
| | | #define SDL_RWOPS_MEMORY 4 /* Memory stream */ |
| | | #define SDL_RWOPS_MEMORY_RO 5 /* Read-Only memory stream */ |
| | | #define SDL_RWOPS_UNKNOWN 0U /* Unknown stream type */ |
| | | #define SDL_RWOPS_WINFILE 1U /* Win32 file */ |
| | | #define SDL_RWOPS_STDFILE 2U /* Stdio file */ |
| | | #define SDL_RWOPS_JNIFILE 3U /* Android asset */ |
| | | #define SDL_RWOPS_MEMORY 4U /* Memory stream */ |
| | | #define SDL_RWOPS_MEMORY_RO 5U /* Read-Only memory stream */ |
| | | |
| | | /** |
| | | * This is the read/write operation structure -- very basic. |
| | |
| | | #ifdef HAVE_FLOAT_H |
| | | # include <float.h> |
| | | #endif |
| | | #if defined(HAVE_ICONV) && defined(HAVE_ICONV_H) |
| | | # include <iconv.h> |
| | | #endif |
| | | |
| | | /** |
| | | * The number of elements in an array. |
| | |
| | | #define SDL_TABLESIZE(table) SDL_arraysize(table) |
| | | |
| | | /** |
| | | * Macro useful for building other macros with strings in them |
| | | * |
| | | * e.g. #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n") |
| | | */ |
| | | #define SDL_STRINGIFY_ARG(arg) #arg |
| | | |
| | | /** |
| | | * \name Cast operators |
| | | * |
| | | * Use proper C++ casts when compiled as C++ to be compatible with the option |
| | |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface |
| | | (Uint32 flags, int width, int height, int depth, |
| | | Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat |
| | | (Uint32 flags, int width, int height, int depth, Uint32 format); |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, |
| | | int width, |
| | | int height, |
| | |
| | | Uint32 Gmask, |
| | | Uint32 Bmask, |
| | | Uint32 Amask); |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom |
| | | (void *pixels, int width, int height, int depth, int pitch, Uint32 format); |
| | | extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); |
| | | |
| | | /** |
| | |
| | | /** |
| | | * Save a surface to a seekable SDL data stream (memory or file). |
| | | * |
| | | * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the |
| | | * BMP directly. Other RGB formats with 8-bit or higher get converted to a |
| | | * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit |
| | | * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are |
| | | * not supported. |
| | | * |
| | | * If \c freedst is non-zero, the stream will be closed after being written. |
| | | * |
| | | * \return 0 if successful or -1 if there was an error. |
| | |
| | | typedef void *EGLSurface; |
| | | #endif |
| | | |
| | | #if defined(SDL_VIDEO_DRIVER_VIVANTE) |
| | | #include "SDL_egl.h" |
| | | #endif |
| | | |
| | | /** |
| | | * These are the various supported windowing subsystems |
| | | */ |
| | |
| | | SDL_SYSWM_WAYLAND, |
| | | SDL_SYSWM_MIR, |
| | | SDL_SYSWM_WINRT, |
| | | SDL_SYSWM_ANDROID |
| | | SDL_SYSWM_ANDROID, |
| | | SDL_SYSWM_VIVANTE |
| | | } SDL_SYSWM_TYPE; |
| | | |
| | | /** |
| | |
| | | int dummy; |
| | | /* No UIKit window events yet */ |
| | | } uikit; |
| | | #endif |
| | | #if defined(SDL_VIDEO_DRIVER_VIVANTE) |
| | | struct |
| | | { |
| | | int dummy; |
| | | /* No Vivante window events yet */ |
| | | } vivante; |
| | | #endif |
| | | /* Can't have an empty union */ |
| | | int dummy; |
| | |
| | | } android; |
| | | #endif |
| | | |
| | | #if defined(SDL_VIDEO_DRIVER_VIVANTE) |
| | | struct |
| | | { |
| | | EGLNativeDisplayType display; |
| | | EGLNativeWindowType window; |
| | | } vivante; |
| | | #endif |
| | | |
| | | /* Can't have an empty union */ |
| | | int dummy; |
| | | } info; |
| | |
| | | */ |
| | | #define SDL_MAJOR_VERSION 2 |
| | | #define SDL_MINOR_VERSION 0 |
| | | #define SDL_PATCHLEVEL 4 |
| | | #define SDL_PATCHLEVEL 5 |
| | | |
| | | /** |
| | | * \brief Macro to determine SDL version program was compiled against. |
| | |
| | | * \sa SDL_SetWindowPosition() |
| | | * \sa SDL_SetWindowSize() |
| | | * \sa SDL_SetWindowBordered() |
| | | * \sa SDL_SetWindowResizable() |
| | | * \sa SDL_SetWindowTitle() |
| | | * \sa SDL_ShowWindow() |
| | | */ |
| | |
| | | */ |
| | | typedef enum |
| | | { |
| | | /* !!! FIXME: change this to name = (1<<x). */ |
| | | SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ |
| | | SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ |
| | | SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ |
| | |
| | | SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), |
| | | SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ |
| | | SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported */ |
| | | SDL_WINDOW_MOUSE_CAPTURE = 0x00004000 /**< window has mouse captured (unrelated to INPUT_GRABBED) */ |
| | | SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to INPUT_GRABBED) */ |
| | | SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ |
| | | SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ |
| | | SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ |
| | | SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ |
| | | SDL_WINDOW_POPUP_MENU = 0x00080000 /**< window should be treated as a popup menu */ |
| | | } SDL_WindowFlags; |
| | | |
| | | /** |
| | | * \brief Used to indicate that you don't care what the window position is. |
| | | */ |
| | | #define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000 |
| | | #define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u |
| | | #define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X) (SDL_WINDOWPOS_UNDEFINED_MASK|(X)) |
| | | #define SDL_WINDOWPOS_UNDEFINED SDL_WINDOWPOS_UNDEFINED_DISPLAY(0) |
| | | #define SDL_WINDOWPOS_ISUNDEFINED(X) \ |
| | |
| | | /** |
| | | * \brief Used to indicate that the window position should be centered. |
| | | */ |
| | | #define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000 |
| | | #define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000u |
| | | #define SDL_WINDOWPOS_CENTERED_DISPLAY(X) (SDL_WINDOWPOS_CENTERED_MASK|(X)) |
| | | #define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0) |
| | | #define SDL_WINDOWPOS_ISCENTERED(X) \ |
| | |
| | | SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ |
| | | SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ |
| | | SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ |
| | | SDL_WINDOWEVENT_CLOSE /**< The window manager requests that the |
| | | window be closed */ |
| | | SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */ |
| | | SDL_WINDOWEVENT_TAKE_FOCUS, /**< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) */ |
| | | SDL_WINDOWEVENT_HIT_TEST /**< Window had a hit test that wasn't SDL_HITTEST_NORMAL. */ |
| | | } SDL_WindowEventID; |
| | | |
| | | /** |
| | |
| | | extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi); |
| | | |
| | | /** |
| | | * \brief Get the usable desktop area represented by a display, with the |
| | | * primary display located at 0,0 |
| | | * |
| | | * This is the same area as SDL_GetDisplayBounds() reports, but with portions |
| | | * reserved by the system removed. For example, on Mac OS X, this subtracts |
| | | * the area occupied by the menu bar and dock. |
| | | * |
| | | * Setting a window to be fullscreen generally bypasses these unusable areas, |
| | | * so these are good guidelines for the maximum space available to a |
| | | * non-fullscreen window. |
| | | * |
| | | * \return 0 on success, or -1 if the index is out of range. |
| | | * |
| | | * \sa SDL_GetDisplayBounds() |
| | | * \sa SDL_GetNumVideoDisplays() |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_GetDisplayUsableBounds(int displayIndex, SDL_Rect * rect); |
| | | |
| | | /** |
| | | * \brief Returns the number of available display modes. |
| | | * |
| | | * \sa SDL_GetDisplayMode() |
| | |
| | | * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, |
| | | * ::SDL_WINDOW_ALLOW_HIGHDPI. |
| | | * |
| | | * \return The id of the window created, or zero if window creation failed. |
| | | * \return The created window, or NULL if window creation failed. |
| | | * |
| | | * If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size |
| | | * in pixels may differ from its size in screen coordinates on platforms with |
| | |
| | | * |
| | | * \param data A pointer to driver-dependent window creation data |
| | | * |
| | | * \return The id of the window created, or zero if window creation failed. |
| | | * \return The created window, or NULL if window creation failed. |
| | | * |
| | | * \sa SDL_DestroyWindow() |
| | | */ |
| | |
| | | int *h); |
| | | |
| | | /** |
| | | * \brief Get the size of a window's borders (decorations) around the client area. |
| | | * |
| | | * \param window The window to query. |
| | | * \param top Pointer to variable for storing the size of the top border. NULL is permitted. |
| | | * \param left Pointer to variable for storing the size of the left border. NULL is permitted. |
| | | * \param bottom Pointer to variable for storing the size of the bottom border. NULL is permitted. |
| | | * \param right Pointer to variable for storing the size of the right border. NULL is permitted. |
| | | * |
| | | * \return 0 on success, or -1 if getting this information is not supported. |
| | | * |
| | | * \note if this function fails (returns -1), the size values will be |
| | | * initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as |
| | | * if the window in question was borderless. |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window, |
| | | int *top, int *left, |
| | | int *bottom, int *right); |
| | | |
| | | /** |
| | | * \brief Set the minimum size of a window's client area. |
| | | * |
| | | * \param window The window to set a new minimum size. |
| | |
| | | */ |
| | | extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, |
| | | SDL_bool bordered); |
| | | |
| | | /** |
| | | * \brief Set the user-resizable state of a window. |
| | | * |
| | | * This will add or remove the window's SDL_WINDOW_RESIZABLE flag and |
| | | * allow/disallow user resizing of the window. This is a no-op if the |
| | | * window's resizable state already matches the requested state. |
| | | * |
| | | * \param window The window of which to change the resizable state. |
| | | * \param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow. |
| | | * |
| | | * \note You can't change the resizable state of a fullscreen window. |
| | | * |
| | | * \sa SDL_GetWindowFlags() |
| | | */ |
| | | extern DECLSPEC void SDLCALL SDL_SetWindowResizable(SDL_Window * window, |
| | | SDL_bool resizable); |
| | | |
| | | /** |
| | | * \brief Show a window. |
| | |
| | | * \return 0 on success, or -1 on error. |
| | | * |
| | | * \sa SDL_GetWindowSurface() |
| | | * \sa SDL_UpdateWindowSurfaceRect() |
| | | * \sa SDL_UpdateWindowSurface() |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, |
| | | const SDL_Rect * rects, |
| | |
| | | * \sa SDL_SetWindowBrightness() |
| | | */ |
| | | extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); |
| | | |
| | | /** |
| | | * \brief Set the opacity for a window |
| | | * |
| | | * \param window The window which will be made transparent or opaque |
| | | * \param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be |
| | | * clamped internally between 0.0f and 1.0f. |
| | | * |
| | | * \return 0 on success, or -1 if setting the opacity isn't supported. |
| | | * |
| | | * \sa SDL_GetWindowOpacity() |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_SetWindowOpacity(SDL_Window * window, float opacity); |
| | | |
| | | /** |
| | | * \brief Get the opacity of a window. |
| | | * |
| | | * If transparency isn't supported on this platform, opacity will be reported |
| | | * as 1.0f without error. |
| | | * |
| | | * \param window The window in question. |
| | | * \param out_opacity Opacity (0.0f - transparent, 1.0f - opaque) |
| | | * |
| | | * \return 0 on success, or -1 on error (invalid window, etc). |
| | | * |
| | | * \sa SDL_SetWindowOpacity() |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * out_opacity); |
| | | |
| | | /** |
| | | * \brief Sets the window as a modal for another window (TODO: reconsider this function and/or its name) |
| | | * |
| | | * \param modal_window The window that should be modal |
| | | * \param parent_window The parent window |
| | | * |
| | | * \return 0 on success, or -1 otherwise. |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); |
| | | |
| | | /** |
| | | * \brief Explicitly sets input focus to the window. |
| | | * |
| | | * You almost certainly want SDL_RaiseWindow() instead of this function. Use |
| | | * this with caution, as you might give focus to a window that's completely |
| | | * obscured by other windows. |
| | | * |
| | | * \param window The window that should get the input focus |
| | | * |
| | | * \return 0 on success, or -1 otherwise. |
| | | * \sa SDL_RaiseWindow() |
| | | */ |
| | | extern DECLSPEC int SDLCALL SDL_SetWindowInputFocus(SDL_Window * window); |
| | | |
| | | /** |
| | | * \brief Set the gamma ramp for a window. |
| | |
| | | |
| | | |
| | | /** |
| | | * \brief Returns whether the screensaver is currently enabled (default on). |
| | | * \brief Returns whether the screensaver is currently enabled (default off). |
| | | * |
| | | * \sa SDL_EnableScreenSaver() |
| | | * \sa SDL_DisableScreenSaver() |