Module: Mesa Branch: main Commit: 00f9e412510c7f821670675270ae322f6304fa0a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=00f9e412510c7f821670675270ae322f6304fa0a
Author: Yonggang Luo <[email protected]> Date: Fri Aug 4 13:24:08 2023 +0800 util: Deduplicate macros between u_math.h and macros.h Signed-off-by: Yonggang Luo <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24484> --- src/util/macros.h | 16 ++++++++++++++-- src/util/u_math.h | 20 -------------------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/util/macros.h b/src/util/macros.h index bffabfb52a8..42f3acaf84c 100644 --- a/src/util/macros.h +++ b/src/util/macros.h @@ -350,7 +350,11 @@ do { \ /** Compute ceiling of integer quotient of A divided by B. */ #define DIV_ROUND_UP( A, B ) ( ((A) + (B) - 1) / (B) ) -/** Clamp X to [MIN,MAX]. Turn NaN into MIN, arbitrarily. */ +/** + * Clamp X to [MIN, MAX]. + * This is a macro to allow float, int, unsigned, etc. types. + * We arbitrarily turn NaN into MIN. + */ #define CLAMP( X, MIN, MAX ) ( (X)>(MIN) ? ((X)>(MAX) ? (MAX) : (X)) : (MIN) ) /* Syntax sugar occuring frequently in graphics code */ @@ -362,10 +366,18 @@ do { \ /** Maximum of two values: */ #define MAX2( A, B ) ( (A)>(B) ? (A) : (B) ) -/** Minimum and maximum of three values: */ +/** Minimum of three values: */ #define MIN3( A, B, C ) ((A) < (B) ? MIN2(A, C) : MIN2(B, C)) + +/** Maximum of three values: */ #define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C)) +/** Minimum of four values: */ +#define MIN4( A, B, C, D ) ((A) < (B) ? MIN3(A, C, D) : MIN3(B, C, D)) + +/** Maximum of four values: */ +#define MAX4( A, B, C, D ) ((A) > (B) ? MAX3(A, C, D) : MAX3(B, C, D)) + /** Align a value to a power of two */ #define ALIGN_POT(x, pot_align) (((x) + (pot_align) - 1) & ~((pot_align) - 1)) diff --git a/src/util/u_math.h b/src/util/u_math.h index 5be5cdaecfd..6bae2a8a9f1 100644 --- a/src/util/u_math.h +++ b/src/util/u_math.h @@ -618,26 +618,6 @@ util_memcpy_cpu_to_le32(void * restrict dest, const void * restrict src, size_t #endif } -/** - * Clamp X to [MIN, MAX]. - * This is a macro to allow float, int, uint, etc. types. - * We arbitrarily turn NaN into MIN. - */ -#define CLAMP( X, MIN, MAX ) ( (X)>(MIN) ? ((X)>(MAX) ? (MAX) : (X)) : (MIN) ) - -/* Syntax sugar occuring frequently in graphics code */ -#define SATURATE( X ) CLAMP(X, 0.0f, 1.0f) - -#define MIN2( A, B ) ( (A)<(B) ? (A) : (B) ) -#define MAX2( A, B ) ( (A)>(B) ? (A) : (B) ) - -#define MIN3( A, B, C ) ((A) < (B) ? MIN2(A, C) : MIN2(B, C)) -#define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C)) - -#define MIN4( A, B, C, D ) ((A) < (B) ? MIN3(A, C, D) : MIN3(B, C, D)) -#define MAX4( A, B, C, D ) ((A) > (B) ? MAX3(A, C, D) : MAX3(B, C, D)) - - /** * Align a value up to an alignment value *
