19fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*==========================================================================; 29fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 39fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Copyright (C) 1995-1996 Microsoft Corporation. All Rights Reserved. 49fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 59fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * File: d3dtypes.h 69fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Content: Direct3D types include file 79fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * 89fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ***************************************************************************/ 99fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef _D3DTYPES_H_ 119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define _D3DTYPES_H_ 129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef WIN32 149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include "subwtype.h" 159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#else 169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include <windows.h> 179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include <ddraw.h> 209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#pragma pack(4) 229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if defined(__cplusplus) 249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamextern "C" 259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream{ 269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DVALUE is the fundamental Direct3D fractional data type */ 299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DVALP(val, prec) ((float)(val)) 319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DVAL(val) ((float)(val)) 329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef float D3DVALUE, *LPD3DVALUE; 339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDivide(a, b) (float)((double) (a) / (double) (b)) 349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DMultiply(a, b) ((a) * (b)) 359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef LONG D3DFIXED; 379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef RGB_MAKE 399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Format of CI colors is 419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * | alpha | color index | fraction | 439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define CI_GETALPHA(ci) ((ci) >> 24) 469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff) 479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define CI_GETFRACTION(ci) ((ci) & 0xff) 489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80) 499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define CI_MASKALPHA(ci) ((ci) & 0xffffff) 509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f)) 519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Format of RGBA colors is 549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * | alpha | red | green | blue | 569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_GETALPHA(rgb) ((rgb) >> 24) 599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff) 609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff) 619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_GETBLUE(rgb) ((rgb) & 0xff) 629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_MAKE(r, g, b, a) ((D3DCOLOR) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))) 639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DRGB and D3DRGBA may be used as initialisers for D3DCOLORs 659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The float values must be in the range 0..1 669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRGB(r, g, b) \ 689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream (0xff000000L | ( ((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255)) 699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRGBA(r, g, b, a) \ 709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ( (((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) \ 719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream | (((long)((g) * 255)) << 8) | (long)((b) * 255) \ 729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ) 739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Format of RGB colors is 769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * | ignored | red | green | blue | 789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff) 819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff) 829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGB_GETBLUE(rgb) ((rgb) & 0xff) 839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff)) 849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGB_MAKE(r, g, b) ((D3DCOLOR) (((r) << 16) | ((g) << 8) | (b))) 859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGBA_TORGB(rgba) ((D3DCOLOR) ((rgba) & 0xffffff)) 869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define RGB_TORGBA(rgb) ((D3DCOLOR) ((rgb) | 0xff000000)) 879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Flags for Enumerate functions 929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Stop the enumeration 969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DENUMRET_CANCEL DDENUMRET_CANCEL 989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Continue the enumeration 1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DENUMRET_OK DDENUMRET_OK 1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef HRESULT (WINAPI* LPD3DVALIDATECALLBACK)(LPVOID lpUserArg, DWORD dwOffset); 1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef HRESULT (WINAPI* LPD3DENUMTEXTUREFORMATSCALLBACK)(LPDDSURFACEDESC lpDdsd, LPVOID lpContext); 1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DCOLOR, D3DCOLOR, *LPD3DCOLOR; 1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DMATERIALHANDLE, *LPD3DMATERIALHANDLE; 1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DTEXTUREHANDLE, *LPD3DTEXTUREHANDLE; 1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef DWORD D3DMATRIXHANDLE, *LPD3DMATRIXHANDLE; 1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DCOLORVALUE { 1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE r; 1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvR; 1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE g; 1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvG; 1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE b; 1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvB; 1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE a; 1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvA; 1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DCOLORVALUE; 1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DRECT { 1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG x1; 1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG lX1; 1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG y1; 1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG lY1; 1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG x2; 1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG lX2; 1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG y2; 1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LONG lY2; 1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRECT, *LPD3DRECT; 1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DVECTOR { 1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE x; 1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvX; 1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE y; 1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvY; 1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE z; 1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvZ; 1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DVECTOR, *LPD3DVECTOR; 1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 1689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Vertex data types supported in an ExecuteBuffer. 1699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 1709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 1729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Homogeneous vertices 1739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 1749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DHVERTEX { 1769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFlags; /* Homogeneous clipping flags */ 1779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE hx; 1799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvHX; 1809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE hy; 1839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvHY; 1849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE hz; 1879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvHZ; 1889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DHVERTEX, *LPD3DHVERTEX; 1909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 1919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 1929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Transformed/lit vertices 1939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 1949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DTLVERTEX { 1959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 1969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE sx; /* Screen coordinates */ 1979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvSX; 1989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 1999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE sy; 2019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvSY; 2029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE sz; 2059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvSZ; 2069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE rhw; /* Reciprocal of homogeneous w */ 2099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvRHW; 2109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR color; /* Vertex color */ 2139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR dcColor; 2149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR specular; /* Specular component of vertex */ 2179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR dcSpecular; 2189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tu; /* Texture coordinates */ 2219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTU; 2229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tv; 2259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTV; 2269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTLVERTEX, *LPD3DTLVERTEX; 2289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Untransformed/lit vertices 2319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLVERTEX { 2339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE x; /* Homogeneous coordinates */ 2359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvX; 2369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE y; 2399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvY; 2409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE z; 2439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvZ; 2449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwReserved; 2469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR color; /* Vertex color */ 2489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR dcColor; 2499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR specular; /* Specular component of vertex */ 2529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR dcSpecular; 2539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tu; /* Texture coordinates */ 2569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTU; 2579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tv; 2609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTV; 2619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLVERTEX, *LPD3DLVERTEX; 2639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 2659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Untransformed/unlit vertices 2669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 2679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 2689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DVERTEX { 2699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE x; /* Homogeneous coordinates */ 2719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvX; 2729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE y; 2759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvY; 2769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE z; 2799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvZ; 2809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE nx; /* Normal */ 2839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvNX; 2849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE ny; 2879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvNY; 2889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE nz; 2919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvNZ; 2929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tu; /* Texture coordinates */ 2959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTU; 2969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 2979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 2989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE tv; 2999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTV; 3009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 3019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DVERTEX, *LPD3DVERTEX; 3029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Matrix, viewport, and tranformation structures and definitions. 3059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DMATRIX { 3089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE _11, _12, _13, _14; 3099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE _21, _22, _23, _24; 3109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE _31, _32, _33, _34; 3119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE _41, _42, _43, _44; 3129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DMATRIX, *LPD3DMATRIX; 3139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DVIEWPORT { 3159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 3169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwX; 3179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwY; /* Top left */ 3189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwWidth; 3199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwHeight; /* Dimensions */ 3209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvScaleX; /* Scale homogeneous to screen */ 3219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvScaleY; /* Scale homogeneous to screen */ 3229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvMaxX; /* Min/max homogeneous x coord */ 3239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvMaxY; /* Min/max homogeneous y coord */ 3249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvMinZ; 3259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvMaxZ; /* Min/max homogeneous z coord */ 3269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DVIEWPORT, *LPD3DVIEWPORT; 3279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Values for clip fields. 3309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_LEFT 0x00000001L 3329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_RIGHT 0x00000002L 3339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_TOP 0x00000004L 3349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_BOTTOM 0x00000008L 3359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_FRONT 0x00000010L 3369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_BACK 0x00000020L 3379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_GEN0 0x00000040L 3389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_GEN1 0x00000080L 3399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_GEN2 0x00000100L 3409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_GEN3 0x00000200L 3419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_GEN4 0x00000400L 3429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLIP_GEN5 0x00000800L 3439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 3459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Values for d3d status. 3469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 3479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONLEFT D3DCLIP_LEFT 3489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONRIGHT D3DCLIP_RIGHT 3499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONTOP D3DCLIP_TOP 3509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONBOTTOM D3DCLIP_BOTTOM 3519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONFRONT D3DCLIP_FRONT 3529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONBACK D3DCLIP_BACK 3539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONGEN0 D3DCLIP_GEN0 3549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONGEN1 D3DCLIP_GEN1 3559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONGEN2 D3DCLIP_GEN2 3569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONGEN3 D3DCLIP_GEN3 3579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONGEN4 D3DCLIP_GEN4 3589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONGEN5 D3DCLIP_GEN5 3599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONLEFT 0x00001000L 3619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONRIGHT 0x00002000L 3629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONTOP 0x00004000L 3639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONBOTTOM 0x00008000L 3649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONFRONT 0x00010000L 3659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONBACK 0x00020000L 3669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONGEN0 0x00040000L 3679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONGEN1 0x00080000L 3689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONGEN2 0x00100000L 3699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONGEN3 0x00200000L 3709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONGEN4 0x00400000L 3719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONGEN5 0x00800000L 3729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_ZNOTVISIBLE 0x01000000L 3739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPUNIONALL ( \ 3759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONLEFT | \ 3769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONRIGHT | \ 3779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONTOP | \ 3789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONBOTTOM | \ 3799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONFRONT | \ 3809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONBACK | \ 3819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONGEN0 | \ 3829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONGEN1 | \ 3839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONGEN2 | \ 3849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONGEN3 | \ 3859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONGEN4 | \ 3869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPUNIONGEN5 \ 3879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ) 3889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 3899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_CLIPINTERSECTIONALL ( \ 3909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONLEFT | \ 3919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONRIGHT | \ 3929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONTOP | \ 3939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONBOTTOM | \ 3949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONFRONT | \ 3959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONBACK | \ 3969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONGEN0 | \ 3979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONGEN1 | \ 3989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONGEN2 | \ 3999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONGEN3 | \ 4009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONGEN4 | \ 4019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONGEN5 \ 4029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ) 4039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATUS_DEFAULT ( \ 4059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_CLIPINTERSECTIONALL | \ 4069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS_ZNOTVISIBLE) 4079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 4109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Options for direct transform calls 4119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 4129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRANSFORM_CLIPPED 0x00000001l 4139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRANSFORM_UNCLIPPED 0x00000002l 4149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DTRANSFORMDATA { 4169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 4179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPVOID lpIn; /* Input vertices */ 4189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwInSize; /* Stride of input vertices */ 4199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPVOID lpOut; /* Output vertices */ 4209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwOutSize; /* Stride of output vertices */ 4219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DHVERTEX lpHOut; /* Output homogeneous vertices */ 4229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwClip; /* Clipping hint */ 4239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwClipIntersection; 4249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwClipUnion; /* Union of all clip flags */ 4259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRECT drExtent; /* Extent of transformed vertices */ 4269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA; 4279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 4299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Structure defining position and direction properties for lighting. 4309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 4319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLIGHTINGELEMENT { 4329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVECTOR dvPosition; /* Lightable point in model space */ 4339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVECTOR dvNormal; /* Normalised unit vector */ 4349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLIGHTINGELEMENT, *LPD3DLIGHTINGELEMENT; 4359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 4379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Structure defining material properties for lighting. 4389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 4399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DMATERIAL { 4409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 4419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 4429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE diffuse; /* Diffuse color RGBA */ 4439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE dcvDiffuse; 4449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 4459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 4469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE ambient; /* Ambient color RGB */ 4479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE dcvAmbient; 4489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 4499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 4509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE specular; /* Specular 'shininess' */ 4519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE dcvSpecular; 4529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 4539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 4549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE emissive; /* Emissive color RGB */ 4559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE dcvEmissive; 4569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 4579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 4589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE power; /* Sharpness if specular highlight */ 4599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvPower; 4609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 4619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTEXTUREHANDLE hTexture; /* Handle to texture map */ 4629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwRampSize; 4639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DMATERIAL, *LPD3DMATERIAL; 4649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DLIGHTTYPE { 4669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHT_POINT = 1, 4679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHT_SPOT = 2, 4689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHT_DIRECTIONAL = 3, 4699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHT_PARALLELPOINT = 4, 4709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHT_GLSPOT = 5, 4719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLIGHTTYPE; 4729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 4749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Structure defining a light source and its properties. 4759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 4769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLIGHT { 4779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 4789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTTYPE dltType; /* Type of light source */ 4799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLORVALUE dcvColor; /* Color of light */ 4809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVECTOR dvPosition; /* Position in world space */ 4819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVECTOR dvDirection; /* Direction in world space */ 4829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvRange; /* Cutoff range */ 4839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvFalloff; /* Falloff */ 4849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvAttenuation0; /* Constant attenuation */ 4859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvAttenuation1; /* Linear attenuation */ 4869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvAttenuation2; /* Quadratic attenuation */ 4879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvTheta; /* Inner angle of spotlight cone */ 4889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvPhi; /* Outer angle of spotlight cone */ 4899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLIGHT, *LPD3DLIGHT; 4909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLIGHTDATA { 4929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 4939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DLIGHTINGELEMENT lpIn; /* Input positions and normals */ 4949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwInSize; /* Stride of input elements */ 4959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream LPD3DTLVERTEX lpOut; /* Output colors */ 4969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwOutSize; /* Stride of output colors */ 4979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLIGHTDATA, *LPD3DLIGHTDATA; 4989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 4999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DCOLORMODEL { 5009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR_MONO = 1, 5019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCOLOR_RGB = 2, 5029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DCOLORMODEL; 5039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 5059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Options for clearing 5069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 5079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLEAR_TARGET 0x00000001l /* Clear target surface */ 5089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DCLEAR_ZBUFFER 0x00000002l /* Clear target z buffer */ 5099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 5119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Execute buffers are allocated via Direct3D. These buffers may then 5129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * be filled by the application with instructions to execute along with 5139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * vertex data. 5149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 5159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 5179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Supported op codes for execute instructions. 5189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 5199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DOPCODE { 5209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_POINT = 1, 5219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_LINE = 2, 5229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_TRIANGLE = 3, 5239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_MATRIXLOAD = 4, 5249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_MATRIXMULTIPLY = 5, 5259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_STATETRANSFORM = 6, 5269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_STATELIGHT = 7, 5279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_STATERENDER = 8, 5289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_PROCESSVERTICES = 9, 5299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_TEXTURELOAD = 10, 5309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_EXIT = 11, 5319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_BRANCHFORWARD = 12, 5329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_SPAN = 13, 5339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DOP_SETSTATUS = 14, 5349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DOPCODE; 5359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DINSTRUCTION { 5379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream BYTE bOpcode; /* Instruction opcode */ 5389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream BYTE bSize; /* Size of each instruction data unit */ 5399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wCount; /* Count of instruction data units to follow */ 5409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DINSTRUCTION, *LPD3DINSTRUCTION; 5419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 5439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Structure for texture loads 5449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 5459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DTEXTURELOAD { 5469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTEXTUREHANDLE hDestTexture; 5479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTEXTUREHANDLE hSrcTexture; 5489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTEXTURELOAD, *LPD3DTEXTURELOAD; 5499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 5519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Structure for picking 5529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 5539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DPICKRECORD { 5549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream BYTE bOpcode; 5559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream BYTE bPad; 5569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwOffset; 5579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvZ; 5589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DPICKRECORD, *LPD3DPICKRECORD; 5599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 5619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The following defines the rendering states which can be set in the 5629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * execute buffer. 5639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 5649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DSHADEMODE { 5669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSHADE_FLAT = 1, 5679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSHADE_GOURAUD = 2, 5689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSHADE_PHONG = 3, 5699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DSHADEMODE; 5709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DFILLMODE { 5729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILL_POINT = 1, 5739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILL_WIREFRAME = 2, 5749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILL_SOLID = 3, 5759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DFILLMODE; 5769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLINEPATTERN { 5789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wRepeatFactor; 5799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wLinePattern; 5809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLINEPATTERN; 5819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DTEXTUREFILTER { 5839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILTER_NEAREST = 1, 5849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILTER_LINEAR = 2, 5859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILTER_MIPNEAREST = 3, 5869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILTER_MIPLINEAR = 4, 5879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILTER_LINEARMIPNEAREST = 5, 5889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFILTER_LINEARMIPLINEAR = 6, 5899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTEXTUREFILTER; 5909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 5919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DBLEND { 5929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_ZERO = 1, 5939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_ONE = 2, 5949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_SRCCOLOR = 3, 5959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_INVSRCCOLOR = 4, 5969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_SRCALPHA = 5, 5979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_INVSRCALPHA = 6, 5989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_DESTALPHA = 7, 5999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_INVDESTALPHA = 8, 6009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_DESTCOLOR = 9, 6019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_INVDESTCOLOR = 10, 6029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_SRCALPHASAT = 11, 6039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_BOTHSRCALPHA = 12, 6049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DBLEND_BOTHINVSRCALPHA = 13, 6059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DBLEND; 6069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DTEXTUREBLEND { 6089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_DECAL = 1, 6099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_MODULATE = 2, 6109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_DECALALPHA = 3, 6119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_MODULATEALPHA = 4, 6129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_DECALMASK = 5, 6139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_MODULATEMASK = 6, 6149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTBLEND_COPY = 7, 6159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTEXTUREBLEND; 6169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DTEXTUREADDRESS { 6189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTADDRESS_WRAP = 1, 6199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTADDRESS_MIRROR = 2, 6209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTADDRESS_CLAMP = 3, 6219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTEXTUREADDRESS; 6229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DCULL { 6249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCULL_NONE = 1, 6259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCULL_CW = 2, 6269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCULL_CCW = 3, 6279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DCULL; 6289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DCMPFUNC { 6309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_NEVER = 1, 6319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_LESS = 2, 6329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_EQUAL = 3, 6339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_LESSEQUAL = 4, 6349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_GREATER = 5, 6359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_NOTEQUAL = 6, 6369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_GREATEREQUAL = 7, 6379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DCMP_ALWAYS = 8, 6389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DCMPFUNC; 6399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DFOGMODE { 6419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFOG_NONE = 0, 6429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFOG_EXP = 1, 6439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFOG_EXP2 = 2, 6449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DFOG_LINEAR = 3 6459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DFOGMODE; 6469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 6489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Amount to add to a state to generate the override for that state. 6499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 6509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATE_OVERRIDE_BIAS 256 6519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 6539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * A state which sets the override flag for the specified state type. 6549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 6559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSTATE_OVERRIDE(type) ((DWORD) (type) + D3DSTATE_OVERRIDE_BIAS) 6569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DTRANSFORMSTATETYPE { 6589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTRANSFORMSTATE_WORLD = 1, 6599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTRANSFORMSTATE_VIEW = 2, 6609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTRANSFORMSTATE_PROJECTION = 3, 6619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTRANSFORMSTATETYPE; 6629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DLIGHTSTATETYPE { 6649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_MATERIAL = 1, 6659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_AMBIENT = 2, 6669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_COLORMODEL = 3, 6679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_FOGMODE = 4, 6689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_FOGSTART = 5, 6699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_FOGEND = 6, 6709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATE_FOGDENSITY = 7, 6719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLIGHTSTATETYPE; 6729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 6739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef enum _D3DRENDERSTATETYPE { 6749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_TEXTUREHANDLE = 1, /* Texture handle */ 6759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ANTIALIAS = 2, /* Antialiasing prim edges */ 6769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_TEXTUREADDRESS = 3, /* D3DTEXTUREADDRESS */ 6779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4, /* TRUE for perspective correction */ 6789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_WRAPU = 5, /* TRUE for wrapping in u */ 6799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_WRAPV = 6, /* TRUE for wrapping in v */ 6809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ZENABLE = 7, /* TRUE to enable z test */ 6819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FILLMODE = 8, /* D3DFILL_MODE */ 6829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_SHADEMODE = 9, /* D3DSHADEMODE */ 6839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_LINEPATTERN = 10, /* D3DLINEPATTERN */ 6849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_MONOENABLE = 11, /* TRUE to enable mono rasterization */ 6859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ROP2 = 12, /* ROP2 */ 6869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_PLANEMASK = 13, /* DWORD physical plane mask */ 6879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ZWRITEENABLE = 14, /* TRUE to enable z writes */ 6889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */ 6899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_LASTPIXEL = 16, /* TRUE for last-pixel on lines */ 6909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_TEXTUREMAG = 17, /* D3DTEXTUREFILTER */ 6919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_TEXTUREMIN = 18, /* D3DTEXTUREFILTER */ 6929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_SRCBLEND = 19, /* D3DBLEND */ 6939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_DESTBLEND = 20, /* D3DBLEND */ 6949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_TEXTUREMAPBLEND = 21, /* D3DTEXTUREBLEND */ 6959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_CULLMODE = 22, /* D3DCULL */ 6969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ZFUNC = 23, /* D3DCMPFUNC */ 6979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ALPHAREF = 24, /* D3DFIXED */ 6989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ALPHAFUNC = 25, /* D3DCMPFUNC */ 6999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_DITHERENABLE = 26, /* TRUE to enable dithering */ 7009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_BLENDENABLE = 27, /* TRUE to enable alpha blending */ 7019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FOGENABLE = 28, /* TRUE to enable fog */ 7029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_SPECULARENABLE = 29, /* TRUE to enable specular */ 7039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_ZVISIBLE = 30, /* TRUE to enable z checking */ 7049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_SUBPIXEL = 31, /* TRUE to enable subpixel correction */ 7059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_SUBPIXELX = 32, /* TRUE to enable correction in X only */ 7069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEDALPHA = 33, /* TRUE to enable stippled alpha */ 7079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FOGCOLOR = 34, /* D3DCOLOR */ 7089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FOGTABLEMODE = 35, /* D3DFOGMODE */ 7099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FOGTABLESTART = 36, /* Fog table start */ 7109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FOGTABLEEND = 37, /* Fog table end */ 7119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_FOGTABLEDENSITY = 38, /* Fog table density */ 7129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEENABLE = 39, /* TRUE to enable stippling */ 7139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN00 = 64, /* Stipple pattern 01... */ 7149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN01 = 65, 7159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN02 = 66, 7169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN03 = 67, 7179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN04 = 68, 7189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN05 = 69, 7199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN06 = 70, 7209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN07 = 71, 7219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN08 = 72, 7229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN09 = 73, 7239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN10 = 74, 7249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN11 = 75, 7259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN12 = 76, 7269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN13 = 77, 7279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN14 = 78, 7289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN15 = 79, 7299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN16 = 80, 7309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN17 = 81, 7319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN18 = 82, 7329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN19 = 83, 7339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN20 = 84, 7349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN21 = 85, 7359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN22 = 86, 7369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN23 = 87, 7379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN24 = 88, 7389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN25 = 89, 7399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN26 = 90, 7409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN27 = 91, 7419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN28 = 92, 7429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN29 = 93, 7439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN30 = 94, 7449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATE_STIPPLEPATTERN31 = 95, 7459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DRENDERSTATETYPE; 7469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y)) 7489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DSTATE { 7509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 7519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DTRANSFORMSTATETYPE dtstTransformStateType; 7529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DLIGHTSTATETYPE dlstLightStateType; 7539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRENDERSTATETYPE drstRenderStateType; 7549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 7559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 7569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwArg[1]; 7579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DVALUE dvArg[1]; 7589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 7599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DSTATE, *LPD3DSTATE; 7609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 7629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Operation used to load matrices 7639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * hDstMat = hSrcMat 7649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 7659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DMATRIXLOAD { 7669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DMATRIXHANDLE hDestMatrix; /* Destination matrix */ 7679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DMATRIXHANDLE hSrcMatrix; /* Source matrix */ 7689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DMATRIXLOAD, *LPD3DMATRIXLOAD; 7699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 7719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Operation used to multiply matrices 7729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * hDstMat = hSrcMat1 * hSrcMat2 7739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 7749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DMATRIXMULTIPLY { 7759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DMATRIXHANDLE hDestMatrix; /* Destination matrix */ 7769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DMATRIXHANDLE hSrcMatrix1; /* First source matrix */ 7779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DMATRIXHANDLE hSrcMatrix2; /* Second source matrix */ 7789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DMATRIXMULTIPLY, *LPD3DMATRIXMULTIPLY; 7799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 7819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Operation used to transform and light vertices. 7829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 7839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DPROCESSVERTICES { 7849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFlags; /* Do we transform or light or just copy? */ 7859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wStart; /* Index to first vertex in source */ 7869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wDest; /* Index to first vertex in local buffer */ 7879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwCount; /* Number of vertices to be processed */ 7889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwReserved; /* Must be zero */ 7899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DPROCESSVERTICES, *LPD3DPROCESSVERTICES; 7909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPROCESSVERTICES_TRANSFORMLIGHT 0x00000000L 7929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPROCESSVERTICES_TRANSFORM 0x00000001L 7939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPROCESSVERTICES_COPY 0x00000002L 7949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPROCESSVERTICES_OPMASK 0x00000007L 7959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPROCESSVERTICES_UPDATEEXTENTS 0x00000008L 7979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPROCESSVERTICES_NOCOLOR 0x00000010L 7989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 7999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Triangle flags 8029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Tri strip and fan flags. 8069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * START loads all three vertices 8079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * EVEN and ODD load just v3 with even or odd culling 8089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * START_FLAT contains a count from 0 to 29 that allows the 8099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * whole strip or fan to be culled in one hit. 8109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * e.g. for a quad len = 1 8119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_START 0x00000000L 8139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_STARTFLAT(len) (len) /* 0 < len < 30 */ 8149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_ODD 0x0000001eL 8159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_EVEN 0x0000001fL 8169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Triangle edge flags 8199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * enable edges for wireframe or antialiasing 8209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_EDGEENABLE1 0x00000100L /* v0-v1 edge */ 8229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_EDGEENABLE2 0x00000200L /* v1-v2 edge */ 8239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_EDGEENABLE3 0x00000400L /* v2-v0 edge */ 8249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRIFLAG_EDGEENABLETRIANGLE \ 8259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream (D3DTRIFLAG_EDGEENABLE1 | D3DTRIFLAG_EDGEENABLE2 | D3DTRIFLAG_EDGEENABLE3) 8269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Primitive structures and related defines. Vertex offsets are to types 8299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * D3DVERTEX, D3DLVERTEX, or D3DTLVERTEX. 8309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Triangle list primitive structure 8349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DTRIANGLE { 8369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 8379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD v1; /* Vertex indices */ 8389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wV1; 8399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 8409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 8419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD v2; 8429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wV2; 8439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 8449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 8459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD v3; 8469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wV3; 8479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 8489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wFlags; /* Edge (and other) flags */ 8499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTRIANGLE, *LPD3DTRIANGLE; 8509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Line strip structure. 8539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The instruction count - 1 defines the number of line segments. 8549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLINE { 8569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 8579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD v1; /* Vertex indices */ 8589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wV1; 8599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 8609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream union { 8619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD v2; 8629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wV2; 8639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream }; 8649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLINE, *LPD3DLINE; 8659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Span structure 8689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Spans join a list of points with the same y value. 8699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * If the y value changes, a new span is started. 8709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DSPAN { 8729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wCount; /* Number of spans */ 8739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wFirst; /* Index to first vertex */ 8749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DSPAN, *LPD3DSPAN; 8759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Point structure 8789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DPOINT { 8809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wCount; /* number of points */ 8819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream WORD wFirst; /* index to first vertex */ 8829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DPOINT, *LPD3DPOINT; 8839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Forward branch structure. 8879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Mask is logically anded with the driver status mask 8889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * if the result equals 'value', the branch is taken. 8899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 8909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DBRANCH { 8919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwMask; /* Bitmask against D3D status */ 8929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwValue; 8939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream BOOL bNegate; /* TRUE to negate comparison */ 8949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwOffset; /* How far to branch forward (0 for exit)*/ 8959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DBRANCH, *LPD3DBRANCH; 8969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 8979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 8989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Status used for set status instruction. 8999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * The D3D status is initialised on device creation 9009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * and is modified by all execute calls. 9019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 9029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DSTATUS { 9039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwFlags; /* Do we set extents or status */ 9049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwStatus; /* D3D status */ 9059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DRECT drExtent; 9069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DSTATUS, *LPD3DSTATUS; 9079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSETSTATUS_STATUS 0x00000001L 9099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSETSTATUS_EXTENTS 0x00000002L 9109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DSETSTATUS_ALL (D3DSETSTATUS_STATUS | D3DSETSTATUS_EXTENTS) 9119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 9139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Statistics structure 9149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 9159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DSTATS { 9169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 9179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwTrianglesDrawn; 9189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwLinesDrawn; 9199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwPointsDrawn; 9209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSpansDrawn; 9219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwVerticesProcessed; 9229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DSTATS, *LPD3DSTATS; 9239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 9259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Execute options. 9269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * When calling using D3DEXECUTE_UNCLIPPED all the primitives 9279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * inside the buffer must be contained within the viewport. 9289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 9299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DEXECUTE_CLIPPED 0x00000001l 9309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DEXECUTE_UNCLIPPED 0x00000002l 9319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DEXECUTEDATA { 9339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwSize; 9349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwVertexOffset; 9359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwVertexCount; 9369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwInstructionOffset; 9379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwInstructionLength; 9389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream DWORD dwHVertexOffset; 9399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream D3DSTATUS dsStatus; /* Status after execute */ 9409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DEXECUTEDATA, *LPD3DEXECUTEDATA; 9419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* 9439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Palette flags. 9449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * This are or'ed with the peFlags in the PALETTEENTRYs passed to DirectDraw. 9459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */ 9469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPAL_FREE 0x00 /* Renderer may use this entry freely */ 9479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPAL_READONLY 0x40 /* Renderer may not set this entry */ 9489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPAL_RESERVED 0x80 /* Renderer may not use this entry */ 9499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#if defined(__cplusplus) 9519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream}; 9529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif 9539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#pragma pack() 9559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream 9569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif /* _D3DTYPES_H_ */ 957