#ifndef __WINE_D3DCAPS_H
#define __WINE_D3DCAPS_H

#include "ddraw.h"

typedef struct _D3DTRANSFORMCAPS {
	DWORD dwSize;
	DWORD dwCaps;
} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;

#define D3DTRANSFORMCAPS_CLIP           0x00000001L

typedef struct _D3DLIGHTINGCAPS {
	DWORD dwSize;
	DWORD dwCaps;
	DWORD dwLightingModel;
	DWORD dwNumLights;
} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;

#define D3DLIGHTINGMODEL_RGB            0x00000001
#define D3DLIGHTINGMODEL_MONO           0x00000002

#define D3DLIGHTCAPS_POINT              0x00000001
#define D3DLIGHTCAPS_SPOT               0x00000002
#define D3DLIGHTCAPS_DIRECTIONAL        0x00000004
#define D3DLIGHTCAPS_PARALLELPOINT      0x00000008
#define D3DLIGHTCAPS_GLSPOT             0x00000010

typedef struct _D3dPrimCaps {
    DWORD dwSize;
    DWORD dwMiscCaps;
    DWORD dwRasterCaps;
    DWORD dwZCmpCaps;
    DWORD dwSrcBlendCaps;
    DWORD dwDestBlendCaps;
    DWORD dwAlphaCmpCaps;
    DWORD dwShadeCaps;
    DWORD dwTextureCaps;
    DWORD dwTextureFilterCaps;
    DWORD dwTextureBlendCaps;
    DWORD dwTextureAddressCaps;
    DWORD dwStippleWidth;
    DWORD dwStippleHeight;
} D3DPRIMCAPS, *LPD3DPRIMCAPS;

#define D3DPMISCCAPS_MASKPLANES         0x00000001
#define D3DPMISCCAPS_MASKZ              0x00000002
#define D3DPMISCCAPS_LINEPATTERNREP     0x00000004
#define D3DPMISCCAPS_CONFORMANT         0x00000008
#define D3DPMISCCAPS_CULLNONE           0x00000010
#define D3DPMISCCAPS_CULLCW             0x00000020
#define D3DPMISCCAPS_CULLCCW            0x00000040

#define D3DPRASTERCAPS_DITHER                     0x00000001
#define D3DPRASTERCAPS_ROP2                       0x00000002
#define D3DPRASTERCAPS_XOR                        0x00000004
#define D3DPRASTERCAPS_PAT                        0x00000008
#define D3DPRASTERCAPS_ZTEST                      0x00000010
#define D3DPRASTERCAPS_SUBPIXEL                   0x00000020
#define D3DPRASTERCAPS_SUBPIXELX                  0x00000040
#define D3DPRASTERCAPS_FOGVERTEX                  0x00000080
#define D3DPRASTERCAPS_FOGTABLE                   0x00000100
#define D3DPRASTERCAPS_STIPPLE                    0x00000200
#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT     0x00000400
#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT   0x00000800
#define D3DPRASTERCAPS_ANTIALIASEDGES             0x00001000
#define D3DPRASTERCAPS_MIPMAPLODBIAS              0x00002000
#define D3DPRASTERCAPS_ZBIAS                      0x00004000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR             0x00008000
#define D3DPRASTERCAPS_FOGRANGE                   0x00010000
#define D3DPRASTERCAPS_ANISOTROPY                 0x00020000
#define D3DPRASTERCAPS_WBUFFER                    0x00040000
#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
#define D3DPRASTERCAPS_WFOG                       0x00100000
#define D3DPRASTERCAPS_ZFOG                       0x00200000

#define D3DPCMPCAPS_NEVER               0x00000001
#define D3DPCMPCAPS_LESS                0x00000002
#define D3DPCMPCAPS_EQUAL               0x00000004
#define D3DPCMPCAPS_LESSEQUAL           0x00000008
#define D3DPCMPCAPS_GREATER             0x00000010
#define D3DPCMPCAPS_NOTEQUAL            0x00000020
#define D3DPCMPCAPS_GREATEREQUAL        0x00000040
#define D3DPCMPCAPS_ALWAYS              0x00000080

#define D3DPBLENDCAPS_ZERO              0x00000001
#define D3DPBLENDCAPS_ONE               0x00000002
#define D3DPBLENDCAPS_SRCCOLOR          0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR       0x00000008
#define D3DPBLENDCAPS_SRCALPHA          0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA       0x00000020
#define D3DPBLENDCAPS_DESTALPHA         0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA      0x00000080
#define D3DPBLENDCAPS_DESTCOLOR         0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR      0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT       0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA      0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA   0x00001000

#define D3DPSHADECAPS_COLORFLATMONO     0x00000001
#define D3DPSHADECAPS_COLORFLATRGB      0x00000002
#define D3DPSHADECAPS_COLORGOURAUDMONO  0x00000004
#define D3DPSHADECAPS_COLORGOURAUDRGB   0x00000008
#define D3DPSHADECAPS_COLORPHONGMONO    0x00000010
#define D3DPSHADECAPS_COLORPHONGRGB     0x00000020

#define D3DPSHADECAPS_SPECULARFLATMONO    0x00000040
#define D3DPSHADECAPS_SPECULARFLATRGB     0x00000080
#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
#define D3DPSHADECAPS_SPECULARGOURAUDRGB  0x00000200
#define D3DPSHADECAPS_SPECULARPHONGMONO   0x00000400
#define D3DPSHADECAPS_SPECULARPHONGRGB    0x00000800

#define D3DPSHADECAPS_ALPHAFLATBLEND       0x00001000
#define D3DPSHADECAPS_ALPHAFLATSTIPPLED    0x00002000
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND    0x00004000
#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
#define D3DPSHADECAPS_ALPHAPHONGBLEND      0x00010000
#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED   0x00020000

#define D3DPSHADECAPS_FOGFLAT           0x00040000
#define D3DPSHADECAPS_FOGGOURAUD        0x00080000
#define D3DPSHADECAPS_FOGPHONG          0x00100000

#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001
#define D3DPTEXTURECAPS_POW2                     0x00000002
#define D3DPTEXTURECAPS_ALPHA                    0x00000004
#define D3DPTEXTURECAPS_TRANSPARENCY             0x00000008
#define D3DPTEXTURECAPS_BORDER                   0x00000010
#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL  0x00000100L
/* yes actually 0x00000200 is unused - or at least unreleased */
#define D3DPTEXTURECAPS_PROJECTED                0x00000400
#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800
#define D3DPTEXTURECAPS_COLORKEYBLEND            0x00001000

#define D3DPTFILTERCAPS_NEAREST           0x00000001
#define D3DPTFILTERCAPS_LINEAR            0x00000002
#define D3DPTFILTERCAPS_MIPNEAREST        0x00000004
#define D3DPTFILTERCAPS_MIPLINEAR         0x00000008
#define D3DPTFILTERCAPS_LINEARMIPNEAREST  0x00000010
#define D3DPTFILTERCAPS_LINEARMIPLINEAR   0x00000020
/* yes - missing numbers */
#define D3DPTFILTERCAPS_MINFPOINT         0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR        0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC   0x00000400
/* yes - missing numbers */
#define D3DPTFILTERCAPS_MIPFPOINT         0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR        0x00020000
/* yes - missing numbers */
#define D3DPTFILTERCAPS_MAGFPOINT         0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR        0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC   0x04000000
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC    0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000

#define D3DPTBLENDCAPS_DECAL            0x00000001
#define D3DPTBLENDCAPS_MODULATE         0x00000002
#define D3DPTBLENDCAPS_DECALALPHA       0x00000004
#define D3DPTBLENDCAPS_MODULATEALPHA    0x00000008
#define D3DPTBLENDCAPS_DECALMASK        0x00000010
#define D3DPTBLENDCAPS_MODULATEMASK     0x00000020
#define D3DPTBLENDCAPS_COPY             0x00000040
#define D3DPTBLENDCAPS_ADD              0x00000080

#define D3DPTADDRESSCAPS_WRAP           0x00000001
#define D3DPTADDRESSCAPS_MIRROR         0x00000002
#define D3DPTADDRESSCAPS_CLAMP          0x00000004
#define D3DPTADDRESSCAPS_BORDER         0x00000008
#define D3DPTADDRESSCAPS_INDEPENDENTUV  0x00000010


typedef struct _D3DDeviceDesc {
        DWORD           dwSize;
        DWORD           dwFlags;
        D3DCOLORMODEL   dcmColorModel;
        DWORD           dwDevCaps;
        D3DTRANSFORMCAPS dtcTransformCaps;
        BOOL            bClipping;
        D3DLIGHTINGCAPS dlcLightingCaps;
        D3DPRIMCAPS     dpcLineCaps;
        D3DPRIMCAPS     dpcTriCaps;
        DWORD           dwDeviceRenderBitDepth;
        DWORD           dwDeviceZBufferBitDepth;
        DWORD           dwMaxBufferSize;
        DWORD           dwMaxVertexCount;

        DWORD           dwMinTextureWidth,dwMinTextureHeight;
        DWORD           dwMaxTextureWidth,dwMaxTextureHeight;
        DWORD           dwMinStippleWidth,dwMaxStippleWidth;
        DWORD           dwMinStippleHeight,dwMaxStippleHeight;

        DWORD       dwMaxTextureRepeat;
        DWORD       dwMaxTextureAspectRatio;
        DWORD       dwMaxAnisotropy;

        D3DVALUE    dvGuardBandLeft;
        D3DVALUE    dvGuardBandTop;
        D3DVALUE    dvGuardBandRight;
        D3DVALUE    dvGuardBandBottom;

        D3DVALUE    dvExtentsAdjust;
        DWORD       dwStencilCaps;

        DWORD       dwFVFCaps;
        DWORD       dwTextureOpCaps;
        WORD        wMaxTextureBlendStages;
        WORD        wMaxSimultaneousTextures;
} D3DDEVICEDESC,*LPD3DDEVICEDESC;
#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))

typedef struct _D3DDeviceDesc7 {
        DWORD            dwDevCaps;
        D3DPRIMCAPS      dpcLineCaps;
        D3DPRIMCAPS      dpcTriCaps;
        DWORD            dwDeviceRenderBitDepth;
        DWORD            dwDeviceZBufferBitDepth;

        DWORD       dwMinTextureWidth, dwMinTextureHeight;
        DWORD       dwMaxTextureWidth, dwMaxTextureHeight;

        DWORD       dwMaxTextureRepeat;
        DWORD       dwMaxTextureAspectRatio;
        DWORD       dwMaxAnisotropy;

        D3DVALUE    dvGuardBandLeft;
        D3DVALUE    dvGuardBandTop;
        D3DVALUE    dvGuardBandRight;
        D3DVALUE    dvGuardBandBottom;

        D3DVALUE    dvExtentsAdjust;
        DWORD       dwStencilCaps;
        DWORD       dwFVFCaps;
        DWORD       dwTextureOpCaps;
        WORD        wMaxTextureBlendStages;
        WORD        wMaxSimultaneousTextures;

        DWORD       dwMaxActiveLights;
        D3DVALUE    dvMaxVertexW;
        GUID        deviceGUID;

        WORD        wMaxUserClipPlanes;
        WORD        wMaxVertexBlendMatrices;

        DWORD       dwVertexProcessingCaps;

        DWORD       dwReserved1;
        DWORD       dwReserved2;
        DWORD       dwReserved3;
        DWORD       dwReserved4;
} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))

#define D3DDD_COLORMODEL                0x00000001
#define D3DDD_DEVCAPS                   0x00000002
#define D3DDD_TRANSFORMCAPS             0x00000004
#define D3DDD_LIGHTINGCAPS              0x00000008
#define D3DDD_BCLIPPING                 0x00000010
#define D3DDD_LINECAPS                  0x00000020
#define D3DDD_TRICAPS                   0x00000040
#define D3DDD_DEVICERENDERBITDEPTH      0x00000080
#define D3DDD_DEVICEZBUFFERBITDEPTH     0x00000100
#define D3DDD_MAXBUFFERSIZE             0x00000200
#define D3DDD_MAXVERTEXCOUNT            0x00000400

#define D3DDEVCAPS_FLOATTLVERTEX           0x00000001
#define D3DDEVCAPS_SORTINCREASINGZ         0x00000002
#define D3DDEVCAPS_SORTDECREASINGZ         0X00000004
#define D3DDEVCAPS_SORTEXACT               0x00000008
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x00000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x00000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x00000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x00000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x00000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x00000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x00000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x00000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x00001000
#define D3DDEVCAPS_DRAWPRIMITIVES2         0x00002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x00008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x00010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x00020000
#define D3DDEVCAPS_HWRASTERIZATION         0x00080000

#define D3DSTENCILCAPS_KEEP     0x00000001
#define D3DSTENCILCAPS_ZERO     0x00000002
#define D3DSTENCILCAPS_REPLACE  0x00000004
#define D3DSTENCILCAPS_INCRSAT  0x00000008
#define D3DSTENCILCAPS_DECRSAT  0x00000010
#define D3DSTENCILCAPS_INVERT   0x00000020
#define D3DSTENCILCAPS_INCR     0x00000040
#define D3DSTENCILCAPS_DECR     0x00000080

#define D3DTEXOPCAPS_DISABLE                    0x00000001
#define D3DTEXOPCAPS_SELECTARG1                 0x00000002
#define D3DTEXOPCAPS_SELECTARG2                 0x00000004
#define D3DTEXOPCAPS_MODULATE                   0x00000008
#define D3DTEXOPCAPS_MODULATE2X                 0x00000010
#define D3DTEXOPCAPS_MODULATE4X                 0x00000020
#define D3DTEXOPCAPS_ADD                        0x00000040
#define D3DTEXOPCAPS_ADDSIGNED                  0x00000080
#define D3DTEXOPCAPS_ADDSIGNED2X                0x00000100
#define D3DTEXOPCAPS_SUBTRACT                   0x00000200
#define D3DTEXOPCAPS_ADDSMOOTH                  0x00000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA          0x00000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA          0x00001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA           0x00002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM        0x00004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA          0x00008000
#define D3DTEXOPCAPS_PREMODULATE                0x00010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR     0x00020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA     0x00040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR  0x00080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA  0x00100000
#define D3DTEXOPCAPS_BUMPENVMAP                 0x00200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE        0x00400000
#define D3DTEXOPCAPS_DOTPRODUCT3                0x00800000

#define D3DFVFCAPS_TEXCOORDCOUNTMASK    0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS   0x00080000

#define D3DVTXPCAPS_TEXGEN              0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7     0x00000002
#define D3DVTXPCAPS_VERTEXFOG           0x00000004
#define D3DVTXPCAPS_DIRECTIONALLIGHTS   0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS    0x00000010
#define D3DVTXPCAPS_LOCALVIEWER         0x00000020

typedef HRESULT (CALLBACK * LPD3DENUMDEVICESCALLBACK)(LPGUID lpGuid,LPSTR lpDeviceDescription,LPSTR lpDeviceName,LPD3DDEVICEDESC,LPD3DDEVICEDESC,LPVOID);
typedef HRESULT (CALLBACK * LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID);

#define D3DFDS_COLORMODEL          0x00000001
#define D3DFDS_GUID                0x00000002
#define D3DFDS_HARDWARE            0x00000004
#define D3DFDS_TRIANGLES           0x00000008
#define D3DFDS_LINES               0x00000010
#define D3DFDS_MISCCAPS            0x00000020
#define D3DFDS_RASTERCAPS          0x00000040
#define D3DFDS_ZCMPCAPS            0x00000080
#define D3DFDS_ALPHACMPCAPS        0x00000100
#define D3DFDS_SRCBLENDCAPS        0x00000200
#define D3DFDS_DSTBLENDCAPS        0x00000400
#define D3DFDS_SHADECAPS           0x00000800
#define D3DFDS_TEXTURECAPS         0x00001000
#define D3DFDS_TEXTUREFILTERCAPS   0x00002000
#define D3DFDS_TEXTUREBLENDCAPS    0x00004000
#define D3DFDS_TEXTUREADDRESSCAPS  0x00008000

typedef struct _D3DFINDDEVICESEARCH {
    DWORD               dwSize;
    DWORD               dwFlags;
    BOOL                bHardware;
    D3DCOLORMODEL       dcmColorModel;
    GUID                guid;
    DWORD               dwCaps;
    D3DPRIMCAPS         dpcPrimCaps;
} D3DFINDDEVICESEARCH,*LPD3DFINDDEVICESEARCH;

typedef struct _D3DFINDDEVICERESULT {
    DWORD               dwSize;
    GUID                guid;
    D3DDEVICEDESC       ddHwDesc;
    D3DDEVICEDESC       ddSwDesc;
} D3DFINDDEVICERESULT,*LPD3DFINDDEVICERESULT;

typedef struct _D3DExecuteBufferDesc {
  DWORD  dwSize;
  DWORD  dwFlags;
  DWORD  dwCaps;
  DWORD  dwBufferSize;
  LPVOID lpData;
} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;

#define D3DDEB_BUFSIZE          0x00000001
#define D3DDEB_CAPS             0x00000002
#define D3DDEB_LPDATA           0x00000004

#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001
#define D3DDEBCAPS_VIDEOMEMORY  0x00000002
#define D3DDEBCAPS_MEM          (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY) /* = 0x3 */

typedef struct _D3DDEVINFO_TEXTUREMANAGER {
	BOOL    bThrashing;
	DWORD   dwApproxBytesDownloaded;
	DWORD   dwNumEvicts;
	DWORD   dwNumVidCreates;
	DWORD   dwNumTexturesUsed;
	DWORD   dwNumUsedTexInVid;
	DWORD   dwWorkingSet;
	DWORD   dwWorkingSetBytes;
	DWORD   dwTotalManaged;
	DWORD   dwTotalBytes;
	DWORD   dwLastPri;
} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;

typedef struct _D3DDEVINFO_TEXTURING {
	DWORD   dwNumLoads;
	DWORD   dwApproxBytesLoaded;
	DWORD   dwNumPreLoads;
	DWORD   dwNumSet;
	DWORD   dwNumCreates;
	DWORD   dwNumDestroys;
	DWORD   dwNumSetPriorities;
	DWORD   dwNumSetLODs;
	DWORD   dwNumLocks;
	DWORD   dwNumGetDCs;
} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;



#endif
