diff options
Diffstat (limited to 'demos/3rdparty/doom/m_swap.c')
-rw-r--r-- | demos/3rdparty/doom/m_swap.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/demos/3rdparty/doom/m_swap.c b/demos/3rdparty/doom/m_swap.c new file mode 100644 index 00000000..1db93c86 --- /dev/null +++ b/demos/3rdparty/doom/m_swap.c @@ -0,0 +1,57 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// $Id:$ +// +// Copyright (C) 1993-1996 by id Software, Inc. +// +// This source is available for distribution and/or modification +// only under the terms of the DOOM Source Code License as +// published by id Software. All rights reserved. +// +// The source is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License +// for more details. +// +// $Log:$ +// +// DESCRIPTION: +// Endianess handling, swapping 16bit and 32bit. +// +//----------------------------------------------------------------------------- + +static const char +rcsid[] = "$Id: m_bbox.c,v 1.1 1997/02/03 22:45:10 b1 Exp $"; + + +#ifdef __GNUG__ +#pragma implementation "m_swap.h" +#endif +#include "m_swap.h" + + +// Not needed with big endian. +#ifndef __BIG_ENDIAN__ + +// Swap 16bit, that is, MSB and LSB byte. +unsigned short SwapSHORT(unsigned short x) +{ + // No masking with 0xFF should be necessary. + return (x>>8) | (x<<8); +} + +// Swapping 32bit. +unsigned long SwapLONG( unsigned long x) +{ + return + (x>>24) + | ((x>>8) & 0xff00) + | ((x<<8) & 0xff0000) + | (x<<24); +} + + +#endif + + |