Added fixed-point types used by 3D engine.

This commit is contained in:
thoduv 2007-01-24 20:55:55 +00:00
parent 68f8400636
commit 256a3336c4
1 changed files with 28 additions and 0 deletions

View File

@ -74,6 +74,34 @@ typedef u8 uint8;
typedef u16 uint16; typedef u16 uint16;
typedef u32 uint32; typedef u32 uint32;
/*---------- GPU3D fixed-points types -----------*/
typedef s32 f32;
#define inttof32(n) ((n) << 12)
#define f32toint(n) ((n) >> 12)
#define floattof32(n) ((int32)((n) * (1 << 12)))
#define f32tofloat(n) (((float)(n)) / (float)(1<<12))
typedef s16 t16;
#define f32tot16(n) ((t16)(n >> 8))
#define inttot16(n) ((n) << 4)
#define t16toint(n) ((n) >> 4)
#define floattot16(n) ((t16)((n) * (1 << 4)))
typedef s16 v16;
#define inttov16(n) ((n) << 12)
#define f32tov16(n) (n)
#define v16toint(n) ((n) >> 12)
#define floattov16(n) ((v16)((n) * (1 << 12)))
typedef s16 v10;
#define inttov10(n) ((n) << 9)
#define f32tov10(n) ((v10)(n >> 3))
#define v10toint(n) ((n) >> 9)
#define floattov10(n) ((v10)((n) * (1 << 9)))
/*----------------------*/
typedef int BOOL; typedef int BOOL;
#ifndef TRUE #ifndef TRUE