SDL  2.0
SDL_endian.h File Reference
#include "SDL_stdinc.h"
#include "begin_code.h"
#include "close_code.h"
+ Include dependency graph for SDL_endian.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SDL_BYTEORDER   SDL_LIL_ENDIAN
The two types of endianness
#define SDL_LIL_ENDIAN   1234
#define SDL_BIG_ENDIAN   4321
Swap to native

Byteswap item from the specified endianness to the native endianness.

#define SDL_SwapLE16(X)   (X)
#define SDL_SwapLE32(X)   (X)
#define SDL_SwapLE64(X)   (X)
#define SDL_SwapFloatLE(X)   (X)
#define SDL_SwapBE16(X)   SDL_Swap16(X)
#define SDL_SwapBE32(X)   SDL_Swap32(X)
#define SDL_SwapBE64(X)   SDL_Swap64(X)
#define SDL_SwapFloatBE(X)   SDL_SwapFloat(X)

Functions

SDL_FORCE_INLINE Uint16 SDL_Swap16 (Uint16 x)
SDL_FORCE_INLINE Uint32 SDL_Swap32 (Uint32 x)
SDL_FORCE_INLINE Uint64 SDL_Swap64 (Uint64 x)
SDL_FORCE_INLINE float SDL_SwapFloat (float x)

Detailed Description

Functions for reading and writing endian-specific values

Definition in file SDL_endian.h.

Macro Definition Documentation

#define SDL_BYTEORDER   SDL_LIL_ENDIAN

Definition at line 53 of file SDL_endian.h.

#define SDL_SwapBE16 (   X)    SDL_Swap16(X)

Definition at line 236 of file SDL_endian.h.

Referenced by SDL_ReadBE16(), and SDL_WriteBE16().

#define SDL_SwapBE32 (   X)    SDL_Swap32(X)

Definition at line 237 of file SDL_endian.h.

Referenced by SDL_MixAudioFormat(), SDL_ReadBE32(), and SDL_WriteBE32().

#define SDL_SwapBE64 (   X)    SDL_Swap64(X)

Definition at line 238 of file SDL_endian.h.

Referenced by SDL_ReadBE64(), and SDL_WriteBE64().

#define SDL_SwapFloatBE (   X)    SDL_SwapFloat(X)

Definition at line 239 of file SDL_endian.h.

Referenced by SDL_MixAudioFormat().

#define SDL_SwapFloatLE (   X)    (X)

Definition at line 235 of file SDL_endian.h.

Referenced by SaveTemplate(), SDL_LoadDollarTemplates(), and SDL_MixAudioFormat().

#define SDL_SwapLE16 (   X)    (X)
#define SDL_SwapLE32 (   X)    (X)
#define SDL_SwapLE64 (   X)    (X)

Definition at line 234 of file SDL_endian.h.

Referenced by SDL_ReadLE64(), and SDL_WriteLE64().

Function Documentation

SDL_FORCE_INLINE Uint16 SDL_Swap16 ( Uint16  x)

Definition at line 107 of file SDL_endian.h.

References SDL_static_cast.

Referenced by platform_testEndianessAndSwap(), SDL_ConvertPixels_SwapNV(), SDL_LoadBMP_RW(), and TestEndian().

{
return SDL_static_cast(Uint16, ((x << 8) | (x >> 8)));
}
SDL_FORCE_INLINE Uint32 SDL_Swap32 ( Uint32  x)

Definition at line 162 of file SDL_endian.h.

References SDL_static_cast.

Referenced by platform_testEndianessAndSwap(), SDL_LoadBMP_RW(), SDL_Swap64(), SDL_SwapFloat(), and TestEndian().

{
return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) |
((x >> 8) & 0x0000FF00) | (x >> 24)));
}
SDL_FORCE_INLINE Uint64 SDL_Swap64 ( Uint64  x)

Definition at line 196 of file SDL_endian.h.

References SDL_static_cast, and SDL_Swap32().

Referenced by platform_testEndianessAndSwap(), and TestEndian().

{
Uint32 hi, lo;
/* Separate into high and low 32-bit values and swap them */
lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
x >>= 32;
hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
x = SDL_Swap32(lo);
x <<= 32;
x |= SDL_Swap32(hi);
return (x);
}
SDL_FORCE_INLINE float SDL_SwapFloat ( float  x)

Definition at line 213 of file SDL_endian.h.

References SDL_Swap32().

{
union
{
float f;
Uint32 ui32;
} swapper;
swapper.f = x;
swapper.ui32 = SDL_Swap32(swapper.ui32);
return swapper.f;
}