SDL_touch.h File Reference
`#include <SDL3/SDL_stdinc.h>`
`#include <SDL3/SDL_error.h>`
`#include <SDL3/SDL_mouse.h>`
`#include <SDL3/SDL_begin_code.h>`
`#include <SDL3/SDL_close_code.h>`
Include dependency graph for SDL_touch.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | SDL_Finger

## Macros

#define | SDL_TOUCH_MOUSEID ((SDL_MouseID)-1)
#define | SDL_MOUSE_TOUCHID ((SDL_TouchID)-1)

## Typedefs

typedef Uint64 | SDL_TouchID
typedef Uint64 | SDL_FingerID

## Enumerations

enum | SDL_TouchDeviceType { SDL_TOUCH_DEVICE_INVALID = -1 , SDL_TOUCH_DEVICE_DIRECT , SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE , SDL_TOUCH_DEVICE_INDIRECT_RELATIVE }

## Functions

SDL_TouchID * | SDL_GetTouchDevices (int *count)
const char * | SDL_GetTouchDeviceName (SDL_TouchID touchID)
SDL_TouchDeviceType | SDL_GetTouchDeviceType (SDL_TouchID touchID)
SDL_Finger ** | SDL_GetTouchFingers (SDL_TouchID touchID, int *count)

## Macro Definition Documentation

## SDL_MOUSE_TOUCHID

#define SDL_MOUSE_TOUCHID ((SDL_TouchID)-1)

The SDL_TouchID for touch events simulated with mouse input.

Since
  This macro is available since SDL 3.2.0.

Definition at line 122 of file SDL_touch.h.

## SDL_TOUCH_MOUSEID

#define SDL_TOUCH_MOUSEID ((SDL_MouseID)-1)

The SDL_MouseID for mouse events simulated with touch input.

Since
  This macro is available since SDL 3.2.0.

Definition at line 115 of file SDL_touch.h.

## Typedef Documentation

## SDL_FingerID

typedef Uint64 SDL_FingerID

A unique ID for a single finger on a touch device.

This ID is valid for the time the finger (stylus, etc) is touching and will be unique for all fingers currently in contact, so this ID tracks the lifetime of a single continuous touch. This value may represent an index, a pointer, or some other unique ID, depending on the platform.

The value 0 is an invalid ID.

Since
  This datatype is available since SDL 3.2.0.

Definition at line 76 of file SDL_touch.h.

## SDL_TouchID

typedef Uint64 SDL_TouchID

# CategoryTouch

SDL offers touch input, on platforms that support it. It can manage multiple touch devices and track multiple fingers on those devices.

Touches are mostly dealt with through the event system, in the SDL_EVENT_FINGER_DOWN, SDL_EVENT_FINGER_MOTION, and SDL_EVENT_FINGER_UP events, but there are also functions to query for hardware details, etc.

The touch system, by default, will also send virtual mouse events; this can be useful for making a some desktop apps work on a phone without significant changes. For apps that care about mouse and touch input separately, they should ignore mouse events that have a which field of SDL_TOUCH_MOUSEID. A unique ID for a touch device.

This ID is valid for the time the device is connected to the system, and is never reused for the lifetime of the application.

The value 0 is an invalid ID.

Since
  This datatype is available since SDL 3.2.0.

Definition at line 62 of file SDL_touch.h.

## Enumeration Type Documentation

## SDL_TouchDeviceType

enum SDL_TouchDeviceType

An enum that describes the type of a touch device.

Since
  This enum is available since SDL 3.2.0.

Enumerator
SDL_TOUCH_DEVICE_INVALID |
SDL_TOUCH_DEVICE_DIRECT | touch screen with window-relative coordinates
SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE | trackpad with absolute device coordinates
SDL_TOUCH_DEVICE_INDIRECT_RELATIVE | trackpad with screen cursor-relative coordinates

Definition at line 83 of file SDL_touch.h.

{
SDL_TOUCH_DEVICE_INVALID = -1,
SDL_TOUCH_DEVICE_DIRECT, /**< touch screen with window-relative coordinates */
SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, /**< trackpad with absolute device coordinates */
SDL_TOUCH_DEVICE_INDIRECT_RELATIVE /**< trackpad with screen cursor-relative coordinates */
} SDL_TouchDeviceType;
SDL_TouchDeviceType
SDL_TouchDeviceType
Definition SDL_touch.h:84
SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE
@ SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE
Definition SDL_touch.h:87
SDL_TOUCH_DEVICE_DIRECT
@ SDL_TOUCH_DEVICE_DIRECT
Definition SDL_touch.h:86
SDL_TOUCH_DEVICE_INDIRECT_RELATIVE
@ SDL_TOUCH_DEVICE_INDIRECT_RELATIVE
Definition SDL_touch.h:88
SDL_TOUCH_DEVICE_INVALID
@ SDL_TOUCH_DEVICE_INVALID
Definition SDL_touch.h:85

## Function Documentation

## SDL_GetTouchDeviceName()

const char * SDL_GetTouchDeviceName | ( | SDL_TouchID | touchID | ) |

extern

Get the touch device name as reported from the driver.

Parameters

  touchID | the touch device instance ID.

Returns
  touch device name, or NULL on failure; call SDL_GetError() for more information.

Since
  This function is available since SDL 3.2.0.

## SDL_GetTouchDevices()

SDL_TouchID * SDL_GetTouchDevices | ( | int * | count | ) |

extern

Get a list of registered touch devices.

On some platforms SDL first sees the touch device if it was actually used. Therefore the returned list might be empty, although devices are available. After using all devices at least once the number will be correct.

Parameters

  count | a pointer filled in with the number of devices returned, may be NULL.

Returns
  a 0 terminated array of touch device IDs or NULL on failure; call SDL_GetError() for more information. This should be freed with SDL_free() when it is no longer needed.

Since
  This function is available since SDL 3.2.0.

## SDL_GetTouchDeviceType()

SDL_TouchDeviceType SDL_GetTouchDeviceType | ( | SDL_TouchID | touchID | ) |

extern

Get the type of the given touch device.

Parameters

  touchID | the ID of a touch device.

Returns
  touch device type.

Since
  This function is available since SDL 3.2.0.

## SDL_GetTouchFingers()

SDL_Finger ** SDL_GetTouchFingers | ( | SDL_TouchID | touchID,
|  | int * | count )

extern

Get a list of active fingers for a given touch device.

Parameters

  touchID | the ID of a touch device.
  count | a pointer filled in with the number of fingers returned, can be NULL.

Returns
  a NULL terminated array of SDL_Finger pointers or NULL on failure; call SDL_GetError() for more information. This is a single allocation that should be freed with SDL_free() when it is no longer needed.

Since
  This function is available since SDL 3.2.0.