logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SDL_HapticEffect - The generic template for any haptic effect.

Availability

       This struct is available since SDL 3.2.0.

Description

       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.

Name

       SDL_HapticEffect - The generic template for any haptic effect.

See Also

SDL_HapticConstant(3type), SDL_HapticPeriodic(3type), SDL_HapticCondition(3type),  SDL_HapticRamp(3type),
       SDL_HapticLeftRight(3type), SDL_HapticCustom(3type)

Simple Directmedia Layer                           SDL 3.2.20                            SDL_HapticEffect(3type)

Synopsis

#include<SDL3/SDL_haptic.h>typedefunionSDL_HapticEffect{/*Commonforallforcefeedbackeffects*/Uint16type;/**<Effecttype.*/SDL_HapticConstantconstant;/**<Constanteffect.*/SDL_HapticPeriodicperiodic;/**<Periodiceffect.*/SDL_HapticConditioncondition;/**<Conditioneffect.*/SDL_HapticRampramp;/**<Rampeffect.*/SDL_HapticLeftRightleftright;/**<Left/Righteffect.*/SDL_HapticCustomcustom;/**<Customeffect.*/}SDL_HapticEffect;

See Also