All Identifiers

Name Unit Description
aacircleColor sdl2_gfx

AA Circle

aacircleRGBA sdl2_gfx

 

aaellipseColor sdl2_gfx

AA Ellipse

aaellipseRGBA sdl2_gfx

 

aalineColor sdl2_gfx

AA Line

aalineRGBA sdl2_gfx

 

aapolygonColor sdl2_gfx

AA-Polygon

aapolygonRGBA sdl2_gfx

 

aatrigonColor sdl2_gfx

AA-Trigon

aatrigonRGBA sdl2_gfx

 

arcColor sdl2_gfx

Arc

arcRGBA sdl2_gfx

 

AUDIO_F32 sdl2

< As above, but big-endian byte order *

AUDIO_F32LSB sdl2

float32 support

AUDIO_F32MSB sdl2

< 32-bit floating point samples *

AUDIO_S16 sdl2

 

AUDIO_S16LSB sdl2

< Unsigned 16-bit samples *

AUDIO_S16MSB sdl2

< As above, but big-endian byte order *

AUDIO_S32 sdl2

< As above, but big-endian byte order *

AUDIO_S32LSB sdl2

int32 support

AUDIO_S32MSB sdl2

< 32-bit integer samples *

AUDIO_S8 sdl2

< Unsigned 8-bit samples *

AUDIO_U16 sdl2

< As above, but big-endian byte order *

AUDIO_U16LSB sdl2

< Signed 8-bit samples *

AUDIO_U16MSB sdl2

< Signed 16-bit samples *

AUDIO_U8 sdl2

Audio format flags

Defaults to LSB byte order.

bezierColor sdl2_gfx

Bezier

bezierRGBA sdl2_gfx

 

boxColor sdl2_gfx

Filled rectangle (Box)

boxRGBA sdl2_gfx

 

characterColor sdl2_gfx

 

characterRGBA sdl2_gfx

 

circleColor sdl2_gfx

Circle

circleRGBA sdl2_gfx

 

cwchar_t sdl2

wchar_t is the "wide character" type of the C language. The size of this type is platform- and compiler-dependent.

While FPC does have it's own "wide character" type, System.WideChar, that one is defined as always being 16-bits, so we can't re-use it here.

When using FPC on Unices, the UnixType unit provides a wchar_t definition.

On other systems/compiler combos, let's just go by what the CPP reference wiki claims, i.e: - wchar_t is 16-bits on Windows - wchar_t is 32-bits on Linux "and many other non-Windows systems"

See: https://en.cppreference.com/w/cpp/language/types#Character_types

ellipseColor sdl2_gfx

Ellipse

ellipseRGBA sdl2_gfx

 

ERR_MAX_STRLEN sdl2

This file defines a structure that carries language-independent error messages

filledCircleColor sdl2_gfx

Filled Circle

filledCircleRGBA sdl2_gfx

 

filledEllipseColor sdl2_gfx

Filled Ellipse

filledEllipseRGBA sdl2_gfx

 

filledPieColor sdl2_gfx

Filled Pie

filledPieRGBA sdl2_gfx

 

filledPolygonColor sdl2_gfx

Filled Polygon

filledPolygonRGBA sdl2_gfx

 

filledTrigonColor sdl2_gfx

Filled Trigon

filledTrigonRGBA sdl2_gfx

 

FPS_DEFAULT sdl2_gfx

! \brief Default rate of framerate controller in Hz (1/s).

FPS_LOWER_LIMIT sdl2_gfx

! \brief Lowest possible rate supported by framerate controller in Hz (1/s).

FPS_UPPER_LIMIT sdl2_gfx

! \brief Highest possible rate supported by framerate controller in Hz (1/s).

gfxPrimitivesSetFont sdl2_gfx

Characters/Strings

gfxPrimitivesSetFontRotation sdl2_gfx

 

hlineColor sdl2_gfx

Horizontal line

hlineRGBA sdl2_gfx

 

IMG_GetError sdl2_image

 

IMG_Init sdl2_image

Loads dynamic libraries and prepares them for use. Flags should be one or more flags from IMG_InitFlags OR'd together. It returns the flags successfully initialized, or 0 on failure.

IMG_INIT_JPG sdl2_image

 

IMG_INIT_PNG sdl2_image

 

IMG_INIT_TIF sdl2_image

 

IMG_INIT_WEBP sdl2_image

 

IMG_isBMP sdl2_image

 

IMG_isCUR sdl2_image

 

IMG_isGIF sdl2_image

 

IMG_isICO sdl2_image

Functions to detect a file type, given a seekable source *

IMG_isJPG sdl2_image

 

IMG_isLBM sdl2_image

 

IMG_isPCX sdl2_image

 

IMG_isPNG sdl2_image

 

IMG_isPNM sdl2_image

 

IMG_isSVG sdl2_image

 

IMG_isTIF sdl2_image

 

IMG_isWEBP sdl2_image

 

IMG_isXCF sdl2_image

 

IMG_isXPM sdl2_image

 

IMG_isXV sdl2_image

 

IMG_Linked_Version sdl2_image

This function gets the version of the dynamically linked SDL_image library.

Note that this function does NOT allocate a new TSDL_Version and fill it with info, but returns a pointer to a TSDL_Version residing inside dynlinked file.

As such, attempting to Dispose() of this memory will result in access violation.

IMG_Load sdl2_image

Convenience functions *

IMG_LoadBMP_RW sdl2_image

 

IMG_LoadCUR_RW sdl2_image

 

IMG_LoadGIF_RW sdl2_image

 

IMG_LoadICO_RW sdl2_image

Individual loading functions *

IMG_LoadJPG_RW sdl2_image

 

IMG_LoadLBM_RW sdl2_image

 

IMG_LoadPCX_RW sdl2_image

 

IMG_LoadPNG_RW sdl2_image

 

IMG_LoadPNM_RW sdl2_image

 

IMG_LoadSVG_RW sdl2_image

 

IMG_LoadTexture sdl2_image

Load an image directly into a render texture. *

IMG_LoadTextureTyped_RW sdl2_image

 

IMG_LoadTexture_RW sdl2_image

 

IMG_LoadTGA_RW sdl2_image

 

IMG_LoadTIF_RW sdl2_image

 

IMG_LoadTyped_RW sdl2_image

Load an image from an SDL data source. The 'type' may be one of: "BMP", "GIF", "PNG", etc.

If the image format supports a transparent pixel, SDL will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling: SDL_SetColorKey(image, SDL_RLEACCEL, image->format->colorkey);

IMG_LoadWEBP_RW sdl2_image

 

IMG_LoadXCF_RW sdl2_image

 

IMG_LoadXPM_RW sdl2_image

 

IMG_LoadXV_RW sdl2_image

 

IMG_Load_RW sdl2_image

 

IMG_Quit sdl2_image

Unloads libraries loaded with IMG_Init *

IMG_ReadXPMFromArray sdl2_image

 

IMG_SaveJPG sdl2_image

 

IMG_SaveJPG_RW sdl2_image

 

IMG_SavePNG sdl2_image

Individual saving functions *

IMG_SavePNG_RW sdl2_image

 

IMG_SetError sdl2_image

We'll use SDL for reporting errors *

INADDR_ANY sdl2_net

Resolve a host name and port to an IP address in network form. If the function succeeds, it will return 0. If the host couldn't be resolved, the host portion of the returned address will be INADDR_NONE, and the function will return -1. If 'host' is NULL, the resolved host will be set to INADDR_ANY.

INADDR_BROADCAST sdl2_net

 

INADDR_LOOPBACK sdl2_net

 

INADDR_NONE sdl2_net

 

KMOD_ALT sdl2

 

KMOD_CAPS sdl2

 

KMOD_CTRL sdl2

 

KMOD_GUI sdl2

 

KMOD_LALT sdl2

 

KMOD_LCTRL sdl2

 

KMOD_LGUI sdl2

 

KMOD_LSHIFT sdl2

 

KMOD_MODE sdl2

 

KMOD_NONE sdl2

 

KMOD_NUM sdl2

 

KMOD_RALT sdl2

 

KMOD_RCTRL sdl2

 

KMOD_RESERVED sdl2

 

KMOD_RGUI sdl2

 

KMOD_RSHIFT sdl2

 

KMOD_SCROLL sdl2

 

KMOD_SHIFT sdl2

 

lineColor sdl2_gfx

Line

lineRGBA sdl2_gfx

 

Mix_AllocateChannels sdl2_mixer

Dynamically change the number of channels managed by the mixer. If decreasing the number of channels, the upper channels are stopped. This function returns the new number of allocated channels.

Mix_ChannelFinished sdl2_mixer

 

MIX_CHANNELS sdl2_mixer

The default mixer has 8 simultaneous mixing channels *

MIX_CHANNEL_POST sdl2_mixer

Special Effects API by ryan c. gordon. (icculus@icculus.org) *

Mix_ClearError sdl2_mixer

 

Mix_CloseAudiocdecl sdl2_mixer

Close the mixer, halting all playing audio *

MIX_DEFAULT_CHANNELS sdl2_mixer

 

MIX_DEFAULT_FREQUENCY sdl2_mixer

Good default values for a PC soundcard *

Mix_EachSoundFont sdl2_mixer

 

MIX_EFFECTSMAXSPEED sdl2_mixer

 

Mix_ExpireChannel sdl2_mixer

Change the expiration delay for a particular channel. The sample will stop playing after the 'ticks' milliseconds have elapsed, or remove the expiration if 'ticks' is -1

Mix_FadeInChannel sdl2_mixer

 

Mix_FadeInChannelTimed sdl2_mixer

 

Mix_FadeInMusic sdl2_mixer

Fade in music or a channel over "ms" milliseconds, same semantics as the "Play" functions *

Mix_FadeInMusicPos sdl2_mixer

 

Mix_FadeOutChannel sdl2_mixer

Halt a channel, fading it out progressively till it's silent The ms parameter indicates the number of milliseconds the fading will take.

Mix_FadeOutGroup sdl2_mixer

 

Mix_FadeOutMusic sdl2_mixer

 

Mix_FadingChannel sdl2_mixer

 

Mix_FadingMusic sdl2_mixer

Query the fading status of a channel *

Mix_FreeChunk sdl2_mixer

Free an audio chunk previously loaded *

Mix_FreeMusic sdl2_mixer

 

Mix_GetChunk sdl2_mixer

Get the Mix_Chunk currently associated with a mixer channel Returns NULL if it's an invalid channel, or there's no chunk associated.

Mix_GetChunkDecoder sdl2_mixer

 

Mix_GetError sdl2_mixer

 

Mix_GetMusicDecoder sdl2_mixer

 

Mix_GetMusicHookData sdl2_mixer

Get a pointer to the user data for the current music hook *

Mix_GetMusicType sdl2_mixer

Find out the music format of a mixer music, or the currently playing music, if 'music' is NULL.

Mix_GetNumChunkDecoders sdl2_mixer

Get a list of chunk/music decoders that this build of SDL_mixer provides. This list can change between builds AND runs of the program, if external libraries that add functionality become available. You must successfully call Mix_OpenAudio() before calling these functions. This API is only available in SDL_mixer 1.2.9 and later.

// usage... int i; const int total = Mix_GetNumChunkDecoders(); for (i = 0; i < total; i++) printf("Supported chunk decoder: [%s]\n", Mix_GetChunkDecoder(i));

Appearing in this list doesn't promise your specific audio file will decode...but it's handy to know if you have, say, a functioning Timidity install.

These return values are static, read-only data; do not modify or free it. The pointers remain valid until you call Mix_CloseAudio().

Mix_GetNumMusicDecoders sdl2_mixer

 

Mix_GetSoundFonts sdl2_mixer

 

Mix_GetSynchroValue sdl2_mixer

 

Mix_GroupAvailable sdl2_mixer

Finds the first available channel in a group of channels, returning -1 if none are available.

Mix_GroupChannel sdl2_mixer

Attach a tag to a channel. A tag can be assigned to several mixer channels, to form groups of channels. If 'tag' is -1, the tag is removed (actually -1 is the tag used to represent the group of all the channels). Returns true if everything was OK.

Mix_GroupChannels sdl2_mixer

Assign several consecutive channels to a group *

Mix_GroupCount sdl2_mixer

Returns the number of channels in a group. This is also a subtle way to get the total number of channels when 'tag' is -1

Mix_GroupNewer sdl2_mixer

Finds the "most recent" (i.e. last) sample playing in a group of channels *

Mix_GroupOldest sdl2_mixer

Finds the "oldest" sample playing in a group of channels *

Mix_HaltChannel sdl2_mixer

Halt playing of a particular channel *

Mix_HaltGroup sdl2_mixer

 

Mix_HaltMusic sdl2_mixer

 

Mix_HasChunkDecoder sdl2_mixer

 

Mix_HasMusicDecoder sdl2_mixer

 

Mix_HookMusic sdl2_mixer

Add your own music player or additional mixer function. If 'mix_func' is NULL, the default music player is re-enabled.

Mix_HookMusicFinished sdl2_mixer

 

Mix_Init sdl2_mixer

Loads dynamic libraries and prepares them for use. Flags should be one or more flags from MIX_InitFlags OR'd together. It returns the flags successfully initialized, or 0 on failure.

MIX_INIT_FLAC sdl2_mixer

 

MIX_INIT_MID sdl2_mixer

 

MIX_INIT_MOD sdl2_mixer

 

MIX_INIT_MP3 sdl2_mixer

 

MIX_INIT_OGG sdl2_mixer

 

MIX_INIT_OPUS sdl2_mixer

 

Mix_Linked_Version sdl2_mixer

This function gets the version of the dynamically linked SDL_mixer library. it should NOT be used to fill a version structure, instead you should use the SDL_MIXER_VERSION() macro.

Mix_LoadMUS sdl2_mixer

 

Mix_LoadMUSType_RW sdl2_mixer

Load a music file from an SDL_RWop object assuming a specific format *

Mix_LoadMUS_RW sdl2_mixer

Load a music file from an SDL_RWop object (Ogg and MikMod specific currently) Matt Campbell (matt@campbellhome.dhs.org) April 2000 *

Mix_LoadWAV sdl2_mixer

 

Mix_LoadWAV_RW sdl2_mixer

Load a wave file or a music (.mod .s3m .it .xm) file *

MIX_MAJOR_VERSION sdl2_mixer

Backwards compatibility *

MIX_MAX_VOLUME sdl2_mixer

 

MIX_MINOR_VERSION sdl2_mixer

 

Mix_OpenAudio sdl2_mixer

Open the mixer with a certain audio format *

MIX_PATCHLEVEL sdl2_mixer

 

Mix_Pause sdl2_mixer

Pause/Resume a particular channel *

Mix_Paused sdl2_mixer

 

Mix_PausedMusic sdl2_mixer

 

Mix_PauseMusiccdecl sdl2_mixer

Pause/Resume the music stream *

Mix_PlayChannel sdl2_mixer

Play an audio chunk on a specific channel. If the specified channel is -1, play on the first free channel. If 'loops' is greater than zero, loop the sound that many times. If 'loops' is -1, loop inifinitely (˜65000 times). Returns which channel was used to play the sound.

Mix_PlayChannelTimed sdl2_mixer

The same as above, but the sound is played at most 'ticks' milliseconds *

Mix_Playing sdl2_mixer

Check the status of a specific channel. If the specified channel is -1, check all channels.

Mix_PlayingMusic sdl2_mixer

 

Mix_PlayMusic sdl2_mixer

 

Mix_QuerySpec sdl2_mixer

Find out what the actual audio device parameters are. This function returns 1 if the audio has been opened, 0 otherwise.

Mix_QuickLoad_RAW sdl2_mixer

Load raw audio data of the mixer format from a memory buffer *

Mix_QuickLoad_WAV sdl2_mixer

Load a wave file of the mixer format from a memory buffer *

Mix_Quit sdl2_mixer

Unloads libraries loaded with Mix_Init *

Mix_RegisterEffect sdl2_mixer

Register a special effect function. At mixing time, the channel data is copied into a buffer and passed through each registered effect function. After it passes through all the functions, it is mixed into the final output stream. The copy to buffer is performed once, then each effect function performs on the output of the previous effect. Understand that this extra copy to a buffer is not performed if there are no effects registered for a given chunk, which saves CPU cycles, and any given effect will be extra cycles, too, so it is crucial that your code run fast. Also note that the data that your function is given is in the format of the sound device, and not the format you gave to Mix_OpenAudio(), although they may in reality be the same. This is an unfortunate but necessary speed concern. Use Mix_QuerySpec() to determine if you can handle the data before you register your effect, and take appropriate actions. You may also specify a callback (Mix_EffectDone_t) that is called when the channel finishes playing. This gives you a more fine-grained control than Mix_ChannelFinished(), in case you need to free effect-specific resources, etc. If you don't need this, you can specify NULL. You may set the callbacks before or after calling Mix_PlayChannel(). Things like Mix_SetPanning() are just internal special effect functions, so if you are using that, you've already incurred the overhead of a copy to a separate buffer, and that these effects will be in the queue with any functions you've registered. The list of registered effects for a channel is reset when a chunk finishes playing, so you need to explicitly set them with each call to Mix_PlayChannel*(). You may also register a special effect function that is to be run after final mixing occurs. The rules for these callbacks are identical to those in Mix_RegisterEffect, but they are run after all the channels and the music have been mixed into a single stream, whereas channel-specific effects run on a given channel before any other mixing occurs. These global effect callbacks are call "posteffects". Posteffects only have their Mix_EffectDone_t function called when they are unregistered (since the main output stream is never "done" in the same sense as a channel). You must unregister them manually when you've had enough. Your callback will be told that the channel being mixed is (MIX_CHANNEL_POST) if the processing is considered a posteffect.

After all these effects have finished processing, the callback registered through Mix_SetPostMix() runs, and then the stream goes to the audio device.

DO NOT EVER call SDL_LockAudio() from your callback function!

returns zero if error (no such channel), nonzero if added. Error messages can be retrieved from Mix_GetError().

Mix_ReserveChannels sdl2_mixer

Reserve the first channels (0 -> n-1) for the application, i.e. don't allocate them dynamically to the next sample if requested with a -1 value below. Returns the number of reserved channels.

Mix_Resume sdl2_mixer

 

Mix_ResumeMusiccdecl sdl2_mixer

 

Mix_RewindMusiccdecl sdl2_mixer

 

Mix_SetDistance sdl2_mixer

Set the "distance" of a channel. (distance) is an integer from 0 to 255 that specifies the location of the sound in relation to the listener. Distance 0 is overlapping the listener, and 255 is as far away as possible A distance of 255 does not guarantee silence; in such a case, you might want to try changing the chunk's volume, or just cull the sample from the mixing process with Mix_HaltChannel(). For efficiency, the precision of this effect may be limited (distances 1 through 7 might all produce the same effect, 8 through 15 are equal, etc). (distance) is an integer between 0 and 255 that specifies the space between the sound and the listener. The larger the number, the further away the sound is. Setting (distance) to 0 unregisters this effect, since the data would be unchanged. If you need more precise positional audio, consider using OpenAL for spatialized effects instead of SDL_mixer. This is only meant to be a basic effect for simple "3D" games.

Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and the distance attenuation will be done to the final mixed stream before passing it on to the audio device.

This uses the Mix_RegisterEffect() API internally.

returns zero if error (no such channel or Mix_RegisterEffect() fails), nonzero if position effect is enabled. Error messages can be retrieved from Mix_GetError().

Mix_SetError sdl2_mixer

We'll use SDL for reporting errors *

Mix_SetMusicCMD sdl2_mixer

Stop music and set external music playback command *

Mix_SetMusicPosition sdl2_mixer

Set the current position in the music stream. This returns 0 if successful, or -1 if it failed or isn't implemented. This function is only implemented for MOD music formats (set pattern order number) and for OGG, FLAC, MP3_MAD, MP3_MPG and MODPLUG music (set position in seconds), at the moment.

Mix_SetPanning sdl2_mixer

Set the panning of a channel. The left and right channels are specified as integers between 0 and 255, quietest to loudest, respectively.

Technically, this is just individual volume control for a sample with two (stereo) channels, so it can be used for more than just panning. If you want real panning, call it like this:

Mix_SetPanning(channel, left, 255 - left);

...which isn't so hard.

Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and the panning will be done to the final mixed stream before passing it on to the audio device.

This uses the Mix_RegisterEffect() API internally, and returns without registering the effect function if the audio device is not configured for stereo output. Setting both (left) and (right) to 255 causes this effect to be unregistered, since that is the data's normal state.

returns zero if error (no such channel or Mix_RegisterEffect() fails), nonzero if panning effect enabled. Note that an audio device in mono mode is a no-op, but this call will return successful in that case. Error messages can be retrieved from Mix_GetError().

Mix_SetPosition sdl2_mixer

Set the position of a channel. (angle) is an integer from 0 to 360, that specifies the location of the sound in relation to the listener. (angle) will be reduced as neccesary (540 becomes 180 degrees, -100 becomes 260). Angle 0 is due north, and rotates clockwise as the value increases. For efficiency, the precision of this effect may be limited (angles 1 through 7 might all produce the same effect, 8 through 15 are equal, etc). (distance) is an integer between 0 and 255 that specifies the space between the sound and the listener. The larger the number, the further away the sound is. Using 255 does not guarantee that the channel will be culled from the mixing process or be completely silent. For efficiency, the precision of this effect may be limited (distance 0 through 5 might all produce the same effect, 6 through 10 are equal, etc). Setting (angle) and (distance) to 0 unregisters this effect, since the data would be unchanged.

If you need more precise positional audio, consider using OpenAL for spatialized effects instead of SDL_mixer. This is only meant to be a basic effect for simple "3D" games.

If the audio device is configured for mono output, then you won't get any effectiveness from the angle; however, distance attenuation on the channel will still occur. While this effect will function with stereo voices, it makes more sense to use voices with only one channel of sound, so when they are mixed through this effect, the positioning will sound correct. You can convert them to mono through SDL before giving them to the mixer in the first place if you like.

Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and the positioning will be done to the final mixed stream before passing it on to the audio device.

This is a convenience wrapper over Mix_SetDistance() and Mix_SetPanning().

returns zero if error (no such channel or Mix_RegisterEffect() fails), nonzero if position effect is enabled. Error messages can be retrieved from Mix_GetError().

Mix_SetPostMix sdl2_mixer

 

Mix_SetReverseStereo sdl2_mixer

Causes a channel to reverse its stereo. This is handy if the user has his speakers hooked up backwards, or you would like to have a minor bit of psychedelia in your sound code. :) Calling this function with (flip) set to non-zero reverses the chunks's usual channels. If (flip) is zero, the effect is unregistered.

This uses the Mix_RegisterEffect() API internally, and thus is probably more CPU intensive than having the user just plug in his speakers correctly. Mix_SetReverseStereo() returns without registering the effect function if the audio device is not configured for stereo output.

If you specify MIX_CHANNEL_POST for (channel), then this the effect is used on the final mixed stream before sending it on to the audio device (a posteffect).

returns zero if error (no such channel or Mix_RegisterEffect() fails), nonzero if reversing effect is enabled. Note that an audio device in mono mode is a no-op, but this call will return successful in that case. Error messages can be retrieved from Mix_GetError().

Mix_SetSoundFonts sdl2_mixer

Set/Get/Iterate SoundFonts paths to use by supported MIDI backends *

Mix_SetSynchroValue sdl2_mixer

Synchro value is set by MikMod from modules while playing *

Mix_UnregisterAllEffects sdl2_mixer

You may not need to call this explicitly, unless you need to stop all effects from processing in the middle of a chunk's playback. Note that this will also shut off some internal effect processing, since Mix_SetPanning() and others may use this API under the hood. This is called internally when a channel completes playback. Posteffects are never implicitly unregistered as they are for channels, but they may be explicitly unregistered through this function by specifying MIX_CHANNEL_POST for a channel. returns zero if error (no such channel), nonzero if all effects removed. Error messages can be retrieved from Mix_GetError().

Mix_UnregisterEffect sdl2_mixer

You may not need to call this explicitly, unless you need to stop an effect from processing in the middle of a chunk's playback. Posteffects are never implicitly unregistered as they are for channels, but they may be explicitly unregistered through this function by specifying MIX_CHANNEL_POST for a channel. returns zero if error (no such channel or effect), nonzero if removed. Error messages can be retrieved from Mix_GetError().

MIX_VERSION sdl2_mixer

 

Mix_Volume sdl2_mixer

Set the volume in the range of 0-128 of a specific channel or chunk. If the specified channel is -1, set volume for all channels. Returns the original volume. If the specified volume is -1, just return the current volume.

Mix_VolumeChunk sdl2_mixer

 

Mix_VolumeMusic sdl2_mixer

 

pcwchar_t sdl2

 

PFPSManager sdl2_gfx

 

pieColor sdl2_gfx

Pie

pieRGBA sdl2_gfx

 

PIMG_InitFlags sdl2_image

 

PIPaddress sdl2_net

 

pixelColor sdl2_gfx

Pixel *

pixelRGBA sdl2_gfx

 

PKeyStateArr sdl2

 

PMix_Channel_Finished sdl2_mixer

 

PMix_Chunk sdl2_mixer

 

PMix_EffectDone_t sdl2_mixer

 

PMix_EffectFunc_t sdl2_mixer

 

PMix_Fading sdl2_mixer

 

PMix_Func sdl2_mixer

 

PMIX_InitFlags sdl2_mixer

 

PMix_Music sdl2_mixer

 

PMix_MusicType sdl2_mixer

 

PMix_Music_Finished sdl2_mixer

 

PMix_SoundFunc sdl2_mixer

 

polygonColor sdl2_gfx

Polygon

polygonRGBA sdl2_gfx

 

ppcuint8 sdl2

 

ppcuint8 sdl2_gfx

 

ppcuint8 sdl2_image

 

ppcuint8 sdl2_mixer

 

ppcuint8 sdl2_net

 

ppcuint8 sdl2_ttf

 

PPIMG_InitFlags sdl2_image

 

PPIPaddress sdl2_net

 

PPKeyStateArr sdl2

SDL2-for-Pascal: - Is this type used/needed anywhere? - It doesn't seem to be part of sdl_keyboard.h - If not, should be commented out or deleted

PPMix_Channel_Finished sdl2_mixer

Add your own callback when a channel has finished playing. NULL to disable callback. The callback may be called from the mixer's audio callback or it could be called as a result of Mix_HaltChannel(), etc. do not call SDL_LockAudio() from this callback; you will either be inside the audio callback, or SDL_mixer will explicitly lock the audio before calling your callback.

PPMix_Chunk sdl2_mixer

The internal format for an audio chunk *

PPMix_EffectDone_t sdl2_mixer

This is a callback that signifies that a channel has finished all its loops and has completed playback. This gets called if the buffer plays out normally, or if you call Mix_HaltChannel(), implicitly stop a channel via Mix_AllocateChannels(), or unregister a callback while it's still playing.

DO NOT EVER call SDL_LockAudio() from your callback function!

PPMix_EffectFunc_t sdl2_mixer

This is the format of a special effect callback:

myeffect(int chan, void *stream, int len, void *udata);

(chan) is the channel number that your effect is affecting. (stream) is the buffer of data to work upon. (len) is the size of (stream), and (udata) is a user-defined bit of data, which you pass as the last arg of Mix_RegisterEffect(), and is passed back unmolested to your callback. Your effect changes the contents of (stream) based on whatever parameters are significant, or just leaves it be, if you prefer. You can do whatever you like to the buffer, though, and it will continue in its changed state down the mixing pipeline, through any other effect functions, then finally to be mixed with the rest of the channels and music for the final output stream.

DO NOT EVER call SDL_LockAudio() from your callback function!

PPMix_Fading sdl2_mixer

The different fading types supported *

PPMix_Func sdl2_mixer

Set a function that is called after all mixing is performed. This can be used to provide real-time visual display of the audio stream or add a custom mixer filter for the stream data.

PPMIX_InitFlags sdl2_mixer

// Removed in SDL2_mixer 2.0.2 MIX_INIT_MODPLUG = $00000004; MIX_INIT_FLUIDSYNTH = $00000020;

PPMix_Music sdl2_mixer

The internal format for a music chunk interpreted via mikmod *

PPMix_MusicType sdl2_mixer

 

PPMix_Music_Finished sdl2_mixer

Add your own callback when the music has finished playing or when it is stopped from a call to Mix_HaltMusic.

PPMix_SoundFunc sdl2_mixer

 

PPSDLNet_GenericSocket sdl2_net

Any network socket can be safely cast to this socket type *

PPSDLNet_SocketSet sdl2_net

 

PPSDLNet_Version sdl2_net

 

PPSDL_ArrayOrder sdl2

Array component order, low byte -> high byte. *

PPSDL_Atomic sdl2

A type representing an atomic integer value. It is a record so people don't accidentally use numeric operations on it.

PPSDL_AudioCallback sdl2

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.

You can choose to avoid callbacks and use SDL_QueueAudio() instead, if you like. Just open your audio device with a NULL callback.

PPSDL_AudioCVT sdl2

 

PPSDL_AudioDeviceEvent sdl2

Audio device event structure (event.adevice.*)

PPSDL_AudioDeviceID sdl2

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.

PPSDL_AudioFormat sdl2

Audio format flags.

These are what the 16 bits in SDL_AudioFormat currently mean... (Unspecified bits are always zero).

++———————–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

There are macros in SDL 2.0 and later to query these bits.

PPSDL_AudioSpec sdl2

The calculated values in this structure are calculated by SDL_OpenAudio().

For multi-channel audio, the default SDL channel mapping is: 2: FL FR (stereo) 3: FL FR LFE (2.1 surround) 4: FL FR BL BR (quad) 5: FL FR LFE BL BR (4.1 surround) 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) 7: FL FR FC LFE BC SL SR (6.1 surround) 8: FL FR FC LFE BL BR SL SR (7.1 surround)

PPSDL_AudioStatus sdl2

Audio state

Get the current audio state.

PPSDL_BitmapOrder sdl2

Bitmap pixel order, high bit -> low bit. *

PPSDL_BlendFactor sdl2

\brief The normalized factor used to multiply pixel components

PPSDL_BlendMode sdl2

The blend mode used in SDL_RenderCopy() and drawing operations.

PPSDL_BlendOperation sdl2

\brief The blend operation used when combining source and destination pixel components

PPSDL_Blit sdl2

The type of function used for surface blitting functions.

PPSDL_BlitMap sdl2

A collection of pixels used in software blitting.

This structure should be treated as read-only, except for \c pixels, which, if not NULL, contains the raw pixel data for the surface.

PPSDL_Bool sdl2

SDL-For-Pascal: A lot of the functions are missing. Some functions are useless if working with Pascal (e. g. memory management functions), others could be useful (e. g. math functions).

TODO: Investigate header file and translate potentially useful functions.

PPSDL_calloc_func sdl2

 

PPSDL_Color sdl2

The bits of this structure can be directly reinterpreted as an integer-packed color which uses the SDL_PIXELFORMAT_RGBA32 format (SDL_PIXELFORMAT_ABGR8888 on little-endian systems and SDL_PIXELFORMAT_RGBA8888 on big-endian systems).

PPSDL_Colour sdl2

 

PPSDL_CommonEvent sdl2

Fields shared by every event

PPSDL_Cond sdl2

The SDL condition variable structure, defined in SDL_cond.c

PPSDL_ControllerAxisEvent sdl2

Game controller axis motion event structure (event.caxis.*)

PPSDL_ControllerButtonEvent sdl2

Game controller button event structure (event.cbutton.*)

PPSDL_ControllerDeviceEvent sdl2

Controller device event structure (event.cdevice.*)

PPSDL_ControllerSensorEvent sdl2

Game controller sensor event structure (event.csensor.*)

PPSDL_ControllerTouchpadEvent sdl2

Game controller touchpad event structure (event.ctouchpad.*)

PPSDL_Cursor sdl2

2.24.1 from "sdl_mouse.h"

PPSDL_DisplayEvent sdl2

Display state change event data (event.display.*)

PPSDL_DisplayEventID sdl2

\brief Event subtype for display events

PPSDL_DisplayMode sdl2

The structure that defines a display mode

SDL_GetNumDisplayModes() SDL_GetDisplayMode() SDL_GetDesktopDisplayMode() SDL_GetCurrentDisplayMode() SDL_GetClosestDisplayMode() SDL_SetWindowDisplayMode() SDL_GetWindowDisplayMode()

PPSDL_DisplayOrientation sdl2

< Display has been removed from the system *

PPSDL_DollarGestureEvent sdl2

(event.dgesture.*) *

PPSDL_DropEvent sdl2

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() If you enable this event, you must free the filename in the event.

PPSDL_Error sdl2

ERR_MAX_ARGS = 5; { Obsolete in 2.0.14? }

PPSDL_ErrorCode sdl2

#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) #define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) #define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param))

PPSDL_Event sdl2

General event structure

PPSDL_EventAction sdl2

 

PPSDL_EventFilter sdl2

 

PPSDL_EventType sdl2

2.26.5 from "sdl_events.h"

PPSDL_Finger sdl2

trackpad with relative device coordinates *

PPSDL_FingerID sdl2

 

PPSDL_FlashOperation sdl2

\brief Window flash operation

PPSDL_FPoint sdl2

\brief The structure that defines a point (floating point)

\sa SDL_EnclosePoints \sa SDL_PointInRect

PPSDL_FRect sdl2

A rectangle, with the origin at the upper left. (floating point)

PPSDL_free_func sdl2

 

PPSDL_GameController sdl2

The gamecontroller structure used to identify an SDL game controller *

PPSDL_GameControllerAxis sdl2

The list of axes available from a controller

PPSDL_GameControllerBindType sdl2

 

PPSDL_GameControllerButton sdl2

The list of buttons available from a controller

PPSDL_GameControllerButtonBind sdl2

 

PPSDL_GameControllerType sdl2

 

PPSDL_GestureID sdl2

2.24.0 from "sdl_gesture.h"

PPSDL_GLattr sdl2

OpenGL configuration attributes

PPSDL_GLContext sdl2

An opaque handle to an OpenGL context.

PPSDL_GLcontextFlag sdl2

 

PPSDL_GLcontextReleaseFlag sdl2

 

PPSDL_GLContextResetNotification sdl2

 

PPSDL_GLprofile sdl2

 

PPSDL_GUID sdl2

An SDL_GUID is a 128-bit identifier for an input device that identifies that device across runs of SDL programs on the same platform. If the device is detached and then re-attached to a different port, or if the base system is rebooted, the device should still report the same GUID.

GUIDs are as precise as possible but are not guaranteed to distinguish physically distinct but equivalent devices. For example, two game controllers from the same vendor with the same product ID and revision may have the same GUID.

GUIDs may be platform-dependent (i.e., the same device may report different GUIDs on different operating systems).

PPSDL_Haptic sdl2

SDL_Haptic

The haptic structure used to identify an SDL haptic.

SDL_HapticOpen SDL_HapticOpenFromJoystick SDL_HapticClose

PPSDL_HapticCondition sdl2

A structure containing a template for a Condition effect.

The struct handles the following effects: - SDL_HAPTIC_SPRING: Effect based on axes position. - SDL_HAPTIC_DAMPER: Effect based on axes velocity. - SDL_HAPTIC_INERTIA: Effect based on axes acceleration. - SDL_HAPTIC_FRICTION: Effect based on axes movement.

Direction is handled by condition internals instead of a direction member. The condition effect specific members have three parameters. The first refers to the X axis, the second refers to the Y axis and the third refers to the Z axis. The right terms refer to the positive side of the axis and the left terms refer to the negative side of the axis. Please refer to the ::SDL_HapticDirection diagram for which side is positive and which is negative.

SDL_HapticDirection SDL_HAPTIC_SPRING SDL_HAPTIC_DAMPER SDL_HAPTIC_INERTIA SDL_HAPTIC_FRICTION SDL_HapticEffect

PPSDL_HapticConstant sdl2

A structure containing a template for a Constant effect.

The struct is exclusive to the ::SDL_HAPTIC_CONSTANT effect.

A constant effect applies a constant force in the specified direction to the joystick.

SDL_HAPTIC_CONSTANT SDL_HapticEffect

PPSDL_HapticCustom sdl2

A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect.

A custom force feedback effect is much like a periodic effect, where the application can define its exact shape. You will have to allocate the data yourself. Data should consist of channels * samples Uint16 samples.

If channels is one, the effect is rotated using the defined direction. Otherwise it uses the samples in data for the different axes.

SDL_HAPTIC_CUSTOM SDL_HapticEffect

PPSDL_HapticDirection sdl2

Structure that represents a haptic direction.

Directions can be specified by: - SDL_HAPTIC_POLAR : Specified by polar coordinates. - SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. - SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates.

Cardinal directions of the haptic device are relative to the positioning of the device. North is considered to be away from the user.

The following diagram represents the cardinal directions:

.–. |__| .——-. |=.| |.—–.| |–| || || | | |'—–'| |__|˜')_____(' [ COMPUTER ]

North (0,-1) ˆ | | (1,0) West <—-[ HAPTIC ]—-> East (-1,0) | | v South (0,1)

[ USER ] \|||/ (o o) —ooO-(_)-Ooo—

If type is SDL_HAPTIC_POLAR, direction is encoded by hundredths of a degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses the first dir parameter. The cardinal directions would be: - North: 0 (0 degrees) - East: 9000 (90 degrees) - South: 18000 (180 degrees) - West: 27000 (270 degrees)

If type is SDL_HAPTIC_CARTESIAN, direction is encoded by three positions (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses the first three dir parameters. The cardinal directions would be: - North: 0,-1, 0 - East: -1, 0, 0 - South: 0, 1, 0 - West: 1, 0, 0

The Z axis represents the height of the effect if supported, otherwise it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you can use any multiple you want, only the direction matters.

If type is SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. The first two dir parameters are used. The dir parameters are as follows (all values are in hundredths of degrees): - Degrees from (1, 0) rotated towards (0, 1). - Degrees towards (0, 0, 1) (device needs at least 3 axes).

Example of force coming from the south with all encodings (force coming from the south means the user will have to pull the stick to counteract):

SDL_HapticDirection direction;

// Cartesian directions direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. direction.dir[0] = 0; // X position direction.dir[1] = 1; // Y position // Assuming the device has 2 axes, we don't need to specify third parameter.

// Polar directions direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. direction.dir[0] = 18000; // Polar only uses first parameter

// Spherical coordinates direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters.

SDL_HAPTIC_POLAR SDL_HAPTIC_CARTESIAN SDL_HAPTIC_SPHERICAL SDL_HapticEffect SDL_HapticNumAxes

PPSDL_HapticEffect sdl2

The generic template for any haptic effect.

All values max at 32767 (0x7FFF). Signed values also can be negative. Time values unless specified otherwise are in milliseconds.

You can also pass SDL_HAPTIC_INFINITY to length instead of a 0-32767 value. Neither delay, interval, attack_length nor fade_length support SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends.

Additionally, the SDL_HAPTIC_RAMP effect does not support a duration of SDL_HAPTIC_INFINITY.

Button triggers may not be supported on all devices, it is advised to not use them if possible. Buttons start at index 1 instead of index 0 like the joystick.

If both attack_length and fade_level are 0, the envelope is not used, otherwise both values are used.

Common parts:

// Replay - All effects have this Uint32 length; // Duration of effect (ms). Uint16 delay; // Delay before starting effect.

// Trigger - All effects have this Uint16 button; // Button that triggers effect. Uint16 interval; // How soon before effect can be triggered again.

// Envelope - All effects except condition effects have this Uint16 attack_length; // Duration of the attack (ms). Uint16 attack_level; // Level at the start of the attack. Uint16 fade_length; // Duration of the fade out (ms). Uint16 fade_level; // Level at the end of the fade.

Here we have an example of a constant effect evolution in time:

Strength ˆ | | effect level –> _________________ | / \ | / \ | / \ | / \ | attack_level –> | \ | | | <— fade_level | +————————————————–> Time [–] [—] attack_length fade_length

[——————][———————–] delay length

Note either the attack_level or the fade_level may be above the actual effect level.

SDL_HapticConstant SDL_HapticPeriodic SDL_HapticCondition SDL_HapticRamp SDL_HapticCustom

PPSDL_HapticPeriodic sdl2

A structure containing a template for a Periodic effect.

The struct handles the following effects: - SDL_HAPTIC_SINE - SDL_HAPTIC_SQUARE - SDL_HAPTIC_TRIANGLE - SDL_HAPTIC_SAWTOOTHUP - SDL_HAPTIC_SAWTOOTHDOWN

A periodic effect consists in a wave-shaped effect that repeats itself over time. The type determines the shape of the wave and the parameters determine the dimensions of the wave.

Phase is given by hundredth of a cycle meaning that giving the phase a value of 9000 will displace it 25% of its period. Here are sample values: - 0: No phase displacement. - 9000: Displaced 25% of its period. - 18000: Displaced 50% of its period. - 27000: Displaced 75% of its period. - 36000: Displaced 100% of its period, same as 0, but 0 is preferred.

Examples:

SDL_HAPTIC_SINE __ __ __ __ / \ / \ / \ / / \__/ \__/ \__/

SDL_HAPTIC_SQUARE __ __ __ __ __ | | | | | | | | | | | |__| |__| |__| |__| |

SDL_HAPTIC_TRIANGLE /\ /\ /\ /\ /\ / \ / \ / \ / \ / / \/ \/ \/ \/

SDL_HAPTIC_SAWTOOTHUP /| /| /| /| /| /| /| / | / | / | / | / | / | / | / |/ |/ |/ |/ |/ |/ |

SDL_HAPTIC_SAWTOOTHDOWN \ |\ |\ |\ |\ |\ |\ | \ | \ | \ | \ | \ | \ | \ | \| \| \| \| \| \| \|

SDL_HAPTIC_SINE SDL_HAPTIC_SQUARE SDL_HAPTIC_TRIANGLE SDL_HAPTIC_SAWTOOTHUP SDL_HAPTIC_SAWTOOTHDOWN SDL_HapticEffect

PPSDL_HapticRamp sdl2

A structure containing a template for a Ramp effect.

This struct is exclusively for the ::SDL_HAPTIC_RAMP effect.

The ramp effect starts at start strength and ends at end strength. It augments in linear fashion. If you use attack and fade with a ramp the effects get added to the ramp effect making the effect become quadratic instead of linear.

SDL_HAPTIC_RAMP SDL_HapticEffect

PPSDL_HintCallback sdl2

/** \brief Add a function to watch a particular hint

\param name The hint to watch \param callback The function to call when the hint value changes \param userdata A pointer to pass to the callback function /

PPSDL_HintPriority sdl2

/** \brief An enumeration of hint priorities /

PPSDL_HitTest sdl2

\brief Callback used for hit-testing.

\sa SDL_SetWindowHitTest

PPSDL_HitTestResult sdl2

\brief Possible return values from the SDL_HitTest callback.

\sa SDL_HitTest

PPSDL_Init sdl2

2.24.0 based on "sdl.h"

PPSDL_JoyAxisEvent sdl2

Joystick axis motion event structure (event.jaxis.*)

PPSDL_JoyBallEvent sdl2

Joystick trackball motion event structure (event.jball.*)

PPSDL_JoyBatteryEvent sdl2

Joysick battery level change event structure (event.jbattery.*)

PPSDL_JoyButtonEvent sdl2

Joystick button event structure (event.jbutton.*)

PPSDL_JoyDeviceEvent sdl2

Joystick device event structure (event.jdevice.*)

PPSDL_JoyHatEvent sdl2

Joystick hat position change event structure (event.jhat.*)

PPSDL_Joystick sdl2

The joystick structure used to identify an SDL joystick *

PPSDL_JoystickGUID sdl2

A structure that encodes the stable unique id for a joystick device *

PPSDL_JoystickID sdl2

This is a unique ID for a joystick for the time it is connected to the system, and is never reused for the lifetime of the application. If the joystick is disconnected and reconnected, it will get a new ID.

The ID value starts at 0 and increments from there. The value -1 is an invalid ID.

PPSDL_JoystickPowerLevel sdl2

 

PPSDL_JoystickType sdl2

 

PPSDL_KeyboardEvent sdl2

Keyboard button event structure (event.key.*)

PPSDL_KeyCode sdl2

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.

A special exception is the number keys at the top of the keyboard which always map to SDLK_0...SDLK_9, regardless of layout.

PPSDL_KeyMod sdl2

Enumeration of valid key mods (possibly OR'd together).

PPSDL_Keysym sdl2

\brief The SDL keysym structure, used in key events.

\note If you are looking for translated character input, see the:: SDL_TEXTINPUT event.

PPSDL_Locale sdl2

2.24.0 based on SDL_locale.h

PPSDL_LogCategory sdl2

\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.

PPSDL_LogOutputFunction sdl2

\brief The prototype for the log output function

PPSDL_LogPriority sdl2

\brief The predefined log priorities

PPSDL_malloc_func sdl2

 

PPSDL_MessageBoxButtonData sdl2

Individual button data.

PPSDL_MessageBoxButtonFlags sdl2

Flags for SDL_MessageBoxButtonData.

PPSDL_MessageBoxColor sdl2

RGB value used in a message box color scheme

PPSDL_MessageBoxColorScheme sdl2

A set of colors to use for message box dialogs

PPSDL_MessageBoxColorType sdl2

 

PPSDL_MessageBoxData sdl2

MessageBox structure containing title, text, window, etc.

PPSDL_MessageBoxFlags sdl2

SDL_MessageBox flags. If supported will display warning icon, etc.

PPSDL_MouseButtonEvent sdl2

Mouse button event structure (event.button.*)

PPSDL_MouseMotionEvent sdl2

Mouse motion event structure (event.motion.*)

PPSDL_MouseWheelDirection sdl2

 

PPSDL_MouseWheelEvent sdl2

Mouse wheel event structure (event.wheel.*)

PPSDL_MultiGestureEvent sdl2

Multiple Finger Gesture Event (event.mgesture.*)

PPSDL_Mutex sdl2

The SDL mutex structure, defined in SDL_sysmutex.c

PPSDL_PackedLayout sdl2

Packed component layout. *

PPSDL_PackOrder sdl2

Packed component order, high bit -> low bit. *

PPSDL_Palette sdl2

 

PPSDL_PixelFormat sdl2

Everything in the pixel format structure is read-only.

PPSDL_PixelType sdl2

Pixel type. *

PPSDL_Point sdl2

\brief The structure that defines a point (integer)

\sa SDL_EnclosePoints \sa SDL_PointInRect

PPSDL_PowerState sdl2

The basic state for the system's power supply.

PPSDL_QuitEvent sdl2

The "quit requested" event

PPSDL_realloc_func sdl2

 

PPSDL_Rect sdl2

\brief A rectangle, with the origin at the upper left (integer).

\sa SDL_RectEmpty \sa SDL_RectEquals \sa SDL_HasIntersection \sa SDL_IntersectRect \sa SDL_UnionRect \sa SDL_EnclosePoints

PPSDL_Renderer sdl2

A structure representing rendering state

PPSDL_RendererFlags sdl2

< The renderer supports rendering to texture *

PPSDL_RendererInfo sdl2

Information on the capabilities of a render driver or context.

PPSDL_RWops sdl2

Read-Only memory stream *

PPSDL_ScaleMode sdl2

The scaling mode for a texture.

PPSDL_ScanCode sdl2

The SDL keyboard scancode representation.

Values of this type are used to represent keyboard keys, among other places in the 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: https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf

PPSDL_Sem sdl2

The SDL semaphore structure, defined in SDL_sem.c

PPSDL_Sensor sdl2

\brief SDL_sensor.h

In order to use these functions, SDL_Init() must have been called with the ::SDL_INIT_SENSOR flag. This causes SDL to scan the system for sensors, and load appropriate drivers.

PPSDL_SensorEvent sdl2

Sensor event structure (event.sensor.*)

PPSDL_SensorID sdl2

This is a unique ID for a sensor for the time it is connected to the system, and is never reused for the lifetime of the application.

The ID value starts at 0 and increments from there. The value -1 is an invalid ID.

PPSDL_SensorType sdl2

The different sensors defined by SDL

Additional sensors may be available, using platform dependent semantics.

Hare are the additional Android sensors: https://developer.android.com/reference/android/hardware/SensorEvent.html#values

PPSDL_SpinLock sdl2

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.

PPSDL_Surface sdl2

 

PPSDL_SystemCursor sdl2

Cursor types for SDL_CreateSystemCursor.

PPSDL_SysWMEvent sdl2

A video driver dependent system event (event.syswm.*) This event is disabled by default, you can enable it with SDL_EventState()

If you want to use this event, you should include SDL_syswm.h.

PPSDL_SysWMinfo sdl2

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.

PPSDL_SysWMmsg sdl2

The custom event structure.

PPSDL_TextEditingEvent sdl2

Keyboard text editing event structure (event.edit.*)

PPSDL_TextEditingExtEvent sdl2

Extended keyboard text editing event structure (event.editExt.*) when text would be truncated if stored in the text buffer SDL_TextEditingEvent

PPSDL_TextInputEvent sdl2

Keyboard text input event structure (event.text.*)

PPSDL_Texture sdl2

An efficient driver-specific representation of pixel data

PPSDL_TextureAccess sdl2

The access pattern allowed for a texture.

PPSDL_TextureModulate sdl2

The texture channel modulation used in SDL_RenderCopy().

PPSDL_Thread sdl2

 

PPSDL_ThreadFunction sdl2

The function passed to SDL_CreateThread() It is passed a void* user context parameter and returns an int.

PPSDL_threadID sdl2

The SDL thread ID *

PPSDL_ThreadPriority sdl2

The SDL thread priority.

SDL will make system changes as necessary in order to apply the thread priority. Code which attempts to control thread state related to priority should be aware that calling SDL_SetThreadPriority may alter such state. SDL_HINT_THREAD_PRIORITY_POLICY can be used to control aspects of this behavior.

\note On many systems you require special privileges to set high or time critical priority.

PPSDL_TimerCallback sdl2

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.

PPSDL_TimerID sdl2

Definition of the timer ID type.

PPSDL_TLSID sdl2

Thread local storage ID, 0 is the invalid ID *

PPSDL_TouchDeviceType sdl2

 

PPSDL_TouchFingerEvent sdl2

Touch finger event structure (event.tfinger.*)

PPSDL_TouchID sdl2

2.0.18 from "sdl_touch.h"

PPSDL_UserEvent sdl2

A user-defined event type (event.user.*)

PPSDL_Version sdl2

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).

SDL_VERSION SDL_GetVersion

PPSDL_Vertex sdl2

 

PPSDL_VirtualJoystickDesc sdl2

 

PPSDL_Window sdl2

2.0.14 from "sdl_video.h"

PPSDL_WindowEvent sdl2

Window state change event data (event.window.*)

PPSDL_WindowEventID sdl2

Event subtype for window events

PPSDL_WindowFlags sdl2

The flags on a window

SDL_GetWindowFlags()

PPSDL_WindowShapeMode sdl2

A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. *

PPSDL_WindowShapeParams sdl2

A union containing parameters for shaped windows. *

PPTTF_Direction sdl2_ttf

Direction flags

\sa TTF_SetFontDirection

PPTTF_Font sdl2_ttf

The internal structure containing font information *

PPUDPPacket sdl2_net

 

PPUDPSocket sdl2_net

 

PPUInt8Array sdl2

Data types for all compilers

PPUInt8Array sdl2_gfx

Data types for all compilers

PPUInt8Array sdl2_image

Data types for all compilers

PPUInt8Array sdl2_mixer

Data types for all compilers

PPUInt8Array sdl2_net

Data types for all compilers

PPUInt8Array sdl2_ttf

Data types for all compilers

PPWindowShapeMode sdl2

\brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. *

PSDLNet_GenericSocket sdl2_net

 

PSDLNet_SocketSet sdl2_net

 

PSDLNet_Version sdl2_net

 

PSDL_ArrayOrder sdl2

 

PSDL_Atomic sdl2

 

PSDL_AudioCallback sdl2

 

PSDL_AudioCVT sdl2

 

PSDL_AudioDeviceEvent sdl2

 

PSDL_AudioDeviceID sdl2

 

PSDL_AudioFormat sdl2

 

PSDL_AudioSpec sdl2

 

PSDL_AudioStatus sdl2

 

PSDL_AudioStream sdl2

this is opaque to the outside world.

PSDL_BitmapOrder sdl2

 

PSDL_BlendFactor sdl2

 

PSDL_BlendMode sdl2

 

PSDL_BlendOperation sdl2

 

PSDL_Blit sdl2

 

PSDL_BlitMap sdl2

 

PSDL_Bool sdl2

 

PSDL_calloc_func sdl2

 

PSDL_Color sdl2

 

PSDL_Colour sdl2

 

PSDL_CommonEvent sdl2

 

PSDL_Cond sdl2

The condition variable type.

Typical use of condition variables:

Thread A: SDL_LockMutex(lock); while ( not condition ) begin SDL_CondWait(cond, lock); end; 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.

PSDL_ControllerAxisEvent sdl2

 

PSDL_ControllerButtonEvent sdl2

 

PSDL_ControllerDeviceEvent sdl2

 

PSDL_ControllerSensorEvent sdl2

 

PSDL_ControllerTouchpadEvent sdl2

 

PSDL_Cursor sdl2

 

PSDL_DisplayEvent sdl2

 

PSDL_DisplayEventID sdl2

 

PSDL_DisplayMode sdl2

 

PSDL_DisplayOrientation sdl2

 

PSDL_DollarGestureEvent sdl2

 

PSDL_DropEvent sdl2

 

PSDL_Error sdl2

 

PSDL_ErrorCode sdl2

 

PSDL_Event sdl2

 

PSDL_EventAction sdl2

 

PSDL_EventFilter sdl2

 

PSDL_EventType sdl2

 

PSDL_Finger sdl2

 

PSDL_FingerID sdl2

 

PSDL_FlashOperation sdl2

 

PSDL_FPoint sdl2

 

PSDL_FRect sdl2

 

PSDL_free_func sdl2

 

PSDL_GameController sdl2

 

PSDL_GameControllerAxis sdl2

 

PSDL_GameControllerBindType sdl2

 

PSDL_GameControllerButton sdl2

 

PSDL_GameControllerButtonBind sdl2

 

PSDL_GameControllerType sdl2

 

PSDL_GestureID sdl2

 

PSDL_GLattr sdl2

 

PSDL_GLContext sdl2

 

PSDL_GLcontextFlag sdl2

 

PSDL_GLcontextReleaseFlag sdl2

 

PSDL_GLContextResetNotification sdl2

 

PSDL_GLprofile sdl2

 

PSDL_GUID sdl2

 

PSDL_Haptic sdl2

 

PSDL_HapticCondition sdl2

 

PSDL_HapticConstant sdl2

 

PSDL_HapticCustom sdl2

 

PSDL_HapticDirection sdl2

 

PSDL_HapticEffect sdl2

 

PSDL_HapticPeriodic sdl2

 

PSDL_HapticRamp sdl2

 

PSDL_hid_device sdl2

\brief A handle representing an open HID device.

PSDL_hid_device_info sdl2

opaque struct

PSDL_HintCallback sdl2

 

PSDL_HintPriority sdl2

 

PSDL_HitTest sdl2

 

PSDL_HitTestResult sdl2

 

PSDL_iconv sdl2

 

PSDL_Init sdl2

 

PSDL_JoyAxisEvent sdl2

 

PSDL_JoyBallEvent sdl2

 

PSDL_JoyBatteryEvent sdl2

 

PSDL_JoyButtonEvent sdl2

 

PSDL_JoyDeviceEvent sdl2

 

PSDL_JoyHatEvent sdl2

 

PSDL_Joystick sdl2

 

PSDL_JoystickGUID sdl2

 

PSDL_JoystickID sdl2

 

PSDL_JoystickPowerLevel sdl2

 

PSDL_JoystickType sdl2

 

PSDL_KeyboardEvent sdl2

 

PSDL_KeyCode sdl2

 

PSDL_KeyMod sdl2

 

PSDL_Keysym sdl2

 

PSDL_Locale sdl2

 

PSDL_LogCategory sdl2

 

PSDL_LogOutputFunction sdl2

 

PSDL_LogPriority sdl2

 

PSDL_malloc_func sdl2

 

PSDL_MessageBoxButtonData sdl2

 

PSDL_MessageBoxButtonFlags sdl2

 

PSDL_MessageBoxColor sdl2

 

PSDL_MessageBoxColorScheme sdl2

 

PSDL_MessageBoxColorType sdl2

 

PSDL_MessageBoxData sdl2

 

PSDL_MessageBoxFlags sdl2

 

PSDL_MouseButtonEvent sdl2

 

PSDL_MouseMotionEvent sdl2

 

PSDL_MouseWheelDirection sdl2

 

PSDL_MouseWheelEvent sdl2

 

PSDL_MultiGestureEvent sdl2

 

PSDL_Mutex sdl2

 

PSDL_PackedLayout sdl2

 

PSDL_PackOrder sdl2

 

PSDL_Palette sdl2

 

PSDL_PixelFormat sdl2

 

PSDL_PixelType sdl2

 

PSDL_Point sdl2

 

PSDL_PowerState sdl2

 

PSDL_QuitEvent sdl2

 

PSDL_realloc_func sdl2

 

PSDL_Rect sdl2

 

PSDL_Renderer sdl2

 

PSDL_RendererFlags sdl2

 

PSDL_RendererInfo sdl2

 

PSDL_RWops sdl2

 

PSDL_ScaleMode sdl2

 

PSDL_ScanCode sdl2

 

PSDL_Sem sdl2

 

PSDL_Sensor sdl2

 

PSDL_SensorEvent sdl2

 

PSDL_SensorID sdl2

 

PSDL_SensorType sdl2

 

PSDL_SpinLock sdl2

 

PSDL_Surface sdl2

 

PSDL_SystemCursor sdl2

 

PSDL_SysWMEvent sdl2

 

PSDL_SysWMinfo sdl2

 

PSDL_SysWMmsg sdl2

 

PSDL_TextEditingEvent sdl2

 

PSDL_TextEditingExtEvent sdl2

 

PSDL_TextInputEvent sdl2

 

PSDL_Texture sdl2

 

PSDL_TextureAccess sdl2

 

PSDL_TextureModulate sdl2

 

PSDL_Thread sdl2

 

PSDL_ThreadFunction sdl2

 

PSDL_threadID sdl2

 

PSDL_ThreadPriority sdl2

 

PSDL_TimerCallback sdl2

 

PSDL_TimerID sdl2

 

PSDL_TLSID sdl2

 

PSDL_TouchDeviceType sdl2

 

PSDL_TouchFingerEvent sdl2

 

PSDL_TouchID sdl2

 

PSDL_UserEvent sdl2

 

PSDL_Version sdl2

 

PSDL_Vertex sdl2

 

PSDL_VirtualJoystickDesc sdl2

 

PSDL_Window sdl2

 

PSDL_WindowEvent sdl2

 

PSDL_WindowEventID sdl2

 

PSDL_WindowFlags sdl2

 

PSDL_WindowShapeMode sdl2

 

PSDL_WindowShapeParams sdl2

 

PTTF_Direction sdl2_ttf

 

PTTF_Font sdl2_ttf

 

PUDPPacket sdl2_net

 

PUDPSocket sdl2_net

 

PUInt8Array sdl2

 

PUInt8Array sdl2_gfx

 

PUInt8Array sdl2_image

 

PUInt8Array sdl2_mixer

 

PUInt8Array sdl2_net

 

PUInt8Array sdl2_ttf

 

PWindowShapeMode sdl2

 

rectangleColor sdl2_gfx

Rectangle

rectangleRGBA sdl2_gfx

 

rotateSurface90Degrees sdl2_gfx

Specialized rotation functions

rotozoomSurface sdl2_gfx

Rotozoom functions

rotozoomSurfaceSize sdl2_gfx

 

rotozoomSurfaceSizeXY sdl2_gfx

 

rotozoomSurfaceXY sdl2_gfx

 

roundedBoxColor sdl2_gfx

Rounded-Corner Filled rectangle (Box)

roundedBoxRGBA sdl2_gfx

 

roundedRectangleColor sdl2_gfx

Rounded-Corner Rectangle

roundedRectangleRGBA sdl2_gfx

 

RW_SEEK_CUR sdl2

< Seek from the beginning of data *

RW_SEEK_END sdl2

< Seek relative to current read point *

RW_SEEK_SET sdl2

 

SDL2_GFXPRIMITIVES_MAJOR sdl2_gfx

—< SDL2_gfxPrimitives.h >—

SDL2_GFXPRIMITIVES_MICRO sdl2_gfx

 

SDL2_GFXPRIMITIVES_MINOR sdl2_gfx

 

SDLK_0 sdl2

 

SDLK_1 sdl2

 

SDLK_2 sdl2

 

SDLK_3 sdl2

 

SDLK_4 sdl2

 

SDLK_5 sdl2

 

SDLK_6 sdl2

 

SDLK_7 sdl2

 

SDLK_8 sdl2

 

SDLK_9 sdl2

 

SDLK_a sdl2

 

SDLK_AC_BACK sdl2

 

SDLK_AC_BOOKMARKS sdl2

 

SDLK_AC_FORWARD sdl2

 

SDLK_AC_HOME sdl2

 

SDLK_AC_REFRESH sdl2

 

SDLK_AC_SEARCH sdl2

 

SDLK_AC_STOP sdl2

 

SDLK_AGAIN sdl2

 

SDLK_ALTERASE sdl2

 

SDLK_AMPERSAND sdl2

 

SDLK_APP1 sdl2

 

SDLK_APP2 sdl2

 

SDLK_APPLICATION sdl2

 

SDLK_ASTERISK sdl2

 

SDLK_AT sdl2

 

SDLK_AUDIOFASTFORWARD sdl2

 

SDLK_AUDIOMUTE sdl2

 

SDLK_AUDIONEXT sdl2

 

SDLK_AUDIOPLAY sdl2

 

SDLK_AUDIOPREV sdl2

 

SDLK_AUDIOREWIND sdl2

 

SDLK_AUDIOSTOP sdl2

 

SDLK_b sdl2

 

SDLK_BACKQUOTE sdl2

 

SDLK_BACKSLASH sdl2

 

SDLK_BACKSPACE sdl2

C: '\x1B'

SDLK_BRIGHTNESSDOWN sdl2

 

SDLK_BRIGHTNESSUP sdl2

 

SDLK_c sdl2

 

SDLK_CALCULATOR sdl2

 

SDLK_CALL sdl2

 

SDLK_CANCEL sdl2

 

SDLK_CAPSLOCK sdl2

SDL2-for-Pascal: In C the following scancodes are or'd by a macro: SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK)

We convert the scancodes directly by: TSDL_KeyCode(X or SDLK_SCANCODE_MASK);

SDLK_CARET sdl2

 

SDLK_CLEAR sdl2

 

SDLK_CLEARAGAIN sdl2

 

SDLK_COLON sdl2

 

SDLK_COMMA sdl2

 

SDLK_COMPUTER sdl2

 

SDLK_COPY sdl2

 

SDLK_CRSEL sdl2

 

SDLK_CURRENCYSUBUNIT sdl2

 

SDLK_CURRENCYUNIT sdl2

 

SDLK_CUT sdl2

 

SDLK_d sdl2

 

SDLK_DECIMALSEPARATOR sdl2

 

SDLK_DELETE sdl2

 

SDLK_DISPLAYSWITCH sdl2

 

SDLK_DOLLAR sdl2

 

SDLK_DOWN sdl2

 

SDLK_e sdl2

 

SDLK_EJECT sdl2

 

SDLK_END sdl2

C: '\x7F'

SDLK_ENDCALL sdl2

 

SDLK_EQUALS sdl2

 

SDLK_ESCAPE sdl2

C: '\r'

SDLK_EXCLAIM sdl2

 

SDLK_EXECUTE sdl2

 

SDLK_EXSEL sdl2

 

SDLK_f sdl2

 

SDLK_F1 sdl2

 

SDLK_F10 sdl2

 

SDLK_F11 sdl2

 

SDLK_F12 sdl2

 

SDLK_F13 sdl2

 

SDLK_F14 sdl2

 

SDLK_F15 sdl2

 

SDLK_F16 sdl2

 

SDLK_F17 sdl2

 

SDLK_F18 sdl2

 

SDLK_F19 sdl2

 

SDLK_F2 sdl2

 

SDLK_F20 sdl2

 

SDLK_F21 sdl2

 

SDLK_F22 sdl2

 

SDLK_F23 sdl2

 

SDLK_F24 sdl2

 

SDLK_F3 sdl2

 

SDLK_F4 sdl2

 

SDLK_F5 sdl2

 

SDLK_F6 sdl2

 

SDLK_F7 sdl2

 

SDLK_F8 sdl2

 

SDLK_F9 sdl2

 

SDLK_FIND sdl2

 

SDLK_g sdl2

 

SDLK_GREATER sdl2

 

SDLK_h sdl2

 

SDLK_HASH sdl2

 

SDLK_HELP sdl2

 

SDLK_HOME sdl2

 

SDLK_i sdl2

 

SDLK_INSERT sdl2

 

SDLK_j sdl2

 

SDLK_k sdl2

 

SDLK_KBDILLUMDOWN sdl2

 

SDLK_KBDILLUMTOGGLE sdl2

 

SDLK_KBDILLUMUP sdl2

 

SDLK_KP_0 sdl2

 

SDLK_KP_00 sdl2

 

SDLK_KP_000 sdl2

 

SDLK_KP_1 sdl2

 

SDLK_KP_2 sdl2

 

SDLK_KP_3 sdl2

 

SDLK_KP_4 sdl2

 

SDLK_KP_5 sdl2

 

SDLK_KP_6 sdl2

 

SDLK_KP_7 sdl2

 

SDLK_KP_8 sdl2

 

SDLK_KP_9 sdl2

 

SDLK_KP_A sdl2

 

SDLK_KP_AMPERSAND sdl2

 

SDLK_KP_AT sdl2

 

SDLK_KP_B sdl2

 

SDLK_KP_BACKSPACE sdl2

 

SDLK_KP_BINARY sdl2

 

SDLK_KP_C sdl2

 

SDLK_KP_CLEAR sdl2

 

SDLK_KP_CLEARENTRY sdl2

 

SDLK_KP_COLON sdl2

 

SDLK_KP_COMMA sdl2

 

SDLK_KP_D sdl2

 

SDLK_KP_DBLAMPERSAND sdl2

 

SDLK_KP_DBLVERTICALBAR sdl2

 

SDLK_KP_DECIMAL sdl2

 

SDLK_KP_DIVIDE sdl2

 

SDLK_KP_E sdl2

 

SDLK_KP_ENTER sdl2

 

SDLK_KP_EQUALS sdl2

 

SDLK_KP_EQUALSAS400 sdl2

 

SDLK_KP_EXCLAM sdl2

 

SDLK_KP_F sdl2

 

SDLK_KP_GREATER sdl2

 

SDLK_KP_HASH sdl2

 

SDLK_KP_HEXADECIMAL sdl2

 

SDLK_KP_LEFTBRACE sdl2

 

SDLK_KP_LEFTPAREN sdl2

 

SDLK_KP_LESS sdl2

 

SDLK_KP_MEMADD sdl2

 

SDLK_KP_MEMCLEAR sdl2

 

SDLK_KP_MEMDIVIDE sdl2

 

SDLK_KP_MEMMULTIPLY sdl2

 

SDLK_KP_MEMRECALL sdl2

 

SDLK_KP_MEMSTORE sdl2

 

SDLK_KP_MEMSUBTRACT sdl2

 

SDLK_KP_MINUS sdl2

 

SDLK_KP_MULTIPLY sdl2

 

SDLK_KP_OCTAL sdl2

 

SDLK_KP_PERCENT sdl2

 

SDLK_KP_PERIOD sdl2

 

SDLK_KP_PLUS sdl2

 

SDLK_KP_PLUSMINUS sdl2

 

SDLK_KP_POWER sdl2

 

SDLK_KP_RIGHTBRACE sdl2

 

SDLK_KP_RIGHTPAREN sdl2

 

SDLK_KP_SPACE sdl2

 

SDLK_KP_TAB sdl2

 

SDLK_KP_VERTICALBAR sdl2

 

SDLK_KP_XOR sdl2

 

SDLK_l sdl2

 

SDLK_LALT sdl2

 

SDLK_LCTRL sdl2

 

SDLK_LEFT sdl2

 

SDLK_LEFTBRACKET sdl2

Skip uppercase letters

SDLK_LEFTPAREN sdl2

 

SDLK_LESS sdl2

 

SDLK_LGUI sdl2

 

SDLK_LSHIFT sdl2

 

SDLK_m sdl2

 

SDLK_MAIL sdl2

 

SDLK_MEDIASELECT sdl2

 

SDLK_MENU sdl2

 

SDLK_MINUS sdl2

 

SDLK_MODE sdl2

 

SDLK_MUTE sdl2

 

SDLK_n sdl2

 

SDLK_NUMLOCKCLEAR sdl2

 

SDLK_o sdl2

 

SDLK_OPER sdl2

 

SDLK_OUT sdl2

 

SDLK_p sdl2

 

SDLK_PAGEDOWN sdl2

 

SDLK_PAGEUP sdl2

 

SDLK_PASTE sdl2

 

SDLK_PAUSE sdl2

 

SDLK_PERCENT sdl2

 

SDLK_PERIOD sdl2

 

SDLK_PLUS sdl2

 

SDLK_POWER sdl2

 

SDLK_PRINTSCREEN sdl2

 

SDLK_PRIOR sdl2

 

SDLK_q sdl2

 

SDLK_QUESTION sdl2

 

SDLK_QUOTE sdl2

 

SDLK_QUOTEDBL sdl2

 

SDLK_r sdl2

 

SDLK_RALT sdl2

 

SDLK_RCTRL sdl2

 

SDLK_RETURN sdl2

 

SDLK_RETURN2 sdl2

 

SDLK_RGUI sdl2

 

SDLK_RIGHT sdl2

 

SDLK_RIGHTBRACKET sdl2

C: '\\'

SDLK_RIGHTPAREN sdl2

 

SDLK_RSHIFT sdl2

 

SDLK_s sdl2

 

SDLK_SCANCODE_MASK sdl2

 

SDLK_SCROLLLOCK sdl2

 

SDLK_SELECT sdl2

 

SDLK_SEMICOLON sdl2

 

SDLK_SEPARATOR sdl2

 

SDLK_SLASH sdl2

 

SDLK_SLEEP sdl2

 

SDLK_SOFTLEFT sdl2

 

SDLK_SOFTRIGHT sdl2

 

SDLK_SPACE sdl2

C: '\t'

SDLK_STOP sdl2

 

SDLK_SYSREQ sdl2

 

SDLK_t sdl2

 

SDLK_TAB sdl2

C: '\b'

SDLK_THOUSANDSSEPARATOR sdl2

 

SDLK_u sdl2

 

SDLK_UNDERSCORE sdl2

 

SDLK_UNDO sdl2

 

SDLK_UNKNOWN sdl2

#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) SDL2-for-Pascal: Not translated, see comment about this macro below.

SDLK_UP sdl2

 

SDLK_v sdl2

 

SDLK_VOLUMEDOWN sdl2

 

SDLK_VOLUMEUP sdl2

 

SDLK_w sdl2

 

SDLK_WWW sdl2

 

SDLK_x sdl2

 

SDLK_y sdl2

 

SDLK_z sdl2

 

SDLNet_AddSocket sdl2_net

Add a socket to a set of sockets to be checked for available data *

SDLNet_AllocPacket sdl2_net

Allocate/resize/free a single UDP packet 'size' bytes long. The new packet is returned, or NULL if the function ran out of memory.

SDLNet_AllocPacketV sdl2_net

Allocate/Free a UDP packet vector (array of packets) of 'howmany' packets, each 'size' bytes long. A pointer to the first packet in the array is returned, or NULL if the function ran out of memory.

SDLNet_AllocSocketSet sdl2_net

Allocate a socket set for use with SDLNet_CheckSockets() This returns a socket set for up to 'maxsockets' sockets, or NULL if the function ran out of memory.

SDLNet_CheckSockets sdl2_net

This function checks to see if data is available for reading on the given set of sockets. If 'timeout' is 0, it performs a quick poll, otherwise the function returns when either data is available for reading, or the timeout in milliseconds has elapsed, which ever occurs first. This function returns the number of sockets ready for reading, or -1 if there was an error with the select() system call.

SDLNet_DelSocket sdl2_net

Remove a socket from a set of sockets to be checked for available data *

SDLNet_FreePacket sdl2_net

 

SDLNet_FreePacketV sdl2_net

 

SDLNet_FreeSocketSet sdl2_net

Free a set of sockets allocated by SDL_NetAllocSocketSet() *

SDLNet_GetError sdl2_net

 

SDLNet_GetLocalAddresses sdl2_net

Get the addresses of network interfaces on this system. This returns the number of addresses saved in 'addresses'

SDLNet_Init sdl2_net

Initialize/Cleanup the network API SDL must be initialized before calls to functions in this library, because this library uses utility functions from the SDL library.

SDLNet_Linked_Version sdl2_net

This function gets the version of the dynamically linked SDL_net library. it should NOT be used to fill a version structure, instead you should use the SDL_NET_VERSION() macro.

SDLNET_MAX_UDPADDRESSES sdl2_net

The maximum addresses bound to a single UDP socket channel *

SDLNET_MAX_UDPCHANNELS sdl2_net

The maximum channels on a a UDP socket *

SDLNet_Quit sdl2_net

 

SDLNet_ResizePacket sdl2_net

 

SDLNet_ResolveHost sdl2_net

 

SDLNet_ResolveIP sdl2_net

Resolve an ip address to a host name in canonical form. If the ip couldn't be resolved, this function returns NULL, otherwise a pointer to a static buffer containing the hostname is returned. Note that this function is not thread-safe.

SDLNet_SetError sdl2_net

 

SDLNet_SocketReady sdl2_net

After calling SDLNet_CheckSockets(), you can use this function on a socket that was in the socket set, to find out if data is available for reading.

SDLNet_TCP_Accept sdl2_net

Accept an incoming connection on the given server socket. The newly created socket is returned, or NULL if there was an error.

SDLNet_TCP_Close sdl2_net

Close a TCP network socket *

SDLNet_TCP_GetPeerAddress sdl2_net

Get the IP address of the remote system associated with the socket. If the socket is a server socket, this function returns NULL.

SDLNet_TCP_Open sdl2_net

Open a TCP network socket If ip.host is INADDR_NONE or INADDR_ANY, this creates a local server socket on the given port, otherwise a TCP connection to the remote host and port is attempted. The address passed in should already be swapped to network byte order (addresses returned from SDLNet_ResolveHost() are already in the correct form). The newly created socket is returned, or NULL if there was an error.

SDLNet_TCP_Recv sdl2_net

Receive up to 'maxlen' bytes of data over the non-server socket 'sock', and store them in the buffer pointed to by 'data'. This function returns the actual amount of data received. If the return value is less than or equal to zero, then either the remote connection was closed, or an unknown socket error occurred.

SDLNet_TCP_Send sdl2_net

Send 'len' bytes of 'data' over the non-server socket 'sock' This function returns the actual amount of data sent. If the return value is less than the amount of data sent, then either the remote connection was closed, or an unknown socket error occurred.

SDLNet_UDP_Bind sdl2_net

Bind the address 'address' to the requested channel on the UDP socket. If the channel is -1, then the first unbound channel that has not yet been bound to the maximum number of addresses will be bound with the given address as it's primary address. If the channel is already bound, this new address will be added to the list of valid source addresses for packets arriving on the channel. If the channel is not already bound, then the address becomes the primary address, to which all outbound packets on the channel are sent. This function returns the channel which was bound, or -1 on error.

SDLNet_UDP_Close sdl2_net

Close a UDP network socket *

SDLNet_UDP_GetPeerAddress sdl2_net

Get the primary IP address of the remote system associated with the socket and channel. If the channel is -1, then the primary IP port of the UDP socket is returned – this is only meaningful for sockets opened with a specific port. If the channel is not bound and not -1, this function returns NULL.

SDLNet_UDP_Open sdl2_net

Open a UDP network socket If 'port' is non-zero, the UDP socket is bound to a local port. The 'port' should be given in native byte order, but is used internally in network (big endian) byte order, in addresses, etc. This allows other systems to send to this socket via a known port.

SDLNet_UDP_Recv sdl2_net

Receive a single packet from the UDP socket. The returned packet contains the source address and the channel it arrived on. If it did not arrive on a bound channel, the the channel will be set to -1. The channels are checked in highest to lowest order, so if an address is bound to multiple channels, the highest channel with the source address bound will be returned. This function returns the number of packets read from the network, or -1 on error. This function does not block, so can return 0 packets pending.

SDLNet_UDP_RecvV sdl2_net

Receive a vector of pending packets from the UDP socket. The returned packets contain the source address and the channel they arrived on. If they did not arrive on a bound channel, the the channel will be set to -1. The channels are checked in highest to lowest order, so if an address is bound to multiple channels, the highest channel with the source address bound will be returned. This function returns the number of packets read from the network, or -1 on error. This function does not block, so can return 0 packets pending.

SDLNet_UDP_Send sdl2_net

Send a single packet to the specified channel. If the channel specified in the packet is -1, the packet will be sent to the address in the 'src' member of the packet. The packet will be updated with the status of the packet after it has been sent. This function returns 1 if the packet was sent, or 0 on error.

NOTE: The maximum size of the packet is limited by the MTU (Maximum Transfer Unit) of the transport medium. It can be as low as 250 bytes for some PPP links, and as high as 1500 bytes for ethernet.

SDLNet_UDP_SendV sdl2_net

Send a vector of packets to the the channels specified within the packet. If the channel specified in the packet is -1, the packet will be sent to the address in the 'src' member of the packet. Each packet will be updated with the status of the packet after it has been sent, -1 if the packet send failed. This function returns the number of packets sent.

SDLNet_UDP_SetPacketLoss sdl2_net

Set the percentage of simulated packet loss for packets sent on the socket. *

SDLNet_UDP_Unbind sdl2_net

Unbind all addresses from the given channel *

SDL_acos sdl2

Calculate the arc cosine of x; that is, the value (in radians) whose cosine equals x.

\since This function is available since SDL 2.0.4.

SDL_acosf sdl2

Calculate the arc cosine of x; that is, the value (in radians) whose cosine equals x.

\since This function is available since SDL 2.0.8.

SDL_ADDEVENT sdl2

 

SDL_AddEventWatch sdl2

Add a function which is called when an event is added to the queue.

SDL_AddHintCallback sdl2

 

SDL_AddTimer sdl2

Add a new timer to the pool of timers already running.

A timer ID, or NULL when an error occurs.

SDL_AllocFormat sdl2

Create an SDL_PixelFormat structure corresponding to a pixel format.

Returned structure may come from a shared global cache (i.e. not newly allocated), and hence should not be modified, especially the palette. Weird errors such as `Blit combination not supported` may occur.

\param pixel_format one of the SDL_PixelFormatEnum values \returns the new SDL_PixelFormat structure or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_FreeFormat

SDL_AllocPalette sdl2

Create a palette structure with the specified number of color entries.

The palette entries are initialized to white.

\param ncolors represents the number of color entries in the color palette \returns a new SDL_Palette structure on success or NULL on failure (e.g. if there wasn't enough memory); call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_FreePalette

SDL_AllocRW sdl2

RWFrom functions*

SDL_ALPHA_OPAQUE sdl2

Transparency definitions

These define alpha as the opacity of a surface.

SDL_ALPHA_TRANSPARENT sdl2

 

SDL_APP_DIDENTERBACKGROUND sdl2

The application did enter the background and may not get CPU for some time. * Called on iOS in applicationDidEnterBackground() * Called on Android in onPause() *

SDL_APP_DIDENTERFOREGROUND sdl2

The application is now interactive. * Called on iOS in applicationDidBecomeActive() * Called on Android in onResume() *

SDL_APP_LOWMEMORY sdl2

The application is low on memory, free memory if possible. * Called on iOS in applicationDidReceiveMemoryWarning() * Called on Android in onLowMemory() *

SDL_APP_TERMINATING sdl2

The application is being terminated by the OS. * Called on iOS in applicationWillTerminate() * Called on Android in onDestroy() *

SDL_APP_WILLENTERBACKGROUND sdl2

The application is about to enter the background. * Called on iOS in applicationWillResignActive() * Called on Android in onPause() *

SDL_APP_WILLENTERFOREGROUND sdl2

The application is about to enter the foreground. * Called on iOS in applicationWillEnterForeground() * Called on Android in onResume() *

SDL_ARRAYORDER_ABGR sdl2

 

SDL_ARRAYORDER_ARGB sdl2

 

SDL_ARRAYORDER_BGR sdl2

 

SDL_ARRAYORDER_BGRA sdl2

 

SDL_ARRAYORDER_NONE sdl2

 

SDL_ARRAYORDER_RGB sdl2

 

SDL_ARRAYORDER_RGBA sdl2

 

SDL_asin sdl2

Calculate the arc sine of x; that is, the value (in radians) whose sine equals x.

\since This function is available since SDL 2.0.4.

SDL_asinf sdl2

Calculate the arc sine of x; that is, the value (in radians) whose sine equals x.

\since This function is available since SDL 2.0.8.

SDL_atan sdl2

Calculate the arc tangent of x; that is, the value (in radians) whose tangent equals x.

\since This function is available since SDL 2.0.4.

SDL_atan2 sdl2

Calculate the arc tangent of y/x, using the signs of the two arguments to determine the quadrant of the result.

\since This function is available since SDL 2.0.4.

SDL_atan2f sdl2

Calculate the arc tangent of y/x, using the signs of the two arguments to determine the quadrant of the result.

\since This function is available since SDL 2.0.8.

SDL_atanf sdl2

Calculate the arc tangent of x; that is, the value (in radians) whose tangent equals x.

\since This function is available since SDL 2.0.8.

SDL_AtomicAdd sdl2

Add to an atomic variable, and return the old value.

This function also acts as a full memory barrier.

SDL_AtomicCAS sdl2

Set an atomic variable to a new value if it is currently an old value.

SDL_AtomicCASPtr sdl2

Set a pointer to a new value if it is currently an old value.

SDL_AtomicDecRef sdl2

Decrement an atomic variable used as a reference count and check if it reached zero after decrementing.

SDL_AtomicGet sdl2

Get the value of an atomic variable.

SDL_AtomicGetPtr sdl2

Get the value of a pointer atomically.

SDL_AtomicIncRef sdl2

Increment an atomic variable used as a reference count.

SDL_AtomicLock sdl2

Lock a spin lock by setting it to a non-zero value.

SDL_AtomicSet sdl2

Set an atomic variable to a new value and return the old one.

This function also acts as a full memory barrier.

SDL_AtomicSetPtr sdl2

Set a pointer to a new value atomically, and return the old value.

SDL_AtomicTryLock sdl2

Try to lock a spin lock by setting it to a non-zero value.

SDL_AtomicUnlock sdl2

Unlock a spin lock by setting it to 0.

Always returns immediately.

SDL_AUDIOCVT_MAX_FILTERS sdl2

\brief Upper limit of filters in SDL_AudioCVT

The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, one of which is the terminating NULL pointer.

SDL_AUDIODEVICEADDED sdl2

Audio hotplug events

SDL_AUDIODEVICEREMOVED sdl2

A new audio device is available

SDL_AudioInit sdl2

Use this function to initialize a particular audio driver.

This function is used internally, and should not be used unless you have a specific need to designate the audio driver you want to use. You should normally use SDL_Init() or SDL_InitSubSystem().

\param driver_name the name of the desired audio driver \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_AudioQuit

SDL_AudioQuit sdl2

Use this function to shut down audio if you initialized it with SDL_AudioInit().

This function is 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_Quit() or SDL_QuitSubSystem().

\since This function is available since SDL 2.0.0.

\sa SDL_AudioInit

SDL_AudioStreamAvailable sdl2

Get the number of converted/resampled bytes available.

The stream may be buffering data behind the scenes until it has enough to resample correctly, so this number might be lower than what you expect, or even be zero. Add more data or flush the stream if you need the data now.

\since This function is available since SDL 2.0.7.

\sa SDL_NewAudioStream \sa SDL_AudioStreamPut \sa SDL_AudioStreamGet \sa SDL_AudioStreamFlush \sa SDL_AudioStreamClear \sa SDL_FreeAudioStream

SDL_AudioStreamClear sdl2

Clear any pending data in the stream without converting it

\since This function is available since SDL 2.0.7.

\sa SDL_NewAudioStream \sa SDL_AudioStreamPut \sa SDL_AudioStreamGet \sa SDL_AudioStreamAvailable \sa SDL_AudioStreamFlush \sa SDL_FreeAudioStream

SDL_AudioStreamFlush sdl2

Tell the stream that you're done sending data, and anything being buffered should be converted/resampled and made available immediately.

It is legal to add more data to a stream after flushing, but there will be audio gaps in the output. Generally this is intended to signal the end of input, so the complete output becomes available.

\since This function is available since SDL 2.0.7.

\sa SDL_NewAudioStream \sa SDL_AudioStreamPut \sa SDL_AudioStreamGet \sa SDL_AudioStreamAvailable \sa SDL_AudioStreamClear \sa SDL_FreeAudioStream

SDL_AudioStreamGet sdl2

Get converted/resampled data from the stream

\param stream The stream the audio is being requested from \param buf A buffer to fill with audio data \param len The maximum number of bytes to fill \returns the number of bytes read from the stream, or -1 on error

\since This function is available since SDL 2.0.7.

\sa SDL_NewAudioStream \sa SDL_AudioStreamPut \sa SDL_AudioStreamAvailable \sa SDL_AudioStreamFlush \sa SDL_AudioStreamClear \sa SDL_FreeAudioStream

SDL_AudioStreamPut sdl2

Add data to be converted/resampled to the stream.

\param stream The stream the audio data is being added to \param buf A pointer to the audio data to add \param len The number of bytes to write to the stream \returns 0 on success, or -1 on error.

\since This function is available since SDL 2.0.7.

\sa SDL_NewAudioStream \sa SDL_AudioStreamGet \sa SDL_AudioStreamAvailable \sa SDL_AudioStreamFlush \sa SDL_AudioStreamClear \sa SDL_FreeAudioStream

SDL_AUDIO_ALLOW_ANY_CHANGE sdl2

 

SDL_AUDIO_ALLOW_CHANNELS_CHANGE sdl2

 

SDL_AUDIO_ALLOW_FORMAT_CHANGE sdl2

 

SDL_AUDIO_ALLOW_FREQUENCY_CHANGE sdl2

Allow change flags

Which audio format changes are allowed when opening a device.

SDL_AUDIO_BITSIZE sdl2

 

SDL_AUDIO_ISBIGENDIAN sdl2

 

SDL_AUDIO_ISFLOAT sdl2

 

SDL_AUDIO_ISINT sdl2

 

SDL_AUDIO_ISLITTLEENDIAN sdl2

 

SDL_AUDIO_ISSIGNED sdl2

 

SDL_AUDIO_ISUNSIGNED sdl2

 

SDL_AUDIO_MASK_BITSIZE sdl2

Audio flags

SDL_AUDIO_MASK_DATATYPE sdl2

 

SDL_AUDIO_MASK_ENDIAN sdl2

 

SDL_AUDIO_MASK_SIGNED sdl2

 

SDL_AUDIO_PAUSED sdl2

 

SDL_AUDIO_PLAYING sdl2

 

SDL_AUDIO_STOPPED sdl2

 

SDL_BITMAPORDER_1234 sdl2

 

SDL_BITMAPORDER_4321 sdl2

 

SDL_BITMAPORDER_NONE sdl2

 

SDL_BITSPERPIXEL sdl2

 

SDL_BLENDFACTOR_DST_ALPHA sdl2

< 1-dstR, 1-dstG, 1-dstB, 1-dstA *

SDL_BLENDFACTOR_DST_COLOR sdl2

< 1-srcA, 1-srcA, 1-srcA, 1-srcA *

SDL_BLENDFACTOR_ONE sdl2

< 0, 0, 0, 0 *

SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA sdl2

< dstA, dstA, dstA, dstA *

SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR sdl2

< dstR, dstG, dstB, dstA *

SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA sdl2

< srcA, srcA, srcA, srcA *

SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR sdl2

< srcR, srcG, srcB, srcA *

SDL_BLENDFACTOR_SRC_ALPHA sdl2

< 1-srcR, 1-srcG, 1-srcB, 1-srcA *

SDL_BLENDFACTOR_SRC_COLOR sdl2

< 1, 1, 1, 1 *

SDL_BLENDFACTOR_ZERO sdl2

 

SDL_BLENDMODE_ADD sdl2

< alpha blending dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA)) dstA = srcA + (dstA * (1-srcA)) *

SDL_BLENDMODE_BLEND sdl2

< no blending dstRGBA = srcRGBA *

SDL_BLENDMODE_INVALID sdl2

< color multiply dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA)) dstA = (srcA * dstA) + (dstA * (1-srcA)) *

SDL_BLENDMODE_MOD sdl2

< additive blending dstRGB = (srcRGB * srcA) + dstRGB dstA = dstA *

SDL_BLENDMODE_MUL sdl2

< color modulate dstRGB = srcRGB * dstRGB dstA = dstA *

SDL_BLENDMODE_NONE sdl2

 

SDL_BLENDOPERATION_ADD sdl2

 

SDL_BLENDOPERATION_MAXIMUM sdl2

< min(dst, src) : supported by D3D11 *

SDL_BLENDOPERATION_MINIMUM sdl2

< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES

SDL_BLENDOPERATION_REV_SUBTRACT sdl2

< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES

SDL_BLENDOPERATION_SUBTRACT sdl2

< dst + src: supported by all renderers *

SDL_BlitSurface sdl2

SDL_surface.h uses #define to change all SDL_BlitSurface() calls into SDL_UpperBlit() calls. * Since Pascal macro support is very limited, we workaround by outright pointing SDL_BlitSurface() to SDL_UpperBlit().

SDL_BlitSurfaceScaled sdl2

SDL_surface.h uses #define to change all SDL_BlitSurfaceScaled() calls into SDL_UpperBlitScaled() calls. * Since Pascal macro support is very limited, we workaround by outright pointing SDL_BlitSurfaceScaled() to SDL_UpperBlitScaled().

SDL_BuildAudioCVT sdl2

Initialize an SDL_AudioCVT structure for conversion.

Before an SDL_AudioCVT structure can be used to convert audio data it must be initialized with source and destination information.

This function will zero out every field of the SDL_AudioCVT, so it must be called before the application fills in the final buffer information.

Once this function has returned successfully, and reported that a conversion is necessary, the application fills in the rest of the fields in SDL_AudioCVT, now that it knows how large a buffer it needs to allocate, and then can call SDL_ConvertAudio() to complete the conversion.

\param cvt an SDL_AudioCVT structure filled in with audio conversion information \param src_format the source format of the audio data; for more info see SDL_AudioFormat \param src_channels the number of channels in the source \param src_rate the frequency (sample-frames-per-second) of the source \param dst_format the destination format of the audio data; for more info see SDL_AudioFormat \param dst_channels the number of channels in the destination \param dst_rate the frequency (sample-frames-per-second) of the destination \returns 1 if the audio filter is prepared, 0 if no conversion is needed, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_ConvertAudio

SDL_Button sdl2

Used as a mask when testing buttons in buttonstate. - Button 1: Left mouse button - Button 2: Middle mouse button - Button 3: Right mouse button

SDL_BUTTON_LEFT sdl2

 

SDL_BUTTON_LMASK sdl2

Pascal Conv.: For better performance instead of using the SDL_Button(X) macro, the following defines are implemented directly.

SDL_BUTTON_MIDDLE sdl2

 

SDL_BUTTON_MMASK sdl2

 

SDL_BUTTON_RIGHT sdl2

 

SDL_BUTTON_RMASK sdl2

 

SDL_BUTTON_X1 sdl2

 

SDL_BUTTON_X1MASK sdl2

 

SDL_BUTTON_X2 sdl2

 

SDL_BUTTON_X2MASK sdl2

 

SDL_CACHELINE_SIZE sdl2

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.

SDL_CalculateGammaRamp sdl2

/** Calculate a 256 entry gamma ramp for a gamma value.

\param gamma a gamma value where 0.0 is black and 1.0 is identity \param ramp an array of 256 values filled in with the gamma ramp

\since This function is available since SDL 2.0.0.

\sa SDL_SetWindowGammaRamp

SDL_calloc sdl2

Allocate a block of memory that can fit an array of nmemb elements, each of given size. The memory is initialized by setting every byte to 0.

SDL_CaptureMouse sdl2

Capture the mouse and to track input outside an SDL window.

Capturing enables your app to obtain mouse events globally, instead of just within your window. Not all video targets support this function. When capturing is enabled, the current window will get all mouse events, but unlike relative mode, no change is made to the cursor and it is not restrained to your window.

This function may also deny mouse input to other windows–both those in your application and others on the system–so you should use this function sparingly, and in small bursts. For example, you might want to track the mouse while the user is dragging something, until the user releases a mouse button. It is not recommended that you capture the mouse for long periods of time, such as the entire time your app is running. For that, you should probably use SDL_SetRelativeMouseMode() or SDL_SetWindowGrab(), depending on your goals.

While captured, mouse events still report coordinates relative to the current (foreground) window, but those coordinates may be outside the bounds of the window (including negative values). Capturing is only allowed for the foreground window. If the window loses focus while capturing, the capture will be disabled automatically.

While capturing is enabled, the current window will have the `SDL_WINDOW_MOUSE_CAPTURE` flag set.

Please note that as of SDL 2.0.22, SDL will attempt to "auto capture" the mouse while the user is pressing a button; this is to try and make mouse behavior more consistent between platforms, and deal with the common case of a user dragging the mouse outside of the window. This means that if you are calling SDL_CaptureMouse() only to deal with this situation, you no longer have to (although it is safe to do so). If this causes problems for your app, you can disable auto capture by setting the `SDL_HINT_MOUSE_AUTO_CAPTURE` hint to zero.

\param enabled SDL_TRUE to enable capturing, SDL_FALSE to disable. \returns 0 on success or -1 if not supported; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.4.

\sa SDL_GetGlobalMouseState

SDL_ceil sdl2

Calculate the smallest integral value that is not less than x.

\since This function is available since SDL 2.0.4.

SDL_ceilf sdl2

Calculate the smallest integral value that is not less than x.

\since This function is available since SDL 2.0.8.

SDL_ClearComposition sdl2

Dismiss the composition window/IME without disabling the subsystem.

\since This function is available since SDL 2.0.22.

\sa SDL_StartTextInput \sa SDL_StopTextInput

SDL_ClearErrorcdecl sdl2

\brief Clear the error message for the current thread

SDL_ClearHints sdl2

Clear all hints.

This function is automatically called during SDL_Quit(), and deletes all callbacks without calling them and frees all memory associated with hints. If you're calling this from application code you probably want to call SDL_ResetHints() instead.

This function will be removed from the API the next time we rev the ABI.

\since This function is available since SDL 2.0.0.

\sa SDL_ResetHints

SDL_ClearQueuedAudio sdl2

Drop any queued audio data waiting to be sent to the hardware.

Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For output devices, the hardware will start playing silence if more audio isn't queued. For capture devices, the hardware will start filling the empty queue with new data if the capture device isn't paused.

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 fraction of a second of audio that might still be heard. This can be useful if you want to, say, drop any pending music or any unprocessed microphone input during a level change in your game.

You may not queue or dequeue 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, but not both.

You should not call SDL_LockAudio() on the device before clearing the queue; SDL handles locking internally for this function.

This function always succeeds and thus returns void.

\param dev the device ID of which to clear the audio queue

\since This function is available since SDL 2.0.4.

\sa SDL_GetQueuedAudioSize \sa SDL_QueueAudio \sa SDL_DequeueAudio

SDL_CLIPBOARDUPDATE sdl2

Clipboard events

SDL_CloseAudio sdl2

This function is a legacy means of closing the audio device.

This function is equivalent to calling...

```c SDL_CloseAudioDevice(1); ```

...and is only useful if you used the legacy SDL_OpenAudio() function.

\since This function is available since SDL 2.0.0.

\sa SDL_OpenAudio

SDL_CloseAudioDevice sdl2

Use this function to shut down audio processing and close the audio device.

The application should close open audio devices once they are no longer needed. Calling this function will wait until the device's audio callback is not running, release the audio hardware and then clean up internal state. No further audio will play from this device once this function returns.

This function may block briefly while pending audio data is played by the hardware, so that applications don't drop the last buffer of data they supplied.

The device ID is invalid as soon as the device is closed, and is eligible for reuse in a new SDL_OpenAudioDevice() call immediately.

\param dev an audio device previously opened with SDL_OpenAudioDevice()

\since This function is available since SDL 2.0.0.

\sa SDL_OpenAudioDevice

SDL_COMMONEVENT sdl2

Unused (do not remove) (needed in pascal?)

SDL_COMPILEDVERSION sdl2

This is the version number macro for the current SDL version.

SDL_CompilerBarrier sdl2

The compiler barrier prevents the compiler from reordering reads and writes to globally visible variables across the call.

SDL_ComposeCustomBlendMode sdl2

\brief Create a custom blend mode, which may or may not be supported by a given renderer

\param srcColorFactor source color factor \param dstColorFactor destination color factor \param colorOperation color operation \param srcAlphaFactor source alpha factor \param dstAlphaFactor destination alpha factor \param alphaOperation alpha operation

The result of the blend mode operation will be: dstRGB = dstRGB * dstColorFactor colorOperation srcRGB * srcColorFactor and dstA = dstA * dstAlphaFactor alphaOperation srcA * srcAlphaFactor

SDL_CondBroadcast sdl2

Restart all threads that are waiting on the condition variable.

\param cond the condition variable to signal \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CondSignal sdl2

Restart one of the threads that are waiting on the condition variable.

\param cond the condition variable to signal \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CondWait sdl2

Wait until a condition variable is signaled.

This function unlocks the specified `mutex` and waits for another thread to call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable `cond`. Once the condition variable is signaled, the mutex is re-locked and the function returns.

The mutex must be locked before calling this function.

This function is the equivalent of calling SDL_CondWaitTimeout() with a time length of SDL_MUTEX_MAXWAIT.

\param cond the condition variable to wait on \param mutex the mutex used to coordinate thread access \returns 0 when it is signaled or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CondWaitTimeout sdl2

Wait until a condition variable is signaled or a certain time has passed.

This function unlocks the specified `mutex` and waits for another thread to call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable `cond`, or for the specified time to elapse. Once the condition variable is signaled or the time elapsed, the mutex is re-locked and the function returns.

The mutex must be locked before calling this function.

\param cond the condition variable to wait on \param mutex the mutex used to coordinate thread access \param ms the maximum time to wait, in milliseconds, or SDL_MUTEX_MAXWAIT to wait indefinitely \returns 0 if the condition variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not signaled in the allotted time, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CONTROLLERAXISMOTION sdl2

Game controller events

SDL_CONTROLLERBUTTONDOWN sdl2

Game controller axis motion

SDL_CONTROLLERBUTTONUP sdl2

Game controller button pressed

SDL_CONTROLLERDEVICEADDED sdl2

Game controller button released

SDL_CONTROLLERDEVICEREMAPPED sdl2

An opened Game controller has been removed

SDL_CONTROLLERDEVICEREMOVED sdl2

A new Game controller has been inserted into the system

SDL_CONTROLLERSENSORUPDATE sdl2

Game controller touchpad finger was lifted

SDL_CONTROLLERTOUCHPADDOWN sdl2

The controller mapping was updated

SDL_CONTROLLERTOUCHPADMOTION sdl2

Game controller touchpad was touched

SDL_CONTROLLERTOUCHPADUP sdl2

Game controller touchpad finger was moved

SDL_CONTROLLER_AXIS_INVALID sdl2

 

SDL_CONTROLLER_AXIS_LEFTX sdl2

 

SDL_CONTROLLER_AXIS_LEFTY sdl2

 

SDL_CONTROLLER_AXIS_MAX sdl2

 

SDL_CONTROLLER_AXIS_RIGHTX sdl2

 

SDL_CONTROLLER_AXIS_RIGHTY sdl2

 

SDL_CONTROLLER_AXIS_TRIGGERLEFT sdl2

 

SDL_CONTROLLER_AXIS_TRIGGERRIGHT sdl2

 

SDL_CONTROLLER_BINDTYPE_AXIS sdl2

 

SDL_CONTROLLER_BINDTYPE_BUTTON sdl2

 

SDL_CONTROLLER_BINDTYPE_HAT sdl2

 

SDL_CONTROLLER_BINDTYPE_NONE sdl2

 

SDL_CONTROLLER_BUTTON_A sdl2

 

SDL_CONTROLLER_BUTTON_B sdl2

 

SDL_CONTROLLER_BUTTON_BACK sdl2

 

SDL_CONTROLLER_BUTTON_DPAD_DOWN sdl2

 

SDL_CONTROLLER_BUTTON_DPAD_LEFT sdl2

 

SDL_CONTROLLER_BUTTON_DPAD_RIGHT sdl2

 

SDL_CONTROLLER_BUTTON_DPAD_UP sdl2

 

SDL_CONTROLLER_BUTTON_GUIDE sdl2

 

SDL_CONTROLLER_BUTTON_INVALID sdl2

 

SDL_CONTROLLER_BUTTON_LEFTSHOULDER sdl2

 

SDL_CONTROLLER_BUTTON_LEFTSTICK sdl2

 

SDL_CONTROLLER_BUTTON_MAX sdl2

< PS4/PS5 touchpad button *

SDL_CONTROLLER_BUTTON_MISC1 sdl2

 

SDL_CONTROLLER_BUTTON_PADDLE1 sdl2

< Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button *

SDL_CONTROLLER_BUTTON_PADDLE2 sdl2

< Xbox Elite paddle P1 *

SDL_CONTROLLER_BUTTON_PADDLE3 sdl2

< Xbox Elite paddle P3 *

SDL_CONTROLLER_BUTTON_PADDLE4 sdl2

< Xbox Elite paddle P2 *

SDL_CONTROLLER_BUTTON_RIGHTSHOULDER sdl2

 

SDL_CONTROLLER_BUTTON_RIGHTSTICK sdl2

 

SDL_CONTROLLER_BUTTON_START sdl2

 

SDL_CONTROLLER_BUTTON_TOUCHPAD sdl2

< Xbox Elite paddle P4 *

SDL_CONTROLLER_BUTTON_X sdl2

 

SDL_CONTROLLER_BUTTON_Y sdl2

 

SDL_CONTROLLER_TYPE_AMAZON_LUNA sdl2

 

SDL_CONTROLLER_TYPE_GOOGLE_STADIA sdl2

 

SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT sdl2

 

SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR sdl2

 

SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT sdl2

 

SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO sdl2

 

SDL_CONTROLLER_TYPE_NVIDIA_SHIELD sdl2

 

SDL_CONTROLLER_TYPE_PS3 sdl2

 

SDL_CONTROLLER_TYPE_PS4 sdl2

 

SDL_CONTROLLER_TYPE_PS5 sdl2

 

SDL_CONTROLLER_TYPE_UNKNOWN sdl2

 

SDL_CONTROLLER_TYPE_VIRTUAL sdl2

 

SDL_CONTROLLER_TYPE_XBOX360 sdl2

 

SDL_CONTROLLER_TYPE_XBOXONE sdl2

 

SDL_ConvertAudio sdl2

Convert audio data to a desired audio format.

This function does the actual audio data conversion, after the application has called SDL_BuildAudioCVT() to prepare the conversion information and then filled in the buffer details.

Once the application has initialized the `cvt` structure using SDL_BuildAudioCVT(), allocated an audio buffer and filled it with audio data in the source format, this function will convert the buffer, in-place, to the desired format.

The data conversion may go through several passes; any given pass may possibly temporarily increase the size of the data. For example, SDL might expand 16-bit data to 32 bits before resampling to a lower frequency, shrinking the data size after having grown it briefly. Since the supplied buffer will be both the source and destination, converting as necessary in-place, the application must allocate a buffer that will fully contain the data during its largest conversion pass. After SDL_BuildAudioCVT() returns, the application should set the `cvt->len` field to the size, in bytes, of the source data, and allocate a buffer that is `cvt->len * cvt->len_mult` bytes long for the `buf` field.

The source data should be copied into this buffer before the call to SDL_ConvertAudio(). Upon successful return, this buffer will contain the converted audio, and `cvt->len_cvt` will be the size of the converted data, in bytes. Any bytes in the buffer past `cvt->len_cvt` are undefined once this function returns.

\param cvt an SDL_AudioCVT structure that was previously set up by SDL_BuildAudioCVT(). \returns 0 if the conversion was completed successfully or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_BuildAudioCVT

SDL_ConvertPixels sdl2

Copy a block of pixels of one format to another format

0 on success, or -1 if there was an error

SDL_ConvertSurface sdl2

Creates a new surface of the specified format, and then copies and maps the given surface to it so the blit of the converted surface will be as fast as possible. If this function fails, it returns NULL.

The flags parameter is passed to SDL_CreateRGBSurface() and has those semantics. You can also pass SDL_RLEACCEL in the flags parameter and SDL will try to RLE accelerate colorkey and alpha blits in the resulting surface.

SDL_ConvertSurfaceFormat sdl2

 

SDL_copysign sdl2

Return a number whose absolute value matches that of x, but the sign matches that of y.

\since This function is available since SDL 2.0.4.

SDL_copysignf sdl2

Return a number whose absolute value matches that of x, but the sign matches that of y.

\since This function is available since SDL 2.0.8.

SDL_cos sdl2

Calculate the cosine of x, where x is given in radians.

\since This function is available since SDL 2.0.4.

SDL_cosf sdl2

Calculate the cosine of x, where x is given in radians.

\since This function is available since SDL 2.0.4.

SDL_CreateColorCursor sdl2

Create a color cursor.

\param surface an SDL_Surface structure representing the cursor image \param hot_x the x position of the cursor hot spot \param hot_y the y position of the cursor hot spot \returns the new cursor on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_CreateCursor \sa SDL_FreeCursor

SDL_CreateCond sdl2

Create a condition variable.

\returns a new condition variable or NIL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CreateCursor sdl2

Create a cursor using the specified bitmap data and mask (in MSB format).

`mask` has to be in MSB (Most Significant Bit) format.

The cursor width (`w`) must be a multiple of 8 bits.

The cursor is created in black and white according to the following:

- data=0, mask=1: white - data=1, mask=1: black - data=0, mask=0: transparent - data=1, mask=0: inverted color if possible, black if not.

Cursors created with this function must be freed with SDL_FreeCursor().

If you want to have a color cursor, or create your cursor from an SDL_Surface, you should use SDL_CreateColorCursor(). Alternately, you can hide the cursor and draw your own as part of your game's rendering, but it will be bound to the framerate.

Also, since SDL 2.0.0, SDL_CreateSystemCursor() is available, which provides twelve readily available system cursors to pick from.

\param data the color value for each pixel of the cursor \param mask the mask value for each pixel of the cursor \param w the width of the cursor \param h the height of the cursor \param hot_x the X-axis location of the upper left corner of the cursor relative to the actual mouse position \param hot_y the Y-axis location of the upper left corner of the cursor relative to the actual mouse position \returns a new cursor with the specified parameters on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_FreeCursor \sa SDL_SetCursor \sa SDL_ShowCursor

SDL_CreateMutex sdl2

Create a new mutex.

All newly-created mutexes begin in the _unlocked_ state.

Calls to SDL_LockMutex() will not return while the mutex is locked by another thread. See SDL_TryLockMutex() to attempt to lock without blocking.

SDL mutexes are reentrant.

\returns the initialized and unlocked mutex or NIL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CreateRenderer sdl2

Create a 2D rendering context for a window.

window The window where rendering is displayed. index The index of the rendering driver to initialize, or -1 to initialize the first one supporting the requested flags. flags ::SDL_RendererFlags.

A valid rendering context or NULL if there was an error.

SDL_CreateSoftwareRenderer() SDL_GetRendererInfo() SDL_DestroyRenderer()

SDL_CreateRGBSurface sdl2

Allocate and free an RGB surface.

If the depth is 4 or 8 bits, an empty palette is allocated for the surface. If the depth is greater than 8 bits, the pixel format is set using the flags '[RGB]mask'.

If the function runs out of memory, it will return NULL.

\param flags The \c flags are obsolete and should be set to 0. \param width The width in pixels of the surface to create. \param height The height in pixels of the surface to create. \param depth The depth in bits of the surface to create. \param Rmask The red mask of the surface to create. \param Gmask The green mask of the surface to create. \param Bmask The blue mask of the surface to create. \param Amask The alpha mask of the surface to create.

SDL_CreateRGBSurfaceFrom sdl2

 

SDL_CreateRGBSurfaceWithFormat sdl2

!!! FIXME for 2.1: why does this ask for depth? Format provides that. *

SDL_CreateRGBSurfaceWithFormatFrom sdl2

 

SDL_CreateSemaphore sdl2

Create a semaphore.

This function creates a new semaphore and initializes it with the provided initial value. Each wait operation on the semaphore will atomically decrement the semaphore value and potentially block if the semaphore value is 0. Each post operation will atomically increment the semaphore value and wake waiting threads and allow them to retry the wait operation.

\param initial_value the starting value of the semaphore \returns a new semaphore or NIL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_CreateShapedWindow sdl2

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_HIDDEN, 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 NIL if window creation failed.

\since This function is available since SDL 2.0.0.

\sa SDL_DestroyWindow

SDL_CreateSoftwareRenderer sdl2

Create a 2D software rendering context for a surface.

surface The surface where rendering is done.

A valid rendering context or NULL if there was an error.

SDL_CreateRenderer() SDL_DestroyRenderer()

SDL_CreateSystemCursor sdl2

Create a system cursor.

\param id an SDL_SystemCursor enum value \returns a cursor on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_FreeCursor

SDL_CreateTexture sdl2

Create a texture for a rendering context.

renderer The renderer. format The format of the texture. access One of the enumerated values in ::SDL_TextureAccess. w The width of the texture in pixels. h The height of the texture in pixels.

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.

SDL_QueryTexture() SDL_UpdateTexture() SDL_DestroyTexture()

SDL_CreateTextureFromSurface sdl2

Create a texture from an existing surface.

renderer The renderer. surface The surface containing pixel data used to fill the texture.

The created texture is returned, or 0 on error.

The surface is not modified or freed by this function.

SDL_QueryTexture() SDL_DestroyTexture()

SDL_CreateThread sdl2

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().

SDL_CreateWindow sdl2

\brief Create a window 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, in screen coordinates. \param h The height of the window, in screen coordinates. \param flags The flags for the window, a mask of any of the following: ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS, ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, ::SDL_WINDOW_ALLOW_HIGHDPI, ::SDL_WINDOW_VULKAN.

\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 high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query the client area's size in screen coordinates, and SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to query the drawable size in pixels.

If the window is created with any of the SDL_WINDOW_OPENGL or SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the corresponding UnloadLibrary function is called by SDL_DestroyWindow().

If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver, SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail.

\note On non-Apple devices, SDL requires you to either not link to the Vulkan loader or link to a dynamic library version. This limitation may be removed in a future version of SDL.

\sa SDL_DestroyWindow() \sa SDL_GL_LoadLibrary() \sa SDL_Vulkan_LoadLibrary()

SDL_CreateWindowAndRenderer sdl2

Create a window and default renderer

width The width of the window height The height of the window window_flags The flags used to create the window window A pointer filled with the window, or NULL on error renderer A pointer filled with the renderer, or NULL on error

0 on success, or -1 on error

SDL_CreateWindowFrom sdl2

Create an SDL window from an existing native window.

data A pointer to driver-dependent window creation data

The id of the window created, or zero if window creation failed.

SDL_DestroyWindow()

SDL_Delay sdl2

Wait a specified number of milliseconds before returning.

SDL_DelEventWatch sdl2

Remove an event watch function added with SDL_AddEventWatch()

SDL_DelHintCallback sdl2

/** \brief Remove a function watching a particular hint

\param name The hint being watched \param callback The function being called when the hint value changes \param userdata A pointer being passed to the callback function /

SDL_DequeueAudio sdl2

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. SDL_DequeueAudio() 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 dequeue 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 dequeueing; 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 \returns the number of bytes dequeued, which could be less than requested; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.5.

\sa SDL_ClearQueuedAudio \sa SDL_GetQueuedAudioSize

SDL_DestroyCond sdl2

Destroy a condition variable.

\param cond the condition variable to destroy

\since This function is available since SDL 2.0.0.

SDL_DestroyMutex sdl2

Destroy a mutex created with SDL_CreateMutex().

This function must be called on any mutex that is no longer needed. Failure to destroy a mutex will result in a system memory or resource leak. While it is safe to destroy a mutex that is _unlocked_, it is not safe to attempt to destroy a locked mutex, and may result in undefined behavior depending on the platform.

\param mutex the mutex to destroy

\since This function is available since SDL 2.0.0.

SDL_DestroyRenderer sdl2

Destroy the rendering context for a window and free associated textures.

SDL_CreateRenderer()

SDL_DestroySemaphore sdl2

Destroy a semaphore.

It is not safe to destroy a semaphore if there are threads currently waiting on it.

\param sem the semaphore to destroy

\since This function is available since SDL 2.0.0.

SDL_DestroyTexture sdl2

Destroy the specified texture.

SDL_CreateTexture() SDL_CreateTextureFromSurface()

SDL_DestroyWindow sdl2

Destroy a window.

SDL_DetachThread sdl2

A thread may be "detached" to signify that it should not remain until another thread has called SDL_WaitThread() on it. Detaching a thread is useful for long-running threads that nothing needs to synchronize with or further manage. When a detached thread is done, it simply goes away.

There is no way to recover the return code of a detached thread. If you need this, don't detach the thread and instead use SDL_WaitThread().

Once a thread is detached, you should usually assume the SDL_Thread isn't safe to reference again, as it will become invalid immediately upon the detached thread's exit, instead of remaining until someone has called SDL_WaitThread() to finally clean it up. As such, don't detach the same thread more than once.

If a thread has already exited when passed to SDL_DetachThread(), it will stop waiting for a call to SDL_WaitThread() and clean up immediately. It is not safe to detach a thread that might be used with SDL_WaitThread().

You may not call SDL_WaitThread() on a thread that has been detached. Use either that function or this one, but not both, or behavior is undefined.

It is safe to pass NIL to this function; it is a no-op.

SDL_DISABLE sdl2

 

SDL_DisableScreenSaver sdl2

Prevent the screen from being blanked by a screensaver

SDL_IsScreenSaverEnabled() SDL_EnableScreenSaver()

SDL_DISPLAYEVENT sdl2

Display events

SDL_DISPLAYEVENT_CONNECTED sdl2

< Display orientation has changed to data1 *

SDL_DISPLAYEVENT_DISCONNECTED sdl2

< Display has been added to the system *

SDL_DISPLAYEVENT_NONE sdl2

 

SDL_DISPLAYEVENT_ORIENTATION sdl2

< Never used *

SDL_DOLLARGESTURE sdl2

Gesture events

SDL_DOLLARRECORD sdl2

 

SDL_DONTFREE sdl2

< Surface is RLE encoded *

SDL_DROPBEGIN sdl2

text/plain drag-and-drop event

SDL_DROPCOMPLETE sdl2

A new set of drops is beginning (NULL filename)

SDL_DROPFILE sdl2

Drag and drop events

SDL_DROPTEXT sdl2

The system requests a file open

SDL_DuplicateSurface sdl2

Creates a new surface identical to the existing surface

SDL_ENABLE sdl2

 

SDL_EnableScreenSaver sdl2

Allow the screen to be blanked by a screensaver

SDL_IsScreenSaverEnabled() SDL_DisableScreenSaver()

SDL_EncloseFPoints sdl2

Calculate a minimal rectangle enclosing a set of points with float precision.

If `clip` is not NIL then only points inside of the clipping rectangle are considered.

\param points an array of SDL_FPoint structures representing points to be enclosed \param count the number of structures in the `points` array \param clip an SDL_FRect used for clipping or NIL to enclose all points \param result an SDL_FRect structure filled in with the minimal enclosing rectangle \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the points were outside of the clipping rectangle.

\since This function is available since SDL 2.0.22.

SDL_EnclosePoints sdl2

Calculate a minimal rectangle enclosing a set of points

SDL_TRUE if any points were within the clipping rect

SDL_Error sdl2

SDL_Error() unconditionally returns -1. *

SDL_EventState sdl2

This function allows you to set the state of processing certain events. - If state is set to SDL_IGNORE, that event will be automatically dropped from the event queue and will not event be filtered. - If state is set to SDL_ENABLE, that event will be processed normally. - If state is set to SDL_QUERY, SDL_EventState() will return the current processing state of the specified event.

SDL_exp sdl2

Calculate the value of e (the base of natural logarithms) raised to the power of x.

\since This function is available since SDL 2.0.9.

SDL_expf sdl2

Calculate the value of e (the base of natural logarithms) raised to the power of x.

\since This function is available since SDL 2.0.9.

SDL_fabs sdl2

Calculate the absolute value of x.

\since This function is available since SDL 2.0.4.

SDL_fabsf sdl2

Calculate the absolute value of x.

\since This function is available since SDL 2.0.8.

SDL_FALSE sdl2

 

SDL_FillRect sdl2

Performs a fast fill of the given rectangle with color.

If rect is NULL, the whole surface will be filled with color.

The color should be a pixel of the format used by the surface, and can be generated by the SDL_MapRGB() function.

0 on success, or -1 on error.

SDL_FillRects sdl2

 

SDL_FilterEvents sdl2

Run the filter function on the current event queue, removing any events for which the filter returns 0.

SDL_FINGERDOWN sdl2

Touch events

SDL_FINGERMOTION sdl2

 

SDL_FINGERUP sdl2

 

SDL_FIRSTEVENT sdl2

 

SDL_FlashWindow sdl2

Request a window to demand attention from the user.

\param window the window to be flashed \param operation the flash operation \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.16.

SDL_FLASH_BRIEFLY sdl2

< Cancel any window flash state *

SDL_FLASH_CANCEL sdl2

 

SDL_FLASH_UNTIL_FOCUSED sdl2

< Flash the window briefly to get attention *

SDL_FLIP_HORIZONTAL sdl2

< Do not flip *

SDL_FLIP_NONE sdl2

Flip constants for SDL_RenderCopyEx

SDL_FLIP_VERTICAL sdl2

< flip horizontally *

SDL_floor sdl2

Calculate the largest integral value that is not greater than x.

\since This function is available since SDL 2.0.4.

SDL_floorf sdl2

Calculate the largest integral value that is not greater than x.

\since This function is available since SDL 2.0.8.

SDL_FLT_EPSILON sdl2

 

SDL_FlushEvent sdl2

This function clears events from the event queue

SDL_FlushEvents sdl2

 

SDL_fmod sdl2

Calculate the floating-point remainder of dividing x by y.

\since This function is available since SDL 2.0.8.

SDL_fmodf sdl2

Calculate the floating-point remainder of dividing x by y.

\since This function is available since SDL 2.0.8.

SDL_framerateDelay sdl2_gfx

 

SDL_FRectEmpty sdl2

Returns true if the rectangle has no area.

SDL_FRectEquals sdl2

Returns true if the two rectangles are equal, using a default epsilon.

\since This function is available since SDL 2.0.22.

SDL_FRectEqualsEpsilon sdl2

Returns true if the two rectangles are equal, within some given epsilon.

\since This function is available since SDL 2.0.22.

SDL_free sdl2

Free memory returned by functions like SDL_GetBasePath(), SDL_GetPrefPath(), etc.

Calling SDL_free() on the same pointer twice is undefined behaviour and may cause your program to crash or behave in unexpected ways.

SDL_FreeAudioStream sdl2

Free an audio stream

\since This function is available since SDL 2.0.7.

\sa SDL_NewAudioStream \sa SDL_AudioStreamPut \sa SDL_AudioStreamGet \sa SDL_AudioStreamAvailable \sa SDL_AudioStreamFlush \sa SDL_AudioStreamClear

SDL_FreeCursor sdl2

Free a previously-created cursor.

Use this function to free cursor resources created with SDL_CreateCursor(), SDL_CreateColorCursor() or SDL_CreateSystemCursor().

\param cursor the cursor to free

\since This function is available since SDL 2.0.0.

\sa SDL_CreateColorCursor \sa SDL_CreateCursor \sa SDL_CreateSystemCursor

SDL_FreeFormat sdl2

Free an SDL_PixelFormat structure allocated by SDL_AllocFormat().

\param format the SDL_PixelFormat structure to free

\since This function is available since SDL 2.0.0.

\sa SDL_AllocFormat

SDL_FreePalette sdl2

Free a palette created with SDL_AllocPalette().

\param palette the SDL_Palette structure to be freed

\since This function is available since SDL 2.0.0.

\sa SDL_AllocPalette

SDL_FreeRW sdl2

 

SDL_FreeSurface sdl2

 

SDL_FreeWAV sdl2

Free data previously allocated with SDL_LoadWAV() or SDL_LoadWAV_RW().

After a WAVE file has been opened with SDL_LoadWAV() or SDL_LoadWAV_RW() its data can eventually be freed with SDL_FreeWAV(). It is safe to call this function with a NULL pointer.

\param audio_buf a pointer to the buffer created by SDL_LoadWAV() or SDL_LoadWAV_RW()

\since This function is available since SDL 2.0.0.

\sa SDL_LoadWAV \sa SDL_LoadWAV_RW

SDL_GameControllerAddMapping sdl2

Add or update an existing mapping configuration

1 if mapping is added, 0 if updated, -1 on error

SDL_GameControllerAddMappingsFromFile sdl2

 

SDL_GameControllerAddMappingsFromRW sdl2

Load a set of mappings from a seekable SDL data stream (memory or file), filtered by the current SDL_GetPlatform() A community sourced database of controllers is available at https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt

If freerw is non-zero, the stream will be closed after being read.

Returns number of mappings added, -1 on error

SDL_GameControllerClose sdl2

Close a controller previously opened with SDL_GameControllerOpen().

SDL_GameControllerEventState sdl2

Enable/disable controller event polling.

If controller events are disabled, you must call SDL_GameControllerUpdate() yourself and check the state of the controller when you want controller information.

The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE.

SDL_GameControllerFromInstanceID sdl2

Return the SDL_GameController associated with an instance id.

SDL_GameControllerFromPlayerIndex sdl2

Get the SDL_GameController associated with a player index.

Please note that the player index is _not_ the device index, nor is it the instance id!

SDL_GameControllerGetAppleSFSymbolsNameForAxis sdl2

Return the sfSymbolsName for a given axis on a game controller on Apple platforms.

Returns the sfSymbolsName, or NIL if the name can't be found. Do _not_ pass this string to SDL_free().

SDL_GameControllerGetAppleSFSymbolsNameForButton sdl2

Return the sfSymbolsName for a given button on a game controller on Apple platforms.

Returns the sfSymbolsName, or NIL if the name can't be found. Do _not_ pass this string to SDL_free().

SDL_GameControllerGetAttached sdl2

Returns SDL_TRUE if the controller has been opened and currently connected, or SDL_FALSE if it has not.

SDL_GameControllerGetAxis sdl2

Get the current state of an axis control on a game controller.

The state is a value ranging from -32768 to 32767.

The axis indices start at index 0.

SDL_GameControllerGetAxisFromString sdl2

turn this string into a axis mapping

SDL_GameControllerGetBindForAxis sdl2

Get the SDL joystick layer binding for this controller button mapping

SDL_GameControllerGetBindForButton sdl2

Get the SDL joystick layer binding for this controller button mapping

SDL_GameControllerGetButton sdl2

Get the current state of a button on a game controller.

The button indices start at index 0.

SDL_GameControllerGetButtonFromString sdl2

turn this string into a button mapping

SDL_GameControllerGetFirmwareVersion sdl2

Get the firmware version of an opened controller, if available.

If the firmware version isn't available this function returns 0.

\param gamecontroller the game controller object to query. \return the controller firmware version, or zero if unavailable.

\since This function is available since SDL 2.24.0.

SDL_GameControllerGetJoystick sdl2

Get the underlying joystick object used by a controller

SDL_GameControllerGetNumTouchpadFingers sdl2

Get the number of supported simultaneous fingers on a touchpad on a game controller.

SDL_GameControllerGetNumTouchpads sdl2

Get the number of touchpads on a game controller.

SDL_GameControllerGetPlayerIndex sdl2

Get the player index of an opened game controller. For XInput controllers this returns the XInput user index.

Returns the player index for controller, or -1 if it's not available.

SDL_GameControllerGetProduct sdl2

Get the USB product ID of an opened controller, if available. If the product ID isn't available, this function returns 0.

SDL_GameControllerGetProductVersion sdl2

Get the product version of an opened controller, if available. If the product version isn't available, this function returns 0.

SDL_GameControllerGetSensorData sdl2

Get the current state of a game controller sensor.

The number of values and interpretation of the data is sensor dependent. See sdlsensor.inc for the details for each type of sensor.

SDL_GameControllerGetSensorDataRate sdl2

Get the data rate (number of events per second) of a game controller sensor.

Returns the data rate, or 0.0 if the data rate is not available.

SDL_GameControllerGetSerial sdl2

Get the serial number of an opened controller, if available.

Returns a string containing the serial number of the controller, or NIL if it is not available. Do _not_ free the string with SDL_free().

SDL_GameControllerGetStringForAxis sdl2

turn this axis enum into a string mapping

SDL_GameControllerGetStringForButton sdl2

turn this button enum into a string mapping

SDL_GameControllerGetTouchpadFinger sdl2

Get the current state of a finger on a touchpad on a game controller.

SDL_GameControllerGetType sdl2

Get the type of this currently opened controller

This is the same name as returned by SDL_GameControllerTypeForIndex(), but it takes a controller identifier instead of the (unstable) device index.

SDL_GameControllerGetVendor sdl2

Get the USB vendor ID of an opened controller, if available.

If the vendor ID isn't available this function returns 0.

\param gamecontroller the game controller object to query. \return the USB vendor ID, or zero if unavailable.

\since This function is available since SDL 2.0.6.

SDL_GameControllerHasAxis sdl2

Query whether a game controller has a given axis.

This merely reports whether the controller's mapping defined this axis, as that is all the information SDL has about the physical device.

SDL_GameControllerHasButton sdl2

Query whether a game controller has a given button.

This merely reports whether the controller's mapping defined this button, as that is all the information SDL has about the physical device.

SDL_GameControllerHasLED sdl2

Query whether a game controller has an LED.

SDL_GameControllerHasRumble sdl2

Query whether a game controller has rumble support.

SDL_GameControllerHasRumbleTriggers sdl2

Query whether a game controller has rumble support on triggers.

SDL_GameControllerHasSensor sdl2

Return whether a game controller has a particular sensor.

SDL_GameControllerIsSensorEnabled sdl2

Query whether sensor data reporting is enabled for a game controller.

SDL_GameControllerMapping sdl2

Get a mapping string for an open GameController

the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available

SDL_GameControllerMappingForDeviceIndex sdl2

Get the mapping of a game controller. This can be called before any controllers are opened.

Returns the mapping string. Must be freed with SDL_free(). Returns NIL if no mapping is available.

SDL_GameControllerMappingForGUID sdl2

Get a mapping string for a GUID

the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available

SDL_GameControllerMappingForIndex sdl2

Get the mapping at a particular index.

Returns the mapping string. Must be freed with SDL_free(). Returns NIL if the index is out of range.

SDL_GameControllerName sdl2

Return the name for this currently opened controller

SDL_GameControllerNameForIndex sdl2

Get the implementation dependent name of a game controller. This can be called before any controllers are opened. If no name can be found, this function returns NULL.

SDL_GameControllerNumMappings sdl2

Get the number of mappings installed.

SDL_GameControllerOpen sdl2

Open a game controller for use. The index passed as an argument refers to the N'th game controller on the system. This index is the value which will identify this controller in future controller events.

A controller identifier, or NULL if an error occurred.

SDL_GameControllerPath sdl2

Get the implementation-dependent path for an opened game controller.

This is the same path as returned by SDL_GameControllerNameForIndex(), but it takes a controller identifier instead of the (unstable) device index.

\param gamecontroller a game controller identifier previously returned by SDL_GameControllerOpen() \returns the implementation dependent path for the game controller, or NIL if there is no path or the identifier passed is invalid.

\since This function is available since SDL 2.24.0.

\sa SDL_GameControllerPathForIndex

SDL_GameControllerPathForIndex sdl2

Get the implementation dependent path for the game controller.

This function can be called before any controllers are opened.

`joystick_index` is the same as the `device_index` passed to SDL_JoystickOpen().

\param joystick_index the device_index of a device, from zero to SDL_NumJoysticks()-1 \returns the implementation-dependent path for the game controller, or NIL if there is no path or the index is invalid.

\since This function is available since SDL 2.24.0.

\sa SDL_GameControllerPath

SDL_GameControllerRumble sdl2

Start a rumble effect on a game controller.

Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling.

Returns 0, or -1 if rumble isn't supported on this controller.

SDL_GameControllerRumbleTriggers sdl2

Start a rumble effect in the game controller's triggers.

Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling.

Note that this is rumbling of the _triggers_ and not the game controller as a whole. This is currently only supported on Xbox One controllers. If you want the (more common) whole-controller rumble, use SDL_GameControllerRumble() instead.

Returns 0, or -1 if trigger rumble isn't supported on this controller

SDL_GameControllerSendEffect sdl2

Send a controller-specific effect packet.

Returns 0, or -1 if this controller or driver does not support effect packets.

SDL_GameControllerSetLED sdl2

Update a game controller's LED color.

Returns 0, or -1 if this controller does not have a modifiable LED.

SDL_GameControllerSetPlayerIndex sdl2

Set the player index of an opened game controller.

SDL_GameControllerSetSensorEnabled sdl2

Set whether data reporting for a game controller sensor is enabled.

SDL_GameControllerTypeForIndex sdl2

Get the type of a game controller. This can be called before any controllers are opened.

SDL_GameControllerUpdate sdl2

Update the current state of the open game controllers.

This is called automatically by the event loop if any game controller events are enabled.

SDL_GetAudioDeviceName sdl2

Get the human-readable name of a specific audio device.

This function is only valid after successfully initializing the audio subsystem. The values returned by this function reflect the latest call to SDL_GetNumAudioDevices(); re-call 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 are called.

\param index the index of the audio device; valid values range from 0 to SDL_GetNumAudioDevices() - 1 \param iscapture non-zero to query the list of recording devices, zero to query the list of output devices. \returns the name of the audio device at the requested index, or NULL on error.

\since This function is available since SDL 2.0.0.

\sa SDL_GetNumAudioDevices \sa SDL_GetDefaultAudioInfo

SDL_GetAudioDeviceSpec sdl2

Get the preferred audio format of a specific audio device.

This function is only valid after a successfully initializing the audio subsystem. The values returned by this function reflect the latest call to SDL_GetNumAudioDevices(); re-call that function to redetect available hardware.

`spec` will be filled with the sample rate, sample format, and channel count.

\param index the index of the audio device; valid values range from 0 to SDL_GetNumAudioDevices() - 1 \param iscapture non-zero to query the list of recording devices, zero to query the list of output devices. \param spec The SDL_AudioSpec to be initialized by this function. \returns 0 on success, nonzero on error

\since This function is available since SDL 2.0.16.

\sa SDL_GetNumAudioDevices \sa SDL_GetDefaultAudioInfo

SDL_GetAudioDeviceStatus sdl2

Use this function to get the current audio state of an audio device.

\param dev the ID of an audio device previously opened with SDL_OpenAudioDevice() \returns the SDL_AudioStatus of the specified audio device.

\since This function is available since SDL 2.0.0.

\sa SDL_PauseAudioDevice

SDL_GetAudioDriver sdl2

Use this function to get the name of a built in audio driver.

The list of audio drivers is given in the order that they are normally initialized by default; the drivers that seem more reasonable to choose first (as far as the SDL developers believe) are earlier in the list.

The names of drivers are all simple, low-ASCII identifiers, like "alsa", "coreaudio" or "xaudio2". These never have Unicode characters, and are not meant to be proper names.

\param index the index of the audio driver; the value ranges from 0 to SDL_GetNumAudioDrivers() - 1 \returns the name of the audio driver at the requested index, or NULL if an invalid index was specified.

\since This function is available since SDL 2.0.0.

\sa SDL_GetNumAudioDrivers

SDL_GetAudioStatus sdl2

This function is a legacy means of querying the audio device.

New programs might want to use SDL_GetAudioDeviceStatus() instead. This function is equivalent to calling...

```c SDL_GetAudioDeviceStatus(1); ```

...and is only useful if you used the legacy SDL_OpenAudio() function.

\returns the SDL_AudioStatus of the audio device opened by SDL_OpenAudio().

\since This function is available since SDL 2.0.0.

\sa SDL_GetAudioDeviceStatus

SDL_GetBasePath sdl2

Get the directory where the application was run from.

This is not necessarily a fast call, so you should call this once near startup and save the string if you need it.

**Mac OS X and iOS Specific Functionality**: If the application is in a ".app" bundle, this function returns the Resource directory (e.g. MyApp.app/Contents/Resources/). This behaviour can be overridden by adding a property to the Info.plist file. Adding a string key with the name SDL_FILESYSTEM_BASE_DIR_TYPE with a supported value will change the behaviour.

Supported values for the SDL_FILESYSTEM_BASE_DIR_TYPE property (Given an application in /Applications/SDLApp/MyApp.app):

- `resource`: bundle resource directory (the default). For example: `/Applications/SDLApp/MyApp.app/Contents/Resources` - `bundle`: the Bundle directory. For example: `/Applications/SDLApp/MyApp.app/` - `parent`: the containing directory of the bundle. For example: `/Applications/SDLApp/`

The returned path is guaranteed to end with a path separator ('\' on Windows, '/' on most other platforms).

The pointer returned is owned by the caller. Please call SDL_free() on the pointer when done with it.

\returns an absolute path in UTF-8 encoding to the application data directory. nil will be returned on error or when the platform doesn't implement this functionality, call SDL_GetError() for more information.

\since This function is available since SDL 2.0.1.

\sa SDL_GetPrefPath

SDL_GetClipboardText sdl2

Get UTF-8 text from the clipboard, which must be freed with SDL_free().

This functions returns empty string if there was not enough memory left for a copy of the clipboard's content.

\returns the clipboard text on success or an empty string on failure; call SDL_GetError() for more information. Caller must call SDL_free() on the returned pointer when done with it (even if there was an error).

\since This function is available since SDL 2.0.0.

\sa SDL_HasClipboardText \sa SDL_SetClipboardText

SDL_GetClipRect sdl2

Gets the clipping rectangle for the destination surface in a blit.

rect must be a pointer to a valid rectangle which will be filled with the correct values.

SDL_GetClosestDisplayMode sdl2

Get the closest match to the requested display mode.

mode The desired display mode closest A pointer to a display mode to be filled in with the closest match of the available display modes.

The passed in value closest, or nil if no matching video mode was available.

The available display modes are scanned, and closest is filled in with the closest mode matching the requested mode and returned. The mode format and refresh_rate default to the desktop mode if they are 0. The modes are scanned with size being first priority, format being second priority, and finally checking the refresh_rate. If all the available modes are too small, then nil is returned.

SDL_GetNumDisplayModes() SDL_GetDisplayMode()

SDL_GetColorKey sdl2

Gets the color key (transparent pixel) in a blittable surface.

surface The surface to update key A pointer filled in with the transparent pixel in the native surface format

0 on success, or -1 if the surface is not valid or colorkey is not enabled.

SDL_GetCPUCacheLineSize sdl2

This function returns the L1 cache line size of the CPU.

This is useful for determining multi-threaded structure padding or SIMD prefetch sizes.

SDL_GetCPUCount sdl2

This function returns the number of CPU cores available.

SDL_GetCurrentAudioDriver sdl2

Get the name of the current audio driver.

The returned string points to internal static memory and thus never becomes invalid, even if you quit the audio subsystem and initialize a new driver (although such a case would return a different static string from another call to this function, of course). As such, you should not modify or free the returned string.

\returns the name of the current audio driver or NULL if no driver has been initialized.

\since This function is available since SDL 2.0.0.

\sa SDL_AudioInit

SDL_GetCurrentDisplayMode sdl2

Fill in information about the current display mode.

SDL_GetCurrentVideoDriver sdl2

Returns the name of the currently initialized video driver.

The name of the current video driver or nil if no driver has been initialized

SDL_GetNumVideoDrivers() SDL_GetVideoDriver()

SDL_GetCursor sdl2

Get the active cursor.

This function returns a pointer to the current cursor which is owned by the library. It is not necessary to free the cursor with SDL_FreeCursor().

\returns the active cursor or NULL if there is no mouse.

\since This function is available since SDL 2.0.0.

\sa SDL_SetCursor

SDL_GetDefaultAudioInfo sdl2

Get the name and preferred format of the default audio device.

Some (but not all!) platforms have an isolated mechanism to get information about the "default" device. This can actually be a completely different device that's not in the list you get from SDL_GetAudioDeviceSpec(). It can even be a network address! (This is discussed in SDL_OpenAudioDevice().)

As a result, this call is not guaranteed to be performant, as it can query the sound server directly every time, unlike the other query functions. You should call this function sparingly!

`spec` will be filled with the sample rate, sample format, and channel count, if a default device exists on the system. If `name` is provided, will be filled with either a dynamically-allocated UTF-8 string or nil.

\param name A pointer to be filled with the name of the default device (can be nil). Please call SDL_free() when you are done with this pointer! \param spec The SDL_AudioSpec to be initialized by this function. \param iscapture non-zero to query the default recording device, zero to query the default output device. \returns 0 on success, nonzero on error

\since This function is available since SDL 2.24.0.

\sa SDL_GetAudioDeviceName \sa SDL_GetAudioDeviceSpec \sa SDL_OpenAudioDevice

SDL_GetDefaultCursor sdl2

Get the default cursor.

\returns the default cursor on success or NULL on failure.

\since This function is available since SDL 2.0.0.

\sa SDL_CreateSystemCursor

SDL_GetDesktopDisplayMode sdl2

Fill in information about the desktop display mode.

SDL_GetDisplayBounds sdl2

Get the desktop area represented by a display, with the primary display located at 0,0

0 on success, or -1 if the index is out of range.

SDL_GetNumVideoDisplays()

SDL_GetDisplayDPI sdl2

\brief Get the dots/pixels-per-inch for a display

\note Diagonal, horizontal and vertical DPI can all be optionally returned if the parameter is non-NULL.

\return 0 on success, or -1 if no DPI information is available or the index is out of range.

\sa SDL_GetNumVideoDisplays()

SDL_GetDisplayMode sdl2

Fill in information about a specific display mode.

The display modes are sorted in this priority: bits per pixel -> more colors to fewer colors width -> largest to smallest height -> largest to smallest refresh rate -> highest to lowest

SDL_GetNumDisplayModes()

SDL_GetDisplayName sdl2

Get the name of a display in UTF-8 encoding

The name of a display, or nil for an invalid display index.

SDL_GetNumVideoDisplays()

SDL_GetDisplayOrientation sdl2

\brief Get the orientation of a display

\return The orientation of the display, or SDL_ORIENTATION_UNKNOWN if it isn't available.

\sa SDL_GetNumVideoDisplays()

SDL_GetDisplayUsableBounds sdl2

\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()

SDL_GetError sdl2

\brief Get the last error message that was set

SDL API functions may set error messages and then succeed, so you should only use the error value if a function fails.

This returns a pointer to a static buffer for convenience and should not be called by multiple threads simultaneously.

\return a pointer to the last error message that was set

SDL_GetErrorMsg sdl2

\brief Get the last error message that was set for the current thread

SDL API functions may set error messages and then succeed, so you should only use the error value if a function fails.

\param errstr A buffer to fill with the last error message that was set for the current thread \param maxlen The size of the buffer pointed to by the errstr parameter

\return errstr

SDL_GETEVENT sdl2

 

SDL_GetEventFilter sdl2

Return the current event filter - can be used to "chain" filters. If there is no event filter set, this function returns SDL_FALSE.

SDL_GetEventState sdl2

 

SDL_getFramecount sdl2_gfx

 

SDL_getFramerate sdl2_gfx

 

SDL_GetGlobalMouseState sdl2

Get the current state of the mouse in relation to the desktop.

This works similarly to SDL_GetMouseState(), but the coordinates will be reported relative to the top-left of the desktop. This can be useful if you need to track the mouse outside of a specific window and SDL_CaptureMouse() doesn't fit your needs. For example, it could be useful if you need to track the mouse while dragging a window, where coordinates relative to a window might not be in sync at all times.

Note: SDL_GetMouseState() returns the mouse position as SDL understands it from the last pump of the event queue. This function, however, queries the OS for the current mouse position, and as such, might be a slightly less efficient function. Unless you know what you're doing and have a good reason to use this function, you probably want SDL_GetMouseState() instead.

\param x filled in with the current X coord relative to the desktop; can be NULL \param y filled in with the current Y coord relative to the desktop; can be NULL \returns the current button state as a bitmask which can be tested using the SDL_BUTTON(X) macros.

\since This function is available since SDL 2.0.4.

\sa SDL_CaptureMouse

SDL_GetGrabbedWindow sdl2

\brief Get the window that currently has an input grab enabled.

\return This returns the window if input is grabbed, and NULL otherwise.

\sa SDL_SetWindowGrab()

SDL_GetHint sdl2

/** \brief Get a hint

\return The string value of a hint variable. /

SDL_GetHintBoolean sdl2

/** \brief Get a hint

\return The boolean value of a hint variable. /

SDL_GetJoystickGUIDInfo sdl2

Get the device information encoded in a SDL_JoystickGUID structure

\param guid the SDL_JoystickGUID you wish to get info about \param vendor A pointer filled in with the device VID, or 0 if not available \param product A pointer filled in with the device PID, or 0 if not available \param version A pointer filled in with the device version, or 0 if not available \param crc16 A pointer filled in with a CRC used to distinguish different products with the same VID/PID, or 0 if not available

\since This function is available since SDL 2.26.0.

\sa SDL_JoystickGetDeviceGUID

SDL_GetKeyboardFocus sdl2

Query the window which currently has keyboard focus.

\returns the window with keyboard focus.

\since This function is available since SDL 2.0.0.

SDL_GetKeyboardState sdl2

Get a snapshot of the current state of the keyboard.

The pointer returned is a pointer to an internal SDL array. It will be valid for the whole lifetime of the application and should not be freed by the caller.

A array element with a value of 1 means that the key is pressed and a value of 0 means that it is not. Indexes into this array are obtained by using SDL_Scancode values.

Use SDL_PumpEvents() to update the state array.

This function gives you the current state after all events have been processed, so if a key or button has been pressed and released before you process events, then the pressed state will never show up in the SDL_GetKeyboardState() calls.

Note: This function doesn't take into account whether shift has been pressed or not.

\param numkeys if non-nil, receives the length of the returned array \returns a pointer to an array of key states.

\since This function is available since SDL 2.0.0.

\sa SDL_PumpEvents \sa SDL_ResetKeyboard

SDL_GetKeyFromName sdl2

Get a key code from a human-readable name.

\param name the human-readable key name \returns key code, or `SDLK_UNKNOWN` if the name wasn't recognized; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_GetKeyFromScancode \sa SDL_GetKeyName \sa SDL_GetScancodeFromName

SDL_GetKeyFromScancode sdl2

Get the key code corresponding to the given scancode according to the current keyboard layout.

See SDL_Keycode for details.

\param scancode the desired SDL_Scancode to query \returns the SDL_Keycode that corresponds to the given SDL_Scancode.

\since This function is available since SDL 2.0.0.

\sa SDL_GetKeyName \sa SDL_GetScancodeFromKey

SDL_GetKeyName sdl2

Get a human-readable name for a key.

See SDL_Scancode and SDL_Keycode for details.

\param key the desired SDL_Keycode to query \returns 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 ("").

\since This function is available since SDL 2.0.0.

\sa SDL_GetKeyFromName \sa SDL_GetKeyFromScancode \sa SDL_GetScancodeFromKey

SDL_GetMemoryFunctions sdl2

Get the current set of SDL memory functions

\since This function is available since SDL 2.0.7.

SDL_GetModState sdl2

Get the current key modifier state for the keyboard.

\returns an OR'd combination of the modifier keys for the keyboard. See SDL_Keymod for details.

\since This function is available since SDL 2.0.0.

\sa SDL_GetKeyboardState \sa SDL_SetModState

SDL_GetMouseFocus sdl2

Get the window which currently has mouse focus.

\returns the window with mouse focus.

\since This function is available since SDL 2.0.0.

SDL_GetMouseState sdl2

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 (where `X` is generally 1 for the left, 2 for middle, 3 for the right button), and `x` and `y` are set to the mouse cursor position relative to the focus window. You can pass NULL for either `x` or `y`.

\param x the x coordinate of the mouse cursor position relative to the focus window \param y the y coordinate of the mouse cursor position relative to the focus window \returns a 32-bit button bitmask of the current button state.

\since This function is available since SDL 2.0.0.

\sa SDL_GetGlobalMouseState \sa SDL_GetRelativeMouseState \sa SDL_PumpEvents

SDL_GetNumAllocations sdl2

Get the number of outstanding (unfreed) allocations

\since This function is available since SDL 2.0.7.

SDL_GetNumAudioDevices sdl2

Get the number of built-in audio devices.

This function is only valid after successfully initializing the audio subsystem.

Note that audio capture support is not implemented as of SDL 2.0.4, so the `iscapture` parameter is for future expansion and should always be zero for now.

This function will return -1 if an explicit list of devices can't be determined. Returning -1 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 in 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()).

This function may trigger a complete redetect of available hardware. It should not be called for each iteration of a loop, but rather once at the start of a loop:

```c // Don't do this: for (int i = 0; i < SDL_GetNumAudioDevices(0); i++)

// do this instead: const int count = SDL_GetNumAudioDevices(0); for (int i = 0; i < count; ++i) do_something_here(); ```

\param iscapture zero to request playback devices, non-zero to request recording devices \returns the number of available devices exposed by the current driver or -1 if an explicit list of devices can't be determined. A return value of -1 does not necessarily mean an error condition.

\since This function is available since SDL 2.0.0.

\sa SDL_GetAudioDeviceName \sa SDL_OpenAudioDevice

SDL_GetNumAudioDrivers sdl2

Use this function to get the number of built-in audio drivers.

This function returns a hardcoded number. This never returns a negative value; if there are no drivers compiled into this build of SDL, this function returns zero. The presence of a driver in this list does not mean it will function, it just means SDL is capable of interacting with that interface. For example, a build of SDL might have esound support, but if there's no esound server available, SDL's esound driver would fail if used.

By default, SDL tries all drivers, in its preferred order, until one is found to be usable.

\returns the number of built-in audio drivers.

\since This function is available since SDL 2.0.0.

\sa SDL_GetAudioDriver

SDL_GetNumDisplayModes sdl2

Returns the number of available display modes.

SDL_GetDisplayMode()

SDL_GetNumRenderDrivers sdl2

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.

SDL_GetRenderDriverInfo() SDL_CreateRenderer()

SDL_GetNumTouchDevices sdl2

Get the number of registered touch devices.

SDL_GetNumTouchFingers sdl2

Get the number of active fingers for a given touch device.

SDL_GetNumVideoDisplays sdl2

Returns the number of available video displays.

SDL_GetDisplayBounds()

SDL_GetNumVideoDrivers sdl2

Get the number of video drivers compiled into SDL

SDL_GetVideoDriver()

SDL_GetOriginalMemoryFunctions sdl2

Get the original set of SDL memory functions

\since This function is available since SDL 2.24.0.

SDL_GetPerformanceCounter sdl2

Get the current value of the high resolution counter

SDL_GetPerformanceFrequency sdl2

Get the count per second of the high resolution counter

SDL_GetPixelFormatName sdl2

Get the human readable name of a pixel format.

\param format the pixel format to query \returns the human readable name of the specified pixel format or `SDL_PIXELFORMAT_UNKNOWN` if the format isn't recognized.

\since This function is available since SDL 2.0.0.

SDL_GetPlatform sdl2

Gets the name of the platform.

SDL_GetPointDisplayIndex sdl2

Get the index of the display containing a point

\param point the point to query \returns the index of the display containing the point or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.24.0.

\sa SDL_GetDisplayBounds \sa SDL_GetNumVideoDisplays

SDL_GetPowerInfo sdl2

\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).

SDL_GetPreferredLocales sdl2

\brief Report the user's preferred locale.

This returns an array of SDL_Locale structs, the final item zeroed out. When the caller is done with this array, it should call SDL_free() on the returned value; all the memory involved is allocated in a single block, so a single SDL_free() will suffice.

Returned language strings are in the format xx, where 'xx' is an ISO-639 language specifier (such as 'en' for English, 'de' for German, etc). Country strings are in the format YY, where 'YY' is an ISO-3166 country code (such as "US" for the United States, 'CA' for Canada, etc). Country might be NULL if there's no specific guidance on them (so you might get ( 'en', 'US' ) for American English, but ( 'en', NIL ) means "English language, generically"). Language strings are never NIL, except to terminate the array.

Please note that not all of these strings are 2 characters; some are three or more.

The returned list of locales are in the order of the user's preference. For example, a German citizen that is fluent in US English and knows enough Japanese to navigate around Tokyo might have a list like: [ 'de', 'en_US', 'jp', NIL ]. Someone from England might prefer British English (where "color" is spelled "colour", etc), but will settle for anything like it: [ 'en_GB', 'en', NIL ].

This function returns NIL on error, including when the platform does not supply this information at all.

This might be a "slow" call that has to query the operating system. It's best to ask for this once and save the results. However, this list can change, usually because the user has changed a system preference outside of your program; SDL will send an SDL_LOCALECHANGED event in this case, if possible, and you can call this function again to get an updated copy of preferred locales.

\return array of locales, terminated with a locale with a NIL language field. Will return NIL on error.

SDL_GetPrefPath sdl2

Get the user-and-app-specific path where files can be written.

Get the "pref dir". This is meant to be where users can write personal files (preferences and save games, etc) that are specific to your application. This directory is unique per user, per application.

This function will decide the appropriate location in the native filesystem, create the directory if necessary, and return a string of the absolute path to the directory in UTF-8 encoding.

On Windows, the string might look like:

`C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\`

On Linux, the string might look like:

`/home/bob/.local/share/My Program Name/`

On Mac OS X, the string might look like:

`/Users/bob/Library/Application Support/My Program Name/`

You should assume the path returned by this function is the only safe place to write files (and that SDL_GetBasePath(), while it might be writable, or even the parent of the returned path, isn't where you should be writing things).

Both the org and app strings may become part of a directory name, so please follow these rules:

- Try to use the same org string (_including case-sensitivity_) for all your applications that use this function. - Always use a unique app string for each one, and make sure it never changes for an app once you've decided on it. - Unicode characters are legal, as long as it's UTF-8 encoded, but... - ...only use letters, numbers, and spaces. Avoid punctuation like "Game Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient.

The returned path is guaranteed to end with a path separator ('\' on Windows, '/' on most other platforms).

The pointer returned is owned by the caller. Please call SDL_free() on the pointer when done with it.

\param org the name of your organization \param app the name of your application \returns a UTF-8 string of the user directory in platform-dependent notation. nil if there's a problem (creating directory failed, etc.).

\since This function is available since SDL 2.0.1.

\sa SDL_GetBasePath

SDL_GetPrimarySelectionText sdl2

Get UTF-8 text from the primary selection, which must be freed with SDL_free().

This functions returns empty string if there was not enough memory left for a copy of the primary selection's content.

\returns the primary selection text on success or an empty string on failure; call SDL_GetError() for more information. Caller must call SDL_free() on the returned pointer when done with it (even if there was an error).

\since This function is available since SDL 2.26.1.

\sa SDL_HasPrimarySelectionText \sa SDL_SetPrimarySelectionText

SDL_GetQueuedAudioSize sdl2

Get the number of bytes of still-queued audio.

For playback devices: this is the number of bytes that have been queued for playback with SDL_QueueAudio(), but have not yet been sent to the hardware.

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 or dequeue 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, but not both.

You should not call SDL_LockAudio() on the device before querying; SDL handles locking internally for this function.

\param dev the device ID of which we will query queued audio size \returns the number of bytes (not samples!) of queued audio.

\since This function is available since SDL 2.0.4.

\sa SDL_ClearQueuedAudio \sa SDL_QueueAudio \sa SDL_DequeueAudio

SDL_GetRectDisplayIndex sdl2

Get the index of the display primarily containing a rect

\param rect the rect to query \returns the index of the display entirely containing the rect or closest to the center of the rect on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.24.0.

\sa SDL_GetDisplayBounds \sa SDL_GetNumVideoDisplays

SDL_GetRelativeMouseMode sdl2

Query whether relative mouse mode is enabled.

\returns SDL_TRUE if relative mode is enabled or SDL_FALSE otherwise.

\since This function is available since SDL 2.0.0.

\sa SDL_SetRelativeMouseMode

SDL_GetRelativeMouseState sdl2

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 (where `X` is generally 1 for the left, 2 for middle, 3 for the right button), and `x` and `y` are set to the mouse deltas since the last call to SDL_GetRelativeMouseState() or since event initialization. You can pass NULL for either `x` or `y`.

\param x a pointer filled with the last recorded x coordinate of the mouse \param y a pointer filled with the last recorded y coordinate of the mouse \returns a 32-bit button bitmask of the relative button state.

\since This function is available since SDL 2.0.0.

\sa SDL_GetMouseState

SDL_GetRenderDrawBlendMode sdl2

Get the blend mode used for drawing operations.

renderer The renderer from which blend mode should be queried. blendMode A pointer filled in with the current blend mode.

0 on success, or -1 on error

SDL_SetRenderDrawBlendMode()

SDL_GetRenderDrawColor sdl2

Get the color used for drawing operations (Rect, Line and Clear).

renderer The renderer from which drawing color should be queried. r A pointer to the red value used to draw on the rendering target. g A pointer to the green value used to draw on the rendering target. b A pointer to the blue value used to draw on the rendering target. a A pointer to the alpha value used to draw on the rendering target, usually SDL_ALPHA_OPAQUE (255).

0 on success, or -1 on error

SDL_GetRenderDriverInfo sdl2

Get information about a specific 2D rendering driver for the current display.

index The index of the driver to query information about. info A pointer to an SDL_RendererInfo struct to be filled with information on the rendering driver.

0 on success, -1 if the index was out of range.

SDL_CreateRenderer()

SDL_GetRenderer sdl2

Get the renderer associated with a window.

SDL_GetRendererInfo sdl2

Get information about a rendering context.

SDL_GetRendererOutputSize sdl2

Get the output size of a rendering context.

SDL_GetRenderTarget sdl2

Get the current render target or NULL for the default render target.

The current render target

SDL_SetRenderTarget()

SDL_GetRevision sdl2

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.

SDL_GetRevisionNumber sdl2

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.

SDL_GetRGB sdl2

Get RGB values from a pixel in the specified format.

This function uses the entire 8-bit [0..255] range when converting color components from pixel formats with less than 8-bits per RGB component (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]).

\param pixel a pixel value \param format an SDL_PixelFormat structure describing the format of the pixel \param r a pointer filled in with the red component \param g a pointer filled in with the green component \param b a pointer filled in with the blue component

\since This function is available since SDL 2.0.0.

\sa SDL_GetRGBA \sa SDL_MapRGB \sa SDL_MapRGBA

SDL_GetRGBA sdl2

Get RGBA values from a pixel in the specified format.

This function uses the entire 8-bit [0..255] range when converting color components from pixel formats with less than 8-bits per RGB component (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, 0xff, 0xff] not [0xf8, 0xfc, 0xf8]).

If the surface has no alpha component, the alpha will be returned as 0xff (100% opaque).

\param pixel a pixel value \param format an SDL_PixelFormat structure describing the format of the pixel \param r a pointer filled in with the red component \param g a pointer filled in with the green component \param b a pointer filled in with the blue component \param a a pointer filled in with the alpha component

\since This function is available since SDL 2.0.0.

\sa SDL_GetRGB \sa SDL_MapRGB \sa SDL_MapRGBA

SDL_GetScancodeFromKey sdl2

Get the scancode corresponding to the given key code according to the current keyboard layout.

See SDL_Scancode for details.

\param key the desired SDL_Keycode to query \returns the SDL_Scancode that corresponds to the given SDL_Keycode.

\since This function is available since SDL 2.0.0.

\sa SDL_GetKeyFromScancode \sa SDL_GetScancodeName

SDL_GetScancodeFromName sdl2

Get a scancode from a human-readable name.

\param name the human-readable scancode name \returns the SDL_Scancode, or `SDL_SCANCODE_UNKNOWN` if the name wasn't recognized; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_GetKeyFromName \sa SDL_GetScancodeFromKey \sa SDL_GetScancodeName

SDL_GetScancodeName sdl2

Get a human-readable name for a scancode.

See SDL_Scancode for details.

**Warning**: The returned name is by design not stable across platforms, e.g. the name for `SDL_SCANCODE_LGUI` is "Left GUI" under Linux but "Left Windows" under Microsoft Windows, and some scancodes like `SDL_SCANCODE_NONUSBACKSLASH` don't have any name at all. There are even scancodes that share names, e.g. `SDL_SCANCODE_RETURN` and `SDL_SCANCODE_RETURN2` (both called "Return"). This function is therefore unsuitable for creating a stable cross-platform two-way mapping between strings and scancodes.

\param scancode the desired SDL_Scancode to query \returns a pointer to the name for the scancode. If the scancode doesn't have a name this function returns an empty string ("").

\since This function is available since SDL 2.0.0.

\sa SDL_GetScancodeFromKey \sa SDL_GetScancodeFromName

SDL_GetShapedWindowMode sdl2

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 NIL to check whether the window has a shape. \return 0 if the window has a shape and, provided shape_mode was not NIL, 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.

\since This function is available since SDL 2.0.0.

\sa SDL_WindowShapeMode \sa SDL_SetWindowShape

SDL_GetSurfaceAlphaMod sdl2

Get the additional alpha value used in blit operations.

surface The surface to query. alpha A pointer filled in with the current alpha value.

0 on success, or -1 if the surface is not valid.

SDL_SetSurfaceAlphaMod()

SDL_GetSurfaceBlendMode sdl2

Get the blend mode used for blit operations.

surface The surface to query. blendMode A pointer filled in with the current blend mode.

0 on success, or -1 if the surface is not valid.

SDL_SetSurfaceBlendMode()

SDL_GetSurfaceColorMod sdl2

Get the additional color value used in blit operations.

surface The surface to query. r A pointer filled in with the current red color value. g A pointer filled in with the current green color value. b A pointer filled in with the current blue color value.

0 on success, or -1 if the surface is not valid.

SDL_SetSurfaceColorMod()

SDL_GetSystemRAM sdl2

This function returns the amount of RAM configured in the system, in MB.

SDL_GetTextureAlphaMod sdl2

Get the additional alpha value used in render copy operations.

texture The texture to query. alpha A pointer filled in with the current alpha value.

0 on success, or -1 if the texture is not valid.

SDL_SetTextureAlphaMod()

SDL_GetTextureBlendMode sdl2

Get the blend mode used for texture copy operations.

texture The texture to query. blendMode A pointer filled in with the current blend mode.

0 on success, or -1 if the texture is not valid.

SDL_SetTextureBlendMode()

SDL_GetTextureColorMod sdl2

Get the additional color value used in render copy operations.

texture The texture to query. r A pointer filled in with the current red color value. g A pointer filled in with the current green color value. b A pointer filled in with the current blue color value.

0 on success, or -1 if the texture is not valid.

SDL_SetTextureColorMod()

SDL_GetTextureScaleMode sdl2

Get the scale mode used for texture scale operations.

SDL_GetTextureUserData sdl2

Get the user-specified pointer associated with a texture.

SDL_GetThreadID sdl2

Get the thread identifier for the specified thread.

Equivalent to SDL_ThreadID() if the specified thread is NULL.

SDL_GetThreadName sdl2

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().

SDL_GetTicks sdl2

Get the number of milliseconds since the SDL library initialization.

This value wraps if the program runs for more than ˜49 days.

SDL_GetTicks64 sdl2

Get the number of milliseconds since SDL library initialization.

Note that you should not use the SDL_TICKS_PASSED macro with values returned by this function, as that macro does clever math to compensate for the 32-bit overflow every ˜49 days that SDL_GetTicks() suffers from. 64-bit values from this function can be safely compared directly.

SDL_GetTouchDevice sdl2

Get the touch ID with the given index, or 0 if the index is invalid.

SDL_GetTouchDeviceType sdl2

Get the type of the given touch device.

\since This function is available since SDL 2.0.10.

SDL_GetTouchFinger sdl2

Get the finger object of the given touch, with the given index.

SDL_GetTouchName sdl2

Get the touch device name as reported from the driver, or NIL if the index is invalid.

\since This function is available since SDL 2.0.22.

SDL_GetVersion sdl2

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.

compiled: TSDL_Version; linked: TSDL_Version;

SDL_VERSION(@compiled); SDL_GetVersion(@linked); WriteLn('We compiled against SDL version: ' + IntToStr(compiled.major) + IntToStr(compiled.minor) + IntToStr(compiled.patch)); WriteLn('But we linked against SDL version:' + IntToStr(compiled.major) + IntToStr(compiled.minor) + IntToStr(compiled.patch));

This function may be called safely at any time, even before SDL_Init().

SDL_VERSION

SDL_GetVideoDriver sdl2

Get the name of a built in video driver.

The video drivers are presented in the order in which they are normally checked during initialization.

SDL_GetNumVideoDrivers()

SDL_GetWindowBordersSize sdl2

\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.

SDL_GetWindowBrightness sdl2

Get the brightness (gamma correction) for a window.

The last brightness value passed to SDL_SetWindowBrightness()

SDL_SetWindowBrightness()

SDL_GetWindowData sdl2

Retrieve the data pointer associated with a window.

window The window to query. name The name of the pointer.

The value associated with 'name'

SDL_SetWindowData()

SDL_GetWindowDisplayIndex sdl2

Get the display index associated with a window.

the display index of the display containing the center of the window, or -1 on error.

SDL_GetWindowDisplayMode sdl2

Fill in information about the display mode used when a fullscreen window is visible.

SDL_SetWindowDisplayMode() SDL_SetWindowFullscreen()

SDL_GetWindowFlags sdl2

Get the window flags.

SDL_GetWindowFromID sdl2

Get a window from a stored ID, or nil if it doesn't exist.

SDL_GetWindowGammaRamp sdl2

Get the gamma ramp for a window.

red A pointer to a 256 element array of 16-bit quantities to hold the translation table for the red channel, or nil. green A pointer to a 256 element array of 16-bit quantities to hold the translation table for the green channel, or nil. blue A pointer to a 256 element array of 16-bit quantities to hold the translation table for the blue channel, or nil.

0 on success, or -1 if gamma ramps are unsupported.

SDL_SetWindowGammaRamp()

SDL_GetWindowGrab sdl2

Get a window's input grab mode.

This returns SDL_TRUE if input is grabbed, and SDL_FALSE otherwise.

SDL_SetWindowGrab()

SDL_GetWindowICCProfile sdl2

Get the raw ICC profile data for the screen the window is currently on.

Data returned should be freed with SDL_free().

\param window the window to query \param size the size of the ICC profile \returns the raw ICC profile data on success or NIL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.18.

SDL_GetWindowID sdl2

Get the numeric ID of a window, for logging purposes.

SDL_GetWindowKeyboardGrab sdl2

Get a window's keyboard grab mode.

Returns SDL_TRUE if keyboard is grabbed, and SDL_FALSE otherwise.

SDL_SetWindowKeyboardGrab()

SDL_GetWindowMaximumSize sdl2

Get the maximum size of a window's client area.

w Pointer to variable for storing the maximum width, may be nil h Pointer to variable for storing the maximum height, may be nil

SDL_GetWindowMinimumSize() SDL_SetWindowMaximumSize()

SDL_GetWindowMinimumSize sdl2

Get the minimum size of a window's client area.

w Pointer to variable for storing the minimum width, may be nil h Pointer to variable for storing the minimum height, may be nil

SDL_GetWindowMaximumSize() SDL_SetWindowMinimumSize()

SDL_GetWindowMouseGrab sdl2

Get a window's mouse grab mode.

Returns SDL_TRUE if mouse is grabbed, and SDL_FALSE otherwise.

SDL_SetWindowMouseGrab()

SDL_GetWindowMouseRect sdl2

Get the mouse confinement rectangle of a window.

Returns A pointer to the mouse confinement rectangle of a window, or NULL if there isn't one.

SDL_SetWindowMouseRect()

SDL_GetWindowOpacity sdl2

\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()

SDL_GetWindowPixelFormat sdl2

Get the pixel format associated with the window.

SDL_GetWindowPosition sdl2

Get the position of a window.

x Pointer to variable for storing the x position, may be nil y Pointer to variable for storing the y position, may be nil

SDL_SetWindowPosition()

SDL_GetWindowSize sdl2

Get the size of a window's client area.

w Pointer to variable for storing the width, may be nil h Pointer to variable for storing the height, may be nil

SDL_SetWindowSize()

SDL_GetWindowSurface sdl2

Get the SDL surface associated with the window.

The window's framebuffer surface, or nil on error.

A new surface will be created with the optimal format for the window, if necessary. This surface will be freed when the window is destroyed.

You may not combine this with 3D or the rendering API on this window.

SDL_UpdateWindowSurface() SDL_UpdateWindowSurfaceRects()

SDL_GetWindowTitle sdl2

Get the title of a window, in UTF-8 format.

SDL_SetWindowTitle()

SDL_GetWindowWMInfo sdl2

Get driver-specific information about a window.

You must include SDL_syswm.h for the declaration of SDL_SysWMinfo.

The caller must initialize the `info` structure's version by using `SDL_VERSION(&info.version)`, and then this function will fill in the rest of the structure with information about the given window.

\param window the window about which information is being requested \param info an SDL_SysWMinfo structure filled in with window information \returns SDL_TRUE if the function is implemented and the `version` member of the `info` struct is valid, or SDL_FALSE if the information could not be retrieved; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_GetYUVConversionMode sdl2

\brief Get the YUV conversion mode

SDL_GetYUVConversionModeForResolution sdl2

\brief Get the YUV conversion mode, returning the correct mode for the resolution when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC

SDL_GFX_VERSION sdl2_gfx

 

SDL_GL_ACCELERATED_VISUAL sdl2

 

SDL_GL_ACCUM_ALPHA_SIZE sdl2

 

SDL_GL_ACCUM_BLUE_SIZE sdl2

 

SDL_GL_ACCUM_GREEN_SIZE sdl2

 

SDL_GL_ACCUM_RED_SIZE sdl2

 

SDL_GL_ALPHA_SIZE sdl2

 

SDL_GL_BindTexture sdl2

Bind the texture to the current OpenGL/ES/ES2 context for use with OpenGL instructions.

texture The SDL texture to bind texw A pointer to a float that will be filled with the texture width texh A pointer to a float that will be filled with the texture height

0 on success, or -1 if the operation is not supported

SDL_GL_BLUE_SIZE sdl2

 

SDL_GL_BUFFER_SIZE sdl2

 

SDL_GL_CONTEXT_DEBUG_FLAG sdl2

 

SDL_GL_CONTEXT_EGL sdl2

 

SDL_GL_CONTEXT_FLAGS sdl2

 

SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG sdl2

 

SDL_GL_CONTEXT_MAJOR_VERSION sdl2

 

SDL_GL_CONTEXT_MINOR_VERSION sdl2

 

SDL_GL_CONTEXT_NO_ERROR sdl2

 

SDL_GL_CONTEXT_PROFILE_COMPATIBILITY sdl2

 

SDL_GL_CONTEXT_PROFILE_CORE sdl2

 

SDL_GL_CONTEXT_PROFILE_ES sdl2

 

SDL_GL_CONTEXT_PROFILE_MASK sdl2

 

SDL_GL_CONTEXT_RELEASE_BEHAVIOR sdl2

 

SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH sdl2

 

SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE sdl2

 

SDL_GL_CONTEXT_RESET_ISOLATION_FLAG sdl2

 

SDL_GL_CONTEXT_RESET_LOSE_CONTEXT sdl2

 

SDL_GL_CONTEXT_RESET_NOTIFICATION sdl2

 

SDL_GL_CONTEXT_RESET_NO_NOTIFICATION sdl2

 

SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG sdl2

 

SDL_GL_CreateContext sdl2

Create an OpenGL context for use with an OpenGL window, and make it current.

SDL_GL_DeleteContext()

SDL_GL_DeleteContext sdl2

Delete an OpenGL context.

SDL_GL_CreateContext()

SDL_GL_DEPTH_SIZE sdl2

 

SDL_GL_DOUBLEBUFFER sdl2

 

SDL_GL_ExtensionSupported sdl2

Return true if an OpenGL extension is supported for the current context.

SDL_GL_FLOATBUFFERS sdl2

 

SDL_GL_FRAMEBUFFER_SRGB_CAPABLE sdl2

 

SDL_GL_GetAttribute sdl2

Get the actual value for an attribute from the current context.

SDL_GL_GetCurrentContext sdl2

Get the currently active OpenGL context.

SDL_GL_GetCurrentWindow sdl2

Get the currently active OpenGL window.

SDL_GL_GetDrawableSize sdl2

Get the size of a window's underlying drawable in pixels (for use with glViewport).

window Window from which the drawable size should be queried w Pointer to variable for storing the width in pixels, may be NULL h Pointer to variable for storing the height in pixels, may be NULL

This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with high-DPI support (Apple calls this "Retina"), and not disabled by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint.

SDL_GetWindowSize() SDL_CreateWindow()

SDL_GL_GetProcAddress sdl2

Get the address of an OpenGL function.

SDL_GL_GetSwapInterval sdl2

Get the swap interval for the current OpenGL context.

0 if there is no vertical retrace synchronization, 1 if the buffer swap is synchronized with the vertical retrace, and -1 if late swaps happen immediately instead of waiting for the next retrace. If the system can't determine the swap interval, or there isn't a valid current context, this will return 0 as a safe default.

SDL_GL_SetSwapInterval()

SDL_GL_GREEN_SIZE sdl2

 

SDL_GL_LoadLibrary sdl2

Dynamically load an OpenGL library.

path The platform dependent OpenGL library name, or nil to open the default OpenGL library.

0 on success, or -1 if the library couldn't be loaded.

This should be done after initializing the video driver, but before creating any OpenGL windows. If no OpenGL library is loaded, the default library will be loaded upon creation of the first OpenGL window.

If you do this, you need to retrieve all of the GL functions used in your program from the dynamic library using SDL_GL_GetProcAddress().

SDL_GL_GetProcAddress() SDL_GL_UnloadLibrary()

SDL_GL_MakeCurrent sdl2

Set up an OpenGL context for rendering into an OpenGL window.

The context must have been created with a compatible window.

SDL_GL_MULTISAMPLEBUFFERS sdl2

 

SDL_GL_MULTISAMPLESAMPLES sdl2

 

SDL_GL_RED_SIZE sdl2

 

SDL_GL_ResetAttributes sdl2

Reset all previously set OpenGL context attributes to their default values

SDL_GL_RETAINED_BACKING sdl2

 

SDL_GL_SetAttribute sdl2

Set an OpenGL window attribute before window creation.

SDL_GL_SetSwapInterval sdl2

Set the swap interval for the current OpenGL context.

interval 0 for immediate updates, 1 for updates synchronized with the vertical retrace. If the system supports it, you may specify -1 to allow late swaps to happen immediately instead of waiting for the next retrace.

0 on success, or -1 if setting the swap interval is not supported.

SDL_GL_GetSwapInterval()

SDL_GL_SHARE_WITH_CURRENT_CONTEXT sdl2

 

SDL_GL_STENCIL_SIZE sdl2

 

SDL_GL_STEREO sdl2

 

SDL_GL_SwapWindow sdl2

Swap the OpenGL buffers for a window, if double-buffering is supported.

SDL_GL_UnbindTexture sdl2

Unbind a texture from the current OpenGL/ES/ES2 context.

texture The SDL texture to unbind

0 on success, or -1 if the operation is not supported

SDL_GL_UnloadLibrary sdl2

Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary().

SDL_GL_LoadLibrary()

SDL_GUIDFromString sdl2

Convert a GUID string into a ::SDL_GUID structure.

Performs no error checking. If this function is given a string containing an invalid GUID, the function will silently succeed, but the GUID generated will not be useful.

\param pchGUID string containing an ASCII representation of a GUID \returns a ::SDL_GUID structure.

\since This function is available since SDL 2.24.0.

\sa SDL_GUIDToString

SDL_GUIDToString sdl2

Get an ASCII string representation for a given ::SDL_GUID.

You should supply at least 33 bytes for pszGUID.

\param guid the ::SDL_GUID you wish to convert to string \param pszGUID buffer in which to write the ASCII string \param cbGUID the size of pszGUID

\since This function is available since SDL 2.24.0.

\sa SDL_GUIDFromString

SDL_HapticClose sdl2

Close a haptic device previously opened with SDL_HapticOpen().

\param haptic the SDL_Haptic device to close

\since This function is available since SDL 2.0.0.

\sa SDL_HapticOpen

SDL_HapticDestroyEffect sdl2

Destroy a haptic effect on the device.

This will stop the effect if it's running. Effects are automatically destroyed when the device is closed.

\param haptic the SDL_Haptic device to destroy the effect on \param effect the ID of the haptic effect to destroy

\since This function is available since SDL 2.0.0.

\sa SDL_HapticNewEffect

SDL_HapticEffectSupported sdl2

Check to see if an effect is supported by a haptic device.

\param haptic the SDL_Haptic device to query \param effect the desired effect to query \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticNewEffect \sa SDL_HapticQuery

SDL_HapticGetEffectStatus sdl2

Get the status of the current effect on the specified haptic device.

Device must support the SDL_HAPTIC_STATUS feature.

\param haptic the SDL_Haptic device to query for the effect status on \param effect the ID of the haptic effect to query its status \returns 0 if it isn't playing, 1 if it is playing, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticRunEffect \sa SDL_HapticStopEffect

SDL_HapticIndex sdl2

Get the index of a haptic device.

\param haptic the SDL_Haptic device to query \returns the index of the specified haptic device or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticOpen \sa SDL_HapticOpened

SDL_HapticName sdl2

Get the implementation dependent name of a haptic device.

This can be called before any joysticks are opened. If no name can be found, this function returns NULL.

\param device_index index of the device to query. \returns the name of the device or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_NumHaptics

SDL_HapticNewEffect sdl2

Create a new haptic effect on a specified device.

\param haptic an SDL_Haptic device to create the effect on \param effect an SDL_HapticEffect structure containing the properties of the effect to create \returns the ID of the effect on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticDestroyEffect \sa SDL_HapticRunEffect \sa SDL_HapticUpdateEffect

SDL_HapticNumAxes sdl2

Get the number of haptic axes the device has.

The number of haptic axes might be useful if working with the SDL_HapticDirection effect.

\param haptic the SDL_Haptic device to query \returns the number of axes on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_HapticNumEffects sdl2

Get the number of effects a haptic device can store.

On some platforms this isn't fully supported, and therefore is an approximation. Always check to see if your created effect was actually created and do not rely solely on SDL_HapticNumEffects().

\param haptic the SDL_Haptic device to query \returns the number of effects the haptic device can store or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticNumEffectsPlaying \sa SDL_HapticQuery

SDL_HapticNumEffectsPlaying sdl2

Get the number of effects a haptic device can play at the same time.

This is not supported on all platforms, but will always return a value.

\param haptic the SDL_Haptic device to query maximum playing effects \returns the number of effects the haptic device can play at the same time or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticNumEffects \sa SDL_HapticQuery

SDL_HapticOpen sdl2

Open a haptic device for use.

The index passed as an argument refers to the N'th haptic device on this system.

When opening a haptic device, its gain will be set to maximum and autocenter will be disabled. To modify these values use SDL_HapticSetGain() and SDL_HapticSetAutocenter().

\param device_index index of the device to open \returns the device identifier or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticClose \sa SDL_HapticIndex \sa SDL_HapticOpenFromJoystick \sa SDL_HapticOpenFromMouse \sa SDL_HapticPause \sa SDL_HapticSetAutocenter \sa SDL_HapticSetGain \sa SDL_HapticStopAll

SDL_HapticOpened sdl2

Check if the haptic device at the designated index has been opened.

\param device_index the index of the device to query \returns 1 if it has been opened, 0 if it hasn't or on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticIndex \sa SDL_HapticOpen

SDL_HapticOpenFromJoystick sdl2

Open a haptic device for use from a joystick device.

You must still close the haptic device separately. It will not be closed with the joystick.

When opened from a joystick you should first close the haptic device before closing the joystick device. If not, on some implementations the haptic device will also get unallocated and you'll be unable to use force feedback on that device.

\param joystick the SDL_Joystick to create a haptic device from \returns a valid haptic device identifier on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticClose \sa SDL_HapticOpen \sa SDL_JoystickIsHaptic

SDL_HapticOpenFromMouse sdl2

Try to open a haptic device from the current mouse.

\returns the haptic device identifier or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticOpen \sa SDL_MouseIsHaptic

SDL_HapticPause sdl2

Pause a haptic device.

Device must support the `SDL_HAPTIC_PAUSE` feature. Call SDL_HapticUnpause() to resume playback.

Do not modify the effects nor add new ones while the device is paused. That can cause all sorts of weird errors.

\param haptic the SDL_Haptic device to pause \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticUnpause

SDL_HapticQuery sdl2

Get the haptic device's supported features in bitwise manner.

\param haptic the SDL_Haptic device to query \returns a list of supported haptic features in bitwise manner (OR'd), or 0 on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticEffectSupported \sa SDL_HapticNumEffects

SDL_HapticRumbleInit sdl2

Initialize a haptic device for simple rumble playback.

\param haptic the haptic device to initialize for simple rumble playback \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticOpen \sa SDL_HapticRumblePlay \sa SDL_HapticRumbleStop \sa SDL_HapticRumbleSupported

SDL_HapticRumblePlay sdl2

Run a simple rumble effect on a haptic device.

\param haptic the haptic device to play the rumble effect on \param strength strength of the rumble to play as a 0-1 float value \param length length of the rumble to play in milliseconds \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticRumbleInit \sa SDL_HapticRumbleStop \sa SDL_HapticRumbleSupported

SDL_HapticRumbleStop sdl2

Stop the simple rumble on a haptic device.

\param haptic the haptic device to stop the rumble effect on \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticRumbleInit \sa SDL_HapticRumblePlay \sa SDL_HapticRumbleSupported

SDL_HapticRumbleSupported sdl2

Check whether rumble is supported on a haptic device.

\param haptic haptic device to check for rumble support \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticRumbleInit \sa SDL_HapticRumblePlay \sa SDL_HapticRumbleStop

SDL_HapticRunEffect sdl2

Run the haptic effect on its associated haptic device.

To repeat the effect over and over indefinitely, set `iterations` to `SDL_HAPTIC_INFINITY`. (Repeats the envelope - attack and fade.) To make one instance of the effect last indefinitely (so the effect does not fade), set the effect's `length` in its structure/union to `SDL_HAPTIC_INFINITY` instead.

\param haptic the SDL_Haptic device to run the effect on \param effect the ID of the haptic effect to run \param iterations the number of iterations to run the effect; use `SDL_HAPTIC_INFINITY` to repeat forever \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticDestroyEffect \sa SDL_HapticGetEffectStatus \sa SDL_HapticStopEffect

SDL_HapticSetAutocenter sdl2

Set the global autocenter of the device.

Autocenter should be between 0 and 100. Setting it to 0 will disable autocentering.

Device must support the SDL_HAPTIC_AUTOCENTER feature.

\param haptic the SDL_Haptic device to set autocentering on \param autocenter value to set autocenter to (0-100) \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticQuery

SDL_HapticSetGain sdl2

Set the global gain of the specified haptic device.

Device must support the SDL_HAPTIC_GAIN feature.

The user may specify the maximum gain by setting the environment variable `SDL_HAPTIC_GAIN_MAX` which should be between 0 and 100. All calls to SDL_HapticSetGain() will scale linearly using `SDL_HAPTIC_GAIN_MAX` as the maximum.

\param haptic the SDL_Haptic device to set the gain on \param gain value to set the gain to, should be between 0 and 100 (0 - 100) \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticQuery

SDL_HapticStopAll sdl2

Stop all the currently playing effects on a haptic device.

\param haptic the SDL_Haptic device to stop \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_HapticStopEffect sdl2

Stop the haptic effect on its associated haptic device.

*

\param haptic the SDL_Haptic device to stop the effect on \param effect the ID of the haptic effect to stop \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticDestroyEffect \sa SDL_HapticRunEffect

SDL_HapticUnpause sdl2

Unpause a haptic device.

Call to unpause after SDL_HapticPause().

\param haptic the SDL_Haptic device to unpause \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticPause

SDL_HapticUpdateEffect sdl2

Update the properties of an effect.

Can be used dynamically, although behavior when dynamically changing direction may be strange. Specifically the effect may re-upload itself and start playing from the start. You also cannot change the type either when running SDL_HapticUpdateEffect().

\param haptic the SDL_Haptic device that has the effect \param effect the identifier of the effect to update \param data an SDL_HapticEffect structure containing the new effect properties to use \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticDestroyEffect \sa SDL_HapticNewEffect \sa SDL_HapticRunEffect

SDL_HAPTIC_AUTOCENTER sdl2

Device can set autocenter.

Device supports setting autocenter.

SDL_HapticSetAutocenter

SDL_HAPTIC_CARTESIAN sdl2

Uses cartesian coordinates for the direction.

SDL_HapticDirection

SDL_HAPTIC_CONSTANT sdl2

Constant effect supported.

Constant haptic effect.

SDL_HapticCondition

SDL_HAPTIC_CUSTOM sdl2

Custom effect is supported.

User defined custom haptic effect.

SDL_HAPTIC_DAMPER sdl2

Damper effect supported - uses axes velocity.

Condition haptic effect that simulates dampening. Effect is based on the axes velocity.

SDL_HapticCondition

SDL_HAPTIC_FRICTION sdl2

Friction effect supported - uses axes movement.

Condition haptic effect that simulates friction. Effect is based on the axes movement.

SDL_HapticCondition

SDL_HAPTIC_GAIN sdl2

Device can set global gain.

Device supports setting the global gain.

SDL_HapticSetGain

SDL_HAPTIC_INERTIA sdl2

Inertia effect supported - uses axes acceleration.

Condition haptic effect that simulates inertia. Effect is based on the axes acceleration.

SDL_HapticCondition

SDL_HAPTIC_INFINITY sdl2

Used to play a device an infinite number of times.

SDL_HapticRunEffect

SDL_HAPTIC_LEFTRIGHT sdl2

Square wave effect supported.

Periodic haptic effect that simulates square waves.

SDL_HapticPeriodic

SDL_HAPTIC_PAUSE sdl2

Device can be paused.

SDL_HapticPause SDL_HapticUnpause

SDL_HAPTIC_POLAR sdl2

Uses polar coordinates for the direction.

SDL_HapticDirection

SDL_HAPTIC_RAMP sdl2

Ramp effect supported.

Ramp haptic effect.

SDL_HapticRamp

SDL_HAPTIC_SAWTOOTHDOWN sdl2

Sawtoothdown wave effect supported.

Periodic haptic effect that simulates saw tooth down waves.

SDL_HapticPeriodic

SDL_HAPTIC_SAWTOOTHUP sdl2

Sawtoothup wave effect supported.

Periodic haptic effect that simulates saw tooth up waves.

SDL_HapticPeriodic

SDL_HAPTIC_SINE sdl2

Sine wave effect supported.

Periodic haptic effect that simulates sine waves.

SDL_HapticPeriodic

SDL_HAPTIC_SPHERICAL sdl2

Uses spherical coordinates for the direction.

SDL_HapticDirection

SDL_HAPTIC_SPRING sdl2

Spring effect supported - uses axes position.

Condition haptic effect that simulates a spring. Effect is based on the axes position.

SDL_HapticCondition

SDL_HAPTIC_SQUARE sdl2

#define SDL_HAPTIC_SQUARE (1<<2)

SDL_HAPTIC_STATUS sdl2

Device can be queried for effect status.

Device can be queried for effect status.

SDL_HapticGetEffectStatus

SDL_HAPTIC_STEERING_AXIS sdl2

\brief Use this value to play an effect on the steering wheel axis. This provides better compatibility across platforms and devices as SDL will guess the correct axis. \sa SDL_HapticDirection

SDL_HAPTIC_TRIANGLE sdl2

Triangle wave effect supported.

Periodic haptic effect that simulates triangular waves.

SDL_HapticPeriodic

SDL_Has3DNow sdl2

This function returns true if the CPU has 3DNow! features.

This always returns false on CPUs that aren't using AMD instruction sets.

SDL_HasAltiVec sdl2

This function returns true if the CPU has AltiVec features.

This always returns false on CPUs that aren't using PowerPC instruction sets.

SDL_HasARMSIMD sdl2

Determine whether the CPU has ARM SIMD (ARMv6) features. This is different from ARM NEON, which is a different instruction set.

This always returns false on CPUs that aren't using ARM instruction sets.

SDL_HasAVX sdl2

This function returns true if the CPU has AVX features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasAVX2 sdl2

This function returns true if the CPU has AVX2 features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasAVX512F sdl2

Determine whether the CPU has AVX-512F (foundation) features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasClipboardText sdl2

Query whether the clipboard exists and contains a non-empty text string.

\returns SDL_TRUE if the clipboard has text, or SDL_FALSE if it does not.

\since This function is available since SDL 2.0.0.

\sa SDL_GetClipboardText \sa SDL_SetClipboardText

SDL_HasColorKey sdl2

\brief Returns whether the surface has a color key

\return SDL_TRUE if the surface has a color key, or SDL_FALSE if the surface is NULL or has no color key

SDL_HasEvent sdl2

Checks to see if certain event types are in the event queue.

SDL_HasEvents sdl2

 

SDL_HasIntersection sdl2

Determine whether two rectangles intersect.

SDL_TRUE if there is an intersection, SDL_FALSE otherwise.

SDL_HasIntersectionF sdl2

Determine whether two rectangles intersect with float precision.

If either pointer is NIL the function will return SDL_FALSE.

\param A an SDL_FRect structure representing the first rectangle \param B an SDL_FRect structure representing the second rectangle \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.22.

\sa SDL_IntersectRect

SDL_HasMMX sdl2

This function returns true if the CPU has MMX features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasNEON sdl2

Determine whether the CPU has NEON (ARM SIMD) features.

This always returns false on CPUs that aren't using ARM instruction sets.

SDL_HasPrimarySelectionText sdl2

Query whether the primary selection exists and contains a non-empty text string.

\returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it does not.

\since This function is available since SDL 2.26.1.

\sa SDL_GetPrimarySelectionText \sa SDL_SetPrimarySelectionText

SDL_HasRDTSC sdl2

This function returns true if the CPU has the RDTSC instruction.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasScreenKeyboardSupport sdl2

Check whether the platform has screen keyboard support.

\returns SDL_TRUE if the platform has some screen keyboard support or SDL_FALSE if not.

\since This function is available since SDL 2.0.0.

\sa SDL_StartTextInput \sa SDL_IsScreenKeyboardShown

SDL_HasSSE sdl2

This function returns true if the CPU has SSE features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasSSE2 sdl2

This function returns true if the CPU has SSE2 features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasSSE3 sdl2

This function returns true if the CPU has SSE3 features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasSSE41 sdl2

This function returns true if the CPU has SSE4.1 features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasSSE42 sdl2

This function returns true if the CPU has SSE4.2 features.

This always returns false on CPUs that aren't using Intel instruction sets.

SDL_HasSurfaceRLE sdl2

\brief Returns whether the surface is RLE enabled

\return SDL_TRUE if the surface is RLE enabled, or SDL_FALSE if the surface is NULL or not RLE enabled

SDL_HAT_CENTERED sdl2

Hat positions

SDL_HAT_DOWN sdl2

 

SDL_HAT_LEFT sdl2

 

SDL_HAT_LEFTDOWN sdl2

 

SDL_HAT_LEFTUP sdl2

 

SDL_HAT_RIGHT sdl2

 

SDL_HAT_RIGHTDOWN sdl2

 

SDL_HAT_RIGHTUP sdl2

 

SDL_HAT_UP sdl2

 

SDL_HideWindow sdl2

Hide a window.

SDL_ShowWindow()

SDL_hid_ble_scan sdl2

Start or stop a BLE scan on iOS and tvOS to pair Steam Controllers

\param active SDL_TRUE to start the scan, SDL_FALSE to stop the scan

\since This function is available since SDL 2.0.18.

SDL_hid_close sdl2

Close a HID device.

\param dev A device handle returned from SDL_hid_open().

\since This function is available since SDL 2.0.18.

SDL_hid_device_change_count sdl2

Check to see if devices may have been added or removed.

Enumerating the HID devices is an expensive operation, so you can call this to see if there have been any system device changes since the last call to this function. A change in the counter returned doesn't necessarily mean that anything has changed, but you can call SDL_hid_enumerate() to get an updated device list.

Calling this function for the first time may cause a thread or other system resource to be allocated to track device change notifications.

\returns a change counter that is incremented with each potential device change, or 0 if device change detection isn't available.

\since This function is available since SDL 2.0.18.

\sa SDL_hid_enumerate

SDL_hid_enumerate sdl2

Enumerate the HID Devices.

This function returns a linked list of all the HID devices attached to the system which match vendor_id and product_id. If `vendor_id` is set to 0 then any vendor matches. If `product_id` is set to 0 then any product matches. If `vendor_id` and `product_id` are both set to 0, then all HID devices will be returned.

\param vendor_id The Vendor ID (VID) of the types of device to open. \param product_id The Product ID (PID) of the types of device to open. \returns a pointer to a linked list of type SDL_hid_device_info, containing information about the HID devices attached to the system, or NIL in the case of failure. Free this linked list by calling SDL_hid_free_enumeration().

\since This function is available since SDL 2.0.18.

\sa SDL_hid_device_change_count

SDL_hid_exit sdl2

Finalize the HIDAPI library.

This function frees all of the static data associated with HIDAPI. It should be called at the end of execution to avoid memory leaks.

\returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

\sa SDL_hid_init

SDL_hid_free_enumeration sdl2

Free an enumeration Linked List

This function frees a linked list created by SDL_hid_enumerate().

\param devs Pointer to a list of struct_device returned from SDL_hid_enumerate().

\since This function is available since SDL 2.0.18.

SDL_hid_get_feature_report sdl2

Get a feature report from a HID device.

Set the first byte of `data` to the Report ID of the report to be read. Make sure to allow space for this extra byte in `data`. Upon return, the first byte will still contain the Report ID, and the report data will start in data[1].

\param dev A device handle returned from SDL_hid_open(). \param data A buffer to put the read data into, including the Report ID. Set the first byte of `data` to the Report ID of the report to be read, or set it to zero if your device does not use numbered reports. \param length The number of bytes to read, including an extra byte for the report ID. The buffer can be longer than the actual report. \returns the number of bytes read plus one for the report ID (which is still in the first byte), or -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_get_indexed_string sdl2

Get a string from a HID device, based on its string index.

\param dev A device handle returned from SDL_hid_open(). \param string_index The index of the string to get. \param string A wide string buffer to put the data into. \param maxlen The length of the buffer in multiples of wchar_t. \returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_get_manufacturer_string sdl2

Get The Manufacturer String from a HID device.

\param dev A device handle returned from SDL_hid_open(). \param string A wide string buffer to put the data into. \param maxlen The length of the buffer in multiples of wchar_t. \returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_get_product_string sdl2

Get The Product String from a HID device.

\param dev A device handle returned from SDL_hid_open(). \param string A wide string buffer to put the data into. \param maxlen The length of the buffer in multiples of wchar_t. \returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_get_serial_number_string sdl2

Get The Serial Number String from a HID device.

\param dev A device handle returned from SDL_hid_open(). \param string A wide string buffer to put the data into. \param maxlen The length of the buffer in multiples of wchar_t. \returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_init sdl2

Initialize the HIDAPI library.

This function initializes the HIDAPI library. Calling it is not strictly necessary, as it will be called automatically by SDL_hid_enumerate() and any of the SDL_hid_open_*() functions if it is needed. This function should be called at the beginning of execution however, if there is a chance of HIDAPI handles being opened by different threads simultaneously.

Each call to this function should have a matching call to SDL_hid_exit()

\returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

\sa SDL_hid_exit

SDL_hid_open sdl2

Open a HID device using a Vendor ID (VID), Product ID (PID) and optionally a serial number.

If `serial_number` is NULL, the first device with the specified VID and PID is opened.

\param vendor_id The Vendor ID (VID) of the device to open. \param product_id The Product ID (PID) of the device to open. \param serial_number The Serial Number of the device to open (optionally NIL). \returns a pointer to a SDL_hid_device object on success or NIL on failure.

\since This function is available since SDL 2.0.18.

SDL_hid_open_path sdl2

Open a HID device by its path name.

The path name be determined by calling SDL_hid_enumerate(), or a platform-specific path name can be used (eg: /dev/hidraw0 on Linux).

\param path The path name of the device to open \returns a pointer to a SDL_hid_device object on success or NIL on failure.

\since This function is available since SDL 2.0.18.

SDL_hid_read sdl2

Read an Input report from a HID device.

Input reports are returned to the host through the INTERRUPT IN endpoint. The first byte will contain the Report number if the device uses numbered reports.

\param dev A device handle returned from SDL_hid_open(). \param data A buffer to put the read data into. \param length The number of bytes to read. For devices with multiple reports, make sure to read an extra byte for the report number. \returns the actual number of bytes read and -1 on error. If no packet was available to be read and the handle is in non-blocking mode, this function returns 0.

\since This function is available since SDL 2.0.18.

SDL_hid_read_timeout sdl2

Read an Input report from a HID device with timeout.

Input reports are returned to the host through the INTERRUPT IN endpoint. The first byte will contain the Report number if the device uses numbered reports.

\param dev A device handle returned from SDL_hid_open(). \param data A buffer to put the read data into. \param length The number of bytes to read. For devices with multiple reports, make sure to read an extra byte for the report number. \param milliseconds timeout in milliseconds or -1 for blocking wait. \returns the actual number of bytes read and -1 on error. If no packet was available to be read within the timeout period, this function returns 0.

\since This function is available since SDL 2.0.18.

SDL_hid_send_feature_report sdl2

Send a Feature report to the device.

Feature reports are sent over the Control endpoint as a Set_Report transfer. The first byte of `data` must contain the Report ID. For devices which only support a single report, this must be set to 0x0. The remaining bytes contain the report data. Since the Report ID is mandatory, calls to SDL_hid_send_feature_report() will always contain one more byte than the report contains. For example, if a hid report is 16 bytes long, 17 bytes must be passed to SDL_hid_send_feature_report(): the Report ID (or 0x0, for devices which do not use numbered reports), followed by the report data (16 bytes). In this example, the length passed in would be 17.

\param dev A device handle returned from SDL_hid_open(). \param data The data to send, including the report number as the first byte. \param length The length in bytes of the data to send, including the report number. \returns the actual number of bytes written and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_set_nonblocking sdl2

Set the device handle to be non-blocking.

In non-blocking mode calls to SDL_hid_read() will return immediately with a value of 0 if there is no data to be read. In blocking mode, SDL_hid_read() will wait (block) until there is data to read before returning.

Nonblocking can be turned on and off at any time.

\param dev A device handle returned from SDL_hid_open(). \param nonblock enable or not the nonblocking reads - 1 to enable nonblocking - 0 to disable nonblocking. \returns 0 on success and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_hid_write sdl2

Write an Output report to a HID device.

The first byte of `data` must contain the Report ID. For devices which only support a single report, this must be set to 0x0. The remaining bytes contain the report data. Since the Report ID is mandatory, calls to SDL_hid_write() will always contain one more byte than the report contains. For example, if a hid report is 16 bytes long, 17 bytes must be passed to SDL_hid_write(), the Report ID (or 0x0, for devices with a single report), followed by the report data (16 bytes). In this example, the length passed in would be 17.

SDL_hid_write() will send the data on the first OUT endpoint, if one exists. If it does not, it will send the data through the Control Endpoint (Endpoint 0).

\param dev A device handle returned from SDL_hid_open(). \param data The data to send, including the report number as the first byte. \param length The length in bytes of the data to send. \returns the actual number of bytes written and -1 on error.

\since This function is available since SDL 2.0.18.

SDL_HINT_ACCELEROMETER_AS_JOYSTICK sdl2

/** \brief A variable controlling whether the Android / iOS built-in accelerometer should be listed as a joystick device, rather than listing actual joysticks only.

This variable can be set to the following values: "0" - List only real joysticks and accept input from them "1" - List real joysticks along with the accelerometer as if it were a 3 axis joystick (the default). /

SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED sdl2

/** \brief Specify the behavior of Alt+Tab while the keyboard is grabbed.

By default, SDL emulates Alt+Tab functionality while the keyboard is grabbed and your window is full-screen. This prevents the user from getting stuck in your application if you've enabled keyboard grab.

The variable can be set to the following values: "0" - SDL will not handle Alt+Tab. Your application is responsible for handling Alt+Tab while the keyboard is grabbed. "1" - SDL will minimize your window when Alt+Tab is pressed (default) /

SDL_HINT_ALLOW_TOPMOST sdl2

/** \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 /

SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION sdl2

/** \brief Android APK expansion main file version. Should be a string number like "1", "2" etc.

Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION.

If both hints were set then SDL_RWFromFile() will look into expansion files after a given relative path was not found in the internal storage and assets.

By default this hint is not set and the APK expansion files are not searched. /

SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION sdl2

/** \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc.

Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION.

If both hints were set then SDL_RWFromFile() will look into expansion files after a given relative path was not found in the internal storage and assets.

By default this hint is not set and the APK expansion files are not searched. /

SDL_HINT_ANDROID_BLOCK_ON_PAUSE sdl2

/** \brief A variable to control whether the event loop will block itself when the app is paused.

The variable can be set to the following values: "0" - Non blocking. "1" - Blocking. (default)

The value should be set before SDL is initialized. /

SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO sdl2

/** \brief A variable to control whether SDL will pause audio in background (Requires SDL_ANDROID_BLOCK_ON_PAUSE as "Non blocking")

The variable can be set to the following values: "0" - Non paused. "1" - Paused. (default)

The value should be set before SDL is initialized. /

SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH sdl2

/** \brief A variable to control whether mouse and touch events are to be treated together or separately

The variable can be set to the following values: "0" - Mouse events will be handled as touch events, and touch will raise fake mouse events. This is the behaviour of SDL <= 2.0.3. (default) "1" - Mouse events will be handled separately from pure touch events.

NOTE: This hint is no longer supported on SDL >= 2.0.10. Use SDL_HINT_MOUSE_TOUCH_EVENTS and SDL_HINT_TOUCH_MOUSE_EVENTS for generating synthetic touch/mouse events. /

SDL_HINT_ANDROID_TRAP_BACK_BUTTON sdl2

/** \brief A variable to control whether we trap the Android back button to handle it manually. This is necessary for the right mouse button to work on some Android devices, or to be able to trap the back button for use in your code reliably. If set to true, the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of SDL_SCANCODE_AC_BACK.

The variable can be set to the following values: "0" - Back button will be handled as usual for system. (default) "1" - Back button will be trapped, allowing you to handle the key press manually. (This will also let right mouse click work on systems where the right mouse button functions as back.)

The value of this hint is used at runtime, so it can be changed at any time. /

SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS sdl2

/** \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. /

SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION sdl2

/** \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. /

SDL_HINT_APP_NAME sdl2

\brief Specify an application name.

This hint lets you specify the application name sent to the OS when required. For example, this will often appear in volume control applets for audio streams, and in lists of applications which are inhibiting the screensaver. You should use a string that describes your program ("My Game 2: The Revenge")

Setting this to "" or leaving it unset will have SDL use a reasonable default: probably the application's name or "SDL Application" if SDL doesn't have any better information.

Note that, for audio streams, this can be overridden with SDL_HINT_AUDIO_DEVICE_APP_NAME.

On targets where this is not supported, this hint does nothing.

SDL_HINT_AUDIODRIVER sdl2

\brief A variable that decides what audio backend to use.

By default, SDL will try all available audio backends in a reasonable order until it finds one that can work, but this hint allows the app or user to force a specific target, such as "alsa" if, say, you are on PulseAudio but want to try talking to the lower level instead.

This functionality has existed since SDL 2.0.0 (indeed, before that) but before 2.0.22 this was an environment variable only. In 2.0.22, it was upgraded to a full SDL hint, so you can set the environment variable as usual or programatically set the hint with SDL_SetHint, which won't propagate to child processes.

The default value is unset, in which case SDL will try to figure out the best audio backend on your behalf. This hint needs to be set before SDL_Init() is called to be useful.

This hint is available since SDL 2.0.22. Before then, you could set the environment variable to get the same effect.

SDL_HINT_AUDIO_CATEGORY sdl2

/** \brief A variable controlling the audio category on iOS and Mac OS X

This variable can be set to the following values:

"ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) "playback" - Use the AVAudioSessionCategoryPlayback category

For more information, see Apple's documentation: https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html /

SDL_HINT_AUDIO_DEVICE_APP_NAME sdl2

/** \brief Specify an application name for an audio device.

Some audio backends (such as PulseAudio) allow you to describe your audio stream. Among other things, this description might show up in a system control panel that lets the user adjust the volume on specific audio streams instead of using one giant master volume slider.

This hints lets you transmit that information to the OS. The contents of this hint are used while opening an audio device. You should use a string that describes your program ("My Game 2: The Revenge")

Setting this to "" or leaving it unset will have SDL use a reasonable default: this will be the name set with SDL_HINT_APP_NAME, if that hint is set. Otherwise, it'll probably the application's name or "SDL Application" if SDL doesn't have any better information.

On targets where this is not supported, this hint does nothing.

SDL_HINT_AUDIO_DEVICE_STREAM_NAME sdl2

/** \brief Specify an application name for an audio device.

Some audio backends (such as PulseAudio) allow you to describe your audio stream. Among other things, this description might show up in a system control panel that lets the user adjust the volume on specific audio streams instead of using one giant master volume slider.

This hints lets you transmit that information to the OS. The contents of this hint are used while opening an audio device. You should use a string that describes your what your program is playing ("audio stream" is probably sufficient in many cases, but this could be useful for something like "team chat" if you have a headset playing VoIP audio separately).

Setting this to "" or leaving it unset will have SDL use a reasonable default: "audio stream" or something similar.

On targets where this is not supported, this hint does nothing. /

SDL_HINT_AUDIO_DEVICE_STREAM_ROLE sdl2

/** \brief Specify an application role for an audio device.

Some audio backends (such as Pipewire) allow you to describe the role of your audio stream. Among other things, this description might show up in a system control panel or software for displaying and manipulating media playback/capture graphs.

This hints lets you transmit that information to the OS. The contents of this hint are used while opening an audio device. You should use a string that describes your what your program is playing (Game, Music, Movie, etc...).

Setting this to "" or leaving it unset will have SDL use a reasonable default: "Game" or something similar.

On targets where this is not supported, this hint does nothing. /

SDL_HINT_AUDIO_INCLUDE_MONITORS sdl2

/** \brief A variable that causes SDL to not ignore audio "monitors"

This is currently only used for PulseAudio and ignored elsewhere.

By default, SDL ignores audio devices that aren't associated with physical hardware. Changing this hint to "1" will expose anything SDL sees that appears to be an audio source or sink. This will add "devices" to the list that the user probably doesn't want or need, but it can be useful in scenarios where you want to hook up SDL to some sort of virtual device, etc.

The default value is "0". This hint must be set before SDL_Init().

This hint is available since SDL 2.0.16. Before then, virtual devices are always ignored. /

SDL_HINT_AUDIO_RESAMPLING_MODE sdl2

/** \brief A variable controlling speed/quality tradeoff of audio resampling.

If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) to handle audio resampling. There are different resampling modes available that produce different levels of quality, using more CPU.

If this hint isn't specified to a valid setting, or libsamplerate isn't available, SDL will use the default, internal resampling algorithm.

Note that this is currently only applicable to resampling audio that is being written to a device for playback or audio being read from a device for capture. SDL_AudioCVT always uses the default resampler (although this might change for SDL 2.1).

This hint is currently only checked at audio subsystem initialization.

This variable can be set to the following values:

"0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) "1" or "fast" - Use fast, slightly higher quality resampling, if available "2" or "medium" - Use medium quality resampling, if available "3" or "best" - Use high quality resampling, if available /

SDL_HINT_AUTO_UPDATE_JOYSTICKS sdl2

\brief A variable controlling whether SDL updates joystick state when getting input events

This variable can be set to the following values:

"0" - You'll call SDL_JoystickUpdate() manually "1" - SDL will automatically call SDL_JoystickUpdate() (default)

This hint can be toggled on and off at runtime. /

SDL_HINT_AUTO_UPDATE_SENSORS sdl2

/** \brief A variable controlling whether SDL updates sensor state when getting input events

This variable can be set to the following values:

"0" - You'll call SDL_SensorUpdate() manually "1" - SDL will automatically call SDL_SensorUpdate() (default)

This hint can be toggled on and off at runtime. /

SDL_HINT_BMP_SAVE_LEGACY_FORMAT sdl2

/** \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". /

SDL_HINT_DEFAULT sdl2

 

SDL_HINT_DIRECTINPUT_ENABLED sdl2

\brief A variable that lets you disable the detection and use of DirectInput gamepad devices

The variable can be set to the following values: "0" - Disable DirectInput detection (only uses XInput) "1" - Enable DirectInput detection (the default)

SDL_HINT_DISPLAY_USABLE_BOUNDS sdl2

/** \brief Override for SDL_GetDisplayUsableBounds()

If set, this hint will override the expected results for SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want to do this, but this allows an embedded system to request that some of the screen be reserved for other uses when paired with a well-behaved application.

The contents of this hint must be 4 comma-separated integers, the first is the bounds x, then y, width and height, in that order. /

SDL_HINT_EMSCRIPTEN_ASYNCIFY sdl2

/** \brief Disable giving back control to the browser automatically when running with asyncify

With -s ASYNCIFY, SDL2 calls emscripten_sleep during operations such as refreshing the screen or polling events.

This hint only applies to the emscripten platform

The variable can be set to the following values: "0" - Disable emscripten_sleep calls (if you give back browser control manually or use asyncify for other purposes) "1" - Enable emscripten_sleep calls (the default) /

SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT sdl2

/** \brief override the binding element for keyboard inputs for Emscripten builds

This hint only applies to the emscripten platform

The variable can be one of "#window" - The javascript window object (this is the default) "#document" - The javascript document object "#screen" - the javascript window.screen object "#canvas" - the WebGL canvas element any other string without a leading # sign applies to the element on the page with that ID. /

SDL_HINT_ENABLE_STEAM_CONTROLLERS sdl2

/** \brief A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs

The variable can be set to the following values: "0" - Do not scan for Steam Controllers "1" - Scan for Steam Controllers (the default)

The default value is "1". This hint must be set before initializing the joystick subsystem. /

SDL_HINT_EVENT_LOGGING sdl2

/** \brief A variable controlling whether SDL logs all events pushed onto its internal queue.

This variable can be set to the following values:

"0" - Don't log any events (default) "1" - Log all events except mouse and finger motion, which are pretty spammy. "2" - Log all events.

This is generally meant to be used to debug SDL itself, but can be useful for application developers that need better visibility into what is going on in the event queue. Logged events are sent through SDL_Log(), which means by default they appear on stdout on most platforms or maybe OutputDebugString() on Windows, and can be funneled by the app with SDL_LogSetOutputFunction(), etc.

This hint can be toggled on and off at runtime, if you only need to log events for a small subset of program execution. /

SDL_HINT_FORCE_RAISEWINDOW sdl2

\brief A variable controlling whether raising the window should be done more forcefully

This variable can be set to the following values: "0" - No forcing (the default) "1" - Extra level of forcing

At present, this is only an issue under MS Windows, which makes it nearly impossible to programmatically move a window to the foreground, for "security" reasons. See http://stackoverflow.com/a/34414846 for a discussion.

SDL_HINT_FRAMEBUFFER_ACCELERATION sdl2

/** \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface.

SDL can try to accelerate the SDL 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. /

SDL_HINT_GAMECONTROLLERCONFIG sdl2

/** \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() /

SDL_HINT_GAMECONTROLLERCONFIG_FILE sdl2

/** \brief A variable that lets you provide a file with extra gamecontroller db entries.

The file should contain lines 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() /

SDL_HINT_GAMECONTROLLERTYPE sdl2

/** \brief A variable that overrides the automatic controller type detection

The variable should be comma separated entries, in the form: VID/PID=type

The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd

The type should be one of: Xbox360 XboxOne PS3 PS4 PS5 SwitchPro

This hint affects what driver is used, and must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) /

SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES sdl2

/** \brief A variable containing a list of devices to skip when scanning for game controllers.

The format of the string is a comma separated list of USB VID/PID pairs in hexadecimal form, e.g.

0xAAAA/0xBBBB,0xCCCC/0xDDDD

The variable can also take the form of @file, in which case the named file will be loaded and interpreted as the value of the variable. /

SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT sdl2

/** \brief If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable.

The format of the string is a comma separated list of USB VID/PID pairs in hexadecimal form, e.g.

0xAAAA/0xBBBB,0xCCCC/0xDDDD

The variable can also take the form of @file, in which case the named file will be loaded and interpreted as the value of the variable. /

SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS sdl2

/** \brief If set, game controller face buttons report their values according to their labels instead of their positional layout.

For example, on Nintendo Switch controllers, normally you'd get:

(Y) (X) (B) (A)

but if this hint is set, you'll get:

(X) (Y) (A) (B)

The variable can be set to the following values: "0" - Report the face buttons by position, as though they were on an Xbox controller. "1" - Report the face buttons by label instead of position

The default value is "1". This hint may be set at any time. /

SDL_HINT_GRAB_KEYBOARD sdl2

/** \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. /

SDL_HINT_HIDAPI_IGNORE_DEVICES sdl2

\brief A variable containing a list of devices to ignore in SDL_hid_enumerate()

For example, to ignore the Shanwan DS3 controller and any Valve controller, you might have the string "0x2563/0x0523,0x28de/0x0000".

This hint is available since SDL 2.26.0.

SDL_HINT_IDLE_TIMER_DISABLED sdl2

/** \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.

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 "1" - Disable idle timer /

SDL_HINT_IME_INTERNAL_EDITING sdl2

/** \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events.

The variable can be set to the following values: "0" - SDL_TEXTEDITING events are sent, and it is the application's responsibility to render the text from these events and differentiate it somehow from committed text. (default) "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, and text that is being composed will be rendered in its own UI. /

SDL_HINT_IME_SHOW_UI sdl2

/** \brief A variable to control whether certain IMEs should show native UI components (such as the Candidate List) instead of suppressing them.

The variable can be set to the following values: "0" - Native UI components are not display. (default) "1" - Native UI components are displayed. /

SDL_HINT_IME_SUPPORT_EXTENDED_TEXT sdl2

\brief A variable to control if extended IME text support is enabled. If enabled then SDL_TextEditingExtEvent will be issued if the text would be truncated otherwise. Additionally SDL_TextInputEvent will be dispatched multiple times so that it is not truncated.

The variable can be set to the following values: "0" - Legacy behavior. Text can be truncated, no heap allocations. (default) "1" - Modern behavior.

SDL_HINT_IOS_HIDE_HOME_INDICATOR sdl2

/** \brief A variable controlling whether the home indicator bar on iPhone X should be hidden.

This variable can be set to the following values: "0" - The indicator bar is not hidden (default for windowed applications) "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications) "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications) /

SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS sdl2

/** \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background.

The variable can be set to the following values: "0" - Disable joystick & gamecontroller input events when the application is in the background. "1" - Enable joystick & gamecontroller input events when the application is in the backgroumd.

The default value is "0". This hint may be set at any time. /

SDL_HINT_JOYSTICK_DEVICE sdl2

/** \brief A comma separated list of devices to open as joysticks

This variable is currently only used by the Linux joystick driver.

SDL_HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE sdl2

\brief A variable controlling whether "low_frequency_rumble" and "high_frequency_rumble" is used to implement the GameCube controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2) this is useful for applications that need full compatibility for things like ADSR envelopes. Stop is implemented by setting "low_frequency_rumble" to "0" and "high_frequency_rumble" ">0" Rumble is both at any arbitrary value, StopHard is implemented by setting both "low_frequency_rumble" and "high_frequency_rumble" to "0"

This variable can be set to the following values: "0" - Normal rumble behavior is behavior is used (default) "1" - Proper GameCube controller rumble behavior is used

SDL_HINT_JOYSTICK_HIDAPI sdl2

/** \brief A variable controlling whether the HIDAPI joystick drivers should be used.

This variable can be set to the following values: "0" - HIDAPI drivers are not used "1" - HIDAPI drivers are used (the default)

This variable is the default for all drivers, but can be overridden by the hints for specific drivers below. /

SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS sdl2

\brief A variable controlling whether Nintendo Switch Joy-Con controllers will be combined into a single Pro-like controller when using the HIDAPI driver

This variable can be set to the following values: "0" - Left and right Joy-Con controllers will not be combined and each will be a mini-gamepad "1" - Left and right Joy-Con controllers will be combined into a single controller (the default)

SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE sdl2

/** \brief A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED sdl2

\brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Joy-Con controller is opened

This variable can be set to the following values: "0" - home button LED is turned off "1" - home button LED is turned on

By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED.

SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS sdl2

/** \brief A variable controlling whether Switch Joy-Cons should be treated the same as Switch Pro Controllers when using the HIDAPI driver.

This variable can be set to the following values: "0" - basic Joy-Con support with no analog input (the default) "1" - Joy-Cons treated as half full Pro Controllers with analog inputs and sensors

This does not combine Joy-Cons into a single controller. That's up to the user. /

SDL_HINT_JOYSTICK_HIDAPI_LUNA sdl2

/** \brief A variable controlling whether the HIDAPI driver for Amazon Luna controllers connected via Bluetooth should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC sdl2

\brief A variable controlling whether the HIDAPI driver for Nintendo Online classic controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI

SDL_HINT_JOYSTICK_HIDAPI_PS3 sdl2

\brief A variable controlling whether the HIDAPI driver for PS3 controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on other platforms.

It is not possible to use this driver on Windows, due to limitations in the default drivers installed. See https://github.com/ViGEm/DsHidMini for an alternative driver on Windows.

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_PS4 sdl2

/** \brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE sdl2

/** \brief A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver.

This variable can be set to the following values: "0" - extended reports are not enabled (the default) "1" - extended reports

Extended input reports allow rumble on Bluetooth PS4 controllers, but break DirectInput handling for applications that don't use SDL.

Once extended reports are enabled, they can not be disabled without power cycling the controller.

For compatibility with applications written for versions of SDL prior to the introduction of PS5 controller support, this value will also control the state of extended reports on PS5 controllers when the SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE hint is not explicitly set. /

SDL_HINT_JOYSTICK_HIDAPI_PS5 sdl2

/** \brief A variable controlling whether the HIDAPI driver for PS5 controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED sdl2

/** \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a PS5 controller.

This variable can be set to the following values: "0" - player LEDs are not enabled "1" - player LEDs are enabled (the default) /

SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE sdl2

/** \brief A variable controlling whether extended input reports should be used for PS5 controllers when using the HIDAPI driver.

This variable can be set to the following values: "0" - extended reports are not enabled (the default) "1" - extended reports

Extended input reports allow rumble on Bluetooth PS5 controllers, but break DirectInput handling for applications that don't use SDL.

Once extended reports are enabled, they can not be disabled without power cycling the controller.

For compatibility with applications written for versions of SDL prior to the introduction of PS5 controller support, this value defaults to the value of SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE. /

SDL_HINT_JOYSTICK_HIDAPI_SHIELD sdl2

\brief A variable controlling whether the HIDAPI driver for NVIDIA SHIELD controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI

SDL_HINT_JOYSTICK_HIDAPI_STADIA sdl2

/** \brief A variable controlling whether the HIDAPI driver for Google Stadia controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_STEAM sdl2

/** \brief A variable controlling whether the HIDAPI driver for Steam Controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used for Steam Controllers, which requires Bluetooth access and may prompt the user for permission on iOS and Android.

The default is "0" /

SDL_HINT_JOYSTICK_HIDAPI_SWITCH sdl2

/** \brief A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED sdl2

/** \brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch controller is opened

This variable can be set to the following values: "0" - home button LED is turned off "1" - home button LED is turned on

By default the Home button LED state is not changed. /

SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED sdl2

\brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Nintendo Switch controller.

This variable can be set to the following values: "0" - player LEDs are not enabled "1" - player LEDs are enabled (the default)

SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS sdl2

\brief A variable controlling whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver

This variable can be set to the following values: "0" - Left and right Joy-Con controllers will not be in vertical mode (the default) "1" - Left and right Joy-Con controllers will be in vertical mode

This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER).

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_WII sdl2

\brief A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

This driver doesn't work with the dolphinbar, so the default is SDL_FALSE for now.

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED sdl2

\brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Wii controller.

This variable can be set to the following values: "0" - player LEDs are not enabled "1" - player LEDs are enabled (the default)

This hiny is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_XBOX sdl2

/** \brief A variable controlling whether the HIDAPI driver for XBox controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is "0" on Windows, otherwise the value of SDL_HINT_JOYSTICK_HIDAPI /

SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 sdl2

\brief A variable controlling whether the HIDAPI driver for XBox 360 controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX.

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED sdl2

\brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller.

This variable can be set to the following values: "0" - player LEDs are not enabled "1" - player LEDs are enabled (the default)

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS sdl2

\brief A variable controlling whether the HIDAPI driver for XBox 360 wireless controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360.

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE sdl2

\brief A variable controlling whether the HIDAPI driver for XBox One controllers should be used.

This variable can be set to the following values: "0" - HIDAPI driver is not used "1" - HIDAPI driver is used

The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX.

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED sdl2

\brief A variable controlling whether the Home button LED should be turned on when an Xbox One controller is opened

This variable can be set to the following values: "0" - home button LED is turned off "1" - home button LED is turned on

By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. The default brightness is 0.4.

This hint is available since SDL 2.26.0.

SDL_HINT_JOYSTICK_RAWINPUT sdl2

/** \brief A variable controlling whether the RAWINPUT joystick drivers should be used for better handling XInput-capable devices.

This variable can be set to the following values: "0" - RAWINPUT drivers are not used "1" - RAWINPUT drivers are used (the default)

/

SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT sdl2

/** \brief A variable controlling whether the RAWINPUT driver should pull correlated data from XInput.

This variable can be set to the following values: "0" - RAWINPUT driver will only use data from raw input APIs "1" - RAWINPUT driver will also pull data from XInput, providing better trigger axes, guide button presses, and rumble support for Xbox controllers

The default is "1". This hint applies to any joysticks opened after setting the hint. /

SDL_HINT_JOYSTICK_ROG_CHAKRAM sdl2

\brief A variable controlling whether the ROG Chakram mice should show up as joysticks

This variable can be set to the following values: "0" - ROG Chakram mice do not show up as joysticks (the default) "1" - ROG Chakram mice show up as joysticks

SDL_HINT_JOYSTICK_THREAD sdl2

/** \brief A variable controlling whether a separate thread should be used for handling joystick detection and raw input messages on Windows

This variable can be set to the following values: "0" - A separate thread is not used (the default) "1" - A separate thread is used for handling raw input messages

/

SDL_HINT_KMSDRM_DEVICE_INDEX sdl2

\brief A variable that decides what KMSDRM device to use.

Internally, SDL might open something like "/dev/dri/cardNN" to access KMSDRM functionality, where "NN" is a device index number.

SDL makes a guess at the best index to use (usually zero), but the app or user can set this hint to a number between 0 and 99 to force selection.

This hint is available since SDL 2.24.0.

SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER sdl2

/** \brief Determines whether SDL enforces that DRM master is required in order to initialize the KMSDRM video backend.

The DRM subsystem has a concept of a "DRM master" which is a DRM client that has the ability to set planes, set cursor, etc. When SDL is DRM master, it can draw to the screen using the SDL rendering APIs. Without DRM master, SDL is still able to process input and query attributes of attached displays, but it cannot change display state or draw to the screen directly.

In some cases, it can be useful to have the KMSDRM backend even if it cannot be used for rendering. An app may want to use SDL for input processing while using another rendering API (such as an MMAL overlay on Raspberry Pi) or using its own code to render to DRM overlays that SDL doesn't support.

This hint must be set before initializing the video subsystem.

This variable can be set to the following values: "0" - SDL will allow usage of the KMSDRM backend without DRM master "1" - SDL will require DRM master to use the KMSDRM backend (default) /

SDL_HINT_LINUX_DIGITAL_HATS sdl2

\brief A variable controlling whether joysticks on Linux will always treat 'hat' axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking whether they may be analog.

This variable can be set to the following values: "0" - Only map hat axis inputs to digital hat outputs if the input axes appear to actually be digital (the default) "1" - Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as digital hats

SDL_HINT_LINUX_HAT_DEADZONES sdl2

\brief A variable controlling whether digital hats on Linux will apply deadzones to their underlying input axes or use unfiltered values.

This variable can be set to the following values: "0" - Return digital hat values based on unfiltered input axis values "1" - Return digital hat values with deadzones on the input axes taken into account (the default)

SDL_HINT_LINUX_JOYSTICK_CLASSIC sdl2

/** \brief A variable controlling whether to use the classic /dev/input/js* joystick interface or the newer /dev/input/event* joystick interface on Linux

This variable can be set to the following values: "0" - Use /dev/input/event* "1" - Use /dev/input/js*

By default the /dev/input/event* interfaces are used /

SDL_HINT_LINUX_JOYSTICK_DEADZONES sdl2

/** \brief A variable controlling whether joysticks on Linux adhere to their HID-defined deadzones or return unfiltered values.

This variable can be set to the following values: "0" - Return unfiltered joystick axis values (the default) "1" - Return axis values with deadzones taken into account /

SDL_HINT_MAC_BACKGROUND_APP sdl2

/** \brief When set don't force the SDL app to become a foreground process

This hint only applies to Mac OS X.

/

SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK sdl2

/** \brief A variable that determines whether ctrl+click should generate a right-click event on Mac

If present, holding ctrl while left clicking will generate a right click event when on Mac. /

SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH sdl2

\brief A variable controlling whether dispatching OpenGL context updates should block the dispatching thread until the main thread finishes processing

This variable can be set to the following values: "0" - Dispatching OpenGL context updates will block the dispatching thread until the main thread finishes processing (default). "1" - Dispatching OpenGL context updates will allow the dispatching thread to continue execution.

Generally you want the default, but if you have OpenGL code in a background thread on a Mac, and the main thread hangs because it's waiting for that background thread, but that background thread is also hanging because it's waiting for the main thread to do an update, this might fix your issue.

This hint only applies to macOS.

This hint is available since SDL 2.24.0.

SDL_HINT_MOUSE_AUTO_CAPTURE sdl2

\brief A variable controlling whether the mouse is captured while mouse buttons are pressed

This variable can be set to the following values: "0" - The mouse is not captured while mouse buttons are pressed "1" - The mouse is captured while mouse buttons are pressed

By default the mouse is captured while mouse buttons are pressed so if the mouse is dragged outside the window, the application continues to receive mouse events until the button is released.

SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS sdl2

/** \brief A variable setting the double click radius, in pixels. /

SDL_HINT_MOUSE_DOUBLE_CLICK_TIME sdl2

/** \brief A variable setting the double click time, in milliseconds. /

SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH sdl2

/** \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 /

SDL_HINT_MOUSE_NORMAL_SPEED_SCALE sdl2

/** \brief A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode /

SDL_HINT_MOUSE_RELATIVE_MODE_CENTER sdl2

\brief A variable controlling whether relative mouse mode constrains the mouse to the center of the window

This variable can be set to the following values: "0" - Relative mouse mode constrains the mouse to the window "1" - Relative mouse mode constrains the mouse to the center of the window

Constraining to the center of the window works better for FPS games and when the application is running over RDP. Constraining to the whole window works better for 2D games and increases the chance that the mouse will be in the correct position when using high DPI mice.

By default SDL will constrain the mouse to the center of the window

SDL_HINT_MOUSE_RELATIVE_MODE_WARP sdl2

/** \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 /

SDL_HINT_MOUSE_RELATIVE_SCALING sdl2

/** \brief A variable controlling whether relative mouse motion is affected by renderer scaling

This variable can be set to the following values: "0" - Relative motion is unaffected by DPI or renderer's logical size "1" - Relative motion is scaled according to DPI scaling and logical size

By default relative mouse deltas are affected by DPI and renderer scaling /

SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE sdl2

/** \brief A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode /

SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE sdl2

\brief A variable controlling whether the system mouse acceleration curve is used for relative mouse motion.

This variable can be set to the following values: "0" - Relative mouse motion will be unscaled (the default) "1" - Relative mouse motion will be scaled using the system mouse acceleration curve.

If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will override the system speed scale.

This hint is available since SDL 2.26.0.

SDL_HINT_MOUSE_RELATIVE_WARP_MOTION sdl2

\brief A variable controlling whether a motion event should be generated for mouse warping in relative mode.

This variable can be set to the following values: "0" - Warping the mouse will not generate a motion event in relative mode "1" - Warping the mouse will generate a motion event in relative mode

By default warping the mouse will not generate motion events in relative mode. This avoids the application having to filter out large relative motion due to warping.

SDL_HINT_MOUSE_TOUCH_EVENTS sdl2

/** \brief A variable controlling whether mouse events should generate synthetic touch events

This variable can be set to the following values: "0" - Mouse events will not generate touch events (default for desktop platforms) "1" - Mouse events will generate touch events (default for mobile platforms, such as Android and iOS) /

SDL_HINT_NORMAL sdl2

 

SDL_HINT_NO_SIGNAL_HANDLERS sdl2

/** \brief Tell SDL not to catch the SIGINT or SIGTERM signals.

This hint only applies to Unix-like platforms.

The variable can be set to the following values: "0" - SDL will install a SIGINT and SIGTERM handler, and when it catches a signal, convert it into an SDL_QUIT event. "1" - SDL will not install a signal handler at all. /

SDL_HINT_OPENGL_ES_DRIVER sdl2

/** \brief A variable controlling what driver to use for OpenGL ES contexts.

On some platforms, currently Windows and X11, OpenGL drivers may support creating contexts with an OpenGL ES profile. By default SDL uses these profiles, when available, otherwise it attempts to load an OpenGL ES library, e.g. that provided by the ANGLE project. This variable controls whether SDL follows this default behaviour or will always load an OpenGL ES library.

Circumstances where this is useful include - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, or emulator, e.g. those from ARM, Imagination or Qualcomm. - Resolving OpenGL ES function addresses at link time by linking with the OpenGL ES library instead of querying them at run time with SDL_GL_GetProcAddress().

Caution: for an application to work with the default behaviour across different OpenGL drivers it must query the OpenGL ES function addresses at run time using SDL_GL_GetProcAddress().

This variable is ignored on most platforms because OpenGL ES is native or not supported.

This variable can be set to the following values: "0" - Use ES profile of OpenGL, if available. (Default when not set.) "1" - Load OpenGL ES library using the default library names.

/

SDL_HINT_ORIENTATIONS sdl2

/** \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" /

SDL_HINT_OVERRIDE sdl2

 

SDL_HINT_POLL_SENTINEL sdl2

/** \brief A variable controlling the use of a sentinel event when polling the event queue

This variable can be set to the following values: "0" - Disable poll sentinels "1" - Enable poll sentinels

When polling for events, SDL_PumpEvents is used to gather new events from devices. If a device keeps producing new events between calls to SDL_PumpEvents, a poll loop will become stuck until the new events stop. This is most noticable when moving a high frequency mouse.

By default, poll sentinels are enabled. /

SDL_HINT_PREFERRED_LOCALES sdl2

/** \brief Override for SDL_GetPreferredLocales()

If set, this will be favored over anything the OS might report for the user's preferred locales. Changing this hint at runtime will not generate a SDL_LOCALECHANGED event (but if you can change the hint, you can push your own event, if you want).

The format of this hint is a comma-separated list of language and locale, combined with an underscore, as is a common format: "en_GB". Locale is optional: "en". So you might have a list like this: "en_GB,jp,es_PT" /

SDL_HINT_PS2_DYNAMIC_VSYNC sdl2

\brief A variable controlling if VSYNC is automatically disable if doesn't reach the enough FPS

This variable can be set to the following values: "0" - It will be using VSYNC as defined in the main flag. Default "1" - If VSYNC was previously enabled, then it will disable VSYNC if doesn't reach enough speed

By default SDL does not enable the automatic VSYNC

SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION sdl2

/** \brief A variable describing the content orientation on QtWayland-based platforms.

On QtWayland platforms, windows are rotated client-side to allow for custom transitions. In order to correctly position overlays (e.g. volume bar) and gestures (e.g. events view, close/minimize gestures), the system needs to know in which orientation the application is currently drawing its contents.

This does not cause the window to be rotated or resized, the application needs to take care of drawing the content in the right orientation (the framebuffer is always in portrait mode).

This variable can be one of the following values: "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" /

SDL_HINT_QTWAYLAND_WINDOW_FLAGS sdl2

/** \brief Flags to set on QtWayland windows to integrate with the native window manager.

On QtWayland platforms, this hint controls the flags to set on the windows. For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures.

This variable is a space-separated list of the following values (empty = no flags): "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" /

SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE sdl2

\brief A variable that decides whether to send SDL_QUIT when closing the final window.

By default, SDL sends an SDL_QUIT event when there is only one window and it receives an SDL_WINDOWEVENT_CLOSE event, under the assumption most apps would also take the loss of this window as a signal to terminate the program.

However, it's not unreasonable in some cases to have the program continue to live on, perhaps to create new windows later.

Changing this hint to "0" will cause SDL to not send an SDL_QUIT event when the final window is requesting to close. Note that in this case, there are still other legitimate reasons one might get an SDL_QUIT event: choosing "Quit" from the macOS menu bar, sending a SIGINT (ctrl-c) on Unix, etc.

The default value is "1". This hint can be changed at any time.

This hint is available since SDL 2.0.22. Before then, you always get an SDL_QUIT event when closing the final window.

SDL_HINT_RENDER_BATCHING sdl2

/** \brief A variable controlling whether the 2D render API is compatible or efficient.

This variable can be set to the following values:

"0" - Don't use batching to make rendering more efficient. "1" - Use batching, but might cause problems if app makes its own direct OpenGL calls.

Up to SDL 2.0.9, the render API would draw immediately when requested. Now it batches up draw requests and sends them all to the GPU only when forced to (during SDL_RenderPresent, when changing render targets, by updating a texture that the batch needs, etc). This is significantly more efficient, but it can cause problems for apps that expect to render on top of the render API's output. As such, SDL will disable batching if a specific render backend is requested (since this might indicate that the app is planning to use the underlying graphics API directly). This hint can be used to explicitly request batching in this instance. It is a contract that you will either never use the underlying graphics API directly, or if you do, you will call SDL_RenderFlush() before you do so any current batch goes to the GPU before your work begins. Not following this contract will result in undefined behavior. /

SDL_HINT_RENDER_DIRECT3D11_DEBUG sdl2

/** \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer.

This variable does not have any effect on the Direct3D 9 based renderer.

This variable can be set to the following values: "0" - Disable Debug Layer use "1" - Enable Debug Layer use

By default, SDL does not use Direct3D Debug Layer. /

SDL_HINT_RENDER_DIRECT3D_THREADSAFE sdl2

/** \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations.

This variable can be set to the following values: "0" - Thread-safety is not enabled (faster) "1" - Thread-safety is enabled

By default the Direct3D device is created with thread-safety disabled. /

SDL_HINT_RENDER_DRIVER sdl2

/** \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. /

SDL_HINT_RENDER_LINE_METHOD sdl2

/** \brief A variable controlling how the 2D render API renders lines

This variable can be set to the following values: "0" - Use the default line drawing method (Bresenham's line algorithm as of SDL 2.0.20) "1" - Use the driver point API using Bresenham's line algorithm (correct, draws many points) "2" - Use the driver line API (occasionally misses line endpoints based on hardware driver quirks, was the default before 2.0.20) "3" - Use the driver geometry API (correct, draws thicker diagonal lines)

This variable should be set when the renderer is created. /

SDL_HINT_RENDER_LOGICAL_SIZE_MODE sdl2

/** \brief A variable controlling the scaling policy for SDL_RenderSetLogicalSize.

This variable can be set to the following values: "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen

By default letterbox is used /

SDL_HINT_RENDER_OPENGL_SHADERS sdl2

/** \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. /

SDL_HINT_RENDER_SCALE_QUALITY sdl2

/** \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" - Currently this is the same as "linear"

By default nearest pixel sampling is used /

SDL_HINT_RENDER_VSYNC sdl2

/** \brief A variable controlling whether updates to the SDL 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. /

SDL_HINT_RETURN_KEY_HIDES_IME sdl2

/** \brief A variable to control whether the return key on the soft keyboard should hide the soft keyboard on Android and iOS.

The variable can be set to the following values: "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default) "1" - The return key will hide the keyboard.

The value of this hint is used at runtime, so it can be changed at any time. /

SDL_HINT_RPI_VIDEO_LAYER sdl2

/** \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. /

SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME sdl2

/** \brief Specify an "activity name" for screensaver inhibition.

Some platforms, notably Linux desktops, list the applications which are inhibiting the screensaver or other power-saving features.

This hint lets you specify the "activity name" sent to the OS when SDL_DisableScreenSaver() is used (or the screensaver is automatically disabled). The contents of this hint are used when the screensaver is disabled. You should use a string that describes what your program is doing (and, therefore, why the screensaver is disabled). For example, "Playing a game" or "Watching a video".

Setting this to "" or leaving it unset will have SDL use a reasonable default: "Playing a game" or something similar.

On targets where this is not supported, this hint does nothing. /

SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL sdl2

/** \brief Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as realtime.

On some platforms, like Linux, a realtime priority thread may be subject to restrictions that require special handling by the application. This hint exists to let SDL know that the app is prepared to handle said restrictions.

On Linux, SDL will apply the following configuration to any thread that becomes realtime: * The SCHED_RESET_ON_FORK bit will be set on the scheduling policy, * An RLIMIT_RTTIME budget will be configured to the rtkit specified limit. * Exceeding this limit will result in the kernel sending SIGKILL to the app, * Refer to the man pages for more information.

This variable can be set to the following values: "0" - default platform specific behaviour "1" - Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling policy /

SDL_HINT_THREAD_PRIORITY_POLICY sdl2

/** \brief A string specifying additional information to use with SDL_SetThreadPriority.

By default SDL_SetThreadPriority will make appropriate system changes in order to apply a thread priority. For example on systems using pthreads the scheduler policy is changed automatically to a policy that works well with a given priority. Code which has specific requirements can override SDL's default behavior with this hint.

pthread hint values are "current", "other", "fifo" and "rr". Currently no other platform hint values are defined but may be in the future.

\note On Linux, the kernel may send SIGKILL to realtime tasks which exceed the distro configured execution budget for rtkit. This budget can be queried through RLIMIT_RTTIME after calling SDL_SetThreadPriority(). /

SDL_HINT_THREAD_STACK_SIZE sdl2

/** \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size

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, Windows, and PSP backend. /

SDL_HINT_TIMER_RESOLUTION sdl2

/** \brief A variable that controls the timer resolution, in milliseconds.

The higher resolution the timer, the more frequently the CPU services timer interrupts, and the more precise delays are, but this takes up power and CPU time. This hint is only used on Windows 7 and earlier.

See this blog post for more information: http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/

If this variable is set to "0", the system timer resolution is not set.

The default value is "1". This hint may be set at any time. /

SDL_HINT_TOUCH_MOUSE_EVENTS sdl2

/** \brief A variable controlling whether touch events should generate synthetic mouse events

This variable can be set to the following values: "0" - Touch events will not generate mouse events "1" - Touch events will generate mouse events

By default SDL will generate mouse events for touch events /

SDL_HINT_TRACKPAD_IS_TOUCH_ONLY sdl2

\brief A variable that treats trackpads as touch devices.

On macOS (and possibly other platforms in the future), SDL will report touches on a trackpad as mouse input, which is generally what users expect from this device; however, these are often actually full multitouch-capable touch devices, so it might be preferable to some apps to treat them as such.

Setting this hint to true will make the trackpad input report as a multitouch device instead of a mouse. The default is false.

Note that most platforms don't support this hint. As of 2.24.0, it only supports MacBooks' trackpads on macOS. Others may follow later.

This hint is checked during SDL_Init and can not be changed after.

This hint is available since SDL 2.24.0.

SDL_HINT_TV_REMOTE_AS_JOYSTICK sdl2

/** \brief A variable controlling whether the Android / tvOS remotes should be listed as joystick devices, instead of sending keyboard events.

This variable can be set to the following values: "0" - Remotes send enter/escape/arrow key events "1" - Remotes are available as 2 axis, 2 button joysticks (the default). /

SDL_HINT_VIDEODRIVER sdl2

\brief A variable that decides what video backend to use.

By default, SDL will try all available video backends in a reasonable order until it finds one that can work, but this hint allows the app or user to force a specific target, such as "x11" if, say, you are on Wayland but want to try talking to the X server instead.

This functionality has existed since SDL 2.0.0 (indeed, before that) but before 2.0.22 this was an environment variable only. In 2.0.22, it was upgraded to a full SDL hint, so you can set the environment variable as usual or programatically set the hint with SDL_SetHint, which won't propagate to child processes.

The default value is unset, in which case SDL will try to figure out the best video backend on your behalf. This hint needs to be set before SDL_Init() is called to be useful.

This hint is available since SDL 2.0.22. Before then, you could set the environment variable to get the same effect.

SDL_HINT_VIDEO_ALLOW_SCREENSAVER sdl2

/** \brief A variable controlling whether the screensaver is enabled.

This variable can be set to the following values: "0" - Disable screensaver "1" - Enable screensaver

By default SDL will disable the screensaver. /

SDL_HINT_VIDEO_DOUBLE_BUFFER sdl2

/** \brief Tell the video driver that we only want a double buffer.

By default, most lowlevel 2D APIs will use a triple buffer scheme that wastes no CPU time on waiting for vsync after issuing a flip, but introduces a frame of latency. On the other hand, using a double buffer scheme instead is recommended for cases where low latency is an important factor because we save a whole frame of latency. We do so by waiting for vsync immediately after issuing a flip, usually just after eglSwapBuffers call in the backend's *_SwapWindow function.

Since it's driver-specific, it's only supported where possible and implemented. Currently supported the following drivers:

- KMSDRM (kmsdrm) - Raspberry Pi (raspberrypi) /

SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY sdl2

/** \brief A variable controlling whether the EGL window is allowed to be composited as transparent, rather than opaque.

Most window systems will always render windows opaque, even if the surface format has an alpha channel. This is not always true, however, so by default SDL will try to enforce opaque composition. To override this behavior, you can set this hint to "1". /

SDL_HINT_VIDEO_EXTERNAL_CONTEXT sdl2

/** \brief A variable controlling whether the graphics context is externally managed.

This variable can be set to the following values: "0" - SDL will manage graphics contexts that are attached to windows. "1" - Disable graphics context management on windows.

By default SDL will manage OpenGL contexts in certain situations. For example, on Android the context will be automatically saved and restored when pausing the application. Additionally, some platforms will assume usage of OpenGL if Vulkan isn't used. Setting this to "1" will prevent this behavior, which is desireable when the application manages the graphics context, such as an externally managed OpenGL context or attaching a Vulkan surface to the window. /

SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL sdl2

\brief When calling SDL_CreateWindowFrom(), make the window compatible with OpenGL.

This variable can be set to the following values: "0" - Don't add any graphics flags to the SDL_WindowFlags "1" - Add SDL_WINDOW_OPENGL to the SDL_WindowFlags

By default SDL will not make the foreign window compatible with OpenGL.

SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN sdl2

\brief When calling SDL_CreateWindowFrom(), make the window compatible with Vulkan.

This variable can be set to the following values: "0" - Don't add any graphics flags to the SDL_WindowFlags "1" - Add SDL_WINDOW_VULKAN to the SDL_WindowFlags

By default SDL will not make the foreign window compatible with Vulkan.

SDL_HINT_VIDEO_HIGHDPI_DISABLED sdl2

/** \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) /

SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES sdl2

/** \brief A variable that dictates policy for fullscreen Spaces on Mac OS X.

This hint only applies to Mac OS X.

The variable can be set to the following values: "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" button on their titlebars). "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" button on their titlebars).

The default value is "1". Spaces are disabled regardless of this hint if the OS isn't at least Mac OS X Lion (10.7). This hint must be set before any windows are created. /

SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS sdl2

/** \brief Minimize your SDL_Window if it loses key focus when in Fullscreen mode. Defaults to true.

/

SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR sdl2

/** \brief A variable controlling whether the libdecor Wayland backend is allowed to be used.

This variable can be set to the following values: "0" - libdecor use is disabled. "1" - libdecor use is enabled (default).

libdecor is used over xdg-shell when xdg-decoration protocol is unavailable. /

SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP sdl2

\brief Enable or disable mouse pointer warp emulation, needed by some older games.

When this hint is set, any SDL will emulate mouse warps using relative mouse mode. This is required for some older games (such as Source engine games), which warp the mouse to the centre of the screen rather than using relative mouse motion. Note that relative mouse mode may have different mouse acceleration behaviour than pointer warps.

This variable can be set to the following values: "0" - All mouse warps fail, as mouse warping is not available under Wayland. "1" - Some mouse warps will be emulated by forcing relative mouse mode.

If not set, this is automatically enabled unless an application uses relative mouse mode directly.

This hint is available since SDL 2.26.0.

SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION sdl2

\brief A variable controlling whether video mode emulation is enabled under Wayland.

When this hint is set, a standard set of emulated CVT video modes will be exposed for use by the application. If it is disabled, the only modes exposed will be the logical desktop size and, in the case of a scaled desktop, the native display resolution.

This variable can be set to the following values: "0" - Video mode emulation is disabled. "1" - Video mode emulation is enabled.

By default video mode emulation is enabled.

SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR sdl2

\brief A variable controlling whether the libdecor Wayland backend is preferred over native decrations.

When this hint is set, libdecor will be used to provide window decorations, even if xdg-decoration is available. (Note that, by default, libdecor will use xdg-decoration itself if available).

This variable can be set to the following values: "0" - libdecor is enabled only if server-side decorations are unavailable. "1" - libdecor is always enabled if available.

libdecor is used over xdg-shell when xdg-decoration protocol is unavailable.

SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT sdl2

/** \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p").

If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly created SDL_Window:

1. Its pixel format will be set to the same pixel format as this SDL_Window. This is needed for example when sharing an OpenGL context across multiple windows.

2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for OpenGL rendering.

This variable can be set to the following values: The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should share a pixel format with. /

SDL_HINT_VIDEO_WIN_D3DCOMPILER sdl2

/** \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries

SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It can use two different sets of binaries, those compiled by the user from source or those provided by the Chrome browser. In the later case, these binaries require that SDL loads a DLL providing the shader compiler.

This variable can be set to the following values: "d3dcompiler_46.dll" - default, best for Vista or later. "d3dcompiler_43.dll" - for XP support. "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries.

/

SDL_HINT_VIDEO_X11_FORCE_EGL sdl2

/** \brief A variable controlling whether X11 should use GLX or EGL by default

This variable can be set to the following values: "0" - Use GLX "1" - Use EGL

By default SDL will use GLX when both are present. /

SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR sdl2

/** \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used.

This variable can be set to the following values: "0" - Disable _NET_WM_BYPASS_COMPOSITOR "1" - Enable _NET_WM_BYPASS_COMPOSITOR

By default SDL will use _NET_WM_BYPASS_COMPOSITOR

/

SDL_HINT_VIDEO_X11_NET_WM_PING sdl2

/** \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported.

This variable can be set to the following values: "0" - Disable _NET_WM_PING "1" - Enable _NET_WM_PING

By default SDL will use _NET_WM_PING, but for applications that know they will not always be able to respond to ping requests in a timely manner they can turn it off to avoid the window manager thinking the app is hung. The hint is checked in CreateWindow. /

SDL_HINT_VIDEO_X11_WINDOW_VISUALID sdl2

/** \brief A variable forcing the visual ID chosen for new X11 windows

/

SDL_HINT_VIDEO_X11_XINERAMA sdl2

/** \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. /

SDL_HINT_VIDEO_X11_XRANDR sdl2

/** \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. /

SDL_HINT_VIDEO_X11_XVIDMODE sdl2

/** \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. /

SDL_HINT_VITA_TOUCH_MOUSE_DEVICE sdl2

\brief A variable controlling which touchpad should generate synthetic mouse events

This variable can be set to the following values: "0" - Only front touchpad should generate mouse events. Default "1" - Only back touchpad should generate mouse events. "2" - Both touchpads should generate mouse events.

By default SDL will generate mouse events for all touch devices

SDL_HINT_WAVE_FACT_CHUNK sdl2

/** \brief Controls how the fact chunk affects the loading of a WAVE file.

The fact chunk stores information about the number of samples of a WAVE file. The Standards Update from Microsoft notes that this value can be used to 'determine the length of the data in seconds'. This is especially useful for compressed formats (for which this is a mandatory chunk) if they produce multiple sample frames per block and truncating the block is not allowed. The fact chunk can exactly specify how many sample frames there should be in this case.

Unfortunately, most application seem to ignore the fact chunk and so SDL ignores it by default as well.

This variable can be set to the following values:

"truncate" - Use the number of samples to truncate the wave data if the fact chunk is present and valid "strict" - Like "truncate", but raise an error if the fact chunk is invalid, not present for non-PCM formats, or if the data chunk doesn't have that many samples "ignorezero" - Like "truncate", but ignore fact chunk if the number of samples is zero "ignore" - Ignore fact chunk entirely (default) /

SDL_HINT_WAVE_RIFF_CHUNK_SIZE sdl2

/** \brief Controls how the size of the RIFF chunk affects the loading of a WAVE file.

The size of the RIFF chunk (which includes all the sub-chunks of the WAVE file) is not always reliable. In case the size is wrong, it's possible to just ignore it and step through the chunks until a fixed limit is reached.

Note that files that have trailing data unrelated to the WAVE file or corrupt files may slow down the loading process without a reliable boundary. By default, SDL stops after 10000 chunks to prevent wasting time. Use the environment variable SDL_WAVE_CHUNK_LIMIT to adjust this value.

This variable can be set to the following values:

"force" - Always use the RIFF chunk size as a boundary for the chunk search "ignorezero" - Like "force", but a zero size searches up to 4 GiB (default) "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB "maximum" - Search for chunks until the end of file (not recommended) /

SDL_HINT_WAVE_TRUNCATION sdl2

/** \brief Controls how a truncated WAVE file is handled.

A WAVE file is considered truncated if any of the chunks are incomplete or the data chunk size is not a multiple of the block size. By default, SDL decodes until the first incomplete block, as most applications seem to do.

This variable can be set to the following values:

"verystrict" - Raise an error if the file is truncated "strict" - Like "verystrict", but the size of the RIFF chunk is ignored "dropframe" - Decode until the first incomplete sample frame "dropblock" - Decode until the first incomplete block (default) /

SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING sdl2

/** \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. /

SDL_HINT_WINDOWS_DPI_AWARENESS sdl2

\brief Controls whether SDL will declare the process to be DPI aware.

This hint must be set before initializing the video subsystem.

The main purpose of declaring DPI awareness is to disable OS bitmap scaling of SDL windows on monitors with a DPI scale factor.

This hint is equivalent to requesting DPI awareness via external means (e.g. calling SetProcessDpiAwarenessContext) and does not cause SDL to use a virtualized coordinate system, so it will generally give you 1 SDL coordinate = 1 pixel even on high-DPI displays.

For more information, see: https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows

This variable can be set to the following values: "" - Do not change the DPI awareness (default). "unaware" - Declare the process as DPI unaware. (Windows 8.1 and later). "system" - Request system DPI awareness. (Vista and later). "permonitor" - Request per-monitor DPI awareness. (Windows 8.1 and later). "permonitorv2" - Request per-monitor V2 DPI awareness. (Windows 10, version 1607 and later). The most visible difference from "permonitor" is that window title bar will be scaled to the visually correct size when dragging between monitors with different scale factors. This is the preferred DPI awareness level.

If the requested DPI awareness is not available on the currently running OS, SDL will try to request the best available match.

SDL_HINT_WINDOWS_DPI_SCALING sdl2

\brief Uses DPI-scaled points as the SDL coordinate system on Windows.

This changes the SDL coordinate system units to be DPI-scaled points, rather than pixels everywhere. This means windows will be appropriately sized, even when created on high-DPI displays with scaling.

e.g. requesting a 640x480 window from SDL, on a display with 125% scaling in Windows display settings, will create a window with an 800x600 client area (in pixels).

Setting this to "1" implicitly requests process DPI awareness (setting SDL_WINDOWS_DPI_AWARENESS is unnecessary), and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows.

This variable can be set to the following values: "0" - SDL coordinates equal Windows coordinates. No automatic window resizing when dragging between monitors with different scale factors (unless this is performed by Windows itself, which is the case when the process is DPI unaware). "1" - SDL coordinates are in DPI-scaled points. Automatically resize windows as needed on displays with non-100% scale factors.

SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP sdl2

/** \brief A variable controlling whether the windows message loop is processed by SDL

This variable can be set to the following values: "0" - The window message loop is not run "1" - The window message loop is processed in SDL_PumpEvents()

By default SDL will process the windows message loop /

SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS sdl2

/** \brief Force SDL to use Critical Sections for mutexes on Windows. On Windows 7 and newer, Slim Reader/Writer Locks are available. They offer better performance, allocate no kernel ressources and use less memory. SDL will fall back to Critical Sections on older OS versions or if forced to by this hint.

This variable can be set to the following values: "0" - Use SRW Locks when available. If not, fall back to Critical Sections. (default) "1" - Force the use of Critical Sections in all cases.

/

SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL sdl2

/** \brief Force SDL to use Kernel Semaphores on Windows. Kernel Semaphores are inter-process and require a context switch on every interaction. On Windows 8 and newer, the WaitOnAddress API is available. Using that and atomics to implement semaphores increases performance. SDL will fall back to Kernel Objects on older OS versions or if forced to by this hint.

This variable can be set to the following values: "0" - Use Atomics and WaitOnAddress API when available. If not, fall back to Kernel Objects. (default) "1" - Force the use of Kernel Objects in all cases.

/

SDL_HINT_WINDOWS_INTRESOURCE_ICON sdl2

/** \brief A variable to specify custom icon resource id from RC file on Windows platform /

SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL sdl2

 

SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 sdl2

/** \brief Tell SDL not to generate window-close events for Alt+F4 on Windows.

The variable can be set to the following values: "0" - SDL will generate a window-close event when it sees Alt+F4. "1" - SDL will only do normal key handling for Alt+F4. /

SDL_HINT_WINDOWS_USE_D3D9EX sdl2

/** \brief Use the D3D9Ex API introduced in Windows Vista, instead of normal D3D9. Direct3D 9Ex contains changes to state management that can eliminate device loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may require some changes to your application to cope with the new behavior, so this is disabled by default.

This hint must be set before initializing the video subsystem.

For more information on Direct3D 9Ex, see: - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements

This variable can be set to the following values: "0" - Use the original Direct3D 9 API (default) "1" - Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex is unavailable)

/

SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN sdl2

/** \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden

This variable can be set to the following values: "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) "1" - The window frame is interactive when the cursor is hidden

By default SDL will allow interaction with the window frame when the cursor is hidden /

SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN sdl2

/** \brief A variable controlling whether the window is activated when the SDL_ShowWindow function is called

This variable can be set to the following values: "0" - The window is activated when the SDL_ShowWindow function is called "1" - The window is not activated when the SDL_ShowWindow function is called

By default SDL will activate the window when the SDL_ShowWindow function is called /

SDL_HINT_WINRT_HANDLE_BACK_BUTTON sdl2

/** \brief Allows back-button-press events on Windows Phone to be marked as handled

Windows Phone devices typically feature a Back button. When pressed, the OS will emit back-button-press events, which apps are expected to handle in an appropriate manner. If apps do not explicitly mark these events as 'Handled', then the OS will invoke its default behavior for unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to terminate the app (and attempt to switch to the previous app, or to the device's home screen).

Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL to mark back-button-press events as Handled, if and when one is sent to the app.

Internally, Windows Phone sends back button events as parameters to special back-button-press callback functions. Apps that need to respond to back-button-press events are expected to register one or more callback functions for such, shortly after being launched (during the app's initialization phase). After the back button is pressed, the OS will invoke these callbacks. If the app's callback(s) do not explicitly mark the event as handled by the time they return, or if the app never registers one of these callback, the OS will consider the event un-handled, and it will apply its default back button behavior (terminate the app).

SDL registers its own back-button-press callback with the Windows Phone OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. If the hint's value is set to "1", the back button event's Handled property will get set to 'true'. If the hint's value is set to something else, or if it is unset, SDL will leave the event's Handled property alone. (By default, the OS sets this property to 'false', to note.)

SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a back button is pressed, or can set it in direct-response to a back button being pressed.

In order to get notified when a back button is pressed, SDL apps should register a callback function with SDL_AddEventWatch(), and have it listen for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. (Alternatively, SDL_KEYUP events can be listened-for. Listening for either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON set by such a callback, will be applied to the OS' current back-button-press event.

More details on back button behavior in Windows Phone apps can be found at the following page, on Microsoft's developer site: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx /

SDL_HINT_WINRT_PRIVACY_POLICY_LABEL sdl2

/** \brief Label text for a WinRT app's privacy policy link

Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be available via the Windows Settings charm. SDL provides code to add a link there, with its label text being set via the optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL.

Please note that a privacy policy's contents are not set via this hint. A separate hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the 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().

For additional information on linking to a privacy policy, see the documentation for SDL_HINT_WINRT_PRIVACY_POLICY_URL. /

SDL_HINT_WINRT_PRIVACY_POLICY_URL sdl2

/** \brief A URL to a WinRT app's privacy policy

All network-enabled WinRT apps must make a privacy policy available to its users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be be available in the Windows Settings charm, as accessed from within the app. SDL provides code to add a URL-based link there, which can point to the app's 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 be a valid URL. For example, "http://www.example.com".

The default value is "", which will prevent SDL from adding a privacy policy link to the Settings charm. This hint should only be set during app init.

The label text of an app's "Privacy Policy" link may be customized via another hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL.

Please note that on Windows Phone, Microsoft does not provide standard UI for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL will not get used on that platform. Network-enabled phone apps should display their privacy policy through some other, in-app means. /

SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT sdl2

/** \brief Mark X11 windows as override-redirect.

If set, this _might_ increase framerate at the expense of the desktop not working as expected. Override-redirect windows aren't noticed by the window manager at all.

You should probably only use this for fullscreen windows, and you probably shouldn't even use it for that. But it's here if you want to try! /

SDL_HINT_X11_WINDOW_TYPE sdl2

\brief A variable that forces X11 windows to create as a custom type.

This is currently only used for X11 and ignored elsewhere.

During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property to report to the window manager the type of window it wants to create. This might be set to various things if SDL_WINDOW_TOOLTIP or SDL_WINDOW_POPUP_MENU, etc, were specified. For "normal" windows that haven't set a specific type, this hint can be used to specify a custom type. For example, a dock window might set this to "_NET_WM_WINDOW_TYPE_DOCK".

If not set or set to "", this hint is ignored. This hint must be set before the SDL_CreateWindow() call that it is intended to affect.

SDL_HINT_XINPUT_ENABLED sdl2

/** \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) /

SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING sdl2

\brief A variable that causes SDL to use the old axis and button mapping for XInput devices.

This hint is for backwards compatibility only and will be removed in SDL 2.1

The default value is "0". This hint must be set before SDL_Init()

SDL_HITTEST_DRAGGABLE sdl2

< Region is normal. No special properties. *

SDL_HITTEST_NORMAL sdl2

 

SDL_HITTEST_RESIZE_BOTTOM sdl2

 

SDL_HITTEST_RESIZE_BOTTOMLEFT sdl2

 

SDL_HITTEST_RESIZE_BOTTOMRIGHT sdl2

 

SDL_HITTEST_RESIZE_LEFT sdl2

 

SDL_HITTEST_RESIZE_RIGHT sdl2

 

SDL_HITTEST_RESIZE_TOP sdl2

 

SDL_HITTEST_RESIZE_TOPLEFT sdl2

< Region can drag entire window. *

SDL_HITTEST_RESIZE_TOPRIGHT sdl2

 

SDL_iconv sdl2

 

SDL_iconv_close sdl2

 

SDL_ICONV_E2BIG sdl2

 

SDL_ICONV_EILSEQ sdl2

 

SDL_ICONV_EINVAL sdl2

 

SDL_ICONV_ERROR sdl2

The SDL implementation of iconv() returns these error codes

SDL_iconv_open sdl2

 

SDL_iconv_string sdl2

This function converts a string between encodings in one pass, returning a string that must be freed with SDL_free(), or NIL on error.

\since This function is available since SDL 2.0.0.

SDL_iconv_utf8_locale sdl2

These are macros in the original C headers, we will reimplement them as simple Pascal functions.

SDL_iconv_utf8_ucs2 sdl2

 

SDL_iconv_utf8_ucs4 sdl2

 

SDL_IGNORE sdl2

 

SDL_imageFilterAbsDiff sdl2_gfx

SDL_imageFilterAbsDiff: D = | S1 - S2 |

SDL_imageFilterAdd sdl2_gfx

SDL_imageFilterAdd: D = saturation255(S1 + S2)

SDL_imageFilterAddByte sdl2_gfx

SDL_imageFilterAddByte: D = saturation255(S + C)

SDL_imageFilterAddByteToHalf sdl2_gfx

SDL_imageFilterAddByteToHalf: D = saturation255(S/2 + C)

SDL_imageFilterAddUsInt32 sdl2_gfx

SDL_imageFilterAddUsInt32: D = saturation255(S + (usInt32)C)

SDL_imageFilterBinarizeUsingThreshold sdl2_gfx

SDL_imageFilterBinarizeUsingThreshold: D = S >= T ? 255:0

SDL_imageFilterBitAnd sdl2_gfx

SDL_imageFilterBitAnd: D = S1 & S2

SDL_imageFilterBitNegation sdl2_gfx

SDL_imageFilterBitNegation: D = !S

SDL_imageFilterBitOr sdl2_gfx

SDL_imageFilterBitOr: D = S1 | S2

SDL_imageFilterClipToRange sdl2_gfx

SDL_imageFilterClipToRange: D = (S >= Tmin) & (S <= Tmax) 255:0

SDL_imageFilterDiv sdl2_gfx

SDL_imageFilterDiv: D = S1 / S2 (non-MMX)

SDL_imageFilterMean sdl2_gfx

SDL_imageFilterMean: D = S1/2 + S2/2

SDL_imageFilterMMXdetect sdl2_gfx

Detect MMX capability in CPU

SDL_imageFilterMMXoff sdl2_gfx

Force use of MMX off (or turn possible use back on)

SDL_imageFilterMMXon sdl2_gfx

 

SDL_imageFilterMult sdl2_gfx

SDL_imageFilterMult: D = saturation(S1 * S2)

SDL_imageFilterMultByByte sdl2_gfx

SDL_imageFilterMultByByte: D = saturation255(S * C)

SDL_imageFilterMultDivby2 sdl2_gfx

SDL_imageFilterMultDivby2: D = saturation255(S1/2 * S2)

SDL_imageFilterMultDivby4 sdl2_gfx

SDL_imageFilterMultDivby4: D = saturation255(S1/2 * S2/2)

SDL_imageFilterMultNor sdl2_gfx

SDL_imageFilterMultNor: D = S1 * S2 (non-MMX)

SDL_imageFilterNormalizeLinear sdl2_gfx

SDL_imageFilterNormalizeLinear: D = saturation255((Nmax - Nmin)/(Cmax - Cmin)*(S - Cmin) + Nmin)

SDL_imageFilterShiftLeft sdl2_gfx

SDL_imageFilterShiftLeft: D = saturation255(S << N)

SDL_imageFilterShiftLeftByte sdl2_gfx

SDL_imageFilterShiftLeftByte: D = (S << N)

SDL_imageFilterShiftLeftUsInt32 sdl2_gfx

SDL_imageFilterShiftLeftUsInt32: D = ((usInt32)S << N)

SDL_imageFilterShiftRight sdl2_gfx

SDL_imageFilterShiftRight: D = saturation0(S >> N)

SDL_imageFilterShiftRightAndMultByByte sdl2_gfx

SDL_imageFilterShiftRightAndMultByByte: D = saturation255((S >> N) * C)

SDL_imageFilterShiftRightUsInt32 sdl2_gfx

SDL_imageFilterShiftRightUsInt32: D = saturation0((usInt32)S >> N)

SDL_imageFilterSub sdl2_gfx

SDL_imageFilterSub: D = saturation0(S1 - S2)

SDL_imageFilterSubByte sdl2_gfx

SDL_imageFilterSubByte: D = saturation0(S - C)

SDL_imageFilterSubUsInt32 sdl2_gfx

SDL_imageFilterSubUsInt32: D = saturation0(S - (usInt32)C)

SDL_IMAGE_MAJOR_VERSION sdl2_image

Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *

SDL_IMAGE_MINOR_VERSION sdl2_image

 

SDL_IMAGE_PATCHLEVEL sdl2_image

 

SDL_IMAGE_VERSION sdl2_image

This macro can be used to fill a version structure with the compile-time version of the SDL_image library.

SDL_Init sdl2

This function initializes the subsystems specified by flags Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup signal handlers for some commonly ignored fatal signals (like SIGSEGV).

SDL_initFramerate sdl2_gfx

 

SDL_InitSubSystem sdl2

This function initializes specific SDL subsystems

SDL_INIT_AUDIO sdl2

 

SDL_INIT_EVENTS sdl2

turn on game controller also implicitly does JOYSTICK SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK

SDL_INIT_EVERYTHING sdl2

Don't catch fatal signals compatibility; this flag is ignored.

SDL_INIT_GAMECONTROLLER sdl2

 

SDL_INIT_HAPTIC sdl2

SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS

SDL_INIT_JOYSTICK sdl2

SDL_INIT_VIDEO implies SDL_INIT_EVENTS

SDL_INIT_NOPARACHUTE sdl2

 

SDL_INIT_SENSOR sdl2

 

SDL_INIT_TIMER sdl2

 

SDL_INIT_VIDEO sdl2

 

SDL_IntersectFRect sdl2

Calculate the intersection of two rectangles with float precision.

If `result` is NIL then this function will return SDL_FALSE.

\param A an SDL_FRect structure representing the first rectangle \param B an SDL_FRect structure representing the second rectangle \param result an SDL_FRect structure filled in with the intersection of rectangles `A` and `B` \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.22.

\sa SDL_HasIntersectionF

SDL_IntersectFRectAndLine sdl2

Calculate the intersection of a rectangle and line segment with float precision.

This function is used to clip a line segment to a rectangle. A line segment contained entirely within the rectangle or that does not intersect will remain unchanged. A line segment that crosses the rectangle at either or both ends will be clipped to the boundary of the rectangle and the new coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary.

\param rect an SDL_FRect structure representing the rectangle to intersect \param X1 a pointer to the starting X-coordinate of the line \param Y1 a pointer to the starting Y-coordinate of the line \param X2 a pointer to the ending X-coordinate of the line \param Y2 a pointer to the ending Y-coordinate of the line \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.22.

SDL_IntersectRect sdl2

Calculate the intersection of two rectangles.

SDL_TRUE if there is an intersection, SDL_FALSE otherwise.

SDL_IntersectRectAndLine sdl2

Calculate the intersection of a rectangle and line segment.

SDL_TRUE if there is an intersection, SDL_FALSE otherwise.

SDL_INVALID_SHAPE_ARGUMENT sdl2

 

SDL_IPHONE_MAX_GFORCE sdl2

Set max recognized G-force from accelerometer See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed

SDL_isalnum sdl2

Check if the provided ASCII character is an alphanumeric character.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_isalpha sdl2

Check if the provided ASCII character is an alphabetic character (a letter).

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_isblank sdl2

Check if the provided ASCII character is a blank character (a space or a tab).

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_iscntrl sdl2

Check if the provided ASCII character is a control character.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_isdigit sdl2

Check if the provided ASCII character is a decimal digit.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.4.

SDL_IsGameController sdl2

Is the joystick on this index supported by the game controller interface?

SDL_isgraph sdl2

Check if the provided ASCII character is a printable character (excluding space).

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_islower sdl2

Check if the provided ASCII character is a lowercase letter.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.12.

SDL_ISPIXELFORMAT_FOURCC sdl2

The flag is set to 1 because 0x1? is not in the printable ASCII range *

SDL_isprint sdl2

Check if the provided ASCII character is a printable character (including space).

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_ispunct sdl2

Check if the provided ASCII character is any printable character which is not a space or an alphanumeric character.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_IsScreenKeyboardShown sdl2

Check whether the screen keyboard is shown for given window.

\param window the window for which screen keyboard should be queried \returns SDL_TRUE if screen keyboard is shown or SDL_FALSE if not.

\since This function is available since SDL 2.0.0.

\sa SDL_HasScreenKeyboardSupport

SDL_IsScreenSaverEnabled sdl2

Returns whether the screensaver is currently enabled (default on).

SDL_EnableScreenSaver() SDL_DisableScreenSaver()

SDL_IsShapedWindow sdl2

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 NIL.

\since This function is available since SDL 2.0.0.

\sa SDL_CreateShapedWindow

SDL_isspace sdl2

Check if the provided ASCII character is a whitespace character. This set includes the following characters: space, form feed (FF), newline/line feed (LF), carriage return (CR), horizontal tab (HT), vertical tab (VT).

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.4.

SDL_IsTablet sdl2

Query if the current device is a tablet.

If SDL can't determine this, it will return SDL_FALSE.

\returns SDL_TRUE if the device is a tablet, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.9.

SDL_IsTextInputActive sdl2

Check whether or not Unicode text input events are enabled.

\returns SDL_TRUE if text input events are enabled else SDL_FALSE.

\since This function is available since SDL 2.0.0.

\sa SDL_StartTextInput

SDL_IsTextInputShown sdl2

Returns if an IME Composite or Candidate window is currently shown.

\since This function is available since SDL 2.0.22.

SDL_isupper sdl2

Check if the provided ASCII character is an uppercase letter.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.12.

SDL_isxdigit sdl2

Check if the provided ASCII character is a hexadecimal digit.

\returns 1 if the check passes, 0 otherwise.

\since This function is available since SDL 2.0.16.

SDL_JOYAXISMOTION sdl2

Joystick events

SDL_JOYBALLMOTION sdl2

Joystick axis motion

SDL_JOYBATTERYUPDATED sdl2

An opened joystick has been removed

SDL_JOYBUTTONDOWN sdl2

Joystick hat position change

SDL_JOYBUTTONUP sdl2

Joystick button pressed

SDL_JOYDEVICEADDED sdl2

Joystick button released

SDL_JOYDEVICEREMOVED sdl2

A new joystick has been inserted into the system

SDL_JOYHATMOTION sdl2

Joystick trackball motion

SDL_JoystickAttachVirtual sdl2

Attach a new virtual joystick.

\returns the joystick's device index, or -1 if an error occurred.

\since This function is available since SDL 2.0.14.

SDL_JoystickAttachVirtualEx sdl2

/** Attach a new virtual joystick with extended properties.

\returns the joystick's device index, or -1 if an error occurred.

\since This function is available since SDL 2.24.0. /

SDL_JoystickClose sdl2

Close a joystick previously opened with SDL_JoystickOpen().

\param joystick The joystick device to close

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickOpen

SDL_JoystickCurrentPowerLevel sdl2

Get the battery level of a joystick as SDL_JoystickPowerLevel.

\param joystick the SDL_Joystick to query \returns the current battery level as SDL_JoystickPowerLevel on success or `SDL_JOYSTICK_POWER_UNKNOWN` if it is unknown

\since This function is available since SDL 2.0.4.

SDL_JoystickDetachVirtual sdl2

Detach a virtual joystick.

\param device_index a value previously returned from SDL_JoystickAttachVirtual() \returns 0 on success, or -1 if an error occurred.

\since This function is available since SDL 2.0.14.

SDL_JoystickEventState sdl2

Enable/disable joystick event polling.

If joystick events are disabled, you must call SDL_JoystickUpdate() yourself and manually check the state of the joystick when you want joystick information.

It is recommended that you leave joystick event handling enabled.

**WARNING**: Calling this function may delete all events currently in SDL's event queue.

\param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE` \returns 1 if enabled, 0 if disabled, or a negative error code on failure; call SDL_GetError() for more information.

If `state` is `SDL_QUERY` then the current state is returned, otherwise the new processing state is returned.

\since This function is available since SDL 2.0.0.

\sa SDL_GameControllerEventState

SDL_JoystickFromInstanceID sdl2

Get the SDL_Joystick associated with an instance id.

\param instance_id the instance id to get the SDL_Joystick for \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.4.

SDL_JoystickFromPlayerIndex sdl2

Get the SDL_Joystick associated with a player index.

\param player_index the player index to get the SDL_Joystick for \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.12.

SDL_JoystickGetAttached sdl2

Get the status of a specified joystick.

\param joystick the joystick to query \returns SDL_TRUE if the joystick has been opened, SDL_FALSE if it has not; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickClose \sa SDL_JoystickOpen

SDL_JoystickGetAxis sdl2

Get the current state of an axis control on a joystick.

SDL makes no promises about what part of the joystick any given axis refers to. Your game should have some sort of configuration UI to let users specify what each axis should be bound to. Alternately, SDL's higher-level Game Controller API makes a great effort to apply order to this lower-level interface, so you know that a specific axis is the "left thumb stick," etc.

The value returned by SDL_JoystickGetAxis() is a signed integer (-32768 to 32767) representing the current position of the axis. It may be necessary to impose certain tolerances on these values to account for jitter.

\param joystick an SDL_Joystick structure containing joystick information \param axis the axis to query; the axis indices start at index 0 \returns a 16-bit signed integer representing the current position of the axis or 0 on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickNumAxes

SDL_JoystickGetAxisInitialState sdl2

Get the initial state of an axis control on a joystick.

The state is a value ranging from -32768 to 32767.

The axis indices start at index 0.

\param joystick an SDL_Joystick structure containing joystick information \param axis the axis to query; the axis indices start at index 0 \param state Upon return, the initial value is supplied here. \return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not.

\since This function is available since SDL 2.0.6.

SDL_JoystickGetBall sdl2

Get the ball axis change since the last poll.

Trackballs can only return relative motion since the last call to SDL_JoystickGetBall(), these motion deltas are placed into `dx` and `dy`.

Most joysticks do not have trackballs.

\param joystick the SDL_Joystick to query \param ball the ball index to query; ball indices start at index 0 \param dx stores the difference in the x axis position since the last poll \param dy stores the difference in the y axis position since the last poll \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickNumBalls

SDL_JoystickGetButton sdl2

Get the current state of a button on a joystick.

\param joystick an SDL_Joystick structure containing joystick information \param button the button index to get the state from; indices start at index 0 \returns 1 if the specified button is pressed, 0 otherwise.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickNumButtons

SDL_JoystickGetDeviceGUID sdl2

Return the GUID for the joystick at this index This can be called before any joysticks are opened.

SDL_JoystickGetDeviceInstanceID sdl2

Get the instance ID of a joystick.

This can be called before any joysticks are opened. If the index is out of range, this function will return -1.

\param device_index the index of the joystick to query (the N'th joystick on the system \returns the instance id of the selected joystick. If called on an invalid index, this function returns zero

\since This function is available since SDL 2.0.6.

SDL_JoystickGetDevicePlayerIndex sdl2

Get the player index of a joystick, or -1 if it's not available This can be called before any joysticks are opened.

\since This function is available since SDL 2.0.9.

SDL_JoystickGetDeviceProduct sdl2

Get the USB product ID of a joystick, if available.

This can be called before any joysticks are opened. If the product ID isn't available this function returns 0.

\param device_index the index of the joystick to query (the N'th joystick on the system \returns the USB product ID of the selected joystick. If called on an invalid index, this function returns zero

\since This function is available since SDL 2.0.6.

SDL_JoystickGetDeviceProductVersion sdl2

Get the product version of a joystick, if available.

This can be called before any joysticks are opened. If the product version isn't available this function returns 0.

\param device_index the index of the joystick to query (the N'th joystick on the system \returns the product version of the selected joystick. If called on an invalid index, this function returns zero

\since This function is available since SDL 2.0.6.

SDL_JoystickGetDeviceType sdl2

Get the type of a joystick, if available.

This can be called before any joysticks are opened.

\param device_index the index of the joystick to query (the N'th joystick on the system \returns the SDL_JoystickType of the selected joystick. If called on an invalid index, this function returns `SDL_JOYSTICK_TYPE_UNKNOWN`

\since This function is available since SDL 2.0.6.

SDL_JoystickGetDeviceVendor sdl2

Get the USB vendor ID of a joystick, if available.

This can be called before any joysticks are opened. If the vendor ID isn't available this function returns 0.

\param device_index the index of the joystick to query (the N'th joystick on the system \returns the USB vendor ID of the selected joystick. If called on an invalid index, this function returns zero

\since This function is available since SDL 2.0.6.

SDL_JoystickGetFirmwareVersion sdl2

Get the firmware version of an opened joystick, if available.

If the firmware version isn't available this function returns 0.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the firmware version of the selected joystick, or 0 if unavailable.

\since This function is available since SDL 2.24.0.

SDL_JoystickGetGUID sdl2

Get the implementation-dependent GUID for the joystick.

This function requires an open joystick.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the GUID of the given joystick. If called on an invalid index, this function returns a zero GUID; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetDeviceGUID \sa SDL_JoystickGetGUIDString

SDL_JoystickGetGUIDFromString sdl2

Convert a GUID string into a SDL_JoystickGUID structure.

Performs no error checking. If this function is given a string containing an invalid GUID, the function will silently succeed, but the GUID generated will not be useful.

\param pchGUID string containing an ASCII representation of a GUID \returns a SDL_JoystickGUID structure.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetGUIDString

SDL_JoystickGetGUIDString sdl2

Get an ASCII string representation for a given SDL_JoystickGUID.

You should supply at least 33 bytes for pszGUID.

\param guid the SDL_JoystickGUID you wish to convert to string \param pszGUID buffer in which to write the ASCII string \param cbGUID the size of pszGUID

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetDeviceGUID \sa SDL_JoystickGetGUID \sa SDL_JoystickGetGUIDFromString

SDL_JoystickGetHat sdl2

Get the current state of a POV hat on a joystick.

The returned value will be one of the following positions:

- `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 hat the hat index to get the state from; indices start at index 0 \returns the current hat position.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickNumHats

SDL_JoystickGetPlayerIndex sdl2

Get the player index of an opened joystick.

For XInput controllers this returns the XInput user index. Many joysticks will not be able to supply this information.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the player index, or -1 if it's not available.

\since This function is available since SDL 2.0.9.

SDL_JoystickGetProduct sdl2

Get the USB product ID of an opened joystick, if available.

If the product ID isn't available this function returns 0.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the USB product ID of the selected joystick, or 0 if unavailable.

\since This function is available since SDL 2.0.6.

SDL_JoystickGetProductVersion sdl2

Get the product version of an opened joystick, if available.

If the product version isn't available this function returns 0.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the product version of the selected joystick, or 0 if unavailable.

\since This function is available since SDL 2.0.6.

SDL_JoystickGetSerial sdl2

Get the serial number of an opened joystick, if available.

Returns the serial number of the joystick, or NULL if it is not available.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the serial number of the selected joystick, or NULL if unavailable.

\since This function is available since SDL 2.0.14.

SDL_JoystickGetType sdl2

Get the type of an opened joystick.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the SDL_JoystickType of the selected joystick.

\since This function is available since SDL 2.0.6.

SDL_JoystickGetVendor sdl2

Get the USB vendor ID of an opened joystick, if available.

If the vendor ID isn't available this function returns 0.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the USB vendor ID of the selected joystick, or 0 if unavailable.

\since This function is available since SDL 2.0.6.

SDL_JoystickHasLED sdl2

Query whether a joystick has an LED.

An example of a joystick LED is the light on the back of a PlayStation 4's DualShock 4 controller.

\param joystick The joystick to query \return SDL_TRUE if the joystick has a modifiable LED, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.14.

SDL_JoystickHasRumble sdl2

Query whether a joystick has rumble support.

\param joystick The joystick to query \return SDL_TRUE if the joystick has rumble, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.18.

\sa SDL_JoystickRumble

SDL_JoystickHasRumbleTriggers sdl2

Query whether a joystick has rumble support on triggers.

\param joystick The joystick to query \return SDL_TRUE if the joystick has trigger rumble, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.18.

\sa SDL_JoystickRumbleTriggers

SDL_JoystickInstanceID sdl2

Get the instance ID of an opened joystick.

\param joystick an SDL_Joystick structure containing joystick information \returns the instance ID of the specified joystick on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickOpen

SDL_JoystickIsHaptic sdl2

Query if a joystick has haptic features.

\param joystick the SDL_Joystick to test for haptic capabilities \returns SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticOpenFromJoystick

SDL_JoystickIsVirtual sdl2

Query whether or not the joystick at a given device index is virtual.

\param device_index a joystick device index. \returns SDL_TRUE if the joystick is virtual, SDL_FALSE otherwise.

\since This function is available since SDL 2.0.14.

SDL_JoystickName sdl2

Get the implementation dependent name of a joystick.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the name of the selected joystick. If no name can be found, this function returns NULL; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickNameForIndex \sa SDL_JoystickOpen

SDL_JoystickNameForIndex sdl2

Get the implementation dependent name of a joystick.

This can be called before any joysticks are opened.

\param device_index the index of the joystick to query (the N'th joystick on the system) \returns the name of the selected joystick. If no name can be found, this function returns NULL; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickName \sa SDL_JoystickOpen

SDL_JoystickNumAxes sdl2

Get the number of general axis controls on a joystick.

Often, the directional pad on a game controller will either look like 4 separate buttons or a POV hat, and not axes, but all of this is up to the device and platform.

\param joystick an SDL_Joystick structure containing joystick information \returns the number of axis controls/number of axes on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetAxis \sa SDL_JoystickOpen

SDL_JoystickNumBalls sdl2

Get the number of trackballs on a joystick.

Joystick trackballs have only relative motion events associated with them and their state cannot be polled.

Most joysticks do not have trackballs.

\param joystick an SDL_Joystick structure containing joystick information \returns the number of trackballs on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetBall

SDL_JoystickNumButtons sdl2

Get the number of buttons on a joystick.

\param joystick an SDL_Joystick structure containing joystick information \returns the number of buttons on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetButton \sa SDL_JoystickOpen

SDL_JoystickNumHats sdl2

Get the number of POV hats on a joystick.

\param joystick an SDL_Joystick structure containing joystick information \returns the number of POV hats on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickGetHat \sa SDL_JoystickOpen

SDL_JoystickOpen sdl2

Open a joystick for use.

The `device_index` argument refers to the N'th joystick presently recognized by SDL on the system. It is **NOT** the same as the instance ID used to identify the joystick in future events. See SDL_JoystickInstanceID() for more details about instance IDs.

The joystick subsystem must be initialized before a joystick can be opened for use.

\param device_index the index of the joystick to query \returns a joystick identifier or NULL if an error occurred; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickClose \sa SDL_JoystickInstanceID

SDL_JoystickPath sdl2

Get the implementation dependent path of a joystick.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \returns the path of the selected joystick. If no path can be found, this function returns NULL; call SDL_GetError() for more information.

\since This function is available since SDL 2.24.0.

\sa SDL_JoystickPathForIndex

SDL_JoystickPathForIndex sdl2

Get the implementation dependent path of a joystick.

This can be called before any joysticks are opened.

\param device_index the index of the joystick to query (the N'th joystick on the system) \returns the path of the selected joystick. If no path can be found, this function returns NULL; call SDL_GetError() for more information.

\since This function is available since SDL 2.24.0.

\sa SDL_JoystickPath \sa SDL_JoystickOpen

SDL_JoystickRumble sdl2

Start a rumble effect.

Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling.

\param joystick The joystick to vibrate \param low_frequency_rumble The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF \param high_frequency_rumble The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF \param duration_ms The duration of the rumble effect, in milliseconds \returns 0, or -1 if rumble isn't supported on this joystick

\since This function is available since SDL 2.0.9.

\sa SDL_JoystickHasRumble

SDL_JoystickRumbleTriggers sdl2

Start a rumble effect in the joystick's triggers

Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling.

Note that this is rumbling of the _triggers_ and not the game controller as a whole. This is currently only supported on Xbox One controllers. If you want the (more common) whole-controller rumble, use SDL_JoystickRumble() instead.

\param joystick The joystick to vibrate \param left_rumble The intensity of the left trigger rumble motor, from 0 to 0xFFFF \param right_rumble The intensity of the right trigger rumble motor, from 0 to 0xFFFF \param duration_ms The duration of the rumble effect, in milliseconds \returns 0, or -1 if trigger rumble isn't supported on this joystick

\since This function is available since SDL 2.0.14.

\sa SDL_JoystickHasRumbleTriggers

SDL_JoystickSendEffect sdl2

Send a joystick specific effect packet

\param joystick The joystick to affect \param data The data to send to the joystick \param size The size of the data to send to the joystick \returns 0, or -1 if this joystick or driver doesn't support effect packets

\since This function is available since SDL 2.0.16.

SDL_JoystickSetLED sdl2

Update a joystick's LED color.

An example of a joystick LED is the light on the back of a PlayStation 4's DualShock 4 controller.

\param joystick The joystick to update \param red The intensity of the red LED \param green The intensity of the green LED \param blue The intensity of the blue LED \returns 0 on success, -1 if this joystick does not have a modifiable LED

\since This function is available since SDL 2.0.14.

SDL_JoystickSetPlayerIndex sdl2

Set the player index of an opened joystick.

\param joystick the SDL_Joystick obtained from SDL_JoystickOpen() \param player_index Player index to assign to this joystick, or -1 to clear the player index and turn off player LEDs.

\since This function is available since SDL 2.0.12.

SDL_JoystickSetVirtualAxis sdl2

Set values on an opened, virtual-joystick's axis.

Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.

Note that when sending trigger axes, you should scale the value to the full range of Sint16. For example, a trigger at rest would have the value of `SDL_JOYSTICK_AXIS_MIN`.

\param joystick the virtual joystick on which to set state. \param axis the specific axis on the virtual joystick to set. \param value the new value for the specified axis. \returns 0 on success, -1 on error.

\since This function is available since SDL 2.0.14.

SDL_JoystickSetVirtualButton sdl2

Set values on an opened, virtual-joystick's button.

Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.

\param joystick the virtual joystick on which to set state. \param button the specific button on the virtual joystick to set. \param value the new value for the specified button. \returns 0 on success, -1 on error.

\since This function is available since SDL 2.0.14.

SDL_JoystickSetVirtualHat sdl2

Set values on an opened, virtual-joystick's hat.

Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIs, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.

\param joystick the virtual joystick on which to set state. \param hat the specific hat on the virtual joystick to set. \param value the new value for the specified hat. \returns 0 on success, -1 on error.

\since This function is available since SDL 2.0.14.

SDL_JoystickUpdate sdl2

Update the current state of the open joysticks.

This is called automatically by the event loop if any joystick events are enabled.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickEventState

SDL_JOYSTICK_AXIS_MAX sdl2

 

SDL_JOYSTICK_AXIS_MIN sdl2

 

SDL_JOYSTICK_POWER_EMPTY sdl2

 

SDL_JOYSTICK_POWER_FULL sdl2

<= 70% *

SDL_JOYSTICK_POWER_LOW sdl2

<= 5% *

SDL_JOYSTICK_POWER_MAX sdl2

 

SDL_JOYSTICK_POWER_MEDIUM sdl2

<= 20% *

SDL_JOYSTICK_POWER_UNKNOWN sdl2

 

SDL_JOYSTICK_POWER_WIRED sdl2

<= 100% *

SDL_JOYSTICK_TYPE_ARCADE_PAD sdl2

 

SDL_JOYSTICK_TYPE_ARCADE_STICK sdl2

 

SDL_JOYSTICK_TYPE_DANCE_PAD sdl2

 

SDL_JOYSTICK_TYPE_DRUM_KIT sdl2

 

SDL_JOYSTICK_TYPE_FLIGHT_STICK sdl2

 

SDL_JOYSTICK_TYPE_GAMECONTROLLER sdl2

 

SDL_JOYSTICK_TYPE_GUITAR sdl2

 

SDL_JOYSTICK_TYPE_THROTTLE sdl2

 

SDL_JOYSTICK_TYPE_UNKNOWN sdl2

 

SDL_JOYSTICK_TYPE_WHEEL sdl2

 

SDL_KEYDOWN sdl2

Keyboard events

SDL_KEYMAPCHANGED sdl2

Keyboard text input

SDL_KEYUP sdl2

Key pressed

SDL_LASTEVENT sdl2

This last event is only for bounding internal arrays (needed in pascal ??)

SDL_LoadBMP sdl2

Load a surface from a file.

Convenience macro.

SDL_LoadBMP_RW sdl2

Load a surface from a seekable SDL data stream (memory or file).

If freesrc is non-zero, the stream will be closed after being read.

The new surface should be freed with SDL_FreeSurface().

the new surface, or NULL if there was an error.

SDL_LoadDollarTemplates sdl2

Load Dollar Gesture templates from a file.

\param touchId a touch id \param src a SDL_RWops to load from \returns the number of loaded templates on success or a negative error code (or 0) on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_SaveAllDollarTemplates \sa SDL_SaveDollarTemplate

SDL_LoadFile sdl2

Load an entire file.

The data is allocated with a zero byte at the end (null terminated)

If \c datasize is not NULL, it is filled with the size of the data read.

If \c freesrc is non-zero, the stream will be closed after being read.

The data should be freed with SDL_free().

\return the data, or NULL if there was an error.

SDL_LoadFile_RW sdl2

Load all the data from an SDL data stream.

The data is allocated with a zero byte at the end (null terminated)

If \c datasize is not NULL, it is filled with the size of the data read.

If \c freesrc is non-zero, the stream will be closed after being read.

The data should be freed with SDL_free().

\return the data, or NULL if there was an error.

SDL_LoadFunction sdl2

Look up the address of the named function in a shared object.

This function pointer is no longer valid after calling SDL_UnloadObject().

This function can only look up C function names. Other languages may have name mangling and intrinsic language support that varies from compiler to compiler.

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.

If the requested function doesn't exist, nil is returned.

\param handle a valid shared object handle returned by SDL_LoadObject() \param name the name of the function to look up \returns a pointer to the function or nil if there was an error; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_LoadObject \sa SDL_UnloadObject

SDL_LoadObject sdl2

Dynamically load a shared object.

\param sofile a system-dependent name of the object file \returns an opaque pointer to the object handle or nil if there was an error; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_LoadFunction \sa SDL_UnloadObject

SDL_LoadWAV sdl2

Loads a WAV from a file. Compatibility convenience function.

SDL_LoadWAV_RW sdl2

Load the audio data of a WAVE file into memory.

Loading a WAVE file requires `src`, `spec`, `audio_buf` and `audio_len` to be valid pointers. The entire data portion of the file is then loaded into memory and decoded if necessary.

If `freesrc` is non-zero, the data source gets automatically closed and freed before the function returns.

Supported formats are RIFF WAVE files with the formats PCM (8, 16, 24, and 32 bits), IEEE Float (32 bits), Microsoft ADPCM and IMA ADPCM (4 bits), and A-law and mu-law (8 bits). Other formats are currently unsupported and cause an error.

If this function succeeds, the pointer returned by it is equal to `spec` and the pointer to the audio data allocated by the function is written to `audio_buf` and its length in bytes to `audio_len`. The SDL_AudioSpec members `freq`, `channels`, and `format` are set to the values of the audio data in the buffer. The `samples` member is set to a sane default and all others are set to zero.

It's necessary to use SDL_FreeWAV() to free the audio data returned in `audio_buf` when it is no longer used.

Because of the underspecification of the .WAV format, there are many problematic files in the wild that cause issues with strict decoders. To provide compatibility with these files, this decoder is lenient in regards to the truncation of the file, the fact chunk, and the size of the RIFF chunk. The hints `SDL_HINT_WAVE_RIFF_CHUNK_SIZE`, `SDL_HINT_WAVE_TRUNCATION`, and `SDL_HINT_WAVE_FACT_CHUNK` can be used to tune the behavior of the loading process.

Any file that is invalid (due to truncation, corruption, or wrong values in the headers), too big, or unsupported causes an error. Additionally, any critical I/O error from the data source will terminate the loading process with an error. The function returns NULL on error and in all cases (with the exception of `src` being NULL), an appropriate error message will be set.

It is required that the data source supports seeking.

Example:

```c SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, &spec, &buf, &len); ```

Note that the SDL_LoadWAV macro does this same thing for you, but in a less messy way:

```c SDL_LoadWAV("sample.wav", &spec, &buf, &len); ```

\param src The data source for the WAVE data \param freesrc If non-zero, SDL will _always_ free the data source \param spec An SDL_AudioSpec that will be filled in with the wave file's format details \param audio_buf A pointer filled with the audio data, allocated by the function. \param audio_len A pointer filled with the length of the audio data buffer in bytes \returns This function, if successfully called, returns `spec`, which will be filled with the audio data format of the wave source data. `audio_buf` will be filled with a pointer to an allocated buffer containing the audio data, and `audio_len` is filled with the length of that audio buffer in bytes.

This function returns NULL if the .WAV file cannot be opened, uses an unknown data format, or is corrupt; call SDL_GetError() for more information.

When the application is done with the data returned in `audio_buf`, it should call SDL_FreeWAV() to dispose of it.

\since This function is available since SDL 2.0.0.

\sa SDL_FreeWAV \sa SDL_LoadWAV

SDL_LOCALECHANGED sdl2

The user's locale preferences have changed. *

SDL_LockAudio sdl2

This function is a legacy means of locking the audio device.

New programs might want to use SDL_LockAudioDevice() instead. This function is equivalent to calling...

```c SDL_LockAudioDevice(1); ```

...and is only useful if you used the legacy SDL_OpenAudio() function.

\since This function is available since SDL 2.0.0.

\sa SDL_LockAudioDevice \sa SDL_UnlockAudio \sa SDL_UnlockAudioDevice

SDL_LockAudioDevice sdl2

Use this function to lock out the audio callback function for a specified device.

The lock manipulated by these functions protects the audio callback function specified in SDL_OpenAudioDevice(). During a SDL_LockAudioDevice()/SDL_UnlockAudioDevice() pair, you can be guaranteed that the callback function for that device is not running, even if the device is not paused. While a device is locked, any other unpaused, unlocked devices may still run their callbacks.

Calling this function from inside your audio callback is unnecessary. SDL obtains this lock before calling your function, and releases it when the function returns.

You should not hold the lock longer than absolutely necessary. If you hold it too long, you'll experience dropouts in your audio playback. Ideally, your application locks the device, sets a few variables and unlocks again. Do not do heavy work while holding the lock for a device.

It is safe to lock the audio device multiple times, as long as you unlock it an equivalent number of times. The callback will not run until the device has been unlocked completely in this way. If your application fails to unlock the device appropriately, your callback will never run, you might hear repeating bursts of audio, and SDL_CloseAudioDevice() will probably deadlock.

Internally, the audio device lock is a mutex; if you lock from two threads at once, not only will you block the audio callback, you'll block the other thread.

\param dev the ID of the device to be locked

\since This function is available since SDL 2.0.0.

\sa SDL_UnlockAudioDevice

SDL_LockJoysticks sdl2

Locking for multi-threaded access to the joystick API

If you are using the joystick API or handling events from multiple threads you should use these locking functions to protect access to the joysticks.

In particular, you are guaranteed that the joystick list won't change, so the API functions that take a joystick index will be valid, and joystick and game controller events will not be delivered.

As of SDL 2.26.0, you can take the joystick lock around reinitializing the joystick subsystem, to prevent other threads from seeing joysticks in an uninitialized state. However, all open joysticks will be closed and SDL functions called with them will fail.

\since This function is available since SDL 2.0.7.

SDL_LockMutex sdl2

Lock the mutex.

This will block until the mutex is available, which is to say it is in the unlocked state and the OS has chosen the caller as the next thread to lock it. Of all threads waiting to lock the mutex, only one may do so at a time.

It is legal for the owning thread to lock an already-locked mutex. It must unlock it the same number of times before it is actually made available for other threads in the system (this is known as a "recursive mutex").

\param mutex the mutex to lock \return 0, or -1 on error.

\since This function is available since SDL 2.0.0.

SDL_LockSensors sdl2

Locking for multi-threaded access to the sensor API

If you are using the sensor API or handling events from multiple threads you should use these locking functions to protect access to the sensors.

In particular, you are guaranteed that the sensor list won't change, so the API functions that take a sensor index will be valid, and sensor events will not be delivered.

\since This function is available since SDL 2.0.14.

SDL_LockSurface sdl2

Sets up a surface for directly accessing the pixels.

Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write to and read from surface.pixels, using the pixel format stored in surface.format. Once you are done accessing the surface, you should use SDL_UnlockSurface() to release it.

Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates to 0, then you can read and write to the surface at any time, and the pixel format of the surface will not change.

No operating system or library calls should be made between lock/unlock pairs, as critical system locks may be held during this time.

SDL_LockSurface() returns 0, or -1 if the surface couldn't be locked.

SDL_UnlockSurface()

SDL_LockTexture sdl2

Lock a portion of the texture for write-only pixel access.

texture The texture to lock for access, which was created with SDL_TEXTUREACCESS_STREAMING. rect A pointer to the rectangle to lock for access. If the rect is NULL, the entire texture will be locked. pixels This is filled in with a pointer to the locked pixels, appropriately offset by the locked area. pitch This is filled in with the pitch of the locked pixels.

0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING.

SDL_UnlockTexture()

SDL_LockTextureToSurface sdl2

\brief Lock a portion of the texture for write-only pixel access. Expose it as a SDL surface.

\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 surface This is filled in with a SDL surface representing the locked area Surface is freed internally after calling SDL_UnlockTexture or SDL_DestroyTexture.

\return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING.

\sa SDL_UnlockTexture()

SDL_Log sdl2

\brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO

SDL_log10 sdl2

Calculate the base 10 logarithm of x.

\since This function is available since SDL 2.0.8.

SDL_log10f sdl2

Calculate the base 10 logarithm of x.

\since This function is available since SDL 2.0.8.

SDL_LogCritical sdl2

\brief Log a message with SDL_LOG_PRIORITY_CRITICAL

SDL_LogDebug sdl2

\brief Log a message with SDL_LOG_PRIORITY_DEBUG

SDL_LogError sdl2

\brief Log a message with SDL_LOG_PRIORITY_ERROR

SDL_LogGetOutputFunction sdl2

\brief Get the current log output function.

SDL_LogGetPriority sdl2

\brief Get the priority of a particular log category

SDL_LogInfo sdl2

\brief Log a message with SDL_LOG_PRIORITY_INFO

SDL_LogMessage sdl2

\brief Log a message with the specified category and priority.

SDL_LogMessageV sdl2

\brief Log a message with the specified category and priority.

SDL_LogResetPriorities sdl2

\brief Reset all priorities to default.

\note This is called in SDL_Quit().

SDL_LogSetAllPriority sdl2

\brief Set the priority of all log categories

SDL_LogSetOutputFunction sdl2

\brief This function allows you to replace the default log output function with one of your own.

SDL_LogSetPriority sdl2

\brief Set the priority of a particular log category

SDL_LogVerbose sdl2

\brief Log a message with SDL_LOG_PRIORITY_VERBOSE

SDL_LogWarn sdl2

\brief Log a message with SDL_LOG_PRIORITY_WARN

SDL_LOG_CATEGORY_APPLICATION sdl2

 

SDL_LOG_CATEGORY_ASSERT sdl2

 

SDL_LOG_CATEGORY_AUDIO sdl2

 

SDL_LOG_CATEGORY_CUSTOM sdl2

Beyond this point is reserved for application use *

SDL_LOG_CATEGORY_ERROR sdl2

 

SDL_LOG_CATEGORY_INPUT sdl2

 

SDL_LOG_CATEGORY_RENDER sdl2

 

SDL_LOG_CATEGORY_RESERVED1 sdl2

Reserved for future SDL library use *

SDL_LOG_CATEGORY_RESERVED10 sdl2

 

SDL_LOG_CATEGORY_RESERVED2 sdl2

 

SDL_LOG_CATEGORY_RESERVED3 sdl2

 

SDL_LOG_CATEGORY_RESERVED4 sdl2

 

SDL_LOG_CATEGORY_RESERVED5 sdl2

 

SDL_LOG_CATEGORY_RESERVED6 sdl2

 

SDL_LOG_CATEGORY_RESERVED7 sdl2

 

SDL_LOG_CATEGORY_RESERVED8 sdl2

 

SDL_LOG_CATEGORY_RESERVED9 sdl2

 

SDL_LOG_CATEGORY_SYSTEM sdl2

 

SDL_LOG_CATEGORY_TEST sdl2

 

SDL_LOG_CATEGORY_VIDEO sdl2

 

SDL_LOG_PRIORITY_CRITICAL sdl2

 

SDL_LOG_PRIORITY_DEBUG sdl2

 

SDL_LOG_PRIORITY_ERROR sdl2

 

SDL_LOG_PRIORITY_INFO sdl2

 

SDL_LOG_PRIORITY_VERBOSE sdl2

 

SDL_LOG_PRIORITY_WARN sdl2

 

SDL_LowerBlit sdl2

This is a semi-private blit function and it performs low-level surface blitting only.

SDL_LowerBlitScaled sdl2

This is a semi-private blit function and it performs low-level surface scaled blitting only.

SDL_lround sdl2

Round to nearest integer, away from zero.

\since This function is available since SDL 2.0.16.

SDL_lroundf sdl2

Round to nearest integer, away from zero.

\since This function is available since SDL 2.0.16.

SDL_MAJOR_VERSION sdl2

Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL

Last updated when TSDL_FPoint and TSDL_FRect were added.

SDL_malloc sdl2

Allocate a block of memory. The memory is *not* initialized.

SDL_MapRGB sdl2

Map an RGB triple to an opaque pixel value for a given pixel format.

This function maps the RGB color value to the specified pixel format and returns the pixel value best approximating the given RGB color value for the given pixel format.

If the format has a palette (8-bit) the index of the closest matching color in the palette will be returned.

If the specified pixel format has an alpha component it will be returned as all 1 bits (fully opaque).

If the pixel format bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored (e.g., with a 16-bpp format the return value can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp format).

\param format an SDL_PixelFormat structure describing the pixel format \param r the red component of the pixel in the range 0-255 \param g the green component of the pixel in the range 0-255 \param b the blue component of the pixel in the range 0-255 \returns a pixel value

\since This function is available since SDL 2.0.0.

\sa SDL_GetRGB \sa SDL_GetRGBA \sa SDL_MapRGBA

SDL_MapRGBA sdl2

Map an RGBA quadruple to a pixel value for a given pixel format.

This function maps the RGBA color value to the specified pixel format and returns the pixel value best approximating the given RGBA color value for the given pixel format.

If the specified pixel format has no alpha component the alpha value will be ignored (as it will be in formats with a palette).

If the format has a palette (8-bit) the index of the closest matching color in the palette will be returned.

If the pixel format bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored (e.g., with a 16-bpp format the return value can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp format).

\param format an SDL_PixelFormat structure describing the format of the pixel \param r the red component of the pixel in the range 0-255 \param g the green component of the pixel in the range 0-255 \param b the blue component of the pixel in the range 0-255 \param a the alpha component of the pixel in the range 0-255 \returns a pixel value

\since This function is available since SDL 2.0.0.

\sa SDL_GetRGB \sa SDL_GetRGBA \sa SDL_MapRGB

SDL_MasksToPixelFormatEnum sdl2

Convert a bpp value and RGBA masks to an enumerated pixel format.

This will return `SDL_PIXELFORMAT_UNKNOWN` if the conversion wasn't possible.

\param bpp a bits per pixel value; usually 15, 16, or 32 \param Rmask the red mask for the format \param Gmask the green mask for the format \param Bmask the blue mask for the format \param Amask the alpha mask for the format \returns one of the SDL_PixelFormatEnum values

\since This function is available since SDL 2.0.0.

\sa SDL_PixelFormatEnumToMasks

SDL_MaximizeWindow sdl2

Make a window as large as possible.

SDL_RestoreWindow()

SDL_MAX_LOG_MESSAGE sdl2

\brief The maximum size of a log message

Messages longer than the maximum size will be truncated

SDL_MAX_SINT16 sdl2

 

SDL_MAX_SINT32 sdl2

 

SDL_MAX_SINT64 sdl2

 

SDL_MAX_SINT8 sdl2

 

SDL_MAX_UINT16 sdl2

 

SDL_MAX_UINT32 sdl2

 

SDL_MAX_UINT64 sdl2

 

SDL_MAX_UINT8 sdl2

 

SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT sdl2

< informational dialog *

SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT sdl2

/**< buttons placed left to right */

SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT sdl2

< Marks the default button when return is hit *

SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT sdl2

 

SDL_MESSAGEBOX_COLOR_BACKGROUND sdl2

 

SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND sdl2

 

SDL_MESSAGEBOX_COLOR_BUTTON_BORDER sdl2

 

SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED sdl2

 

SDL_MESSAGEBOX_COLOR_MAX sdl2

 

SDL_MESSAGEBOX_COLOR_TEXT sdl2

 

SDL_MESSAGEBOX_ERROR sdl2

 

SDL_MESSAGEBOX_INFORMATION sdl2

< warning dialog *

SDL_MESSAGEBOX_WARNING sdl2

< error dialog *

SDL_MinimizeWindow sdl2

Minimize a window to an iconic representation.

SDL_RestoreWindow()

SDL_MINOR_VERSION sdl2

 

SDL_MIN_SINT16 sdl2

 

SDL_MIN_SINT32 sdl2

 

SDL_MIN_SINT64 sdl2

 

SDL_MIN_SINT8 sdl2

 

SDL_MIN_UINT16 sdl2

 

SDL_MIN_UINT32 sdl2

 

SDL_MIN_UINT64 sdl2

 

SDL_MIN_UINT8 sdl2

 

SDL_MixAudio sdl2

This function is a legacy means of mixing audio.

This function is equivalent to calling...

```c SDL_MixAudioFormat(dst, src, format, len, volume); ```

...where `format` is the obtained format of the audio device from the legacy SDL_OpenAudio() function.

\param dst the destination for the mixed audio \param src the source audio buffer to be mixed \param len the length of the audio buffer in bytes \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME for full audio volume

\since This function is available since SDL 2.0.0.

\sa SDL_MixAudioFormat

SDL_MixAudioFormat sdl2

Mix audio data in a specified format.

This takes an audio buffer `src` of `len` bytes of `format` data and mixes it into `dst`, performing addition, volume adjustment, and overflow clipping. The buffer pointed to by `dst` must also be `len` bytes of `format` data.

This is provided for convenience – you can mix your own audio data.

Do not use this function for mixing together more than two streams of sample data. The output from repeated application of this function may be distorted by clipping, because there is no accumulator with greater range than the input (not to mention this being an inefficient way of doing it).

It is a common misconception that this function is required to write audio data to an output stream in an audio callback. While you can do that, SDL_MixAudioFormat() is really only needed when you're mixing a single audio stream with a volume adjustment.

\param dst the destination for the mixed audio \param src the source audio buffer to be mixed \param format the SDL_AudioFormat structure representing the desired audio format \param len the length of the audio buffer in bytes \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME for full audio volume

\since This function is available since SDL 2.0.0.

SDL_MIXER_MAJOR_VERSION sdl2_mixer

Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *

SDL_MIXER_MINOR_VERSION sdl2_mixer

 

SDL_MIXER_PATCHLEVEL sdl2_mixer

 

SDL_MIXER_VERSION sdl2_mixer

This macro can be used to fill a version structure with the compile-time version of the SDL_mixer library.

SDL_MIX_MAXVOLUME sdl2

 

SDL_MOUSEBUTTONDOWN sdl2

Mouse moved

SDL_MOUSEBUTTONUP sdl2

Mouse button pressed

SDL_MouseIsHaptic sdl2

Query whether or not the current mouse has haptic capabilities.

\returns SDL_TRUE if the mouse is haptic or SDL_FALSE if it isn't.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticOpenFromMouse

SDL_MOUSEMOTION sdl2

Mouse events

SDL_MOUSEWHEEL sdl2

Mouse button released

SDL_MOUSEWHEEL_FLIPPED sdl2

< The scroll direction is normal *

SDL_MOUSEWHEEL_NORMAL sdl2

 

SDL_MOUSE_TOUCHID sdl2

Used as the SDL_TouchID for touch events simulated with mouse input *

SDL_MULTIGESTURE sdl2

 

SDL_MUSTLOCK sdl2

Evaluates to true if the surface needs to be locked before access.

SDL_MUTEX_MAXWAIT sdl2

This is the timeout value which corresponds to never time out.

SDL_MUTEX_TIMEDOUT sdl2

Synchronization functions which can time out return this value if they time out.

SDL_NET_MAJOR_VERSION sdl2_net

Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *

SDL_NET_MINOR_VERSION sdl2_net

 

SDL_NET_PATCHLEVEL sdl2_net

 

SDL_NET_VERSION sdl2_net

This macro can be used to fill a version structure with the compile-time version of the SDL_net library.

SDL_NewAudioStream sdl2

Create a new audio stream.

\param src_format The format of the source audio \param src_channels The number of channels of the source audio \param src_rate The sampling rate of the source audio \param dst_format The format of the desired audio output \param dst_channels The number of channels of the desired audio output \param dst_rate The sampling rate of the desired audio output \returns 0 on success, or -1 on error.

\since This function is available since SDL 2.0.7.

\sa SDL_AudioStreamPut \sa SDL_AudioStreamGet \sa SDL_AudioStreamAvailable \sa SDL_AudioStreamFlush \sa SDL_AudioStreamClear \sa SDL_FreeAudioStream

SDL_nlog sdl2

Calculate the natural logarithm of x.

\since This function is available since SDL 2.0.4.

SDL2-for-Pascal: ATTENTION: The original C name of this function is SDL_log, but since Pascal names are case-insensitive, it is in conflict with SDL_Log (logging function). Hence we decided to rename it.

SDL_nlogf sdl2

Calculate the natural logarithm of x.

\since This function is available since SDL 2.0.8.

SDL2-for-Pascal: ATTENTION: The original C name of this function is SDL_logf, but to be consistent with the renamed SDL_log function (see comment of SDL_nlog for details), we decided to rename it.

SDL_NONSHAPEABLE_WINDOW sdl2

SDL_shape.h

Header file for the shaped window API.

SDL_NumHaptics sdl2

Count the number of haptic devices attached to the system.

\returns the number of haptic devices detected on the system or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_HapticName

SDL_NumJoysticks sdl2

Count the number of joysticks attached to the system.

\returns the number of attached joysticks on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_JoystickName \sa SDL_JoystickPath \sa SDL_JoystickOpen

SDL_NumSensors sdl2

Count the number of sensors attached to the system right now.

\returns the number of sensors detected.

\since This function is available since SDL 2.0.9.

SDL_NUM_LOG_PRIORITIES sdl2

 

SDL_NUM_SCANCODES sdl2

Add any other keys here. *

SDL_NUM_SYSTEM_CURSORS sdl2

Hand

SDL_OnApplicationDidBecomeActive sdl2

 

SDL_OnApplicationDidEnterBackground sdl2

 

SDL_OnApplicationDidReceiveMemoryWarning sdl2

 

SDL_OnApplicationWillEnterForeground sdl2

 

SDL_OnApplicationWillResignActive sdl2

 

SDL_OnApplicationWillTerminate sdl2

Functions used by iOS application delegates to notify SDL about state changes

SDL_OpenAudio sdl2

This function is a legacy means of opening the audio device.

This function remains for compatibility with SDL 1.2, but also because it's slightly easier to use than the new functions in SDL 2.0. The new, more powerful, and preferred way to do this is SDL_OpenAudioDevice().

This function is roughly equivalent to:

```c SDL_OpenAudioDevice(NULL, 0, desired, obtained, SDL_AUDIO_ALLOW_ANY_CHANGE); ```

With two notable exceptions:

- If `obtained` is NULL, we use `desired` (and allow no changes), which means desired will be modified to have the correct values for silence, etc, and SDL will convert any differences between your app's specific request and the hardware behind the scenes. - The return value is always success or failure, and not a device ID, which means you can only have one device open at a time with this function.

\param desired an SDL_AudioSpec structure representing the desired output format. Please refer to the SDL_OpenAudioDevice documentation for details on how to prepare this structure. \param obtained an SDL_AudioSpec structure filled in with the actual parameters, or NULL. \returns 0 if successful, placing the actual hardware parameters in the structure pointed to by `obtained`.

If `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 actual hardware audio format if necessary. If `obtained` is NULL, `desired` will have fields modified.

This function returns a negative error code on failure to open the audio device or failure to set up the audio thread; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_CloseAudio \sa SDL_LockAudio \sa SDL_PauseAudio \sa SDL_UnlockAudio

SDL_OpenAudioDevice sdl2

Open a specific audio device.

SDL_OpenAudio(), unlike this function, always acts on device ID 1. As such, this function will never return a 1 so as not to conflict with the legacy function.

Please note that SDL 2.0 before 2.0.5 did not support recording; as such, this function would fail if `iscapture` was not zero. Starting with SDL 2.0.5, recording is implemented and this value can be non-zero.

Passing in a `device` name of NULL requests the most reasonable default (and is equivalent to what SDL_OpenAudio() does to choose a device). 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.

An opened audio device starts out paused, and should be enabled for playing by calling SDL_PauseAudioDevice(devid, 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.

The audio callback runs in a separate thread in most cases; you can prevent race conditions between your callback and other threads without fully pausing playback with SDL_LockAudioDevice(). For more information about the callback, see SDL_AudioSpec.

Managing the audio spec via 'desired' and 'obtained':

When filling in the desired audio spec structure:

- `desired->freq` should be the frequency in sample-frames-per-second (Hz). - `desired->format` should be the audio format (`AUDIO_S16SYS`, etc). - `desired->samples` is the desired size of the audio buffer, in _sample frames_ (with stereo output, two samples–left and right–would make a single sample frame). 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 reduce latency, but can lead to underflow if the application is doing heavy processing and cannot fill the audio buffer in time. Note that the number of sample frames is directly related to time by the following formula: `ms = (sampleframes*1000)/freq` - `desired->size` is the size in _bytes_ of the audio buffer, and is calculated by SDL_OpenAudioDevice(). You don't initialize this. - `desired->silence` is the value used to set the buffer to silence, and is calculated by SDL_OpenAudioDevice(). You don't initialize this. - `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_LockAudioDevice() and SDL_UnlockAudioDevice() 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 (or for capture devices, call SDL_DequeueAudio() with some frequency, to obtain audio samples). - `desired->userdata` is passed as the first parameter to your callback function. If you passed a NULL callback, this value is ignored.

`allowed_changes` can have the following flags OR'd together:

- `SDL_AUDIO_ALLOW_FREQUENCY_CHANGE` - `SDL_AUDIO_ALLOW_FORMAT_CHANGE` - `SDL_AUDIO_ALLOW_CHANNELS_CHANGE` - `SDL_AUDIO_ALLOW_SAMPLES_CHANGE` - `SDL_AUDIO_ALLOW_ANY_CHANGE`

These flags specify how SDL should behave when a device cannot offer a specific feature. If the application requests a feature that the hardware doesn't offer, SDL will always try to get the closest equivalent.

For example, if you ask for float32 audio format, but the sound card only supports int16, SDL will set the hardware to int16. If you had set SDL_AUDIO_ALLOW_FORMAT_CHANGE, SDL will change the format in the `obtained` structure. If that flag was *not* set, SDL will prepare to convert your callback's float32 audio to int16 before feeding it to the hardware and will keep the originally requested format in the `obtained` structure.

The resulting audio specs, varying depending on hardware and on what changes were allowed, will then be written back to `obtained`.

If your application can only handle one specific data format, pass a zero for `allowed_changes` and let SDL transparently handle any differences.

\param device a UTF-8 string reported by SDL_GetAudioDeviceName() or a driver-specific name as appropriate. NULL requests the most reasonable default device. \param iscapture non-zero to specify a device should be opened for recording, not playback \param desired an SDL_AudioSpec structure representing the desired output format; see SDL_OpenAudio() for more information \param obtained an SDL_AudioSpec structure filled in with the actual output format; see SDL_OpenAudio() for more information \param allowed_changes 0, or one or more flags OR'd together \returns a valid device ID that is > 0 on success or 0 on failure; call SDL_GetError() for more information.

For compatibility with SDL 1.2, this will never return 1, since SDL reserves that ID for the legacy SDL_OpenAudio() function.

\since This function is available since SDL 2.0.0.

\sa SDL_CloseAudioDevice \sa SDL_GetAudioDeviceName \sa SDL_LockAudioDevice \sa SDL_OpenAudio \sa SDL_PauseAudioDevice \sa SDL_UnlockAudioDevice

SDL_OpenURL sdl2

\brief Open an URL / URI in the browser or other

Open a URL in a separate, system-provided application. How this works will vary wildly depending on the platform. This will likely launch what makes sense to handle a specific URL's protocol (a web browser for http://, etc), but it might also be able to launch file managers for directories and other things.

What happens when you open a URL varies wildly as well: your game window may lose focus (and may or may not lose focus if your game was fullscreen or grabbing input at the time). On mobile devices, your app will likely move to the background or your process might be paused. Any given platform may or may not handle a given URL.

If this is unimplemented (or simply unavailable) for a platform, this will fail with an error. A successful result does not mean the URL loaded, just that we launched something to handle it (or at least believe we did).

All this to say: this function can be useful, but you should definitely test it on every platform you target.

\param url A valid URL to open. \return 0 on success, or -1 on error.

SDL_ORIENTATION_LANDSCAPE sdl2

< The display orientation can't be determined *

SDL_ORIENTATION_LANDSCAPE_FLIPPED sdl2

< The display is in landscape mode, with the right side up, relative to portrait mode *

SDL_ORIENTATION_PORTRAIT sdl2

< The display is in landscape mode, with the left side up, relative to portrait mode *

SDL_ORIENTATION_PORTRAIT_FLIPPED sdl2

< The display is in portrait mode *

SDL_ORIENTATION_UNKNOWN sdl2

 

SDL_PACKEDLAYOUT_1010102 sdl2

 

SDL_PACKEDLAYOUT_1555 sdl2

 

SDL_PACKEDLAYOUT_2101010 sdl2

 

SDL_PACKEDLAYOUT_332 sdl2

 

SDL_PACKEDLAYOUT_4444 sdl2

 

SDL_PACKEDLAYOUT_5551 sdl2

 

SDL_PACKEDLAYOUT_565 sdl2

 

SDL_PACKEDLAYOUT_8888 sdl2

 

SDL_PACKEDLAYOUT_NONE sdl2

 

SDL_PACKEDORDER_ABGR sdl2

 

SDL_PACKEDORDER_ARGB sdl2

 

SDL_PACKEDORDER_BGRA sdl2

 

SDL_PACKEDORDER_BGRX sdl2

 

SDL_PACKEDORDER_NONE sdl2

 

SDL_PACKEDORDER_RGBA sdl2

 

SDL_PACKEDORDER_RGBX sdl2

 

SDL_PACKEDORDER_XBGR sdl2

 

SDL_PACKEDORDER_XRGB sdl2

 

SDL_PATCHLEVEL sdl2

 

SDL_PauseAudio sdl2

This function is a legacy means of pausing the audio device.

New programs might want to use SDL_PauseAudioDevice() instead. This function is equivalent to calling...

```c SDL_PauseAudioDevice(1, pause_on); ```

...and is only useful if you used the legacy SDL_OpenAudio() function.

\param pause_on non-zero to pause, 0 to unpause

\since This function is available since SDL 2.0.0.

\sa SDL_GetAudioStatus \sa SDL_PauseAudioDevice

SDL_PauseAudioDevice sdl2

Use this function to pause and unpause audio playback on a specified device.

This function pauses and unpauses the audio callback processing for a given device. Newly-opened audio devices start in the paused state, so you must call this function with **pause_on**=0 after opening the specified audio device to start playing sound. This allows you to safely initialize data for your callback function after opening the audio device. Silence will be written to the audio device while paused, and the audio callback is guaranteed to not be called. Pausing one device does not prevent other unpaused devices from running their callbacks.

Pausing state does not stack; even if you pause a device several times, a single unpause will start the device playing again, and vice versa. This is different from how SDL_LockAudioDevice() works.

If you just need to protect a few variables from race conditions vs your callback, you shouldn't pause the audio device, as it will lead to dropouts in the audio playback. Instead, you should use SDL_LockAudioDevice().

\param dev a device opened by SDL_OpenAudioDevice() \param pause_on non-zero to pause, 0 to unpause

\since This function is available since SDL 2.0.0.

\sa SDL_LockAudioDevice

SDL_PEEKEVENT sdl2

 

SDL_PeepEvents sdl2

Checks the event queue for messages and optionally returns them.

If action is SDL_ADDEVENT, up to numevents events will be added to the back of the event queue.

If action is SDL_PEEKEVENT, up to 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 action is SDL_GETEVENT, up to 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.

Result: The number of events actually stored, or -1 if there was an error.

This function is thread-safe.

SDL_PIXELFLAG sdl2

SDL2-for-Pascal: The SDL_DEFINE_PIXELFORMAT macro returns the underlying pixel format based on five arguments.

The original C macro: #define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ ((bits) << 8) | ((bytes) << 0))

This C implementation could be replaced by a Pascal function, but from a performance stand point this will be slower. Therefore we decided to keep it as it has been implemented before by the original binding authors and translate every pixel format constant by the very same expression:

SDL_PIXELFORMAT_[...] = (1 shl 28) or (SDL_PIXELTYPE_[...] shl 24) or (SDL_BITMAPORDER_[...] shl 20) or ([...] shl 16) or ([...] shl 8) or ([...] shl 0);

In the future it may be desirable to have a Pascal function. The prototype could look like this: function SDL_DEFINE_PIXELFORMAT(type, order, layour, bit, bytes: cuint32): Result;

SDL_PixelFormatEnumToMasks sdl2

Convert one of the enumerated pixel formats to a bpp value and RGBA masks.

\param format one of the SDL_PixelFormatEnum values \param bpp a bits per pixel value; usually 15, 16, or 32 \param Rmask a pointer filled in with the red mask for the format \param Gmask a pointer filled in with the green mask for the format \param Bmask a pointer filled in with the blue mask for the format \param Amask a pointer filled in with the alpha mask for the format \returns SDL_TRUE on success or SDL_FALSE if the conversion wasn't possible; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_MasksToPixelFormatEnum

SDL_PIXELFORMAT_ABGR1555 sdl2

 

SDL_PIXELFORMAT_ABGR4444 sdl2

 

SDL_PIXELFORMAT_ABGR8888 sdl2

 

SDL_PIXELFORMAT_ARGB1555 sdl2

 

SDL_PIXELFORMAT_ARGB2101010 sdl2

 

SDL_PIXELFORMAT_ARGB4444 sdl2

 

SDL_PIXELFORMAT_ARGB8888 sdl2

 

SDL_PIXELFORMAT_BGR24 sdl2

 

SDL_PIXELFORMAT_BGR555 sdl2

 

SDL_PIXELFORMAT_BGR565 sdl2

 

SDL_PIXELFORMAT_BGR888 sdl2

 

SDL_PIXELFORMAT_BGRA4444 sdl2

 

SDL_PIXELFORMAT_BGRA5551 sdl2

 

SDL_PIXELFORMAT_BGRA8888 sdl2

 

SDL_PIXELFORMAT_BGRX8888 sdl2

 

SDL_PIXELFORMAT_EXTERMAL_OES sdl2

< Android video texture format *

SDL_PIXELFORMAT_INDEX1LSB sdl2

 

SDL_PIXELFORMAT_INDEX1MSB sdl2

 

SDL_PIXELFORMAT_INDEX4LSB sdl2

 

SDL_PIXELFORMAT_INDEX4MSB sdl2

 

SDL_PIXELFORMAT_INDEX8 sdl2

 

SDL_PIXELFORMAT_IYUV sdl2

< Planar mode: Y + U + V (3 planes) *

SDL_PIXELFORMAT_NV12 sdl2

< Planar mode: Y + U/V interleaved (2 planes) *

SDL_PIXELFORMAT_NV21 sdl2

< Planar mode: Y + V/U interleaved (2 planes) *

SDL_PIXELFORMAT_RGB24 sdl2

 

SDL_PIXELFORMAT_RGB332 sdl2

 

SDL_PIXELFORMAT_RGB444 sdl2

 

SDL_PIXELFORMAT_RGB555 sdl2

 

SDL_PIXELFORMAT_RGB565 sdl2

 

SDL_PIXELFORMAT_RGB888 sdl2

 

SDL_PIXELFORMAT_RGBA4444 sdl2

 

SDL_PIXELFORMAT_RGBA5551 sdl2

 

SDL_PIXELFORMAT_RGBA8888 sdl2

 

SDL_PIXELFORMAT_RGBX8888 sdl2

 

SDL_PIXELFORMAT_UNKNOWN sdl2

Note: If you modify this list, update SDL_GetPixelFormatName() *

SDL_PIXELFORMAT_UYVY sdl2

< Packed mode: U0+Y0+V0+Y1 (1 plane) *

SDL_PIXELFORMAT_YUY2 sdl2

< Packed mode: Y0+U0+Y1+V0 (1 plane) *

SDL_PIXELFORMAT_YV12 sdl2

< Planar mode: Y + V + U (3 planes) *

SDL_PIXELFORMAT_YVYU sdl2

< Packed mode: Y0+V0+Y1+U0 (1 plane) *

SDL_PIXELLAYOUT sdl2

 

SDL_PIXELORDER sdl2

 

SDL_PIXELTYPE sdl2

 

SDL_PIXELTYPE_ARRAYF16 sdl2

 

SDL_PIXELTYPE_ARRAYF32 sdl2

 

SDL_PIXELTYPE_ARRAYU16 sdl2

 

SDL_PIXELTYPE_ARRAYU32 sdl2

 

SDL_PIXELTYPE_ARRAYU8 sdl2

 

SDL_PIXELTYPE_INDEX1 sdl2

 

SDL_PIXELTYPE_INDEX4 sdl2

 

SDL_PIXELTYPE_INDEX8 sdl2

 

SDL_PIXELTYPE_PACKED16 sdl2

 

SDL_PIXELTYPE_PACKED32 sdl2

 

SDL_PIXELTYPE_PACKED8 sdl2

 

SDL_PIXELTYPE_UNKNOWN sdl2

 

SDL_PointInFRect sdl2

Returns true if point resides inside a rectangle.

SDL_PointInRect sdl2

Returns true if point resides inside a rectangle.

SDL_PollEvent sdl2

Polls for currently pending events.

1 if there are any pending events, or 0 if there are none available.

event - If not nil, the next event is removed from the queue and stored in that area.

SDL_POLLSENTINEL sdl2

Internal events

SDL_pow sdl2

Calculate the value of x raised to the power of y.

\since This function is available since SDL 2.0.4.

SDL_powf sdl2

Calculate the value of x raised to the power of y.

\since This function is available since SDL 2.0.8.

SDL_PREALLOC sdl2

< Just here for compatibility *

SDL_PRESSED sdl2

 

SDL_PumpEventscdecl sdl2

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.

SDL_PushEvent sdl2

Add an event to the event queue.

1 on success, 0 if the event was filtered, or -1 if the event queue was full or there was some other error.

SDL_QUERY sdl2

 

SDL_QueryTexture sdl2

Query the attributes of a texture

texture A texture to be queried. format A pointer filled in with the raw format of the texture. The actual format may differ, but pixel transfers will use this format. access A pointer filled in with the actual access to the texture. w A pointer filled in with the width of the texture in pixels. h A pointer filled in with the height of the texture in pixels.

0 on success, or -1 if the texture is not valid.

SDL_QueueAudio sdl2

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. SDL_QueueAudio() 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 you to supply data at regular intervals (push method) with this function.

There are no limits on the amount of data you can queue, short of exhaustion of address space. Queued data will drain to the device as necessary without further intervention from you. If the device needs audio but there is not enough queued, it will play silence to make up the difference. This means you will have skips in your audio playback if you aren't routinely queueing sufficient data.

This function copies the supplied data, so you are safe to free it when the function returns. This function is thread-safe, but queueing to the same device from two threads at once does not promise which buffer will be queued first.

You may not queue audio on a device that is using an application-supplied callback; doing so returns an error. You have to use the audio callback or queue 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.

Note that SDL2 does not support planar audio. You will need to resample from planar audio formats into a non-planar one (see SDL_AudioFormat) before queuing audio.

\param dev the device ID to which we will queue audio \param data the data to queue to the device for later playback \param len the number of bytes (not samples!) to which `data` points \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.4.

\sa SDL_ClearQueuedAudio \sa SDL_GetQueuedAudioSize

SDL_Quit sdl2

This function cleans up all initialized subsystems. You should call it upon all exit conditions.

SDL_QUITEV sdl2

Application events

SDL_QuitSubSystem sdl2

This function cleans up specific SDL subsystems

SDL_RaiseWindow sdl2

Raise a window above other windows and set the input focus.

SDL_ReadBE16 sdl2

 

SDL_ReadBE32 sdl2

 

SDL_ReadBE64 sdl2

 

SDL_ReadLE16 sdl2

 

SDL_ReadLE32 sdl2

 

SDL_ReadLE64 sdl2

 

SDL_ReadU8 sdl2

Read endian functions

Read an item of the specified endianness and return in native format.

SDL_realloc sdl2

Resize a block of memory allocated previously with SDL_malloc() or SDL_calloc().

The returned pointer may or may not be the same as the original pointer. If the new size is larger than the old size, any new memory will *not* be initialized.

SDL_RecordGesture sdl2

/** Begin recording a gesture on a specified touch device or all touch devices.

If the parameter `touchId` is -1 (i.e., all devices), this function will always return 1, regardless of whether there actually are any devices.

\param touchId the touch device id, or -1 for all touch devices \returns 1 on success or 0 if the specified device could not be found.

\since This function is available since SDL 2.0.0.

\sa SDL_GetTouchDevice

SDL_RectEmpty sdl2

Returns true if the rectangle has no area.

SDL_RectEquals sdl2

Returns true if the two rectangles are equal.

SDL_RegisterEvents sdl2

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

SDL_RELEASED sdl2

General keyboard/mouse state definitions

SDL_RemoveTimer sdl2

Remove a timer knowing its ID.

A boolean value indicating success or failure.

It is not safe to remove a timer multiple times.

SDL_RenderClear sdl2

Clear the current rendering target with the drawing color

This function clears the entire rendering target, ignoring the viewport.

0 on success, or -1 on error

SDL_RenderCopy sdl2

Copy a portion of the texture to the current rendering target.

renderer The renderer which should copy parts of a texture. texture The source texture. srcrect A pointer to the source rectangle, or NULL for the entire texture. dstrect A pointer to the destination rectangle, or NULL for the entire rendering target.

0 on success, or -1 on error

SDL_RenderCopyEx sdl2

Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center

renderer The renderer which should copy parts of a texture. texture The source texture. srcrect A pointer to the source rectangle, or NULL for the entire texture. dstrect A pointer to the destination rectangle, or NULL for the entire rendering target. angle An angle in degrees that indicates the rotation that will be applied to dstrect 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) flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture

0 on success, or -1 on error

SDL_RenderCopyExF sdl2

Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center

renderer The renderer which should copy parts of a texture. texture The source texture. srcrect A pointer to the source rectangle, or NIL for the entire texture. dstrect A pointer to the destination rectangle, or NIL for the entire rendering target. angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction center A pointer to a point indicating the point around which dstrect will be rotated (if NIL, rotation will be done around dstrect.w/2, dstrect.h/2). flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture

0 on success, or -1 on error

SDL_RenderCopyF sdl2

Copy a portion of the texture to the current rendering target.

renderer The renderer which should copy parts of a texture. texture The source texture. srcrect A pointer to the source rectangle, or NIL for the entire texture. dstrect A pointer to the destination rectangle, or NIL for the entire rendering target.

0 on success, or -1 on error

SDL_RenderDrawLine sdl2

Draw a line on the current rendering target.

renderer The renderer which should draw a line. x1 The x coordinate of the start point. y1 The y coordinate of the start point. x2 The x coordinate of the end point. y2 The y coordinate of the end point.

0 on success, or -1 on error

SDL_RenderDrawLineF sdl2

Draw a line on the current rendering target.

renderer The renderer which should draw a line. x1 The x coordinate of the start point. y1 The y coordinate of the start point. x2 The x coordinate of the end point. y2 The y coordinate of the end point.

0 on success, or -1 on error

SDL_RenderDrawLines sdl2

\brief Draw a series of connected lines on the current rendering target.

\param renderer The renderer which should draw multiple lines. \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

SDL_RenderDrawLinesF sdl2

Draw a series of connected lines on the current rendering target.

renderer The renderer which should draw multiple lines. points The points along the lines count The number of points, drawing count-1 lines

0 on success, or -1 on error

SDL_RenderDrawPoint sdl2

Draw a point on the current rendering target.

renderer The renderer which should draw a point. x The x coordinate of the point. y The y coordinate of the point.

0 on success, or -1 on error

SDL_RenderDrawPointF sdl2

Draw a point on the current rendering target.

renderer The renderer which should draw a point. x The x coordinate of the point. y The y coordinate of the point.

0 on success, or -1 on error

SDL_RenderDrawPoints sdl2

Draw multiple points on the current rendering target.

renderer The renderer which should draw multiple points. points The points to draw count The number of points to draw

0 on success, or -1 on error

SDL_RenderDrawPointsF sdl2

Draw multiple points on the current rendering target.

renderer The renderer which should draw multiple points. points The points to draw count The number of points to draw

0 on success, or -1 on error

SDL_RenderDrawRect sdl2

Draw a rectangle on the current rendering target.

renderer The renderer which should draw a rectangle. rect A pointer to the destination rectangle, or NULL to outline the entire rendering target.

0 on success, or -1 on error

SDL_RenderDrawRectF sdl2

Draw a rectangle on the current rendering target.

renderer The renderer which should draw a rectangle. rect A pointer to the destination rectangle, or NULL to outline the entire rendering target.

0 on success, or -1 on error

SDL_RenderDrawRects sdl2

Draw some number of rectangles on the current rendering target.

renderer The renderer which should draw multiple rectangles. rects A pointer to an array of destination rectangles. count The number of rectangles.

0 on success, or -1 on error

SDL_RenderDrawRectsF sdl2

Draw some number of rectangles on the current rendering target.

renderer The renderer which should draw multiple rectangles. rects A pointer to an array of destination rectangles. count The number of rectangles.

0 on success, or -1 on error

SDL_RENDERER_ACCELERATED sdl2

< The renderer is a software fallback *

SDL_RENDERER_PRESENTVSYNC sdl2

< The renderer uses hardware acceleration *

SDL_RENDERER_SOFTWARE sdl2

Flags used when creating a rendering context

SDL_RENDERER_TARGETTEXTURE sdl2

< Present is synchronized with the refresh rate *

SDL_RenderFillRect sdl2

Fill a rectangle on the current rendering target with the drawing color.

renderer The renderer which should fill a rectangle. rect A pointer to the destination rectangle, or NULL for the entire rendering target.

0 on success, or -1 on error

SDL_RenderFillRectF sdl2

Fill a rectangle on the current rendering target with the drawing color.

renderer The renderer which should fill a rectangle. rect A pointer to the destination rectangle, or NULL for the entire rendering target.

0 on success, or -1 on error

SDL_RenderFillRects sdl2

Fill some number of rectangles on the current rendering target with the drawing color.

renderer The renderer which should fill multiple rectangles. rects A pointer to an array of destination rectangles. count The number of rectangles.

0 on success, or -1 on error

SDL_RenderFillRectsF sdl2

Fill some number of rectangles on the current rendering target with the drawing color.

renderer The renderer which should fill multiple rectangles. rects A pointer to an array of destination rectangles. count The number of rectangles.

0 on success, or -1 on error

SDL_RenderFlush sdl2

Force the rendering context to flush any pending commands to the underlying rendering API.

You do not need to (and in fact, shouldn't) call this function unless you are planning to call into OpenGL/Direct3D/Metal/whatever directly in addition to using an SDL_Renderer.

This is for a very-specific case: if you are using SDL's render API, you asked for a specific renderer backend (OpenGL, Direct3D, etc), you set SDL_HINT_RENDER_BATCHING to "1", and you plan to make OpenGL/D3D/whatever calls in addition to SDL render API calls. If all of this applies, you should call SDL_RenderFlush() between calls to SDL's render API and the low-level API you're using in cooperation.

In all other cases, you can ignore this function. This is only here to get maximum performance out of a specific situation. In all other cases, SDL will do the right thing, perhaps at a performance loss.

This function is first available in SDL 2.0.10, and is not needed in 2.0.9 and earlier, as earlier versions did not queue rendering commands at all, instead flushing them to the OS immediately.

SDL_RenderGeometry sdl2

Render a list of triangles, optionally using a texture and indices into the vertex array. Color and alpha modulation is done per vertex. SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored.

SDL_RenderGeometryRaw sdl2

Render a list of triangles, optionally using a texture and indices into the vertex arrays. Color and alpha modulation is done per vertex. SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored.

SDL_RenderGetClipRect sdl2

Get the clip rectangle for the current target.

renderer The renderer from which clip rectangle should be queried. rect A pointer filled in with the current clip rectangle, or an empty rectangle if clipping is disabled.

SDL_RenderSetClipRect()

SDL_RenderGetIntegerScale sdl2

\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()

SDL_RenderGetLogicalSize sdl2

Get device independent resolution for rendering

renderer The renderer from which resolution should be queried. w A pointer filled with the width of the logical resolution h A pointer filled with the height of the logical resolution

SDL_RenderSetLogicalSize()

SDL_RenderGetMetalCommandEncoder sdl2

Get the Metal command encoder for the current frame

This function returns a raw Pointer, so SDL doesn't have to include Metal's headers, but it can be safely cast to an `id<MTLRenderCommandEncoder>`.

Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give SDL a drawable to render to, which might happen if the window is hidden/minimized/offscreen. This doesn't apply to command encoders for render targets, just the window's backbacker. Check your return values!

SDL_RenderGetMetalLayer sdl2

Get the CAMetalLayer associated with the given Metal renderer.

This function returns a raw Pointer, so SDL doesn't have to include Metal's headers, but it can be safely cast to a pointer to `CAMetalLayer`.

SDL_RenderGetScale sdl2

Get the drawing scale for the current target.

renderer The renderer from which drawing scale should be queried. scaleX A pointer filled in with the horizontal scaling factor scaleY A pointer filled in with the vertical scaling factor

SDL_RenderSetScale()

SDL_RenderGetViewport sdl2

Get the drawing area for the current target.

SDL_RenderSetViewport()

SDL_RenderGetWindow sdl2

Get the window associated with a renderer.

SDL_RenderIsClipEnabled sdl2

\brief Get whether clipping is enabled on the given renderer.

\param renderer The renderer from which clip state should be queried.

\sa SDL_RenderGetClipRect()

SDL_RenderLogicalToWindow sdl2

Get real coordinates of point in window when given logical coordinates of point in renderer. Logical coordinates will differ from real coordinate when render is scaled and logical renderer size set.

SDL_RenderPresent sdl2

Update the screen with rendering performed.

SDL_RenderReadPixels sdl2

Read pixels from the current rendering target.

renderer The renderer from which pixels should be read. rect A pointer to the rectangle to read, or NULL for the entire render target. format The desired format of the pixel data, or 0 to use the format of the rendering target pixels A pointer to be filled in with the pixel data pitch The pitch of the pixels parameter.

0 on success, or -1 if pixel reading is not supported.

This is a very slow operation, and should not be used frequently.

SDL_RenderSetClipRect sdl2

Set the clip rectangle for the current target.

renderer The renderer for which clip rectangle should be set. rect A pointer to the rectangle to set as the clip rectangle, or NULL to disable clipping.

0 on success, or -1 on error

SDL_RenderGetClipRect()

SDL_RenderSetIntegerScale sdl2

\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()

SDL_RenderSetLogicalSize sdl2

Set device independent resolution for rendering

renderer The renderer for which resolution should be set. w The width of the logical resolution 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.

If this function results in scaling or subpixel drawing by the rendering backend, it will be handled using the appropriate quality hints.

SDL_RenderGetLogicalSize() SDL_RenderSetScale() SDL_RenderSetViewport()

SDL_RenderSetScale sdl2

Set the drawing scale for rendering on the current target.

renderer The renderer for which the drawing scale should be set. scaleX The horizontal scaling factor 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.

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.

SDL_RenderGetScale() SDL_RenderSetLogicalSize()

SDL_RenderSetViewport sdl2

Set the drawing area for rendering on the current target.

renderer The renderer for which the drawing area should be set. 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.

0 on success, or -1 on error

If the window associated with the renderer is resized, the viewport is automatically reset.

SDL_RenderGetViewport() SDL_RenderSetLogicalSize()

SDL_RenderSetVSync sdl2

Toggle VSync of the given renderer.

SDL_RenderTargetSupported sdl2

Determines whether a window supports the use of render targets

renderer The renderer that will be checked

SDL_TRUE if supported, SDL_FALSE if not.

SDL_RenderWindowToLogical sdl2

Get logical coordinates of point in renderer when given real coordinates of point in window. Logical coordinates will differ from real coordinates when render is scaled and logical renderer size set.

SDL_RENDER_DEVICE_RESET sdl2

The render targets have been reset

SDL_RENDER_TARGETS_RESET sdl2

Render events

SDL_ResetHint sdl2

Reset a hint to the default value.

This will reset a hint to the value of the environment variable, or NIL if the environment isn't set. Callbacks will be called normally with this change.

\param name the hint to set \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise.

\since This function is available since SDL 2.24.0.

SDL_ResetHints sdl2

Reset all hints to the default values.

This will reset all hints to the value of the associated environment variable, or NIL if the environment isn't set. Callbacks will be called normally with this change.

\since This function is available since SDL 2.26.0.

\sa SDL_GetHint \sa SDL_SetHint \sa SDL_ResetHint

SDL_ResetKeyboard sdl2

Clear the state of the keyboard

This function will generate key up events for all pressed keys.

\since This function is available since SDL 2.24.0.

\sa SDL_GetKeyboardState

SDL_RestoreWindow sdl2

Restore the size and position of a minimized or maximized window.

SDL_MaximizeWindow() SDL_MinimizeWindow()

SDL_RLEACCEL sdl2

< Surface uses preallocated memory *

SDL_round sdl2

Round to nearest integral value, away from zero.

\since This function is available since SDL 2.0.16.

SDL_roundf sdl2

Round to nearest integral value, away from zero.

\since This function is available since SDL 2.0.16.

SDL_RWclose sdl2

Close and free an allocated SDL_RWops structure.

\return 0 if successful or -1 on write error when flushing data.

SDL_RWFromConstMem sdl2

 

SDL_RWFromFile sdl2

RWFrom functions

Functions to create SDL_RWops structures from various data streams.

SDL_RWFromFP sdl2

don't know if this works

SDL_RWFromMem sdl2

 

SDL_RWOPS_JNIFILE sdl2

Stdio file *

SDL_RWOPS_MEMORY sdl2

Android asset *

SDL_RWOPS_MEMORY_RO sdl2

Memory stream *

SDL_RWOPS_STDFILE sdl2

Win32 file *

SDL_RWOPS_UNKNOWN sdl2

RWops Types *

SDL_RWOPS_WINFILE sdl2

Unknown stream type *

SDL_RWread sdl2

Read up to \c maxnum objects each of size \c size from the data stream to the area pointed at by \c ptr.

\return the number of objects read, or 0 at error or end of file.

SDL_RWseek sdl2

Seek to \c offset relative to \c whence, one of stdio's whence values: RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END

\return the final offset in the data stream, or -1 on error.

SDL_RWsize sdl2

Return the size of the file in this rwops, or -1 if unknown

SDL_RWtell sdl2

Return the current offset in the data stream, or -1 on error.

SDL_RWwrite sdl2

Write exactly \c num objects each of size \c size from the area pointed at by \c ptr to data stream.

\return the number of objects written, or 0 at error or end of file.

SDL_SaveAllDollarTemplates sdl2

Save all currently loaded Dollar Gesture templates.

\param dst a SDL_RWops to save to \returns the number of saved templates on success or 0 on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_LoadDollarTemplates \sa SDL_SaveDollarTemplate

SDL_SaveBMP sdl2

TODO : Check: Why AnsiString instead of PAnsiChar used here? Compare SDL_LoadBMP macro.

SDL_SaveBMP_RW sdl2

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.

SDL_SaveDollarTemplate sdl2

Save a currently loaded Dollar Gesture template.

\param gestureId a gesture id \param dst a SDL_RWops to save to \returns 1 on success or 0 on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_LoadDollarTemplates \sa SDL_SaveAllDollarTemplates

SDL_scalbn sdl2

Calculate x multiplied by the floating-point radix to the power of n. On most systems, the radix is 2, making this equivalent to x*(2**n).

\since This function is available since SDL 2.0.4.

SDL_scalbnf sdl2

Calculate x multiplied by the floating-point radix to the power of n. On most systems, the radix is 2, making this equivalent to x*(2**n).

\since This function is available since SDL 2.0.8.

SDL_ScaleModeBest sdl2

< linear filtering *

SDL_ScaleModeLinear sdl2

< nearest pixel sampling *

SDL_ScaleModeNearest sdl2

 

SDL_SCANCODE_0 sdl2

 

SDL_SCANCODE_1 sdl2

 

SDL_SCANCODE_2 sdl2

 

SDL_SCANCODE_3 sdl2

 

SDL_SCANCODE_4 sdl2

 

SDL_SCANCODE_5 sdl2

 

SDL_SCANCODE_6 sdl2

 

SDL_SCANCODE_7 sdl2

 

SDL_SCANCODE_8 sdl2

 

SDL_SCANCODE_9 sdl2

 

SDL_SCANCODE_A sdl2

Usage page $07

These values are from usage page $07 (USB keyboard page).

SDL_SCANCODE_AC_BACK sdl2

 

SDL_SCANCODE_AC_BOOKMARKS sdl2

 

SDL_SCANCODE_AC_FORWARD sdl2

 

SDL_SCANCODE_AC_HOME sdl2

 

SDL_SCANCODE_AC_REFRESH sdl2

 

SDL_SCANCODE_AC_SEARCH sdl2

 

SDL_SCANCODE_AC_STOP sdl2

 

SDL_SCANCODE_AGAIN sdl2

AC Stop

SDL_SCANCODE_ALTERASE sdl2

< reserved *

SDL_SCANCODE_APOSTROPHE sdl2

 

SDL_SCANCODE_APP1 sdl2

SC System Sleep

SDL_SCANCODE_APP2 sdl2

 

SDL_SCANCODE_APPLICATION sdl2

< 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_AUDIOFASTFORWARD sdl2

 

SDL_SCANCODE_AUDIOMUTE sdl2

 

SDL_SCANCODE_AUDIONEXT sdl2

\name Usage page 0x0C

These values are mapped from usage page 0x0C (USB consumer page). See https://usb.org/sites/default/files/hut1_2.pdf

There are way more keys in the spec than we can represent in the current scancode range, so pick the ones that commonly come up in real world usage. / These values are mapped from usage page $0C (USB consumer page).

SDL_SCANCODE_AUDIOPLAY sdl2

 

SDL_SCANCODE_AUDIOPREV sdl2

 

SDL_SCANCODE_AUDIOREWIND sdl2

\name Usage page 0x0C (additional media keys)

These values are mapped from usage page 0x0C (USB consumer page).

SDL_SCANCODE_AUDIOSTOP sdl2

 

SDL_SCANCODE_B sdl2

 

SDL_SCANCODE_BACKSLASH sdl2

 

SDL_SCANCODE_BACKSPACE sdl2

 

SDL_SCANCODE_BRIGHTNESSDOWN sdl2

Walther keys

These are values that Christian Walther added (for mac keyboard?).

SDL_SCANCODE_BRIGHTNESSUP sdl2

 

SDL_SCANCODE_C sdl2

 

SDL_SCANCODE_CALCULATOR sdl2

 

SDL_SCANCODE_CALL sdl2

< Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom right of the display. *

SDL_SCANCODE_CANCEL sdl2

 

SDL_SCANCODE_CAPSLOCK sdl2

 

SDL_SCANCODE_CLEAR sdl2

AC Cancel

SDL_SCANCODE_CLEARAGAIN sdl2

 

SDL_SCANCODE_COMMA sdl2

< 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_COMPUTER sdl2

 

SDL_SCANCODE_COPY sdl2

AC Cut

SDL_SCANCODE_CRSEL sdl2

 

SDL_SCANCODE_CURRENCYSUBUNIT sdl2

 

SDL_SCANCODE_CURRENCYUNIT sdl2

 

SDL_SCANCODE_CUT sdl2

AC Undo

SDL_SCANCODE_D sdl2

 

SDL_SCANCODE_DECIMALSEPARATOR sdl2

 

SDL_SCANCODE_DELETE sdl2

 

SDL_SCANCODE_DISPLAYSWITCH sdl2

 

SDL_SCANCODE_DOWN sdl2

 

SDL_SCANCODE_E sdl2

 

SDL_SCANCODE_EJECT sdl2

 

SDL_SCANCODE_END sdl2

 

SDL_SCANCODE_ENDCALL sdl2

< Used for accepting phone calls. *

SDL_SCANCODE_EQUALS sdl2

 

SDL_SCANCODE_ESCAPE sdl2

 

SDL_SCANCODE_EXECUTE sdl2

 

SDL_SCANCODE_EXSEL sdl2

 

SDL_SCANCODE_F sdl2

 

SDL_SCANCODE_F1 sdl2

 

SDL_SCANCODE_F10 sdl2

 

SDL_SCANCODE_F11 sdl2

 

SDL_SCANCODE_F12 sdl2

 

SDL_SCANCODE_F13 sdl2

 

SDL_SCANCODE_F14 sdl2

 

SDL_SCANCODE_F15 sdl2

 

SDL_SCANCODE_F16 sdl2

 

SDL_SCANCODE_F17 sdl2

 

SDL_SCANCODE_F18 sdl2

 

SDL_SCANCODE_F19 sdl2

 

SDL_SCANCODE_F2 sdl2

 

SDL_SCANCODE_F20 sdl2

 

SDL_SCANCODE_F21 sdl2

 

SDL_SCANCODE_F22 sdl2

 

SDL_SCANCODE_F23 sdl2

 

SDL_SCANCODE_F24 sdl2

 

SDL_SCANCODE_F3 sdl2

 

SDL_SCANCODE_F4 sdl2

 

SDL_SCANCODE_F5 sdl2

 

SDL_SCANCODE_F6 sdl2

 

SDL_SCANCODE_F7 sdl2

 

SDL_SCANCODE_F8 sdl2

 

SDL_SCANCODE_F9 sdl2

 

SDL_SCANCODE_FIND sdl2

AC Paste

SDL_SCANCODE_G sdl2

 

SDL_SCANCODE_GRAVE sdl2

 

SDL_SCANCODE_H sdl2

 

SDL_SCANCODE_HELP sdl2

 

SDL_SCANCODE_HOME sdl2

< insert on PC; help on some Mac keyboards (but does send code 73; not 117) *

SDL_SCANCODE_I sdl2

 

SDL_SCANCODE_INSERT sdl2

 

SDL_SCANCODE_INTERNATIONAL1 sdl2

 

SDL_SCANCODE_INTERNATIONAL2 sdl2

< used on Asian keyboards; see footnotes in USB doc *

SDL_SCANCODE_INTERNATIONAL3 sdl2

 

SDL_SCANCODE_INTERNATIONAL4 sdl2

< Yen *

SDL_SCANCODE_INTERNATIONAL5 sdl2

 

SDL_SCANCODE_INTERNATIONAL6 sdl2

 

SDL_SCANCODE_INTERNATIONAL7 sdl2

 

SDL_SCANCODE_INTERNATIONAL8 sdl2

 

SDL_SCANCODE_INTERNATIONAL9 sdl2

 

SDL_SCANCODE_J sdl2

 

SDL_SCANCODE_K sdl2

 

SDL_SCANCODE_KBDILLUMDOWN sdl2

 

SDL_SCANCODE_KBDILLUMTOGGLE sdl2

< display mirroring/dual display switch; video mode switch *

SDL_SCANCODE_KBDILLUMUP sdl2

 

SDL_SCANCODE_KP_0 sdl2

 

SDL_SCANCODE_KP_00 sdl2

 

SDL_SCANCODE_KP_000 sdl2

 

SDL_SCANCODE_KP_1 sdl2

 

SDL_SCANCODE_KP_2 sdl2

 

SDL_SCANCODE_KP_3 sdl2

 

SDL_SCANCODE_KP_4 sdl2

 

SDL_SCANCODE_KP_5 sdl2

 

SDL_SCANCODE_KP_6 sdl2

 

SDL_SCANCODE_KP_7 sdl2

 

SDL_SCANCODE_KP_8 sdl2

 

SDL_SCANCODE_KP_9 sdl2

 

SDL_SCANCODE_KP_A sdl2

 

SDL_SCANCODE_KP_AMPERSAND sdl2

 

SDL_SCANCODE_KP_AT sdl2

 

SDL_SCANCODE_KP_B sdl2

 

SDL_SCANCODE_KP_BACKSPACE sdl2

 

SDL_SCANCODE_KP_BINARY sdl2

 

SDL_SCANCODE_KP_C sdl2

 

SDL_SCANCODE_KP_CLEAR sdl2

 

SDL_SCANCODE_KP_CLEARENTRY sdl2

 

SDL_SCANCODE_KP_COLON sdl2

 

SDL_SCANCODE_KP_COMMA sdl2

SDL_SCANCODE_LOCKINGSCROLLLOCK = 132; *

SDL_SCANCODE_KP_D sdl2

 

SDL_SCANCODE_KP_DBLAMPERSAND sdl2

 

SDL_SCANCODE_KP_DBLVERTICALBAR sdl2

 

SDL_SCANCODE_KP_DECIMAL sdl2

 

SDL_SCANCODE_KP_DIVIDE sdl2

< num lock on PC; clear on Mac keyboards

SDL_SCANCODE_KP_E sdl2

 

SDL_SCANCODE_KP_ENTER sdl2

 

SDL_SCANCODE_KP_EQUALS sdl2

< 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_EQUALSAS400 sdl2

 

SDL_SCANCODE_KP_EXCLAM sdl2

 

SDL_SCANCODE_KP_F sdl2

 

SDL_SCANCODE_KP_GREATER sdl2

 

SDL_SCANCODE_KP_HASH sdl2

 

SDL_SCANCODE_KP_HEXADECIMAL sdl2

 

SDL_SCANCODE_KP_LEFTBRACE sdl2

 

SDL_SCANCODE_KP_LEFTPAREN sdl2

 

SDL_SCANCODE_KP_LESS sdl2

 

SDL_SCANCODE_KP_MEMADD sdl2

 

SDL_SCANCODE_KP_MEMCLEAR sdl2

 

SDL_SCANCODE_KP_MEMDIVIDE sdl2

 

SDL_SCANCODE_KP_MEMMULTIPLY sdl2

 

SDL_SCANCODE_KP_MEMRECALL sdl2

 

SDL_SCANCODE_KP_MEMSTORE sdl2

 

SDL_SCANCODE_KP_MEMSUBTRACT sdl2

 

SDL_SCANCODE_KP_MINUS sdl2

 

SDL_SCANCODE_KP_MULTIPLY sdl2

 

SDL_SCANCODE_KP_OCTAL sdl2

 

SDL_SCANCODE_KP_PERCENT sdl2

 

SDL_SCANCODE_KP_PERIOD sdl2

 

SDL_SCANCODE_KP_PLUS sdl2

 

SDL_SCANCODE_KP_PLUSMINUS sdl2

 

SDL_SCANCODE_KP_POWER sdl2

 

SDL_SCANCODE_KP_RIGHTBRACE sdl2

 

SDL_SCANCODE_KP_RIGHTPAREN sdl2

 

SDL_SCANCODE_KP_SPACE sdl2

 

SDL_SCANCODE_KP_TAB sdl2

 

SDL_SCANCODE_KP_VERTICALBAR sdl2

 

SDL_SCANCODE_KP_XOR sdl2

 

SDL_SCANCODE_L sdl2

 

SDL_SCANCODE_LALT sdl2

 

SDL_SCANCODE_LANG1 sdl2

 

SDL_SCANCODE_LANG2 sdl2

< Hangul/English toggle *

SDL_SCANCODE_LANG3 sdl2

< Hanja conversion *

SDL_SCANCODE_LANG4 sdl2

< Katakana *

SDL_SCANCODE_LANG5 sdl2

< Hiragana *

SDL_SCANCODE_LANG6 sdl2

< Zenkaku/Hankaku *

SDL_SCANCODE_LANG7 sdl2

< reserved *

SDL_SCANCODE_LANG8 sdl2

< reserved *

SDL_SCANCODE_LANG9 sdl2

< reserved *

SDL_SCANCODE_LCTRL sdl2

 

SDL_SCANCODE_LEFT sdl2

 

SDL_SCANCODE_LEFTBRACKET sdl2

 

SDL_SCANCODE_LGUI sdl2

< alt; option *

SDL_SCANCODE_LSHIFT sdl2

 

SDL_SCANCODE_M sdl2

 

SDL_SCANCODE_MAIL sdl2

 

SDL_SCANCODE_MEDIASELECT sdl2

 

SDL_SCANCODE_MENU sdl2

AL Integrated Help Center

SDL_SCANCODE_MINUS sdl2

 

SDL_SCANCODE_MODE sdl2

< windows; command (apple); meta *

SDL_SCANCODE_MUTE sdl2

AC Find

SDL_SCANCODE_N sdl2

 

SDL_SCANCODE_NONUSBACKSLASH sdl2

 

SDL_SCANCODE_NONUSHASH sdl2

< 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_NUMLOCKCLEAR sdl2

 

SDL_SCANCODE_O sdl2

 

SDL_SCANCODE_OPER sdl2

 

SDL_SCANCODE_OUT sdl2

 

SDL_SCANCODE_P sdl2

 

SDL_SCANCODE_PAGEDOWN sdl2

 

SDL_SCANCODE_PAGEUP sdl2

 

SDL_SCANCODE_PASTE sdl2

AC Copy

SDL_SCANCODE_PAUSE sdl2

 

SDL_SCANCODE_PERIOD sdl2

 

SDL_SCANCODE_POWER sdl2

< windows contextual menu; compose *

SDL_SCANCODE_PRINTSCREEN sdl2

 

SDL_SCANCODE_PRIOR sdl2

 

SDL_SCANCODE_Q sdl2

 

SDL_SCANCODE_R sdl2

 

SDL_SCANCODE_RALT sdl2

 

SDL_SCANCODE_RCTRL sdl2

< windows; command (apple); meta *

SDL_SCANCODE_RETURN sdl2

 

SDL_SCANCODE_RETURN2 sdl2

 

SDL_SCANCODE_RGUI sdl2

< alt gr; option *

SDL_SCANCODE_RIGHT sdl2

 

SDL_SCANCODE_RIGHTBRACKET sdl2

 

SDL_SCANCODE_RSHIFT sdl2

 

SDL_SCANCODE_S sdl2

 

SDL_SCANCODE_SCROLLLOCK sdl2

 

SDL_SCANCODE_SELECT sdl2

Menu (show menu)

SDL_SCANCODE_SEMICOLON sdl2

< 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_SEPARATOR sdl2

 

SDL_SCANCODE_SLASH sdl2

 

SDL_SCANCODE_SLEEP sdl2

 

SDL_SCANCODE_SOFTLEFT sdl2

\name Mobile keys

These are values that are often used on mobile phones.

SDL_SCANCODE_SOFTRIGHT sdl2

< Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom left of the display. *

SDL_SCANCODE_SPACE sdl2

 

SDL_SCANCODE_STOP sdl2

 

SDL_SCANCODE_SYSREQ sdl2

< Erase-Eaze *

SDL_SCANCODE_T sdl2

 

SDL_SCANCODE_TAB sdl2

 

SDL_SCANCODE_THOUSANDSSEPARATOR sdl2

 

SDL_SCANCODE_U sdl2

 

SDL_SCANCODE_UNDO sdl2

AC Redo/Repeat

SDL_SCANCODE_UNKNOWN sdl2

 

SDL_SCANCODE_UP sdl2

 

SDL_SCANCODE_V sdl2

 

SDL_SCANCODE_VOLUMEDOWN sdl2

 

SDL_SCANCODE_VOLUMEUP sdl2

 

SDL_SCANCODE_W sdl2

 

SDL_SCANCODE_WWW sdl2

 

SDL_SCANCODE_X sdl2

 

SDL_SCANCODE_Y sdl2

 

SDL_SCANCODE_Z sdl2

 

SDL_SemPost sdl2

Atomically increment a semaphore's value and wake waiting threads.

\param sem the semaphore to increment \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_SemTryWait sdl2

See if a semaphore has a positive value and decrement it if it does.

This function checks to see if the semaphore pointed to by `sem` has a positive value and atomically decrements the semaphore value if it does. If the semaphore doesn't have a positive value, the function immediately returns SDL_MUTEX_TIMEDOUT.

\param sem the semaphore to wait on \returns 0 if the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait would block, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_SemValue sdl2

Get the current value of a semaphore.

\param sem the semaphore to query \returns the current value of the semaphore.

\since This function is available since SDL 2.0.0.

SDL_SemWait sdl2

Wait until a semaphore has a positive value and then decrements it.

This function suspends the calling thread until either the semaphore pointed to by `sem` has a positive value or the call is interrupted by a signal or error. If the call is successful it will atomically decrement the semaphore value.

This function is the equivalent of calling SDL_SemWaitTimeout() with a time length of SDL_MUTEX_MAXWAIT.

\param sem the semaphore wait on \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_SemWaitTimeout sdl2

Wait until a semaphore has a positive value and then decrements it.

This function suspends the calling thread until either the semaphore pointed to by `sem` has a positive value, the call is interrupted by a signal or error, or the specified time has elapsed. If the call is successful it will atomically decrement the semaphore value.

\param sem the semaphore to wait on \param ms the length of the timeout, in milliseconds \returns 0 if the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in the allotted time, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_SensorClose sdl2

Close a sensor previously opened with SDL_SensorOpen().

\param sensor The SDL_Sensor object to close

\since This function is available since SDL 2.0.9.

SDL_SensorFromInstanceID sdl2

Return the SDL_Sensor associated with an instance id.

\param instance_id The sensor from instance id \returns an SDL_Sensor object.

\since This function is available since SDL 2.0.9.

SDL_SensorGetData sdl2

Get the current state of an opened sensor.

The number of values and interpretation of the data is sensor dependent.

\param sensor The SDL_Sensor object to query \param data A pointer filled with the current sensor state \param num_values The number of values to write to data \returns 0 or -1 if an error occurred.

\since This function is available since SDL 2.0.9.

SDL_SensorGetDataWithTimestamp sdl2

Get the current state of an opened sensor with the timestamp of the last update.

The number of values and interpretation of the data is sensor dependent.

\param sensor The SDL_Sensor object to query \param timestamp A pointer filled with the timestamp in microseconds of the current sensor reading if available, or 0 if not \param data A pointer filled with the current sensor state \param num_values The number of values to write to data \returns 0 or -1 if an error occurred.

\since This function is available since SDL 2.26.0.

SDL_SensorGetDeviceInstanceID sdl2

Get the instance ID of a sensor.

\param device_index The sensor to get instance id from \returns the sensor instance ID, or -1 if `device_index` is out of range.

\since This function is available since SDL 2.0.9.

SDL_SensorGetDeviceName sdl2

Get the implementation dependent name of a sensor.

\param device_index The sensor to obtain name from \returns the sensor name, or NIL if `device_index` is out of range.

\since This function is available since SDL 2.0.9.

SDL_SensorGetDeviceNonPortableType sdl2

Get the platform dependent type of a sensor.

\param device_index The sensor to check \returns the sensor platform dependent type, or -1 if `device_index` is out of range.

\since This function is available since SDL 2.0.9.

SDL_SensorGetDeviceType sdl2

Get the type of a sensor.

\param device_index The sensor to get the type from \returns the SDL_SensorType, or `SDL_SENSOR_INVALID` if `device_index` is out of range.

\since This function is available since SDL 2.0.9.

SDL_SensorGetInstanceID sdl2

Get the instance ID of a sensor.

\param sensor The SDL_Sensor object to inspect \returns the sensor instance ID, or -1 if `sensor` is NIL.

\since This function is available since SDL 2.0.9.

SDL_SensorGetName sdl2

Get the implementation dependent name of a sensor

\param sensor The SDL_Sensor object \returns the sensor name, or NIL if `sensor` is NIL.

\since This function is available since SDL 2.0.9.

SDL_SensorGetNonPortableType sdl2

Get the platform dependent type of a sensor.

\param sensor The SDL_Sensor object to inspect \returns the sensor platform dependent type, or -1 if `sensor` is NIL.

\since This function is available since SDL 2.0.9.

SDL_SensorGetType sdl2

Get the type of a sensor.

\param sensor The SDL_Sensor object to inspect \returns the SDL_SensorType type, or `SDL_SENSOR_INVALID` if `sensor` is NIL.

\since This function is available since SDL 2.0.9.

SDL_SensorOpen sdl2

Open a sensor for use.

\param device_index The sensor to open \returns an SDL_Sensor sensor object, or NIL if an error occurred.

\since This function is available since SDL 2.0.9.

SDL_SensorUpdate sdl2

Update the current state of the open sensors.

This is called automatically by the event loop if sensor events are enabled.

This needs to be called from the thread that initialized the sensor subsystem.

\since This function is available since SDL 2.0.9.

SDL_SENSORUPDATED sdl2

Sensor events

SDL_SENSOR_ACCEL sdl2

< Unknown sensor type *

SDL_SENSOR_ACCEL_L sdl2

< Gyroscope *

SDL_SENSOR_ACCEL_R sdl2

< Gyroscope for left Joy-Con controller *

SDL_SENSOR_GYRO sdl2

< Accelerometer *

SDL_SENSOR_GYRO_L sdl2

< Accelerometer for left Joy-Con controller and Wii nunchuk *

SDL_SENSOR_GYRO_R sdl2

< Accelerometer for right Joy-Con controller *

SDL_SENSOR_INVALID sdl2

 

SDL_SENSOR_UNKNOWN sdl2

< Returned for an invalid sensor *

SDL_SetClipboardText sdl2

Put UTF-8 text into the clipboard.

\param text the text to store in the clipboard \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_GetClipboardText \sa SDL_HasClipboardText

SDL_SetClipRect sdl2

Sets the clipping rectangle for the destination surface in a blit.

If the clip rectangle is NULL, clipping will be disabled.

If the clip rectangle doesn't intersect the surface, the function will return SDL_FALSE and blits will be completely clipped. Otherwise the function returns SDL_TRUE and blits to the surface will be clipped to the intersection of the surface area and the clipping rectangle.

Note that blits are automatically clipped to the edges of the source and destination surfaces.

SDL_SetColorKey sdl2

Sets the color key (transparent pixel) in a blittable surface.

surface The surface to update flag Non-zero to enable colorkey and 0 to disable colorkey key The transparent pixel in the native surface format

0 on success, or -1 if the surface is not valid

You can pass SDL_RLEACCEL to enable RLE accelerated blits.

SDL_SetCursor sdl2

Set the active cursor.

This function sets the currently active cursor to the specified one. If the cursor is currently visible, the change will be immediately represented on the display. SDL_SetCursor(NULL) can be used to force cursor redraw, if this is desired for any reason.

\param cursor a cursor to make active

\since This function is available since SDL 2.0.0.

\sa SDL_CreateCursor \sa SDL_GetCursor \sa SDL_ShowCursor

SDL_SetError sdl2

\brief Set the error message for the current thread

\return -1, there is no error handling for this function

SDL_SetEventFilter sdl2

Sets up a filter to process all events before they change internal state and are posted to the internal event queue.

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.

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.

SDL_setFramerate sdl2_gfx

 

SDL_SetHint sdl2

/** \brief Set a hint with normal priority

\return SDL_TRUE if the hint was set, SDL_FALSE otherwise /

SDL_SetHintWithPriority sdl2

/** \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 /

SDL_SetMemoryFunctions sdl2

Replace SDL's memory allocation functions with a custom set

\since This function is available since SDL 2.0.7.

SDL_SetModState sdl2

Set the current key modifier state for the keyboard.

The inverse of SDL_GetModState(), SDL_SetModState() allows you to impose modifier key states on your application. Simply pass your desired modifier states into `modstate`. This value may be a bitwise, OR'd combination of SDL_Keymod values.

This does not change the keyboard state, only the key modifier flags that SDL reports.

\param modstate the desired SDL_Keymod for the keyboard

\since This function is available since SDL 2.0.0.

\sa SDL_GetModState

SDL_SetPaletteColors sdl2

Set a range of colors in a palette.

\param palette the SDL_Palette structure to modify \param colors an array of SDL_Color structures to copy into the palette \param firstcolor the index of the first palette entry to modify \param ncolors the number of entries to modify \returns 0 on success or a negative error code if not all of the colors could be set; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_AllocPalette \sa SDL_CreateRGBSurface

SDL_SetPixelFormatPalette sdl2

Set the palette for a pixel format structure.

\param format the SDL_PixelFormat structure that will use the palette \param palette the SDL_Palette structure that will be used \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_AllocPalette \sa SDL_FreePalette

SDL_SetPrimarySelectionText sdl2

Put UTF-8 text into the primary selection.

\param text the text to store in the primary selection \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.26.1.

\sa SDL_GetPrimarySelectionText \sa SDL_HasPrimarySelectionText

SDL_SetRelativeMouseMode sdl2

Set relative mouse mode.

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 that this function will not be able to provide continuous relative motion when used over Microsoft Remote Desktop, instead motion is limited to the bounds of the screen.

This function will flush any pending mouse motion.

\param enabled SDL_TRUE to enable relative mode, SDL_FALSE to disable. \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

If relative mode is not supported, this returns -1.

\since This function is available since SDL 2.0.0.

\sa SDL_GetRelativeMouseMode

SDL_SetRenderDrawBlendMode sdl2

Set the blend mode used for drawing operations (Fill and Line).

renderer The renderer for which blend mode should be set. blendMode SDL_BlendMode to use for blending.

0 on success, or -1 on error

If the blend mode is not supported, the closest supported mode is chosen.

SDL_GetRenderDrawBlendMode()

SDL_SetRenderDrawColor sdl2

Set the color used for drawing operations (Rect, Line and Clear).

renderer The renderer for which drawing color should be set. r The red value used to draw on the rendering target. g The green value used to draw on the rendering target. b The blue value used to draw on the rendering target. a The alpha value used to draw on the rendering target, usually SDL_ALPHA_OPAQUE (255).

0 on success, or -1 on error

SDL_SetRenderTarget sdl2

Set a texture as the current rendering target.

renderer The renderer. texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target

0 on success, or -1 on error

SDL_GetRenderTarget()

SDL_SetSurfaceAlphaMod sdl2

Set an additional alpha value used in blit operations.

surface The surface to update. alpha The alpha value multiplied into blit operations.

0 on success, or -1 if the surface is not valid.

SDL_GetSurfaceAlphaMod()

SDL_SetSurfaceBlendMode sdl2

Set the blend mode used for blit operations.

surface The surface to update. blendMode ::SDL_BlendMode to use for blit blending.

0 on success, or -1 if the parameters are not valid.

SDL_GetSurfaceBlendMode()

SDL_SetSurfaceColorMod sdl2

Set an additional color value used in blit operations.

surface The surface to update. r The red color value multiplied into blit operations. g The green color value multiplied into blit operations. b The blue color value multiplied into blit operations.

0 on success, or -1 if the surface is not valid.

SDL_GetSurfaceColorMod()

SDL_SetSurfacePalette sdl2

Set the palette used by a surface.

0, or -1 if the surface format doesn't use a palette.

A single palette can be shared with many surfaces.

SDL_SetSurfaceRLE sdl2

Sets the RLE acceleration hint for a surface.

0 on success, or -1 if the surface is not valid

If RLE is enabled, colorkey and alpha blending blits are much faster, but the surface must be locked before directly accessing the pixels.

SDL_SetTextInputRect sdl2

Set the rectangle used to type Unicode text inputs.

To start text input in a given location, this function is intended to be called before SDL_StartTextInput, although some platforms support moving the rectangle even while text input (and a composition) is active.

Note: If you want to use the system native IME window, try setting hint **SDL_HINT_IME_SHOW_UI** to **1**, otherwise this function won't give you any feedback.

\param rect the SDL_Rect structure representing the rectangle to receive text (ignored if nil)

\since This function is available since SDL 2.0.0.

\sa SDL_StartTextInput

SDL_SetTextureAlphaMod sdl2

Set an additional alpha value used in render copy operations.

texture The texture to update. alpha The alpha value multiplied into copy operations.

0 on success, or -1 if the texture is not valid or alpha modulation is not supported.

SDL_GetTextureAlphaMod()

SDL_SetTextureBlendMode sdl2

Set the blend mode used for texture copy operations.

texture The texture to update. blendMode ::SDL_BlendMode to use for texture blending.

0 on success, or -1 if the texture is not valid or the blend mode is not supported.

If the blend mode is not supported, the closest supported mode is chosen.

SDL_GetTextureBlendMode()

SDL_SetTextureColorMod sdl2

Set an additional color value used in render copy operations.

texture The texture to update. r The red color value multiplied into copy operations. g The green color value multiplied into copy operations. b The blue color value multiplied into copy operations.

0 on success, or -1 if the texture is not valid or color modulation is not supported.

SDL_GetTextureColorMod()

SDL_SetTextureScaleMode sdl2

Set the scale mode used for texture scale operations. If the scale mode is not supported, the closest supported mode is chosen.

SDL_SetTextureUserData sdl2

Associate a user-specified pointer with a texture.

SDL_SetThreadPriority sdl2

Set the priority for the current thread

SDL_SetWindowAlwaysOnTop sdl2

Set the window to always be above the others.

This will add or remove the window's `SDL_WINDOW_ALWAYS_ON_TOP` flag. This will bring the window to the front and keep the window above the rest.

\param window The window of which to change the always on top state \param on_top SDL_TRUE to set the window always on top, SDL_FALSE to disable

\since This function is available since SDL 2.0.16.

\sa SDL_GetWindowFlags

SDL_SetWindowBordered sdl2

Set the border state of a window.

This will add or remove the window's SDL_WINDOW_BORDERLESS flag and add or remove the border from the actual window. This is a no-op if the window's border already matches the requested state.

window The window of which to change the border state. bordered SDL_FALSE to remove border, SDL_TRUE to add border.

You can't change the border state of a fullscreen window.

SDL_GetWindowFlags()

SDL_SetWindowBrightness sdl2

Set the brightness (gamma correction) for a window.

0 on success, or -1 if setting the brightness isn't supported.

SDL_GetWindowBrightness() SDL_SetWindowGammaRamp()

SDL_SetWindowData sdl2

Associate an arbitrary named pointer with a window.

window The window to associate with the pointer. name The name of the pointer. userdata The associated pointer.

The previous value associated with 'name'

The name is case-sensitive.

SDL_GetWindowData()

SDL_SetWindowDisplayMode sdl2

Set the display mode used when a fullscreen window is visible.

By default the window's dimensions and the desktop format and refresh rate are used.

mode The mode to use, or nil for the default mode.

0 on success, or -1 if setting the display mode failed.

SDL_GetWindowDisplayMode() SDL_SetWindowFullscreen()

SDL_SetWindowFullscreen sdl2

Set a window's fullscreen state.

0 on success, or -1 if setting the display mode failed.

SDL_SetWindowDisplayMode() SDL_GetWindowDisplayMode()

SDL_SetWindowGammaRamp sdl2

Set the gamma ramp for a window.

red The translation table for the red channel, or nil. green The translation table for the green channel, or nil. blue The translation table for the blue channel, or nil.

0 on success, or -1 if gamma ramps are unsupported.

Set the gamma translation table for the red, green, and blue channels of the video hardware. Each table is an array of 256 16-bit quantities, representing a mapping between the input and output for that channel. The input is the index into the array, and the output is the 16-bit gamma value at that index, scaled to the output color precision.

SDL_GetWindowGammaRamp()

SDL_SetWindowGrab sdl2

Set a window's input grab mode.

grabbed This is SDL_TRUE to grab input, and SDL_FALSE to release input.

SDL_GetWindowGrab()

SDL_SetWindowHitTest sdl2

\brief Provide a callback that decides if a window region has special properties.

Normally windows are dragged and resized by decorations provided by the system window manager (a title bar, borders, etc), but for some apps, it makes sense to drag them from somewhere else inside the window itself; for example, one might have a borderless window that wants to be draggable from any part, or simulate its own title bar, etc.

This function lets the app provide a callback that designates pieces of a given window as special. This callback is run during event processing if we need to tell the OS to treat a region of the window specially; the use of this callback is known as "hit testing."

Mouse input may not be delivered to your application if it is within a special area; the OS will often apply that input to moving the window or resizing the window and not deliver it to the application.

Specifying NULL for a callback disables hit-testing. Hit-testing is disabled by default.

Platforms that don't support this functionality will return -1 unconditionally, even if you're attempting to disable hit-testing.

Your callback may fire at any time, and its firing does not indicate any specific behavior (for example, on Windows, this certainly might fire when the OS is deciding whether to drag your window, but it fires for lots of other reasons, too, some unrelated to anything you probably care about _and when the mouse isn't actually at the location it is testing_). Since this can fire at any time, you should try to keep your callback efficient, devoid of allocations, etc.

\param window The window to set hit-testing on. \param callback The callback to call when doing a hit-test. \param callback_data An app-defined void pointer passed to the callback. \return 0 on success, -1 on error (including unsupported).

SDL_SetWindowIcon sdl2

Set the icon for a window.

icon The icon for the window.

SDL_SetWindowInputFocus sdl2

\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()

SDL_SetWindowKeyboardGrab sdl2

Set a window's keyboard grab mode.

Keyboard grab enables capture of system keyboard shortcuts like Alt+Tab or the Meta/Super key. Note that not all system keyboard shortcuts can be captured by applications (one example is Ctrl+Alt+Del on Windows).

This is primarily intended for specialized applications such as VNC clients or VM frontends. Normal games should not use keyboard grab.

When keyboard grab is enabled, SDL will continue to handle Alt+Tab when the window is full-screen to ensure the user is not trapped in your application. If you have a custom keyboard shortcut to exit fullscreen mode, you may suppress this behavior with `SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED`.

If the caller enables a grab while another window is currently grabbed, the other window loses its grab in favor of the caller's window.

\param window The window for which the keyboard grab mode should be set. \param grabbed This is SDL_TRUE to grab keyboard, and SDL_FALSE to release.

\since This function is available since SDL 2.0.16.

\sa SDL_GetWindowKeyboardGrab \sa SDL_SetWindowMouseGrab \sa SDL_SetWindowGrab

SDL_SetWindowMaximumSize sdl2

Set the maximum size of a window's client area.

max_w The maximum width of the window, must be >0 max_h The maximum height of the window, must be >0

You can't change the maximum size of a fullscreen window, it automatically matches the size of the display mode.

SDL_GetWindowMaximumSize() SDL_SetWindowMinimumSize()

SDL_SetWindowMinimumSize sdl2

Set the minimum size of a window's client area.

min_w The minimum width of the window, must be >0 min_h The minimum height of the window, must be >0

You can't change the minimum size of a fullscreen window, it automatically matches the size of the display mode.

SDL_GetWindowMinimumSize() SDL_SetWindowMaximumSize()

SDL_SetWindowModalFor sdl2

\brief Sets the window as a modal for another window

\param modal_window The window that should be modal \param parent_window The parent window

\return 0 on success, or -1 otherwise.

SDL_SetWindowMouseGrab sdl2

Set a window's mouse grab mode.

window The window for which the mouse grab mode should be set. grabbed This is SDL_TRUE to grab mouse, and SDL_FALSE to release.

SDL_GetWindowMouseGrab()

SDL_SetWindowMouseRect sdl2

Confines the cursor to the specified area of a window.

window The window that will be associated with the barrier. rect A rectangle area in window-relative coordinates. If NULL the barrier for the specified window will be destroyed.

SDL_GetWindowMouseRect()

SDL_SetWindowOpacity sdl2

\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()

SDL_SetWindowPosition sdl2

Set the position of a window.

window The window to reposition. x The x coordinate of the window, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED. y The y coordinate of the window, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED.

The window coordinate origin is the upper left of the display.

SDL_GetWindowPosition()

SDL_SetWindowResizable sdl2

\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()

SDL_SetWindowShape sdl2

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 an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW if the SDL_Window given does not reference a valid shaped window.

\since This function is available since SDL 2.0.0.

\sa SDL_WindowShapeMode \sa SDL_GetShapedWindowMode

SDL_SetWindowSize sdl2

Set the size of a window's client area.

w The width of the window, must be >0 h The height of the window, must be >0

You can't change the size of a fullscreen window, it automatically matches the size of the display mode.

SDL_GetWindowSize()

SDL_SetWindowTitle sdl2

Set the title of a window, in UTF-8 format.

SDL_GetWindowTitle()

SDL_SetYUVConversionMode sdl2

\brief Set the YUV conversion mode

SDL_SHAPEMODEALPHA sdl2

 

SDL_ShowCursor sdl2

Toggle whether or not the cursor is shown.

The cursor starts off displayed but can be turned off. Passing `SDL_ENABLE` displays the cursor and passing `SDL_DISABLE` hides it.

The current state of the mouse cursor can be queried by passing `SDL_QUERY`; either `SDL_DISABLE` or `SDL_ENABLE` will be returned.

\param toggle `SDL_ENABLE` to show the cursor, `SDL_DISABLE` to hide it, `SDL_QUERY` to query the current state without changing it. \returns `SDL_ENABLE` if the cursor is shown, or `SDL_DISABLE` if the cursor is hidden, or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_CreateCursor \sa SDL_SetCursor

SDL_ShowMessageBox sdl2

Create a modal message box.

messageboxdata The SDL_MessageBoxData structure with title, text, etc. buttonid The pointer to which user id of hit button should be copied.

-1 on error, otherwise 0 and buttonid contains user id of button hit or -1 if dialog was closed.

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.

SDL_ShowSimpleMessageBox sdl2

Create a simple modal message box

flags SDL_MessageBoxFlags title UTF-8 title text message UTF-8 message text window The parent window, or NULL for no parent

0 on success, -1 on error

SDL_ShowMessageBox

SDL_ShowWindow sdl2

Show a window.

SDL_HideWindow()

SDL_SIMDAlloc sdl2

Allocate memory in a SIMD-friendly way.

This will allocate a block of memory that is suitable for use with SIMD instructions. Specifically, it will be properly aligned and padded for the system's supported vector instructions.

The memory returned will be padded such that it is safe to read or write an incomplete vector at the end of the memory block. This can be useful so you don't have to drop back to a scalar fallback at the end of your SIMD processing loop to deal with the final elements without overflowing the allocated buffer.

You must free this memory with SDL_FreeSIMD(), not free() or SDL_free().

Note that SDL will only deal with SIMD instruction sets it is aware of; for example, SDL 2.0.8 knows that SSE wants 16-byte vectors (SDL_HasSSE()), and AVX2 wants 32 bytes (SDL_HasAVX2()), but doesn't know that AVX-512 wants 64. To be clear: if you can't decide to use an instruction set with an SDL_Has*() function, don't use that instruction set with memory allocated through here.

SDL_AllocSIMD(0) will return a non-NULL pointer, assuming the system isn't out of memory, but you are not allowed to dereference it (because you only own zero bytes of that buffer).

SDL_SIMDFree sdl2

Deallocate memory obtained from SDL_SIMDAlloc.

It is not valid to use this function on a pointer from anything but SDL_SIMDAlloc() or SDL_SIMDRealloc(). It can't be used on pointers from SDL_malloc, GetMem, etc.

However, SDL_SIMDFree(NIL) is a legal no-op.

The memory pointed to by `mem` is no longer valid for access upon return, and may be returned to the system or reused by a future allocation. The pointer passed to this function is no longer safe to dereference once this function returns, and should be discarded.

SDL_SIMDGetAlignment sdl2

Report the alignment this system needs for SIMD allocations.

This will return the minimum number of bytes to which a pointer must be aligned to be compatible with SIMD instructions on the current machine. For example, if the machine supports SSE only, it will return 16, but if it supports AVX-512F, it'll return 64 (etc). This only reports values for instruction sets SDL knows about, so if your SDL build doesn't have SDL_HasAVX512F(), then it might return 16 for the SSE support it sees and not 64 for the AVX-512 instructions that exist but SDL doesn't know about. Plan accordingly.

SDL_SIMDRealloc sdl2

Reallocate memory obtained from SDL_SIMDAlloc.

It is not valid to use this function on a pointer from anything but SDL_SIMDAlloc(). It can't be used on pointers from SDL_malloc, GetMem, etc.

SDL_SIMD_ALIGNED sdl2

< Surface is referenced internally *

SDL_sin sdl2

Calculate the sine of x, where x is given in radians.

\since This function is available since SDL 2.0.4.

SDL_sinf sdl2

Calculate the sine of x, where x is given in radians.

\since This function is available since SDL 2.0.4.

SDL_SoftStretch sdl2

Perform a fast, low quality, stretch blit between two surfaces of the same pixel format.

This function uses a static buffer, and is not thread-safe.

SDL_sqrt sdl2

Calculate the non-negative square root of x.

\since This function is available since SDL 2.0.4.

SDL_sqrtf sdl2

Calculate the non-negative square root of x.

\since This function is available since SDL 2.0.4.

SDL_STANDARD_GRAVITY sdl2

Accelerometer sensor

The accelerometer returns the current acceleration in SI meters per second squared. This measurement includes the force of gravity, so a device at rest will have an value of SDL_STANDARD_GRAVITY away from the center of the earth.

values[0]: Acceleration on the x axis values[1]: Acceleration on the y axis values[2]: Acceleration on the z axis

For phones held in portrait mode and game controllers held in front of you, the axes are defined as follows: -X ... +X : left ... right -Y ... +Y : bottom ... top -Z ... +Z : farther ... closer

The axis data is not changed when the phone is rotated.

\sa SDL_GetDisplayOrientation()

SDL_StartTextInput sdl2

Start accepting Unicode text input events.

This function will start accepting Unicode text input events in the focused SDL window, and start emitting SDL_TextInputEvent (SDL_TEXTINPUT) and SDL_TextEditingEvent (SDL_TEXTEDITING) events. Please use this function in pair with SDL_StopTextInput().

On some platforms using this function activates the screen keyboard.

\since This function is available since SDL 2.0.0.

\sa SDL_SetTextInputRect \sa SDL_StopTextInput

SDL_StopTextInput sdl2

Stop receiving any text input events.

\since This function is available since SDL 2.0.0.

\sa SDL_StartTextInput

SDL_SWSURFACE sdl2

Surface flags

These are the currently supported flags for the ::SDL_surface.

Used internally (read-only).

SDL_SYSTEM_CURSOR_ARROW sdl2

 

SDL_SYSTEM_CURSOR_CROSSHAIR sdl2

Wait

SDL_SYSTEM_CURSOR_HAND sdl2

Slashed circle or crossbones

SDL_SYSTEM_CURSOR_IBEAM sdl2

Arrow

SDL_SYSTEM_CURSOR_NO sdl2

Four pointed arrow pointing north, south, east, and west

SDL_SYSTEM_CURSOR_SIZEALL sdl2

Double arrow pointing north and south

SDL_SYSTEM_CURSOR_SIZENESW sdl2

Double arrow pointing northwest and southeast

SDL_SYSTEM_CURSOR_SIZENS sdl2

Double arrow pointing west and east

SDL_SYSTEM_CURSOR_SIZENWSE sdl2

Small wait cursor (or Wait if not available)

SDL_SYSTEM_CURSOR_SIZEWE sdl2

Double arrow pointing northeast and southwest

SDL_SYSTEM_CURSOR_WAIT sdl2

I-beam

SDL_SYSTEM_CURSOR_WAITARROW sdl2

Crosshair

SDL_SYSWMEVENT sdl2

Window state change

SDL_SYSWM_ANDROID sdl2

 

SDL_SYSWM_COCOA sdl2

 

SDL_SYSWM_DIRECTFB sdl2

 

SDL_SYSWM_HAIKU sdl2

 

SDL_SYSWM_KMSDRM sdl2

 

SDL_SYSWM_MIR sdl2

 

SDL_SYSWM_OS2 sdl2

 

SDL_SYSWM_RISCOS sdl2

 

SDL_SYSWM_UIKIT sdl2

 

SDL_SYSWM_UNKNOWN sdl2

 

SDL_SYSWM_VIVANTE sdl2

 

SDL_SYSWM_WAYLAND sdl2

 

SDL_SYSWM_WINDOWS sdl2

 

SDL_SYSWM_WINRT sdl2

* no longer available, left for API/ABI compatibility. Remove in 2.1! *

SDL_SYSWM_X11 sdl2

 

SDL_tan sdl2

Calculate the tangent of x, where x is given in radians.

\since This function is available since SDL 2.0.4.

SDL_tanf sdl2

Calculate the tangent of x, where x is given in radians.

\since This function is available since SDL 2.0.4.

SDL_TEXTEDITING sdl2

Key released

SDL_TEXTEDITINGEVENT_TEXT_SIZE sdl2

 

SDL_TEXTEDITING_EXT sdl2

Keymap changed due to a system event such as an input language or keyboard layout change.

SDL_TEXTINPUT sdl2

Keyboard text editing (composition)

SDL_TEXTINPUTEVENT_TEXT_SIZE sdl2

 

SDL_TEXTUREACCESS_STATIC sdl2

 

SDL_TEXTUREACCESS_STREAMING sdl2

< Changes rarely, not lockable *

SDL_TEXTUREACCESS_TARGET sdl2

< Changes frequently, lockable *

SDL_TEXTUREMODULATE_ALPHA sdl2

< srcC = srcC * color *

SDL_TEXTUREMODULATE_COLOR sdl2

< No modulation *

SDL_TEXTUREMODULATE_NONE sdl2

 

SDL_ThreadID sdl2

Get the thread identifier for the current thread.

SDL_TICKS_PASSED sdl2

Type conversion unnecessary bc. types are declared in func. param. list!

SDL_TLSCreate sdl2

Create an identifier that is globally visible to all threads but refers to data that is thread-specific.

The newly created thread local storage identifier, or 0 on error

var tls_lock: TSDL_SpinLock; thread_local_storage: TSDL_TLSID;

procedure SetMyThreadData(value: Pointer)

if not (thread_local_storage) then begin SDL_AtomicLock(@tls_lock); if (!thread_local_storage) thread_local_storage = SDL_TLSCreate();

SDL_AtomicUnLock(@tls_lock);

SDL_TLSSet(thread_local_storage, value); end;

function GetMyThreadData(): Pointer; begin Result := SDL_TLSGet(thread_local_storage); end;

SDL_TLSGet() SDL_TLSSet()

SDL_TLSGet sdl2

Get the value associated with a thread local storage ID for the current thread.

id The thread local storage ID

The value associated with the ID for the current thread, or NULL if no value has been set.

SDL_TLSCreate() SDL_TLSSet()

SDL_TLSSet sdl2

Set the value associated with a thread local storage ID for the current thread.

id The thread local storage ID value The value to associate with the ID for the current thread destructor_ A function called when the thread exits, to free the value.

0 on success, -1 on error

SDL_TLSCreate() SDL_TLSGet()

SDL_tolower sdl2

If the given ASCII character is an uppercase letter, converts it to lowercase. Otherwise returns the original value.

\since This function is available since SDL 2.0.4.

SDL_TOUCH_DEVICE_DIRECT sdl2

 

SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE sdl2

touch screen with window-relative coordinates *

SDL_TOUCH_DEVICE_INDIRECT_RELATIVE sdl2

trackpad with absolute device coordinates *

SDL_TOUCH_DEVICE_INVALID sdl2

 

SDL_TOUCH_MOUSEID sdl2

Used as the device ID for mouse events simulated with touch input *

SDL_toupper sdl2

If the given ASCII character is a lowercase letter, converts it to uppercase. Otherwise returns the original value.

\since This function is available since SDL 2.0.4.

SDL_TRUE sdl2

 

SDL_trunc sdl2

Round to nearest integral value, towards zero.

\since This function is available since SDL 2.0.14.

SDL_truncf sdl2

Round to nearest integral value, towards zero.

\since This function is available since SDL 2.0.14.

SDL_TryLockMutex sdl2

Try to lock a mutex without blocking.

This works just like SDL_LockMutex(), but if the mutex is not available, this function returns SDL_MUTEX_TIMEDOUT immediately.

This technique is useful if you need exclusive access to a resource but don't want to wait for it, and will return to it to try again later.

\param mutex the mutex to try to lock \returns 0, SDL_MUTEX_TIMEDOUT, or -1 on error; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

SDL_TTF_MAJOR_VERSION sdl2_ttf

Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *

SDL_TTF_MINOR_VERSION sdl2_ttf

 

SDL_TTF_PATCHLEVEL sdl2_ttf

 

SDL_TTF_VERSION sdl2_ttf

 

SDL_TTF_VERSION_ATLEAST sdl2_ttf

This macro will evaluate to true if compiled with SDL_ttf at least X.Y.Z.

SDL_UnionFRect sdl2

Calculate the union of two rectangles with float precision.

\param A an SDL_FRect structure representing the first rectangle \param B an SDL_FRect structure representing the second rectangle \param result an SDL_FRect structure filled in with the union of rectangles `A` and `B`

\since This function is available since SDL 2.0.22.

SDL_UnionRect sdl2

Calculate the union of two rectangles.

SDL_UnloadObject sdl2

Unload a shared object from memory.

\param handle a valid shared object handle returned by SDL_LoadObject()

\since This function is available since SDL 2.0.0.

\sa SDL_LoadFunction \sa SDL_LoadObject

SDL_UnlockAudio sdl2

This function is a legacy means of unlocking the audio device.

New programs might want to use SDL_UnlockAudioDevice() instead. This function is equivalent to calling...

```c SDL_UnlockAudioDevice(1); ```

...and is only useful if you used the legacy SDL_OpenAudio() function.

\since This function is available since SDL 2.0.0.

\sa SDL_LockAudio \sa SDL_UnlockAudioDevice

SDL_UnlockAudioDevice sdl2

Use this function to unlock the audio callback function for a specified device.

This function should be paired with a previous SDL_LockAudioDevice() call.

\param dev the ID of the device to be unlocked

\since This function is available since SDL 2.0.0.

\sa SDL_LockAudioDevice

SDL_UnlockJoysticks sdl2

Unlocking for multi-threaded access to the joystick API

If you are using the joystick API or handling events from multiple threads you should use these locking functions to protect access to the joysticks.

In particular, you are guaranteed that the joystick list won't change, so the API functions that take a joystick index will be valid, and joystick and game controller events will not be delivered.

\since This function is available since SDL 2.0.7.

SDL_UnlockMutex sdl2

Unlock the mutex.

It is legal for the owning thread to lock an already-locked mutex. It must unlock it the same number of times before it is actually made available for other threads in the system (this is known as a "recursive mutex").

It is an error to unlock a mutex that has not been locked by the current thread, and doing so results in undefined behavior.

It is also an error to unlock a mutex that isn't locked at all.

\param mutex the mutex to unlock. \returns 0, or -1 on error.

\since This function is available since SDL 2.0.0.

SDL_UnlockSensors sdl2

 

SDL_UnlockSurface sdl2

SDL_LockSurface() *

SDL_UnlockTexture sdl2

Unlock a texture, uploading the changes to video memory, if needed.

SDL_LockTexture()

SDL_UpdateNVTexture sdl2

Update a rectangle within a planar NV12 or NV21 texture with new pixels.

You can use SDL_UpdateTexture() as long as your pixel data is a contiguous block of NV12/21 planes in the proper order, but this function is available if your pixel data is not contiguous.

SDL_UpdateTexture sdl2

Update the given texture rectangle with new pixel data.

texture The texture to update rect A pointer to the rectangle of pixels to update, or NULL to update the entire texture. pixels The raw pixel data. pitch The number of bytes between rows of pixel data.

0 on success, or -1 if the texture is not valid.

This is a fairly slow function.

SDL_UpdateWindowSurface sdl2

Copy the window surface to the screen.

0 on success, or -1 on error.

SDL_GetWindowSurface() SDL_UpdateWindowSurfaceRects()

SDL_UpdateWindowSurfaceRects sdl2

Copy a number of rectangles on the window surface to the screen.

0 on success, or -1 on error.

SDL_GetWindowSurface() SDL_UpdateWindowSurfaceRect()

SDL_UpdateYUVTexture sdl2

Update a rectangle within a planar YV12 or IYUV texture with new pixel data.

texture The texture to update rect A pointer to the rectangle of pixels to update, or NULL to update the entire texture. Yplane The raw pixel data for the Y plane. Ypitch The number of bytes between rows of pixel data for the Y plane. Uplane The raw pixel data for the U plane. Upitch The number of bytes between rows of pixel data for the U plane. Vplane The raw pixel data for the V plane. Vpitch The number of bytes between rows of pixel data for the V plane.

0 on success, or -1 if the texture is not valid.

You can use SDL_UpdateTexture() as long as your pixel data is a contiguous block of Y and U/V planes in the proper order, but this function is available if your pixel data is not contiguous.

SDL_UpperBlit sdl2

This is the public blit function, SDL_BlitSurface(), and it performs rectangle validation and clipping before passing it to SDL_LowerBlit()

SDL_UpperBlitScaled sdl2

This is the public scaled blit function, SDL_BlitScaled(), and it performs rectangle validation and clipping before passing it to SDL_LowerBlitScaled()

SDL_USEREVENT sdl2

Events SDL_USEREVENT through SDL_LASTEVENT are for your use, and should be allocated with SDL_RegisterEvents()

SDL_VERSION sdl2

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.

x An instance on TSDL_Version to fill with version data.

SDL_version SDL_GetVersion

SDL_VERSIONNUM sdl2

This macro turns the version numbers into a numeric value:

(1,2,3) -> (1203)

This assumes that there will never be more than 100 patchlevels.

SDL_VERSION_ATLEAST sdl2

This macro will evaluate to true if compiled with SDL at least X.Y.Z.

SDL_VideoInit sdl2

Initialize the video subsystem, optionally specifying a video driver.

driver_name Initialize a specific driver by name, or nil for the default video driver.

0 on success, -1 on error

This function initializes the video subsystem; setting up a connection to the window manager, etc, and determines the available display modes and pixel formats, but does not initialize a window or graphics mode.

SDL_VideoQuit()

SDL_VideoQuit sdl2

Shuts down the video subsystem.

function closes all windows, and restores the original video mode.

SDL_VideoInit()

SDL_VIRTUAL_JOYSTICK_DESC_VERSION sdl2

\brief The current version of the SDL_VirtualJoystickDesc structure

SDL_WaitEvent sdl2

Waits indefinitely for the next available event.

1, or 0 if there was an error while waiting for events.

event - If not nil, the next event is removed from the queue and stored in that area.

SDL_WaitEventTimeout sdl2

Waits until the specified timeout (in milliseconds) for the next available event.

1, or 0 if there was an error while waiting for events.

event - If not nil, the next event is removed from the queue and stored in that area.

SDL_WaitThread sdl2

Wait for a thread to finish.

The return code for the thread function is placed in the area pointed to by status, if status is not NULL.

SDL_WarpMouseGlobal sdl2

Move the mouse to the given position in global screen space.

This function generates a mouse motion event.

A failure of this function usually means that it is unsupported by a platform.

Note that this function will appear to succeed, but not actually move the mouse when used over Microsoft Remote Desktop.

\param x the x coordinate \param y the y coordinate \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.4.

\sa SDL_WarpMouseInWindow

SDL_WarpMouseInWindow sdl2

Move the mouse cursor to the given position within the window.

This function generates a mouse motion event if relative mode is not enabled. If relative mode is enabled, you can force mouse events for the warp by setting the SDL_HINT_MOUSE_RELATIVE_WARP_MOTION hint.

Note that this function will appear to succeed, but not actually move the mouse when used over Microsoft Remote Desktop.

\param window the window to move the mouse into, or NULL for the current mouse focus \param x the x coordinate within the window \param y the y coordinate within the window

\since This function is available since SDL 2.0.0.

\sa SDL_WarpMouseGlobal

SDL_WasInit sdl2

This function returns a mask of the specified subsystems which have previously been initialized.

If flags is 0, it returns a mask of all initialized subsystems.

SDL_WINDOWEVENT sdl2

Window events

SDL_WINDOWEVENT_CLOSE sdl2

< Window has lost keyboard focus *

SDL_WINDOWEVENT_DISPLAY_CHANGED sdl2

< The ICC profile of the window's display has changed. *

SDL_WINDOWEVENT_ENTER sdl2

< Window has been restored to normal size and position *

SDL_WINDOWEVENT_EXPOSED sdl2

< Window has been hidden *

SDL_WINDOWEVENT_FOCUS_GAINED sdl2

< Window has lost mouse focus *

SDL_WINDOWEVENT_FOCUS_LOST sdl2

< Window has gained keyboard focus *

SDL_WINDOWEVENT_HIDDEN sdl2

< Window has been shown *

SDL_WINDOWEVENT_HIT_TEST sdl2

< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) *

SDL_WINDOWEVENT_ICCPROF_CHANGED sdl2

< Window had a hit test that wasn't SDL_HITTEST_NORMAL. *

SDL_WINDOWEVENT_LEAVE sdl2

< Window has gained mouse focus *

SDL_WINDOWEVENT_MAXIMIZED sdl2

< Window has been minimized *

SDL_WINDOWEVENT_MINIMIZED sdl2

< The window size has changed; either as a result of an API call or through the system or user changing the window size. *

SDL_WINDOWEVENT_MOVED sdl2

< Window has been exposed and should be redrawn *

SDL_WINDOWEVENT_NONE sdl2

 

SDL_WINDOWEVENT_RESIZED sdl2

< Window has been moved to data1; data2 *

SDL_WINDOWEVENT_RESTORED sdl2

< Window has been maximized *

SDL_WINDOWEVENT_SHOWN sdl2

< Never used *

SDL_WINDOWEVENT_SIZE_CHANGED sdl2

< Window has been resized to data1xdata2 *

SDL_WINDOWEVENT_TAKE_FOCUS sdl2

< The window manager requests that the window be closed *

SDL_WINDOWPOS_CENTERED sdl2

 

SDL_WINDOWPOS_CENTERED_DISPLAY sdl2

 

SDL_WINDOWPOS_CENTERED_MASK sdl2

Used to indicate that the window position should be centered.

SDL_WINDOWPOS_ISCENTERED sdl2

 

SDL_WINDOWPOS_ISUNDEFINED sdl2

 

SDL_WINDOWPOS_UNDEFINED sdl2

 

SDL_WINDOWPOS_UNDEFINED_DISPLAY sdl2

 

SDL_WINDOWPOS_UNDEFINED_MASK sdl2

Used to indicate that you don't care what the window position is.

SDL_WINDOW_ALLOW_HIGHDPI sdl2

< window not created by SDL *

SDL_WINDOW_ALWAYS_ON_TOP sdl2

< window has mouse captured (unrelated to MOUSE_GRABBED) *

SDL_WINDOW_BORDERLESS sdl2

< window is not visible *

SDL_WINDOW_FOREIGN sdl2

 

SDL_WINDOW_FULLSCREEN sdl2

 

SDL_WINDOW_FULLSCREEN_DESKTOP sdl2

< window has mouse focus *

SDL_WINDOW_HIDDEN sdl2

< window is visible *

SDL_WINDOW_INPUT_FOCUS sdl2

< window has grabbed mouse input *

SDL_WINDOW_INPUT_GRABBED sdl2

< window usable for Metal view *

SDL_WINDOW_KEYBOARD_GRABBED sdl2

< window should be treated as a popup menu *

SDL_WINDOW_LACKS_SHAPE sdl2

 

SDL_WINDOW_MAXIMIZED sdl2

< window is minimized *

SDL_WINDOW_METAL sdl2

< window usable for Vulkan surface *

SDL_WINDOW_MINIMIZED sdl2

< window can be resized *

SDL_WINDOW_MOUSE_CAPTURE sdl2

< window should be created in high-DPI mode if supported. On macOS NSHighResolutionCapable must be set true in the application's Info.plist for this to have any effect. *

SDL_WINDOW_MOUSE_FOCUS sdl2

< window has input focus *

SDL_WINDOW_MOUSE_GRABBED sdl2

< window is maximized *

SDL_WINDOW_OPENGL sdl2

< fullscreen window *

SDL_WINDOW_POPUP_MENU sdl2

< window should be treated as a tooltip *

SDL_WINDOW_RESIZABLE sdl2

< no window decoration *

SDL_WINDOW_SHOWN sdl2

< window usable with OpenGL context *

SDL_WINDOW_SKIP_TASKBAR sdl2

< window should always be above others *

SDL_WINDOW_TOOLTIP sdl2

< window should be treated as a utility window *

SDL_WINDOW_UTILITY sdl2

< window should not be added to the taskbar *

SDL_WINDOW_VULKAN sdl2

< window has grabbed keyboard input *

SDL_WriteBE16 sdl2

 

SDL_WriteBE32 sdl2

 

SDL_WriteBE64 sdl2

 

SDL_WriteLE16 sdl2

 

SDL_WriteLE32 sdl2

 

SDL_WriteLE64 sdl2

 

SDL_WriteU8 sdl2

Write endian functions

Write an item of native format to the specified endianness.

SDL_YUV_CONVERSION_AUTOMATIC sdl2

< BT.709 *

SDL_YUV_CONVERSION_BT601 sdl2

< Full range JPEG *

SDL_YUV_CONVERSION_BT709 sdl2

< BT.601 (the default) *

SDL_YUV_CONVERSION_JPEG sdl2

 

ShapeModeBinarizeAlpha sdl2

\brief A binarized alpha cutoff with a given integer value. *

ShapeModeColorKey sdl2

\brief A color key is applied. *

ShapeModeDefault sdl2

\brief The default mode, a binarized alpha cutoff of 1. *

ShapeModeReverseBinarizeAlpha sdl2

\brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. *

shrinkSurface sdl2_gfx

Shrinking functions

SMOOTHING_OFF sdl2_gfx

! \brief Disable anti-aliasing (no smoothing).

SMOOTHING_ON sdl2_gfx

! \brief Enable anti-aliasing (smoothing).

stringColor sdl2_gfx

 

stringRGBA sdl2_gfx

 

TAndroidIO sdl2

TAndroidIO = record fileNameRef: Pointer; inputStreamRef: Pointer; readableByteChannelRef: Pointer; readMethod: Pointer; assetFileDescriptorRef: Pointer; position: LongInt; size: LongInt; offset: LongInt; fd: cint32; end;

TClose sdl2

Close and free an allocated SDL_RWops structure.

0 if successful or -1 on write error when flushing data.

texturedPolygon sdl2_gfx

Textured Polygon

TFPSManager sdl2_gfx

! \brief Structure holding the state and timing information of the framerate controller.

THat sdl2

Get the SDL joystick layer binding for this controller button/axis mapping

thickLineColor sdl2_gfx

Thick Line

thickLineRGBA sdl2_gfx

 

TIMG_InitFlags sdl2_image

 

TIPaddress sdl2_net

 

TKeyStateArr sdl2

 

TMem sdl2

 

TMix_Channel_Finished sdl2_mixer

 

TMix_Chunk sdl2_mixer

 

TMix_EffectDone_t sdl2_mixer

 

TMix_EffectFunc_t sdl2_mixer

 

TMix_Fading sdl2_mixer

 

TMix_Func sdl2_mixer

 

TMIX_InitFlags sdl2_mixer

 

TMix_Music sdl2_mixer

 

TMix_MusicType sdl2_mixer

 

TMix_Music_Finished sdl2_mixer

 

TMix_SoundFunc sdl2_mixer

 

TRead sdl2

Read up to maxnum objects each of size size from the data stream to the area pointed at by ptr.

the number of objects read, or 0 at error or end of file.

trigonColor sdl2_gfx

Trigon

trigonRGBA sdl2_gfx

 

TRumbleFunc sdl2

 

TRumbleTriggersFunc sdl2

 

TSDLNet_GenericSocket sdl2_net

 

TSDLNet_SocketSet sdl2_net

 

TSDLNet_Version sdl2_net

 

TSDL_ArrayOrder sdl2

 

TSDL_Atomic sdl2

 

TSDL_AudioCallback sdl2

 

TSDL_AudioCVT sdl2

\struct SDL_AudioCVT \brief A structure to hold a set of audio conversion filters and buffers.

Note that various parts of the conversion pipeline can take advantage of SIMD operations (like SSE2, for example). SDL_AudioCVT doesn't require you to pass it aligned data, but can possibly run much faster if you set both its (buf) field to a pointer that is aligned to 16 bytes, and its (len) field to something that's a multiple of 16, if possible.

TSDL_AudioDeviceEvent sdl2

 

TSDL_AudioDeviceID sdl2

 

TSDL_AudioFilter sdl2

 

TSDL_AudioFormat sdl2

 

TSDL_AudioSpec sdl2

 

TSDL_AudioStatus sdl2

 

TSDL_AudioStream sdl2

 

TSDL_BitmapOrder sdl2

 

TSDL_BlendFactor sdl2

 

TSDL_BlendMode sdl2

 

TSDL_BlendOperation sdl2

 

TSDL_Blit sdl2

 

TSDL_BlitMap sdl2

 

TSDL_Bool sdl2

 

TSDL_calloc_func sdl2

 

TSDL_Color sdl2

 

TSDL_Colour sdl2

 

TSDL_CommonEvent sdl2

 

TSDL_ControllerAxisEvent sdl2

 

TSDL_ControllerButtonEvent sdl2

 

TSDL_ControllerDeviceEvent sdl2

 

TSDL_ControllerSensorEvent sdl2

 

TSDL_ControllerTouchpadEvent sdl2

 

TSDL_DisplayEvent sdl2

 

TSDL_DisplayEventID sdl2

 

TSDL_DisplayMode sdl2

 

TSDL_DisplayOrientation sdl2

 

TSDL_DollarGestureEvent sdl2

 

TSDL_DropEvent sdl2

 

TSDL_Error sdl2

 

TSDL_ErrorCode sdl2

 

TSDL_Event sdl2

 

TSDL_EventAction sdl2

 

TSDL_EventFilter sdl2

 

TSDL_EventType sdl2

 

TSDL_Finger sdl2

 

TSDL_FingerID sdl2

 

TSDL_FlashOperation sdl2

 

TSDL_FPoint sdl2

 

TSDL_FRect sdl2

 

TSDL_free_func sdl2

 

TSDL_GameController sdl2

 

TSDL_GameControllerAxis sdl2

 

TSDL_GameControllerBindType sdl2

 

TSDL_GameControllerButton sdl2

 

TSDL_GameControllerButtonBind sdl2

 

TSDL_GameControllerType sdl2

 

TSDL_GestureID sdl2

 

TSDL_GLattr sdl2

 

TSDL_GLContext sdl2

 

TSDL_GLcontextFlag sdl2

 

TSDL_GLcontextReleaseFlag sdl2

 

TSDL_GLContextResetNotification sdl2

 

TSDL_GLprofile sdl2

 

TSDL_GUID sdl2

 

TSDL_Haptic sdl2

 

TSDL_HapticCondition sdl2

 

TSDL_HapticConstant sdl2

 

TSDL_HapticCustom sdl2

 

TSDL_HapticDirection sdl2

 

TSDL_HapticEffect sdl2

 

TSDL_HapticLeftRight sdl2

\brief A structure containing a template for a Left/Right effect.

This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect.

The Left/Right effect is used to explicitly control the large and small motors, commonly found in modern game controllers. The small (right) motor is high frequency, and the large (left) motor is low frequency.

\sa SDL_HAPTIC_LEFTRIGHT \sa SDL_HapticEffect

TSDL_HapticPeriodic sdl2

 

TSDL_HapticRamp sdl2

 

TSDL_hid_device sdl2

 

TSDL_hid_device_info sdl2

\brief Information about a connected HID device

TSDL_HintCallback sdl2

 

TSDL_HintPriority sdl2

 

TSDL_HitTest sdl2

 

TSDL_HitTestResult sdl2

 

TSDL_iconv sdl2

 

TSDL_Init sdl2

 

TSDL_JoyAxisEvent sdl2

 

TSDL_JoyBallEvent sdl2

 

TSDL_JoyBatteryEvent sdl2

 

TSDL_JoyButtonEvent sdl2

 

TSDL_JoyDeviceEvent sdl2

 

TSDL_JoyHatEvent sdl2

 

TSDL_Joystick sdl2

 

TSDL_JoystickGUID sdl2

 

TSDL_JoystickID sdl2

 

TSDL_JoystickPowerLevel sdl2

 

TSDL_JoystickType sdl2

 

TSDL_KeyboardEvent sdl2

 

TSDL_KeyCode sdl2

 

TSDL_KeyMod sdl2

 

TSDL_Keysym sdl2

 

TSDL_Locale sdl2

 

TSDL_LogCategory sdl2

 

TSDL_LogOutputFunction sdl2

 

TSDL_LogPriority sdl2

 

TSDL_malloc_func sdl2

 

TSDL_MessageBoxButtonData sdl2

 

TSDL_MessageBoxButtonFlags sdl2

 

TSDL_MessageBoxColor sdl2

 

TSDL_MessageBoxColorScheme sdl2

 

TSDL_MessageBoxColorType sdl2

 

TSDL_MessageBoxData sdl2

 

TSDL_MessageBoxFlags sdl2

 

TSDL_MouseButtonEvent sdl2

 

TSDL_MouseMotionEvent sdl2

 

TSDL_MouseWheelDirection sdl2

 

TSDL_MouseWheelEvent sdl2

 

TSDL_MultiGestureEvent sdl2

 

TSDL_PackedLayout sdl2

 

TSDL_PackOrder sdl2

 

TSDL_Palette sdl2

 

TSDL_PixelFormat sdl2

 

TSDL_PixelType sdl2

 

TSDL_Point sdl2

 

TSDL_PowerState sdl2

 

TSDL_QuitEvent sdl2

 

TSDL_realloc_func sdl2

 

TSDL_Rect sdl2

 

TSDL_Renderer sdl2

 

TSDL_RendererFlags sdl2

 

TSDL_RendererInfo sdl2

 

TSDL_RWops sdl2

 

TSDL_ScaleMode sdl2

 

TSDL_ScanCode sdl2

 

TSDL_Sensor sdl2

 

TSDL_SensorEvent sdl2

 

TSDL_SensorID sdl2

 

TSDL_SensorType sdl2

 

TSDL_SpinLock sdl2

 

TSDL_Surface sdl2

 

TSDL_SystemCursor sdl2

 

TSDL_SysWMEvent sdl2

 

TSDL_SysWMinfo sdl2

 

TSDL_SysWMmsg sdl2

 

TSDL_SYSWM_TYPE sdl2

These are the various supported windowing subsystems

TSDL_TextEditingEvent sdl2

 

TSDL_TextEditingExtEvent sdl2

 

TSDL_TextInputEvent sdl2

 

TSDL_Texture sdl2

 

TSDL_TextureAccess sdl2

 

TSDL_TextureModulate sdl2

 

TSDL_Thread sdl2

 

TSDL_ThreadFunction sdl2

 

TSDL_threadID sdl2

 

TSDL_ThreadPriority sdl2

 

TSDL_TimerCallback sdl2

 

TSDL_TimerID sdl2

 

TSDL_TLSID sdl2

 

TSDL_TouchDeviceType sdl2

 

TSDL_TouchFingerEvent sdl2

 

TSDL_TouchID sdl2

 

TSDL_UserEvent sdl2

 

TSDL_Version sdl2

 

TSDL_Vertex sdl2

 

TSDL_VirtualJoystickDesc sdl2

 

TSDL_Window sdl2

 

TSDL_WindowEvent sdl2

 

TSDL_WindowEventID sdl2

 

TSDL_WindowFlags sdl2

 

TSDL_WindowShapeMode sdl2

 

TSDL_WindowShapeParams sdl2

 

TSDL_YUV_CONVERSION_MODE sdl2

\brief The formula used for converting between YUV and RGB

TSeek sdl2

Seek to offset relative to whence, one of stdio's whence values: RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END

the final offset in the data stream, or -1 on error.

TSendEffectFunc sdl2

 

TSetLEDFunc sdl2

 

TSetPlayerIndexProc sdl2

 

TSize sdl2

Return the size of the file in this rwops, or -1 if unknown

TStdio sdl2

 

TTCPSocket sdl2_net

 

TTF_ByteSwappedUNICODE sdl2_ttf

Tell SDL_ttf whether UNICODE text is generally byteswapped.

A UNICODE BOM character in a string will override this setting for the remainder of that string.

\param swapped boolean to indicate whether text is byteswapped

\since This function is available since SDL_ttf 2.0.12.

TTF_CloseFont sdl2_ttf

Dispose of a previously-created font.

Call this when done with a font. This function will free any resources associated with it. It is safe to call this function on nil, for example on the result of a failed call to TTF_OpenFont().

The font is not valid after being passed to this function. String pointers from functions that return information on this font, such as TTF_FontFaceFamilyName() and TTF_FontFaceStyleName(), are no longer valid after this call, as well.

\param font the font to dispose of.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_OpenFontIndexDPIRW \sa TTF_OpenFontRW \sa TTF_OpenFontDPI \sa TTF_OpenFontDPIRW \sa TTF_OpenFontIndex \sa TTF_OpenFontIndexDPI \sa TTF_OpenFontIndexDPIRW \sa TTF_OpenFontIndexRW

TTF_DIRECTION_BTT sdl2_ttf

Top to Bottom

TTF_DIRECTION_LTR sdl2_ttf

 

TTF_DIRECTION_RTL sdl2_ttf

Left to Right

TTF_DIRECTION_TTB sdl2_ttf

Right to Left

TTF_FontAscent sdl2_ttf

Query the offset from the baseline to the top of a font.

This is a positive value, relative to the baseline.

\param font the font to query. \returns the font's ascent.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontDescent sdl2_ttf

Query the offset from the baseline to the bottom of a font.

This is a negative value, relative to the baseline.

\param font the font to query. \returns the font's descent.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontFaceFamilyName sdl2_ttf

Query a font's family name.

This string is dictated by the contents of the font file.

Note that the returned string is to internal storage, and should not be modifed or free'd by the caller. The string becomes invalid, with the rest of the font, when `font` is handed to TTF_CloseFont().

\param font the font to query. \returns the font's family name.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontFaceIsFixedWidth sdl2_ttf

Query whether a font is fixed-width.

A "fixed-width" font means all glyphs are the same width across; a lowercase 'i' will be the same size across as a capital 'W', for example. This is common for terminals and text editors, and other apps that treat text as a grid. Most other things (WYSIWYG word processors, web pages, etc) are more likely to not be fixed-width in most cases.

\param font the font to query. \returns non-zero if fixed-width, zero if not.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontFaces sdl2_ttf

Query the number of faces of a font.

\param font the font to query. \returns the number of FreeType font faces.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontFaceStyleName sdl2_ttf

Query a font's style name.

This string is dictated by the contents of the font file.

Note that the returned string is to internal storage, and should not be modifed or free'd by the caller. The string becomes invalid, with the rest of the font, when `font` is handed to TTF_CloseFont().

\param font the font to query. \returns the font's style name.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontHeight sdl2_ttf

Query the total height of a font.

This is usually equal to point size.

\param font the font to query. \returns the font's height.

\since This function is available since SDL_ttf 2.0.12.

TTF_FontLineSkip sdl2_ttf

Query the recommended spacing between lines of text for a font.

\param font the font to query. \returns the font's recommended spacing.

\since This function is available since SDL_ttf 2.0.12.

TTF_GetError sdl2_ttf

Get last SDL_ttf error

\sa TTF_SetError

TTF_GetFontHinting sdl2_ttf

Query a font's current FreeType hinter setting.

The hinter setting is a single value:

- `TTF_HINTING_NORMAL` - `TTF_HINTING_LIGHT` - `TTF_HINTING_MONO` - `TTF_HINTING_NONE` - `TTF_HINTING_LIGHT_SUBPIXEL` (available in SDL_ttf 2.0.18 and later)

\param font the font to query. \returns the font's current hinter value.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_SetFontHinting

TTF_GetFontKerning sdl2_ttf

Query whether or not kerning is allowed for a font.

\param font the font to query. \returns non-zero if kerning is enabled, zero otherwise.

\since This function is available since SDL_ttf 2.0.12.

TTF_GetFontKerningSize sdl2_ttf

Query the kerning size of two glyphs indices.

\deprecated This function accidentally requires FreeType font indexes, not codepoints, which we don't expose through this API, so it could give wildly incorrect results, especially with non-ASCII values. Going forward, please use TTF_GetFontKerningSizeGlyphs() instead, which does what you probably expected this function to do.

\param font the font to query. \param prev_index the font index, NOT codepoint, of the previous character. \param index the font index, NOT codepoint, of the current character. \returns The kerning size between the two specified characters, in pixels, or -1 on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_GetFontKerningSizeGlyphs

TTF_GetFontKerningSizeGlyphs sdl2_ttf

Query the kerning size of two 16-bit glyphs.

Note that this version of the function takes 16-bit character codes, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_GetFontKerningSizeGlyphs32() instead, which offers the same functionality but takes a 32-bit codepoints instead.

The only reason to use this function is that it was available since the beginning of time, more or less.

\param font the font to query. \param previous_ch the previous character's code, 16 bits. \param ch the current character's code, 16 bits. \returns The kerning size between the two specified characters, in pixels, or -1 on error.

\since This function is available since SDL_ttf 2.0.14.

\sa TTF_GetFontKerningSizeGlyphs32

TTF_GetFontKerningSizeGlyphs32 sdl2_ttf

Query the kerning size of two 32-bit glyphs.

This is the same as TTF_GetFontKerningSizeGlyphs(), but takes 32-bit characters instead of 16-bit, and thus can manage a larger range. If you are sure you'll have an SDL_ttf that's version 2.0.18 or newer, there's no reason not to use this function exclusively.

\param font the font to query. \param previous_ch the previous character's code, 32 bits. \param ch the current character's code, 32 bits. \returns The kerning size between the two specified characters, in pixels, or -1 on error.

\since This function is available since SDL_ttf 2.0.18.

TTF_GetFontOutline sdl2_ttf

Query a font's current outline.

\param font the font to query. \returns the font's current outline value.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_SetFontOutline

TTF_GetFontSDF sdl2_ttf

Const before type ignored

TTF_GetFontStyle sdl2_ttf

Query a font's current style.

The font styles are a set of bit flags, OR'd together:

- `TTF_STYLE_NORMAL` (is zero) - `TTF_STYLE_BOLD` - `TTF_STYLE_ITALIC` - `TTF_STYLE_UNDERLINE` - `TTF_STYLE_STRIKETHROUGH`

\param font the font to query. \returns the current font style, as a set of bit flags.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_SetFontStyle

TTF_GetFontWrappedAlign sdl2_ttf

Query a font's current wrap alignment option.

The wrap alignment option can be one of the following:

- `TTF_WRAPPED_ALIGN_LEFT` - `TTF_WRAPPED_ALIGN_CENTER` - `TTF_WRAPPED_ALIGN_RIGHT`

\param font the font to query. \returns the font's current wrap alignment option.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_SetFontWrappedAlign

TTF_GetFreeTypeVersion sdl2_ttf

Query the version of the FreeType library in use.

TTF_Init() should be called before calling this function.

\param major to be filled in with the major version number. Can be nil. \param minor to be filled in with the minor version number. Can be nil. \param patch to be filled in with the param version number. Can be nil.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_Init

TTF_GetHarfBuzzVersion sdl2_ttf

Query the version of the HarfBuzz library in use.

If HarfBuzz is not available, the version reported is 0.0.0.

\param major to be filled in with the major version number. Can be nil. \param minor to be filled in with the minor version number. Can be nil. \param patch to be filled in with the param version number. Can be nil.

\since This function is available since SDL_ttf 2.0.18.

TTF_GlyphIsProvided sdl2_ttf

Check whether a glyph is provided by the font for a 16-bit codepoint.

Note that this version of the function takes a 16-bit character code, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_GlyphIsProvided32() instead, which offers the same functionality but takes a 32-bit codepoint instead.

The only reason to use this function is that it was available since the beginning of time, more or less.

\param font the font to query. \param ch the character code to check. \returns non-zero if font provides a glyph for this character, zero if not.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_GlyphIsProvided32

TTF_GlyphIsProvided32 sdl2_ttf

Check whether a glyph is provided by the font for a 32-bit codepoint.

This is the same as TTF_GlyphIsProvided(), but takes a 32-bit character instead of 16-bit, and thus can query a larger range. If you are sure you'll have an SDL_ttf that's version 2.0.18 or newer, there's no reason not to use this function exclusively.

\param font the font to query. \param ch the character code to check. \returns non-zero if font provides a glyph for this character, zero if not.

\since This function is available since SDL_ttf 2.0.18.

TTF_GlyphMetrics sdl2_ttf

Query the metrics (dimensions) of a font's 16-bit glyph.

To understand what these metrics mean, here is a useful link:

https://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html

Note that this version of the function takes a 16-bit character code, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_GlyphMetrics32() instead, which offers the same functionality but takes a 32-bit codepoint instead.

The only reason to use this function is that it was available since the beginning of time, more or less.

\param font the font to query. \param ch the character code to check.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_GlyphMetrics32

TTF_GlyphMetrics32 sdl2_ttf

Query the metrics (dimensions) of a font's 32-bit glyph.

To understand what these metrics mean, here is a useful link:

https://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html

This is the same as TTF_GlyphMetrics(), but takes a 32-bit character instead of 16-bit, and thus can query a larger range. If you are sure you'll have an SDL_ttf that's version 2.0.18 or newer, there's no reason not to use this function exclusively.

\param font the font to query. \param ch the character code to check.

\since This function is available since SDL_ttf 2.0.18.

TTF_HINTING_LIGHT sdl2_ttf

 

TTF_HINTING_LIGHT_SUBPIXEL sdl2_ttf

 

TTF_HINTING_MONO sdl2_ttf

 

TTF_HINTING_NONE sdl2_ttf

 

TTF_HINTING_NORMAL sdl2_ttf

Hinting flags

TTF_Init sdl2_ttf

Initialize SDL_ttf.

You must successfully call this function before it is safe to call any other function in this library, with one exception: a human-readable error message can be retrieved from TTF_GetError() if this function fails.

SDL must be initialized before calls to functions in this library, because this library uses utility functions from the SDL library.

It is safe to call this more than once; the library keeps a counter of init calls, and decrements it on each call to TTF_Quit, so you must pair your init and quit calls.

\returns 0 on success, -1 on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_Quit

TTF_Linked_Version sdl2_ttf

Const before type ignored

TTF_MAJOR_VERSION sdl2_ttf

Backwards compatibility *

TTF_MeasureText sdl2_ttf

Calculate how much of a Latin1 string will fit in a given width.

This reports the number of characters that can be rendered before reaching `measure_width`.

This does not need to render the string to do this calculation.

You almost certainly want TTF_MeasureUTF8() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

\param font the font to query. \param text text to calculate, in Latin1 encoding. \param measure_width maximum width, in pixels, available for the string. \param count on return, filled with number of characters that can be rendered. \param extent on return, filled with latest calculated width. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_MeasureText \sa TTF_MeasureUTF8 \sa TTF_MeasureUNICODE

TTF_MeasureUNICODE sdl2_ttf

Calculate how much of a UCS-2 string will fit in a given width.

This reports the number of characters that can be rendered before reaching `measure_width`.

This does not need to render the string to do this calculation.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

\param font the font to query. \param text text to calculate, in UCS-2 encoding. \param measure_width maximum width, in pixels, available for the string. \param count on return, filled with number of characters that can be rendered. \param extent on return, filled with latest calculated width. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_MeasureText \sa TTF_MeasureUTF8 \sa TTF_MeasureUNICODE

TTF_MeasureUTF8 sdl2_ttf

Calculate how much of a UTF-8 string will fit in a given width.

This reports the number of characters that can be rendered before reaching `measure_width`.

This does not need to render the string to do this calculation.

\param font the font to query. \param text text to calculate, in UTF-8 encoding. \param measure_width maximum width, in pixels, available for the string. \param count on return, filled with number of characters that can be rendered. \param extent on return, filled with latest calculated width. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_MeasureText \sa TTF_MeasureUTF8 \sa TTF_MeasureUNICODE

TTF_MINOR_VERSION sdl2_ttf

 

TTF_OpenFont sdl2_ttf

Create a font from a file, using a specified point size.

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param file path to font file. \param ptsize point size to use for the newly-opened font. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_CloseFont

TTF_OpenFontDPI sdl2_ttf

Create a font from a file, using target resolutions (in DPI).

DPI scaling only applies to scalable fonts (e.g. TrueType).

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param file path to font file. \param ptsize point size to use for the newly-opened font. \param hdpi the target horizontal DPI. \param vdpi the target vertical DPI. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_CloseFont

TTF_OpenFontDPIRW sdl2_ttf

Opens a font from an SDL_RWops with target resolutions (in DPI).

DPI scaling only applies to scalable fonts (e.g. TrueType).

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

If `freesrc` is non-zero, the RWops will be closed before returning, whether this function succeeds or not. SDL_ttf reads everything it needs from the RWops during this call in any case.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param src an SDL_RWops to provide a font file's data. \param freesrc non-zero to close the RWops before returning, zero to leave it open. \param ptsize point size to use for the newly-opened font. \param hdpi the target horizontal DPI. \param vdpi the target vertical DPI. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_CloseFont

TTF_OpenFontIndex sdl2_ttf

Create a font from a file, using a specified face index.

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

Some fonts have multiple "faces" included. The index specifies which face to use from the font file. Font files with only one face should specify zero for the index.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param file path to font file. \param ptsize point size to use for the newly-opened font. \param index index of the face in the font file. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_CloseFont

TTF_OpenFontIndexDPI sdl2_ttf

Create a font from a file, using target resolutions (in DPI).

DPI scaling only applies to scalable fonts (e.g. TrueType).

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

Some fonts have multiple "faces" included. The index specifies which face to use from the font file. Font files with only one face should specify zero for the index.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param file path to font file. \param ptsize point size to use for the newly-opened font. \param index index of the face in the font file. \param hdpi the target horizontal DPI. \param vdpi the target vertical DPI. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_CloseFont

TTF_OpenFontIndexDPIRW sdl2_ttf

Opens a font from an SDL_RWops with target resolutions (in DPI).

DPI scaling only applies to scalable fonts (e.g. TrueType).

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

If `freesrc` is non-zero, the RWops will be closed before returning, whether this function succeeds or not. SDL_ttf reads everything it needs from the RWops during this call in any case.

Some fonts have multiple "faces" included. The index specifies which face to use from the font file. Font files with only one face should specify zero for the index.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param src an SDL_RWops to provide a font file's data. \param freesrc non-zero to close the RWops before returning, zero to leave it open. \param ptsize point size to use for the newly-opened font. \param index index of the face in the font file. \param hdpi the target horizontal DPI. \param vdpi the target vertical DPI. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_CloseFont

TTF_OpenFontIndexRW sdl2_ttf

Create a font from an SDL_RWops, using a specified face index.

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

If `freesrc` is non-zero, the RWops will be closed before returning, whether this function succeeds or not. SDL_ttf reads everything it needs from the RWops during this call in any case.

Some fonts have multiple "faces" included. The index specifies which face to use from the font file. Font files with only one face should specify zero for the index.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param src an SDL_RWops to provide a font file's data. \param freesrc non-zero to close the RWops before returning, zero to leave it open. \param ptsize point size to use for the newly-opened font. \param index index of the face in the font file. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_CloseFont

TTF_OpenFontRW sdl2_ttf

Create a font from an SDL_RWops, using a specified point size.

Some .fon fonts will have several sizes embedded in the file, so the point size becomes the index of choosing which size. If the value is too high, the last indexed size will be the default.

If `freesrc` is non-zero, the RWops will be closed before returning, whether this function succeeds or not. SDL_ttf reads everything it needs from the RWops during this call in any case.

When done with the returned TTF_Font, use TTF_CloseFont() to dispose of it.

\param src an SDL_RWops to provide a font file's data. \param freesrc non-zero to close the RWops before returning, zero to leave it open. \param ptsize point size to use for the newly-opened font. \returns a valid TTF_Font, or nil on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_CloseFont

TTF_PATCHLEVEL sdl2_ttf

 

TTF_Quit sdl2_ttf

Deinitialize SDL_ttf.

You must call this when done with the library, to free internal resources. It is safe to call this when the library isn't initialized, as it will just return immediately.

Once you have as many quit calls as you have had successful calls to TTF_Init, the library will actually deinitialize.

Please note that this does not automatically close any fonts that are still open at the time of deinitialization, and it is possibly not safe to close them afterwards, as parts of the library will no longer be initialized to deal with it. A well-written program should call TTF_CloseFont() on any open fonts before calling this function!

\since This function is available since SDL_ttf 2.0.12.

TTF_RenderGlyph32_Blended sdl2_ttf

Render a single 32-bit glyph at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

This is the same as TTF_RenderGlyph_Blended(), but takes a 32-bit character instead of 16-bit, and thus can render a larger range. If you are sure you'll have an SDL_ttf that's version 2.0.18 or newer, there's no reason not to use this function exclusively.

You can render at other quality levels with TTF_RenderGlyph32_Solid, TTF_RenderGlyph32_Shaded, and TTF_RenderGlyph32_LCD.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderGlyph32_Solid \sa TTF_RenderGlyph32_Shaded \sa TTF_RenderGlyph32_LCD

TTF_RenderGlyph32_LCD sdl2_ttf

Render a single 32-bit glyph at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

This is the same as TTF_RenderGlyph_LCD(), but takes a 32-bit character instead of 16-bit, and thus can render a larger range. Between the two, you should always use this function.

You can render at other quality levels with TTF_RenderGlyph32_Solid, TTF_RenderGlyph32_Shaded, and TTF_RenderGlyph32_Blended.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderGlyph32_Solid \sa TTF_RenderGlyph32_Shaded \sa TTF_RenderGlyph32_Blended

TTF_RenderGlyph32_Shaded sdl2_ttf

Render a single 32-bit glyph at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

This is the same as TTF_RenderGlyph_Shaded(), but takes a 32-bit character instead of 16-bit, and thus can render a larger range. If you are sure you'll have an SDL_ttf that's version 2.0.18 or newer, there's no reason not to use this function exclusively.

You can render at other quality levels with TTF_RenderGlyph32_Solid, TTF_RenderGlyph32_Blended, and TTF_RenderGlyph32_LCD.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderGlyph32_Solid \sa TTF_RenderGlyph32_Blended \sa TTF_RenderGlyph32_LCD

TTF_RenderGlyph32_Solid sdl2_ttf

Render a single 32-bit glyph at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

This is the same as TTF_RenderGlyph_Solid(), but takes a 32-bit character instead of 16-bit, and thus can render a larger range. If you are sure you'll have an SDL_ttf that's version 2.0.18 or newer, there's no reason not to use this function exclusively.

You can render at other quality levels with TTF_RenderGlyph32_Shaded, TTF_RenderGlyph32_Blended, and TTF_RenderGlyph32_LCD.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderGlyph32_Shaded \sa TTF_RenderGlyph32_Blended \sa TTF_RenderGlyph32_LCD

TTF_RenderGlyph_Blended sdl2_ttf

Render a single 16-bit glyph at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

Note that this version of the function takes a 16-bit character code, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_RenderGlyph32_Blended() instead, which offers the same functionality but takes a 32-bit codepoint instead.

The only reason to use this function is that it was available since the beginning of time, more or less.

You can render at other quality levels with TTF_RenderGlyph_Solid, TTF_RenderGlyph_Shaded, and TTF_RenderGlyph_LCD.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderGlyph32_Blended

TTF_RenderGlyph_LCD sdl2_ttf

Render a single 16-bit glyph at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

Note that this version of the function takes a 16-bit character code, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_RenderGlyph32_LCD() instead, which offers the same functionality but takes a 32-bit codepoint instead.

This function only exists for consistency with the existing API at the time of its addition.

You can render at other quality levels with TTF_RenderGlyph_Solid, TTF_RenderGlyph_Shaded, and TTF_RenderGlyph_Blended.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderGlyph32_LCD

TTF_RenderGlyph_Shaded sdl2_ttf

Render a single 16-bit glyph at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

Note that this version of the function takes a 16-bit character code, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_RenderGlyph32_Shaded() instead, which offers the same functionality but takes a 32-bit codepoint instead.

The only reason to use this function is that it was available since the beginning of time, more or less.

You can render at other quality levels with TTF_RenderGlyph_Solid, TTF_RenderGlyph_Blended, and TTF_RenderGlyph_LCD.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderGlyph32_Shaded

TTF_RenderGlyph_Solid sdl2_ttf

Render a single 16-bit glyph at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

The glyph is rendered without any padding or centering in the X direction, and aligned normally in the Y direction.

Note that this version of the function takes a 16-bit character code, which covers the Basic Multilingual Plane, but is insufficient to cover the entire set of possible Unicode values, including emoji glyphs. You should use TTF_RenderGlyph32_Solid() instead, which offers the same functionality but takes a 32-bit codepoint instead.

The only reason to use this function is that it was available since the beginning of time, more or less.

You can render at other quality levels with TTF_RenderGlyph_Shaded, TTF_RenderGlyph_Blended, and TTF_RenderGlyph_LCD.

\param font the font to render with. \param ch the character to render. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderGlyph32_Solid

TTF_RenderText sdl2_ttf

For compatibility with previous versions, here are the old functions *

TTF_RenderText_Blended sdl2_ttf

Render Latin1 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderText_Blended_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You almost certainly want TTF_RenderUTF8_Blended() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Solid, TTF_RenderText_Blended, and TTF_RenderText_LCD.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Shaded \sa TTF_RenderUNICODE_Shaded

TTF_RenderText_Blended_Wrapped sdl2_ttf

Render word-wrapped Latin1 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You almost certainly want TTF_RenderUTF8_Blended_Wrapped() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Solid_Wrapped, TTF_RenderText_Shaded_Wrapped, and TTF_RenderText_LCD_Wrapped.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Blended_Wrapped \sa TTF_RenderUNICODE_Blended_Wrapped

TTF_RenderText_LCD sdl2_ttf

Render Latin1 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderText_LCD_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You almost certainly want TTF_RenderUTF8_LCD() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Solid, TTF_RenderText_Shaded, and TTF_RenderText_Blended.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUTF8_LCD \sa TTF_RenderUNICODE_LCD

TTF_RenderText_LCD_Wrapped sdl2_ttf

Render word-wrapped Latin1 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You almost certainly want TTF_RenderUTF8_LCD_Wrapped() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Solid_Wrapped, TTF_RenderText_Shaded_Wrapped, and TTF_RenderText_Blended_Wrapped.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUTF8_LCD_Wrapped \sa TTF_RenderUNICODE_LCD_Wrapped

TTF_RenderText_Shaded sdl2_ttf

Render Latin1 text at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderText_Shaded_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You almost certainly want TTF_RenderUTF8_Shaded() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Solid, TTF_RenderText_Blended, and TTF_RenderText_LCD.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Shaded \sa TTF_RenderUNICODE_Shaded

TTF_RenderText_Shaded_Wrapped sdl2_ttf

Render word-wrapped Latin1 text at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You almost certainly want TTF_RenderUTF8_Shaded_Wrapped() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Solid_Wrapped, TTF_RenderText_Blended_Wrapped, and TTF_RenderText_LCD_Wrapped.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Shaded_Wrapped \sa TTF_RenderUNICODE_Shaded_Wrapped

TTF_RenderText_Solid sdl2_ttf

Render Latin1 text at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderText_Solid_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You almost certainly want TTF_RenderUTF8_Solid() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Shaded, TTF_RenderText_Blended, and TTF_RenderText_LCD.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Solid \sa TTF_RenderUNICODE_Solid

TTF_RenderText_Solid_Wrapped sdl2_ttf

Render word-wrapped Latin1 text at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You almost certainly want TTF_RenderUTF8_Solid_Wrapped() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

You can render at other quality levels with TTF_RenderText_Shaded_Wrapped, TTF_RenderText_Blended_Wrapped, and TTF_RenderText_LCD_Wrapped.

\param font the font to render with. \param text text to render, in Latin1 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Solid_Wrapped \sa TTF_RenderUNICODE_Solid_Wrapped

TTF_RenderUNICODE sdl2_ttf

 

TTF_RenderUNICODE_Blended sdl2_ttf

Render UCS-2 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUNICODE_Blended_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Solid, TTF_RenderUNICODE_Shaded, and TTF_RenderUNICODE_LCD.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Blended

TTF_RenderUNICODE_Blended_Wrapped sdl2_ttf

Render word-wrapped UCS-2 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Solid_Wrapped, TTF_RenderUNICODE_Shaded_Wrapped, and TTF_RenderUNICODE_LCD_Wrapped.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Blended_Wrapped

TTF_RenderUNICODE_LCD sdl2_ttf

Render UCS-2 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUNICODE_LCD_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Solid, TTF_RenderUNICODE_Shaded, and TTF_RenderUNICODE_Blended.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUTF8_LCD

TTF_RenderUNICODE_LCD_Wrapped sdl2_ttf

Render word-wrapped UCS-2 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Solid_Wrapped, TTF_RenderUNICODE_Shaded_Wrapped, and TTF_RenderUNICODE_Blended_Wrapped.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUTF8_LCD_Wrapped

TTF_RenderUNICODE_Shaded sdl2_ttf

Render UCS-2 text at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUNICODE_Shaded_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Solid, TTF_RenderUNICODE_Blended, and TTF_RenderUNICODE_LCD.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Shaded

TTF_RenderUNICODE_Shaded_Wrapped sdl2_ttf

Render word-wrapped UCS-2 text at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Solid_Wrapped, TTF_RenderUNICODE_Blended_Wrapped, and TTF_RenderUNICODE_LCD_Wrapped.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Shaded_Wrapped

TTF_RenderUNICODE_Solid sdl2_ttf

Render UCS-2 text at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUNICODE_Solid_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Shaded, TTF_RenderUNICODE_Blended, and TTF_RenderUNICODE_LCD.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Solid

TTF_RenderUNICODE_Solid_Wrapped sdl2_ttf

Render word-wrapped UCS-2 text at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

You can render at other quality levels with TTF_RenderUNICODE_Shaded_Wrapped, TTF_RenderUNICODE_Blended_Wrapped, and TTF_RenderUNICODE_LCD_Wrapped.

\param font the font to render with. \param text text to render, in UCS-2 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Solid_Wrapped

TTF_RenderUTF8 sdl2_ttf

 

TTF_RenderUTF8_Blended sdl2_ttf

Render UTF-8 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUTF8_Blended_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid, TTF_RenderUTF8_Shaded, and TTF_RenderUTF8_LCD.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUNICODE_Blended

TTF_RenderUTF8_Blended_Wrapped sdl2_ttf

Render word-wrapped UTF-8 text at high quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, using alpha blending to dither the font with the given color. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid_Wrapped, TTF_RenderUTF8_Shaded_Wrapped, and TTF_RenderUTF8_LCD_Wrapped.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Solid_Wrapped \sa TTF_RenderUTF8_Shaded_Wrapped \sa TTF_RenderUTF8_LCD_Wrapped

TTF_RenderUTF8_LCD sdl2_ttf

Render UTF-8 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUTF8_LCD_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid, TTF_RenderUTF8_Shaded, and TTF_RenderUTF8_Blended.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUNICODE_LCD

TTF_RenderUTF8_LCD_Wrapped sdl2_ttf

Render word-wrapped UTF-8 text at LCD subpixel quality to a new ARGB surface.

This function will allocate a new 32-bit, ARGB surface, and render alpha-blended text using FreeType's LCD subpixel rendering. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid_Wrapped, TTF_RenderUTF8_Shaded_Wrapped, and TTF_RenderUTF8_Blended_Wrapped.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \param bg the background color for the text. \returns a new 32-bit, ARGB surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_RenderUTF8_Solid_Wrapped \sa TTF_RenderUTF8_Shaded_Wrapped \sa TTF_RenderUTF8_Blended_Wrapped

TTF_RenderUTF8_Shaded sdl2_ttf

Render UTF-8 text at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUTF8_Shaded_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid, TTF_RenderUTF8_Blended, and TTF_RenderUTF8_LCD.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUNICODE_Shaded

TTF_RenderUTF8_Shaded_Wrapped sdl2_ttf

Render word-wrapped UTF-8 text at high quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the specified background color, while other pixels have varying degrees of the foreground color. This function returns the new surface, or nil if there was an error.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Solid_Wrapped, TTF_RenderUTF8_Blended_Wrapped, and TTF_RenderUTF8_LCD_Wrapped.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Solid_Wrapped \sa TTF_RenderUTF8_Blended_Wrapped \sa TTF_RenderUTF8_LCD_Wrapped

TTF_RenderUTF8_Solid sdl2_ttf

Render UTF-8 text at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

This will not word-wrap the string; you'll get a surface with a single line of text, as long as the string requires. You can use TTF_RenderUTF8_Solid_Wrapped() instead if you need to wrap the output to multiple lines.

This will not wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Shaded, TTF_RenderUTF8_Blended, and TTF_RenderUTF8_LCD.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_RenderUTF8_Shaded \sa TTF_RenderUTF8_Blended \sa TTF_RenderUTF8_LCD

TTF_RenderUTF8_Solid_Wrapped sdl2_ttf

Render word-wrapped UTF-8 text at fast quality to a new 8-bit surface.

This function will allocate a new 8-bit, palettized surface. The surface's 0 pixel will be the colorkey, giving a transparent background. The 1 pixel will be set to the text color.

Text is wrapped to multiple lines on line endings and on word boundaries if it extends beyond `wrapLength` in pixels.

If wrapLength is 0, this function will only wrap on newline characters.

You can render at other quality levels with TTF_RenderUTF8_Shaded_Wrapped, TTF_RenderUTF8_Blended_Wrapped, and TTF_RenderUTF8_LCD_Wrapped.

\param font the font to render with. \param text text to render, in UTF-8 encoding. \param fg the foreground color for the text. \returns a new 8-bit, palettized surface, or nil if there was an error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_RenderUTF8_Shaded_Wrapped \sa TTF_RenderUTF8_Blended_Wrapped \sa TTF_RenderUTF8_LCD_Wrapped

TTF_SetDirection sdl2_ttf

Set a global direction to be used for text shaping.

\deprecated This function expects an hb_direction_t value, from HarfBuzz, cast to an int, and affects all fonts globally. Please use TTF_SetFontDirection() instead, which uses an enum supplied by SDL_ttf itself and operates on a per-font basis.

This is a global setting; fonts will favor a value set with TTF_SetFontDirection(), but if they have not had one explicitly set, they will use the value specified here.

The default value is `HB_DIRECTION_LTR` (left-to-right text flow).

\param direction an hb_direction_t value. \returns 0, or -1 if SDL_ttf is not compiled with HarfBuzz support.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_SetFontDirection

TTF_SetError sdl2_ttf

Report SDL_ttf errors

\sa TTF_GetError

TTF_SetFontDirection sdl2_ttf

Set direction to be used for text shaping by a font.

Any value supplied here will override the global direction set with the deprecated TTF_SetDirection().

Possible direction values are:

- `TTF_DIRECTION_LTR` (Left to Right) - `TTF_DIRECTION_RTL` (Right to Left) - `TTF_DIRECTION_TTB` (Top to Bottom) - `TTF_DIRECTION_BTT` (Bottom to Top)

If SDL_ttf was not built with HarfBuzz support, this function returns -1.

\param font the font to specify a direction for. \param direction the new direction for text to flow. \returns 0 on success, or -1 on error.

\since This function is available since SDL_ttf 2.20.0.

TTF_SetFontHinting sdl2_ttf

Set a font's current hinter setting.

Setting it clears already-generated glyphs, if any, from the cache.

The hinter setting is a single value:

- `TTF_HINTING_NORMAL` - `TTF_HINTING_LIGHT` - `TTF_HINTING_MONO` - `TTF_HINTING_NONE` - `TTF_HINTING_LIGHT_SUBPIXEL` (available in SDL_ttf 2.0.18 and later)

\param font the font to set a new hinter setting on. \param hinting the new hinter setting.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_GetFontHinting

TTF_SetFontKerning sdl2_ttf

Set if kerning is allowed for a font.

Newly-opened fonts default to allowing kerning. This is generally a good policy unless you have a strong reason to disable it, as it tends to produce better rendering (with kerning disabled, some fonts might render the word `kerning` as something that looks like `keming` for example).

\param font the font to set kerning on. \param allowed non-zero to allow kerning, zero to disallow.

\since This function is available since SDL_ttf 2.0.12.

TTF_SetFontOutline sdl2_ttf

Set a font's current outline.

\param font the font to set a new outline on. \param outline positive outline value, 0 to default.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_GetFontOutline

TTF_SetFontScriptName sdl2_ttf

Set script to be used for text shaping by a font.

Any value supplied here will override the global script set with the deprecated TTF_SetScript().

The supplied script value must be a null-terminated string of exactly four characters.

If SDL_ttf was not built with HarfBuzz support, this function returns -1.

\param font the font to specify a direction for. \param script null-terminated string of exactly 4 characters. \returns 0 on success, or -1 on error.

\since This function is available since SDL_ttf 2.20.0.

TTF_SetFontSDF sdl2_ttf

Enable Signed Distance Field rendering for a font.

This works with the Blended APIs. SDF is a technique that helps fonts look sharp even when scaling and rotating.

This clears already-generated glyphs, if any, from the cache.

\param font the font to set SDF support on. \param on_off SDL_TRUE to enable SDF, SDL_FALSE to disable.

\returns 0 on success, -1 on error.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_GetFontSDF

TTF_SetFontSize sdl2_ttf

Set a font's size dynamically.

This clears already-generated glyphs, if any, from the cache.

\param font the font to resize. \param ptsize the new point size. \returns 0 if successful, -1 on error

\since This function is available since SDL_ttf 2.0.18.

TTF_SetFontSizeDPI sdl2_ttf

Set font size dynamically with target resolutions (in DPI).

This clears already-generated glyphs, if any, from the cache.

\param font the font to resize. \param ptsize the new point size. \param hdpi the target horizontal DPI. \param vdpi the target vertical DPI. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.18.

TTF_SetFontStyle sdl2_ttf

Set a font's current style.

Setting the style clears already-generated glyphs, if any, from the cache.

The font styles are a set of bit flags, OR'd together:

- `TTF_STYLE_NORMAL` (is zero) - `TTF_STYLE_BOLD` - `TTF_STYLE_ITALIC` - `TTF_STYLE_UNDERLINE` - `TTF_STYLE_STRIKETHROUGH`

\param font the font to set a new style on. \param style the new style values to set, OR'd together.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_GetFontStyle

TTF_SetFontWrappedAlign sdl2_ttf

Set a font's current wrap alignment option.

The wrap alignment option can be one of the following:

- `TTF_WRAPPED_ALIGN_LEFT` - `TTF_WRAPPED_ALIGN_CENTER` - `TTF_WRAPPED_ALIGN_RIGHT`

\param font the font to set a new wrap alignment option on. \param align the new wrap alignment option.

\since This function is available since SDL_ttf 2.20.0.

\sa TTF_GetFontWrappedAlign

TTF_SetScript sdl2_ttf

Set a global script to be used for text shaping.

\deprecated This function expects an hb_script_t value, from HarfBuzz, cast to an int, and affects all fonts globally. Please use TTF_SetFontScriptName() instead, which accepts a string that is converted to an equivalent int internally, and operates on a per-font basis.

This is a global setting; fonts will favor a value set with TTF_SetFontScriptName(), but if they have not had one explicitly set, they will use the value specified here.

The default value is `HB_SCRIPT_UNKNOWN`.

\returns 0, or -1 if SDL_ttf is not compiled with HarfBuzz support.

\since This function is available since SDL_ttf 2.0.18.

\sa TTF_SetFontScriptName

TTF_SizeText sdl2_ttf

Calculate the dimensions of a rendered string of Latin1 text.

This will report the width and height, in pixels, of the space that the specified string will take to fully render.

This does not need to render the string to do this calculation.

You almost certainly want TTF_SizeUTF8() unless you're sure you have a 1-byte Latin1 encoding. US ASCII characters will work with either function, but most other Unicode characters packed into a `const char *` will need UTF-8.

\param font the font to query. \param text text to calculate, in Latin1 encoding. \param w will be filled with width, in pixels, on return. \param h will be filled with height, in pixels, on return. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_SizeUTF8 \sa TTF_SizeUNICODE

TTF_SizeUNICODE sdl2_ttf

Calculate the dimensions of a rendered string of UCS-2 text.

This will report the width and height, in pixels, of the space that the specified string will take to fully render.

This does not need to render the string to do this calculation.

Please note that this function is named "Unicode" but currently expects UCS-2 encoding (16 bits per codepoint). This does not give you access to large Unicode values, such as emoji glyphs. These codepoints are accessible through the UTF-8 version of this function.

\param font the font to query. \param text text to calculate, in UCS-2 encoding. \param w will be filled with width, in pixels, on return. \param h will be filled with height, in pixels, on return. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_SizeUTF8

TTF_SizeUTF8 sdl2_ttf

Calculate the dimensions of a rendered string of UTF-8 text.

This will report the width and height, in pixels, of the space that the specified string will take to fully render.

This does not need to render the string to do this calculation.

\param font the font to query. \param text text to calculate, in UTF-8 encoding. \param w will be filled with width, in pixels, on return. \param h will be filled with height, in pixels, on return. \returns 0 if successful, -1 on error.

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_SizeUNICODE

TTF_STYLE_BOLD sdl2_ttf

 

TTF_STYLE_ITALIC sdl2_ttf

 

TTF_STYLE_NORMAL sdl2_ttf

Font style flags

TTF_STYLE_STRIKETHROUGH sdl2_ttf

 

TTF_STYLE_UNDERLINE sdl2_ttf

 

TTF_VERSION sdl2_ttf

 

TTF_WasInit sdl2_ttf

Check if SDL_ttf is initialized.

This reports the number of times the library has been initialized by a call to TTF_Init(), without a paired deinitialization request from TTF_Quit().

In short: if it's greater than zero, the library is currently initialized and ready to work. If zero, it is not initialized.

Despite the return value being a signed integer, this function should not return a negative number.

\returns the current number of initialization calls, that need to eventually be paired with this many calls to TTF_Quit().

\since This function is available since SDL_ttf 2.0.12.

\sa TTF_Init \sa TTF_Quit

TTF_WRAPPED_ALIGN_CENTER sdl2_ttf

 

TTF_WRAPPED_ALIGN_LEFT sdl2_ttf

Special layout option for rendering wrapped text

TTF_WRAPPED_ALIGN_RIGHT sdl2_ttf

 

TTTF_Direction sdl2_ttf

 

TTTF_Font sdl2_ttf

 

TUDPPacket sdl2_net

 

TUDPSocket sdl2_net

 

TUInt8Array sdl2

 

TUInt8Array sdl2_gfx

 

TUInt8Array sdl2_image

 

TUInt8Array sdl2_mixer

 

TUInt8Array sdl2_net

 

TUInt8Array sdl2_ttf

 

TUnknown sdl2

 

TUpdateProc sdl2

The structure that defines an extended virtual joystick description

The caller must zero the structure and then initialize the version with `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` before passing it to SDL_JoystickAttachVirtualEx() All other elements of this structure are optional and can be left 0.

\sa SDL_JoystickAttachVirtualEx

TWindowShapeMode sdl2

 

TWindowsIO sdl2

 

TWindowsIOBuffer sdl2

 

TWrite sdl2

Write exactly num objects each of size size from the area pointed at by ptr to data stream.

the number of objects written, or 0 at error or end of file.

UNICODE_BOM_NATIVE sdl2_ttf

ZERO WIDTH NO-BREAKSPACE (Unicode byte order mark)

UNICODE_BOM_SWAPPED sdl2_ttf

 

vlineColor sdl2_gfx

Vertical line

vlineRGBA sdl2_gfx

 

zoomSurface sdl2_gfx

Zooming functions

zoomSurfaceSize sdl2_gfx

 

_TCPSocket sdl2_net

 


Generated by PasDoc 0.16.0.