| 1 | /* |
| 2 | ** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY |
| 3 | ** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT |
| 4 | ** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX |
| 5 | ** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE |
| 6 | ** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). |
| 7 | ** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER |
| 8 | ** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A |
| 9 | ** FULL TEXT OF THE NON-WARRANTY PROVISIONS. |
| 10 | ** |
| 11 | ** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO |
| 12 | ** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN |
| 13 | ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, |
| 14 | ** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR |
| 15 | ** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF |
| 16 | ** THE UNITED STATES. |
| 17 | ** |
| 18 | ** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED |
| 19 | ** |
| 20 | ** $Revision: 1.3.4.2 $ |
| 21 | ** $Date: 2003/05/05 06:50:41 $ |
| 22 | */ |
| 23 | #ifndef __3DFX_H__ |
| 24 | #define __3DFX_H__ |
| 25 | |
| 26 | /* |
| 27 | ** basic data types |
| 28 | */ |
| 29 | typedef unsigned char FxU8; |
| 30 | typedef signed char FxI8; |
| 31 | typedef unsigned short FxU16; |
| 32 | typedef signed short FxI16; |
| 33 | #if defined(__alpha__) || defined (__LP64__) |
| 34 | typedef signed int FxI32; |
| 35 | typedef unsigned int FxU32; |
| 36 | #else |
| 37 | typedef signed long FxI32; |
| 38 | typedef unsigned long FxU32; |
| 39 | #endif |
| 40 | typedef unsigned long AnyPtr; |
| 41 | typedef int FxBool; |
| 42 | typedef float FxFloat; |
| 43 | typedef double FxDouble; |
| 44 | |
| 45 | /* |
| 46 | ** color types |
| 47 | */ |
| 48 | typedef unsigned long FxColor_t; |
| 49 | typedef struct { float r, g, b, a; } FxColor4; |
| 50 | |
| 51 | /* |
| 52 | ** fundamental types |
| 53 | */ |
| 54 | #define FXTRUE 1 |
| 55 | #define FXFALSE 0 |
| 56 | |
| 57 | /* |
| 58 | ** helper macros |
| 59 | */ |
| 60 | #define FXUNUSED( a ) ((void)(a)) |
| 61 | #define FXBIT( i ) ( 1L << (i) ) |
| 62 | |
| 63 | /* |
| 64 | ** export macros |
| 65 | */ |
| 66 | |
| 67 | #if defined(__MSC__) || defined(_MSC_VER) |
| 68 | # if defined (MSVC16) |
| 69 | # define FX_ENTRY |
| 70 | # define FX_CALL |
| 71 | # else |
| 72 | # define FX_ENTRY __declspec(dllexport) extern |
| 73 | # define FX_CALL __stdcall |
| 74 | # endif |
| 75 | #elif defined(__WATCOMC__) |
| 76 | # define FX_ENTRY extern |
| 77 | # define FX_CALL __stdcall |
| 78 | #elif defined (__IBMC__) || defined (__IBMCPP__) |
| 79 | /* IBM Visual Age C/C++: */ |
| 80 | # define FX_ENTRY extern |
| 81 | # define FX_CALL __stdcall |
| 82 | #elif defined(__DJGPP__) |
| 83 | # define FX_ENTRY extern |
| 84 | # define FX_CALL |
| 85 | #elif defined(__MINGW32__) |
| 86 | # define FX_ENTRY extern |
| 87 | # define FX_CALL __stdcall |
| 88 | #elif defined(__unix__) |
| 89 | # define FX_ENTRY extern |
| 90 | # define FX_CALL |
| 91 | #elif defined(__APPLE__) |
| 92 | # define FX_ENTRY extern |
| 93 | # define FX_CALL |
| 94 | #elif defined(__MWERKS__) |
| 95 | # if macintosh |
| 96 | # define FX_ENTRY extern |
| 97 | # define FX_CALL |
| 98 | # else /* !macintosh */ |
| 99 | # error "Unknown MetroWerks target platform" |
| 100 | # endif /* !macintosh */ |
| 101 | #else |
| 102 | # warning define FX_ENTRY & FX_CALL for your compiler |
| 103 | # define FX_ENTRY extern |
| 104 | # define FX_CALL |
| 105 | #endif |
| 106 | |
| 107 | /* |
| 108 | ** x86 compiler specific stuff |
| 109 | */ |
| 110 | #if defined(__BORLANDC_) |
| 111 | # define REALMODE |
| 112 | |
| 113 | # define REGW( a, b ) ((a).x.b) |
| 114 | # define REGB( a, b ) ((a).h.b) |
| 115 | # define INT86( a, b, c ) int86(a,b,c) |
| 116 | # define INT86X( a, b, c, d ) int86x(a,b,c,d) |
| 117 | |
| 118 | # define RM_SEG( a ) FP_SEG( a ) |
| 119 | # define RM_OFF( a ) FP_OFF( a ) |
| 120 | #elif defined(__WATCOMC__) |
| 121 | # undef FP_SEG |
| 122 | # undef FP_OFF |
| 123 | |
| 124 | # define REGW( a, b ) ((a).w.b) |
| 125 | # define REGB( a, b ) ((a).h.b) |
| 126 | # define INT86( a, b, c ) int386(a,b,c) |
| 127 | # define INT86X( a, b, c, d ) int386x(a,b,c,d) |
| 128 | |
| 129 | # define RM_SEG( a ) ( ( ( ( FxU32 ) (a) ) & 0x000F0000 ) >> 4 ) |
| 130 | # define RM_OFF( a ) ( ( FxU16 ) (a) ) |
| 131 | #endif |
| 132 | |
| 133 | #endif /* !__3DFX_H__ */ |