From 14c62c007781a337f18979b2ae0d16303b086203 Mon Sep 17 00:00:00 2001 From: Ethan Lee Date: Fri, 8 Nov 2024 21:06:13 -0500 Subject: [PATCH] internal: Added MOJOSHADER_BIG_ENDIAN define --- mojoshader_internal.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/mojoshader_internal.h b/mojoshader_internal.h index 711080b..5b30f61 100644 --- a/mojoshader_internal.h +++ b/mojoshader_internal.h @@ -11,10 +11,12 @@ #ifdef MOJOSHADER_USE_SDL_STDLIB #ifdef USE_SDL3 /* Private define, for now */ #include +#include #include #include #else #include +#include #include #include #endif @@ -117,6 +119,9 @@ typedef Uint64 uint64; #endif #define isalnum SDL_isalnum +/* endian.h */ +#define MOJOSHADER_BIG_ENDIAN (SDL_BYTEORDER == SDL_BIG_ENDIAN) + /* dlfcn.h */ #define dlopen(a, b) SDL_LoadObject(a) #define dlclose SDL_UnloadObject @@ -127,6 +132,13 @@ typedef Uint64 uint64; #include #include #include + +#ifdef __linux__ +#include +#define MOJOSHADER_BIG_ENDIAN (__BYTE_ORDER == __BIG_ENDIAN) +#else +#define MOJOSHADER_BIG_ENDIAN (defined(__POWERPC__)) +#endif #endif /* MOJOSHADER_USE_SDL_STDLIB */ #include "mojoshader.h" @@ -307,7 +319,7 @@ typedef uint64_t uint64; __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (x) : "r" (&x)); return x; } // SWAP16 -#elif defined(__POWERPC__) +#elif defined(MOJOSHADER_BIG_ENDIAN) static inline uint32 SWAP32(uint32 x) { return ( (((x) >> 24) & 0x000000FF) | (((x) >> 8) & 0x0000FF00) |