Return a value clamped to a range.
Defined in <SDL3/SDL_stdinc.h>
#define SDL_clamp(x, a, b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)))| x | the value to compare. |
| a | the low end value. |
| b | the high end value. |
Returns x, clamped between a and b.
If x is outside the range a values between
a and b, the returned value will be
a or b as appropriate. Otherwise,
x is returned.
This macro will produce incorrect results if b is less
than a.
This is a helper macro that might be more clear than writing out the
comparisons directly, and works with any type that can be compared with
the < and > operators. However, it
double-evaluates all its parameters, so do not use expressions with
side-effects here.
It is safe to call this macro from any thread.
This macro is available since SDL 3.2.0.