19fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*==========================================================================;
29fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *
39fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *  Copyright (C) 1995-1996 Microsoft Corporation.  All Rights Reserved.
49fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *
59fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *  File:       d3dcaps.h
69fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *  Content:    Direct3D capabilities include file
79fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *
89fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream ***************************************************************************/
99fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#ifndef _D3DCAPS_H
119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define _D3DCAPS_H
129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream *  Pull in DirectDraw include file automatically:
159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#include <ddraw.h>
179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#pragma pack(4)
199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* Description of capabilities of transform */
219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DTRANSFORMCAPS {
239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwSize;
249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwCaps;
259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DTRANSFORMCAPS_CLIP           0x00000001L /* Will clip whilst transforming */
289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* Description of capabilities of lighting */
309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DLIGHTINGCAPS {
329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwSize;
339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwCaps;                   /* Lighting caps */
349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwLightingModel;          /* Lighting model - RGB or mono */
359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwNumLights;              /* Number of lights that can be handled */
369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTINGMODEL_RGB            0x00000001L
399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTINGMODEL_MONO           0x00000002L
409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTCAPS_POINT              0x00000001L /* Point lights supported */
429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTCAPS_SPOT               0x00000002L /* Spot lights supported */
439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTCAPS_DIRECTIONAL        0x00000004L /* Directional lights supported */
449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTCAPS_PARALLELPOINT      0x00000008L /* Parallel point lights supported */
459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DLIGHTCAPS_GLSPOT             0x00000010L /* GL syle spot lights supported */
469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* Description of capabilities for each primitive type */
489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DPrimCaps {
509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwSize;
519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwMiscCaps;                 /* Capability flags */
529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwRasterCaps;
539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwZCmpCaps;
549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwSrcBlendCaps;
559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwDestBlendCaps;
569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwAlphaCmpCaps;
579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwShadeCaps;
589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwTextureCaps;
599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwTextureFilterCaps;
609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwTextureBlendCaps;
619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwTextureAddressCaps;
629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwStippleWidth;             /* maximum width and height of */
639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD dwStippleHeight;            /* of supported stipple (up to 32x32) */
649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DPRIMCAPS, *LPD3DPRIMCAPS;
659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwMiscCaps */
679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_MASKPLANES         0x00000001L
699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_MASKZ              0x00000002L
709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_LINEPATTERNREP     0x00000004L
719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_CONFORMANT         0x00000008L
729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_CULLNONE           0x00000010L
739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_CULLCW             0x00000020L
749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPMISCCAPS_CULLCCW            0x00000040L
759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwRasterCaps */
779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_DITHER           0x00000001L
799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_ROP2             0x00000002L
809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_XOR              0x00000004L
819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_PAT              0x00000008L
829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_ZTEST            0x00000010L
839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_SUBPIXEL         0x00000020L
849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_SUBPIXELX        0x00000040L
859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_FOGVERTEX        0x00000080L
869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_FOGTABLE         0x00000100L
879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPRASTERCAPS_STIPPLE          0x00000200L
889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwZCmpCaps, dwAlphaCmpCaps */
909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_NEVER               0x00000001L
929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_LESS                0x00000002L
939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_EQUAL               0x00000004L
949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_LESSEQUAL           0x00000008L
959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_GREATER             0x00000010L
969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_NOTEQUAL            0x00000020L
979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_GREATEREQUAL        0x00000040L
989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPCMPCAPS_ALWAYS              0x00000080L
999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwSourceBlendCaps, dwDestBlendCaps */
1019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_ZERO              0x00000001L
1039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_ONE               0x00000002L
1049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_SRCCOLOR          0x00000004L
1059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_INVSRCCOLOR       0x00000008L
1069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_SRCALPHA          0x00000010L
1079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_INVSRCALPHA       0x00000020L
1089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_DESTALPHA         0x00000040L
1099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_INVDESTALPHA      0x00000080L
1109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_DESTCOLOR         0x00000100L
1119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_INVDESTCOLOR      0x00000200L
1129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_SRCALPHASAT       0x00000400L
1139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_BOTHSRCALPHA      0x00000800L
1149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPBLENDCAPS_BOTHINVSRCALPHA   0x00001000L
1159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwShadeCaps */
1179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_COLORFLATMONO             0x00000001L
1199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_COLORFLATRGB              0x00000002L
1209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_COLORGOURAUDMONO          0x00000004L
1219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_COLORGOURAUDRGB           0x00000008L
1229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_COLORPHONGMONO            0x00000010L
1239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_COLORPHONGRGB             0x00000020L
1249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_SPECULARFLATMONO          0x00000040L
1269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_SPECULARFLATRGB           0x00000080L
1279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_SPECULARGOURAUDMONO       0x00000100L
1289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_SPECULARGOURAUDRGB        0x00000200L
1299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_SPECULARPHONGMONO         0x00000400L
1309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_SPECULARPHONGRGB          0x00000800L
1319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_ALPHAFLATBLEND            0x00001000L
1339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_ALPHAFLATSTIPPLED         0x00002000L
1349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_ALPHAGOURAUDBLEND         0x00004000L
1359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED      0x00008000L
1369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_ALPHAPHONGBLEND           0x00010000L
1379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED        0x00020000L
1389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_FOGFLAT                   0x00040000L
1409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_FOGGOURAUD                0x00080000L
1419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPSHADECAPS_FOGPHONG                  0x00100000L
1429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwTextureCaps */
1449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTEXTURECAPS_PERSPECTIVE     0x00000001L
1469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTEXTURECAPS_POW2            0x00000002L
1479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTEXTURECAPS_ALPHA           0x00000004L
1489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTEXTURECAPS_TRANSPARENCY    0x00000008L
1499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTEXTURECAPS_BORDER          0x00000010L
1509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTEXTURECAPS_SQUAREONLY      0x00000020L
1519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwTextureFilterCaps */
1539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTFILTERCAPS_NEAREST         0x00000001L
1559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTFILTERCAPS_LINEAR          0x00000002L
1569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTFILTERCAPS_MIPNEAREST      0x00000004L
1579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTFILTERCAPS_MIPLINEAR       0x00000008L
1589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010L
1599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020L
1609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwTextureBlendCaps */
1629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_DECAL            0x00000001L
1649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_MODULATE         0x00000002L
1659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_DECALALPHA       0x00000004L
1669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_MODULATEALPHA    0x00000008L
1679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_DECALMASK        0x00000010L
1689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_MODULATEMASK     0x00000020L
1699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTBLENDCAPS_COPY             0x00000040L
1709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DPRIMCAPS dwTextureAddressCaps */
1729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTADDRESSCAPS_WRAP           0x00000001L
1739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTADDRESSCAPS_MIRROR         0x00000002L
1749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DPTADDRESSCAPS_CLAMP          0x00000004L
1759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
1779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Description for a device.
1789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * This is used to describe a device that is to be created or to query
1799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * the current device.
1809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
1819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DDeviceDesc {
1829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwSize;                 /* Size of D3DDEVICEDESC structure */
1839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwFlags;                /* Indicates which fields have valid data */
1849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DCOLORMODEL    dcmColorModel;          /* Color model of device */
1859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwDevCaps;              /* Capabilities of device */
1869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DTRANSFORMCAPS dtcTransformCaps;       /* Capabilities of transform */
1879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    BOOL             bClipping;              /* Device can do 3D clipping */
1889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DLIGHTINGCAPS  dlcLightingCaps;        /* Capabilities of lighting */
1899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DPRIMCAPS      dpcLineCaps;
1909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DPRIMCAPS      dpcTriCaps;
1919fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwDeviceRenderBitDepth; /* One of DDBB_8, 16, etc.. */
1929fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwDeviceZBufferBitDepth;/* One of DDBD_16, 32, etc.. */
1939fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwMaxBufferSize;        /* Maximum execute buffer size */
1949fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD            dwMaxVertexCount;       /* Maximum vertex count */
1959fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DDEVICEDESC, *LPD3DDEVICEDESC;
1969fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1979fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef HRESULT (FAR PASCAL * LPD3DENUMDEVICESCALLBACK)(LPGUID lpGuid, LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID);
1989fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
1999fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DDEVICEDESC dwFlags indicating valid fields */
2009fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2019fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_COLORMODEL            0x00000001L /* dcmColorModel is valid */
2029fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_DEVCAPS               0x00000002L /* dwDevCaps is valid */
2039fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_TRANSFORMCAPS         0x00000004L /* dtcTransformCaps is valid */
2049fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_LIGHTINGCAPS          0x00000008L /* dlcLightingCaps is valid */
2059fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_BCLIPPING             0x00000010L /* bClipping is valid */
2069fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_LINECAPS              0x00000020L /* dpcLineCaps is valid */
2079fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_TRICAPS               0x00000040L /* dpcTriCaps is valid */
2089fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_DEVICERENDERBITDEPTH  0x00000080L /* dwDeviceRenderBitDepth is valid */
2099fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_DEVICEZBUFFERBITDEPTH 0x00000100L /* dwDeviceZBufferBitDepth is valid */
2109fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_MAXBUFFERSIZE         0x00000200L /* dwMaxBufferSize is valid */
2119fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDD_MAXVERTEXCOUNT        0x00000400L /* dwMaxVertexCount is valid */
2129fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2139fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DDEVICEDESC dwDevCaps flags */
2149fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2159fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_FLOATTLVERTEX        0x00000001L /* Device accepts floating point */
2169fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream                                                    /* for post-transform vertex data */
2179fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_SORTINCREASINGZ      0x00000002L /* Device needs data sorted for increasing Z*/
2189fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_SORTDECREASINGZ      0X00000004L /* Device needs data sorted for decreasing Z*/
2199fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_SORTEXACT            0x00000008L /* Device needs data sorted exactly */
2209fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2219fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_EXECUTESYSTEMMEMORY  0x00000010L /* Device can use execute buffers from system memory */
2229fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_EXECUTEVIDEOMEMORY   0x00000020L /* Device can use execute buffers from video memory */
2239fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040L /* Device can use TL buffers from system memory */
2249fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY  0x00000080L /* Device can use TL buffers from video memory */
2259fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_TEXTURESYSTEMMEMORY  0x00000100L /* Device can texture from system memory */
2269fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEVCAPS_TEXTUREVIDEOMEMORY   0x00000200L /* Device can texture from device memory */
2279fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2289fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_COLORMODEL        0x00000001L /* Match color model */
2299fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_GUID              0x00000002L /* Match guid */
2309fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_HARDWARE          0x00000004L /* Match hardware/software */
2319fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_TRIANGLES         0x00000008L /* Match in triCaps */
2329fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_LINES             0x00000010L /* Match in lineCaps  */
2339fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_MISCCAPS          0x00000020L /* Match primCaps.dwMiscCaps */
2349fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_RASTERCAPS        0x00000040L /* Match primCaps.dwRasterCaps */
2359fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_ZCMPCAPS          0x00000080L /* Match primCaps.dwZCmpCaps */
2369fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_ALPHACMPCAPS      0x00000100L /* Match primCaps.dwAlphaCmpCaps */
2379fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_SRCBLENDCAPS      0x00000200L /* Match primCaps.dwSourceBlendCaps */
2389fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_DSTBLENDCAPS      0x00000400L /* Match primCaps.dwDestBlendCaps */
2399fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_SHADECAPS         0x00000800L /* Match primCaps.dwShadeCaps */
2409fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_TEXTURECAPS       0x00001000L /* Match primCaps.dwTextureCaps */
2419fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_TEXTUREFILTERCAPS 0x00002000L /* Match primCaps.dwTextureFilterCaps */
2429fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_TEXTUREBLENDCAPS  0x00004000L /* Match primCaps.dwTextureBlendCaps */
2439fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DFDS_TEXTUREADDRESSCAPS  0x00008000L /* Match primCaps.dwTextureBlendCaps */
2449fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2459fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
2469fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * FindDevice arguments
2479fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
2489fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DFINDDEVICESEARCH {
2499fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwSize;
2509fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwFlags;
2519fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    BOOL                bHardware;
2529fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DCOLORMODEL       dcmColorModel;
2539fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    GUID                guid;
2549fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwCaps;
2559fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DPRIMCAPS         dpcPrimCaps;
2569fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DFINDDEVICESEARCH, *LPD3DFINDDEVICESEARCH;
2579fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2589fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DFINDDEVICERESULT {
2599fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwSize;
2609fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    GUID                guid;           /* guid which matched */
2619fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DDEVICEDESC       ddHwDesc;               /* hardware D3DDEVICEDESC */
2629fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    D3DDEVICEDESC       ddSwDesc;       /* software D3DDEVICEDESC */
2639fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DFINDDEVICERESULT, *LPD3DFINDDEVICERESULT;
2649fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2659fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/*
2669fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream * Description of execute buffer.
2679fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream */
2689fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstreamtypedef struct _D3DExecuteBufferDesc {
2699fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwSize;         /* size of this structure */
2709fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwFlags;        /* flags indicating which fields are valid */
2719fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwCaps;         /* capabilities of execute buffer */
2729fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    DWORD               dwBufferSize;   /* size of execute buffer data */
2739fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream    LPVOID              lpData;         /* pointer to actual data */
2749fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
2759fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2769fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DEXECUTEBUFFER dwFlags indicating valid fields */
2779fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2789fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEB_BUFSIZE          0x00000001l     /* buffer size valid */
2799fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEB_CAPS             0x00000002l     /* caps valid */
2809fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEB_LPDATA           0x00000004l     /* lpData valid */
2819fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2829fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream/* D3DEXECUTEBUFFER dwCaps */
2839fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2849fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001l     /* buffer in system memory */
2859fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEBCAPS_VIDEOMEMORY  0x00000002l     /* buffer in device memory */
2869fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#define D3DDEBCAPS_MEM (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY)
2879fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2889fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#pragma pack()
2899fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream
2909fd67c44777b350dc56f3e70c88963b0d966ffc7quake upstream#endif /* _D3DCAPS_H_ */
291