Path: blob/master/libmupen64plus/mupen64plus-video-glide64mk2/src/Glitch64/inc/3dfx.h
2 views
/*1** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY2** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT3** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX4** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE5** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC([email protected]).6** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER7** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A8** FULL TEXT OF THE NON-WARRANTY PROVISIONS.9**10** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO11** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN12** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,13** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR14** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF15** THE UNITED STATES.16**17** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED18**19** $Revision: 1.3.4.2 $20** $Date: 2003/05/05 06:50:41 $21*/22#ifndef __3DFX_H__23#define __3DFX_H__2425/*26** basic data types27*/28typedef unsigned char FxU8;29typedef signed char FxI8;30typedef unsigned short FxU16;31typedef signed short FxI16;32#if defined(__alpha__) || defined (__LP64__)33typedef signed int FxI32;34typedef unsigned int FxU32;35#else36typedef signed long FxI32;37typedef unsigned long FxU32;38#endif39typedef unsigned long AnyPtr;40typedef int FxBool;41typedef float FxFloat;42typedef double FxDouble;4344/*45** color types46*/47typedef unsigned long FxColor_t;48typedef struct { float r, g, b, a; } FxColor4;4950/*51** fundamental types52*/53#define FXTRUE 154#define FXFALSE 05556/*57** helper macros58*/59#define FXUNUSED( a ) ((void)(a))60#define FXBIT( i ) ( 1L << (i) )6162/*63** export macros64*/6566#if defined(__MSC__) || defined(_MSC_VER)67# if defined (MSVC16)68# define FX_ENTRY69# define FX_CALL70# else71# define FX_ENTRY __declspec(dllexport) extern72# define FX_CALL __stdcall73# endif74#elif defined(__WATCOMC__)75# define FX_ENTRY extern76# define FX_CALL __stdcall77#elif defined (__IBMC__) || defined (__IBMCPP__)78/* IBM Visual Age C/C++: */79# define FX_ENTRY extern80# define FX_CALL __stdcall81#elif defined(__DJGPP__)82# define FX_ENTRY extern83# define FX_CALL84#elif defined(__MINGW32__)85# define FX_ENTRY extern86# define FX_CALL __stdcall87#elif defined(__unix__)88# define FX_ENTRY extern89# define FX_CALL90#elif defined(__APPLE__)91# define FX_ENTRY extern92# define FX_CALL93#elif defined(__MWERKS__)94# if macintosh95# define FX_ENTRY extern96# define FX_CALL97# else /* !macintosh */98# error "Unknown MetroWerks target platform"99# endif /* !macintosh */100#else101# warning define FX_ENTRY & FX_CALL for your compiler102# define FX_ENTRY extern103# define FX_CALL104#endif105106/*107** x86 compiler specific stuff108*/109#if defined(__BORLANDC_)110# define REALMODE111112# define REGW( a, b ) ((a).x.b)113# define REGB( a, b ) ((a).h.b)114# define INT86( a, b, c ) int86(a,b,c)115# define INT86X( a, b, c, d ) int86x(a,b,c,d)116117# define RM_SEG( a ) FP_SEG( a )118# define RM_OFF( a ) FP_OFF( a )119#elif defined(__WATCOMC__)120# undef FP_SEG121# undef FP_OFF122123# define REGW( a, b ) ((a).w.b)124# define REGB( a, b ) ((a).h.b)125# define INT86( a, b, c ) int386(a,b,c)126# define INT86X( a, b, c, d ) int386x(a,b,c,d)127128# define RM_SEG( a ) ( ( ( ( FxU32 ) (a) ) & 0x000F0000 ) >> 4 )129# define RM_OFF( a ) ( ( FxU16 ) (a) )130#endif131132#endif /* !__3DFX_H__ */133134135