//---------------------------------------------------------------------------- // // getcaps.h // // Legacy caps as pulled from mustard\direct3d\d3d\ddraw\getcaps.c // // This file is included from swprov.cpp with BUILD_RAMP set and not set, // to pick up exactly the caps reported by the software rasterizers in DX5. // // Copyright (C) Microsoft Corporation, 1997. // //---------------------------------------------------------------------------- #define MAX_CLIPPING_PLANES 12 /* Space for vertices generated/copied while clipping one triangle */ #define MAX_CLIP_VERTICES (( 2 * MAX_CLIPPING_PLANES ) + 3 ) #define MAX_VERTEX_COUNT 2048 #define BASE_VERTEX_COUNT (MAX_VERTEX_COUNT - MAX_CLIP_VERTICES) #define transformCaps { sizeof(D3DTRANSFORMCAPS), D3DTRANSFORMCAPS_CLIP } #ifdef BUILD_RAMP #define THIS_MODEL D3DLIGHTINGMODEL_MONO #define THIS_COLOR_MODEL D3DCOLOR_MONO #else #define THIS_MODEL D3DLIGHTINGMODEL_RGB #define THIS_COLOR_MODEL D3DCOLOR_RGB #endif #define lightingCaps { \ sizeof(D3DLIGHTINGCAPS), \ D3DLIGHTCAPS_POINT | \ D3DLIGHTCAPS_SPOT | \ D3DLIGHTCAPS_DIRECTIONAL | \ D3DLIGHTCAPS_PARALLELPOINT, \ THIS_MODEL, /* dwLightingModel */ \ 0, /* dwNumLights (infinite) */ \ } /* * Software Driver caps */ #ifdef BUILD_RAMP #define TRISHADECAPS \ D3DPSHADECAPS_COLORFLATMONO | \ D3DPSHADECAPS_COLORGOURAUDMONO | \ D3DPSHADECAPS_SPECULARFLATMONO | \ D3DPSHADECAPS_SPECULARGOURAUDMONO | \ D3DPSHADECAPS_ALPHAFLATSTIPPLED | \ D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED #else #define TRISHADECAPS \ D3DPSHADECAPS_COLORFLATRGB | \ D3DPSHADECAPS_COLORGOURAUDRGB | \ D3DPSHADECAPS_SPECULARFLATRGB | \ D3DPSHADECAPS_SPECULARGOURAUDRGB | \ D3DPSHADECAPS_ALPHAFLATSTIPPLED | \ D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED | \ D3DPSHADECAPS_FOGFLAT | \ D3DPSHADECAPS_FOGGOURAUD #endif #ifdef BUILD_RAMP #define TRIFILTERCAPS \ D3DPTFILTERCAPS_NEAREST | \ D3DPTFILTERCAPS_MIPNEAREST #else #define TRIFILTERCAPS \ D3DPTFILTERCAPS_NEAREST | \ D3DPTFILTERCAPS_LINEAR | \ D3DPTFILTERCAPS_MIPNEAREST | \ D3DPTFILTERCAPS_MIPLINEAR | \ D3DPTFILTERCAPS_LINEARMIPNEAREST #endif #ifndef BUILD_RAMP #define TRIRASTERCAPS \ D3DPRASTERCAPS_DITHER | \ D3DPRASTERCAPS_SUBPIXELX | \ D3DPRASTERCAPS_FOGVERTEX | \ D3DPRASTERCAPS_FOGTABLE | \ D3DPRASTERCAPS_ZTEST #else #define TRIRASTERCAPS \ D3DPRASTERCAPS_DITHER | \ D3DPRASTERCAPS_SUBPIXELX | \ D3DPRASTERCAPS_ZTEST #endif #define triCaps { \ sizeof(D3DPRIMCAPS), \ D3DPMISCCAPS_CULLCCW | D3DPMISCCAPS_CULLCW | D3DPMISCCAPS_CULLNONE, /* miscCaps */ \ TRIRASTERCAPS, /* rasterCaps */ \ D3DPCMPCAPS_NEVER | D3DPCMPCAPS_LESS | D3DPCMPCAPS_EQUAL | D3DPCMPCAPS_LESSEQUAL | D3DPCMPCAPS_GREATER | D3DPCMPCAPS_NOTEQUAL | D3DPCMPCAPS_GREATEREQUAL | D3DPCMPCAPS_ALWAYS, /* zCmpCaps */ \ 0, /* sourceBlendCaps */ \ 0, /* destBlendCaps */ \ 0, /* alphaBlendCaps */ \ TRISHADECAPS, /* shadeCaps */ \ D3DPTEXTURECAPS_PERSPECTIVE |/* textureCaps */ \ D3DPTEXTURECAPS_POW2 | \ D3DPTEXTURECAPS_TRANSPARENCY, \ TRIFILTERCAPS, /* textureFilterCaps */ \ D3DPTBLENDCAPS_COPY | /* textureBlendCaps */ \ D3DPTBLENDCAPS_MODULATE, \ D3DPTADDRESSCAPS_WRAP, /* textureAddressCaps */\ 4, /* stippleWidth */ \ 4 /* stippleHeight */ \ } \ static D3DDEVICEDESC devDesc = { sizeof(D3DDEVICEDESC), /* dwSize */ D3DDD_COLORMODEL | /* dwFlags */ D3DDD_DEVCAPS | D3DDD_TRANSFORMCAPS | D3DDD_LIGHTINGCAPS | D3DDD_BCLIPPING | D3DDD_TRICAPS | D3DDD_DEVICERENDERBITDEPTH | D3DDD_DEVICEZBUFFERBITDEPTH | D3DDD_MAXBUFFERSIZE | D3DDD_MAXVERTEXCOUNT, THIS_COLOR_MODEL, /* dcmColorModel */ D3DDEVCAPS_FLOATTLVERTEX | D3DDEVCAPS_SORTINCREASINGZ | D3DDEVCAPS_SORTEXACT | D3DDEVCAPS_EXECUTESYSTEMMEMORY | D3DDEVCAPS_TLVERTEXSYSTEMMEMORY | D3DDEVCAPS_TEXTURESYSTEMMEMORY | D3DDEVCAPS_DRAWPRIMTLVERTEX, transformCaps, /* transformCaps */ TRUE, /* bClipping */ lightingCaps, /* lightingCaps */ triCaps, /* lineCaps */ triCaps, /* triCaps */ DDBD_8 | DDBD_16 | DDBD_24 | DDBD_32, /* dwDeviceRenderBitDepth */ DDBD_16, /* dwDeviceZBufferBitDepth */ 0, /* dwMaxBufferSize */ BASE_VERTEX_COUNT /* dwMaxVertexCount */ };