gzdoom/src/basictypes.h

78 lines
1.6 KiB
C
Raw Normal View History

2016-03-01 15:47:10 +00:00
#ifndef __BASICTYPES_H
#define __BASICTYPES_H
#include <stdint.h>
// windef.h, included by windows.h, has its own incompatible definition
// of DWORD as a long. In files that mix Doom and Windows code, you
// must define USE_WINDOWS_DWORD before including doomtype.h so that
// you are aware that those files have a different DWORD than the rest
// of the source.
#ifndef USE_WINDOWS_DWORD
typedef uint32_t DWORD;
2016-03-01 15:47:10 +00:00
#endif
typedef uint32_t BITFIELD;
2016-03-01 15:47:10 +00:00
typedef int INTBOOL;
#if !defined(GUID_DEFINED)
#define GUID_DEFINED
typedef struct _GUID
{
uint32_t Data1;
2017-03-08 17:50:37 +00:00
uint16_t Data2;
uint16_t Data3;
2017-03-08 17:47:52 +00:00
uint8_t Data4[8];
2016-03-01 15:47:10 +00:00
} GUID;
#endif
union QWORD_UNION
{
uint64_t AsOne;
2016-03-01 15:47:10 +00:00
struct
{
#ifdef __BIG_ENDIAN__
unsigned int Hi, Lo;
#else
unsigned int Lo, Hi;
#endif
};
};
//
// fixed point, 32bit as 16.16.
2016-03-01 15:47:10 +00:00
//
#define FRACBITS 16
#define FRACUNIT (1<<FRACBITS)
typedef int32_t fixed_t;
typedef uint32_t dsfixed_t; // fixedpt used by span drawer
2016-03-01 15:47:10 +00:00
#define FIXED_MAX (signed)(0x7fffffff)
#define FIXED_MIN (signed)(0x80000000)
#define DWORD_MIN ((uint32_t)0)
#define DWORD_MAX ((uint32_t)0xffffffff)
2016-03-01 15:47:10 +00:00
// the last remnants of tables.h
#define ANGLE_90 (0x40000000)
#define ANGLE_180 (0x80000000)
#define ANGLE_270 (0xc0000000)
#define ANGLE_MAX (0xffffffff)
typedef uint32_t angle_t;
2016-03-01 15:47:10 +00:00
#ifdef __GNUC__
#define GCCPRINTF(stri,firstargi) __attribute__((format(printf,stri,firstargi)))
#define GCCFORMAT(stri) __attribute__((format(printf,stri,0)))
#define GCCNOWARN __attribute__((unused))
#else
#define GCCPRINTF(a,b)
#define GCCFORMAT(a)
#define GCCNOWARN
#endif
#endif