/*
 * Copyright 2011 Joakim Sindholt <opensource@zhasha.com>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * on the rights to use, copy, modify, merge, publish, distribute, sub
 * license, and/or sell copies of the Software, and to permit persons to whom
 * the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 * USE OR OTHER DEALINGS IN THE SOFTWARE. */

#ifndef _D3D9CAPS_H_
#define _D3D9CAPS_H_

#include "d3d9types.h"

/* Caps flags */
#define D3DCAPS_OVERLAY       0x00000800
#define D3DCAPS_READ_SCANLINE 0x00020000

#define D3DCAPS2_FULLSCREENGAMMA   0x00020000
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000
#define D3DCAPS2_RESERVED          0x02000000
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000
#define D3DCAPS2_DYNAMICTEXTURES   0x20000000
#define D3DCAPS2_CANAUTOGENMIPMAP  0x40000000
#define D3DCAPS2_CANSHARERESOURCE  0x80000000

#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION      0x00000080
#define D3DCAPS3_COPY_TO_VIDMEM                   0x00000100
#define D3DCAPS3_COPY_TO_SYSTEMMEM                0x00000200
#define D3DCAPS3_DXVAHD                           0x00000400
#define D3DCAPS3_RESERVED                         0x8000001F

#define D3DPRESENT_INTERVAL_DEFAULT   0x00000000
#define D3DPRESENT_INTERVAL_ONE       0x00000001
#define D3DPRESENT_INTERVAL_TWO       0x00000002
#define D3DPRESENT_INTERVAL_THREE     0x00000004
#define D3DPRESENT_INTERVAL_FOUR      0x00000008
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000

#define D3DCURSORCAPS_COLOR  0x00000001
#define D3DCURSORCAPS_LOWRES 0x00000002

#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 D3DDEVCAPS_PUREDEVICE              0x00100000
#define D3DDEVCAPS_QUINTICRTPATCHES        0x00200000
#define D3DDEVCAPS_RTPATCHES               0x00400000
#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x00800000
#define D3DDEVCAPS_NPATCHES                0x01000000

#define D3DPMISCCAPS_MASKZ                      0x00000002
#define D3DPMISCCAPS_CULLNONE                   0x00000010
#define D3DPMISCCAPS_CULLCW                     0x00000020
#define D3DPMISCCAPS_CULLCCW                    0x00000040
#define D3DPMISCCAPS_COLORWRITEENABLE           0x00000080
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS      0x00000100
#define D3DPMISCCAPS_CLIPTLVERTS                0x00000200
#define D3DPMISCCAPS_TSSARGTEMP                 0x00000400
#define D3DPMISCCAPS_BLENDOP                    0x00000800
#define D3DPMISCCAPS_NULLREFERENCE              0x00001000
#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS      0x00004000
#define D3DPMISCCAPS_PERSTAGECONSTANT           0x00008000
#define D3DPMISCCAPS_FOGANDSPECULARALPHA        0x00010000
#define D3DPMISCCAPS_SEPARATEALPHABLEND         0x00020000
#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    0x00040000
#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000
#define D3DPMISCCAPS_FOGVERTEXCLAMPED           0x00100000
#define D3DPMISCCAPS_POSTBLENDSRGBCONVERT       0x00200000

#define D3DPRASTERCAPS_DITHER              0x00000001
#define D3DPRASTERCAPS_ZTEST               0x00000010
#define D3DPRASTERCAPS_FOGVERTEX           0x00000080
#define D3DPRASTERCAPS_FOGTABLE            0x00000100
#define D3DPRASTERCAPS_MIPMAPLODBIAS       0x00002000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR      0x00008000
#define D3DPRASTERCAPS_FOGRANGE            0x00010000
#define D3DPRASTERCAPS_ANISOTROPY          0x00020000
#define D3DPRASTERCAPS_WBUFFER             0x00040000
#define D3DPRASTERCAPS_WFOG                0x00100000
#define D3DPRASTERCAPS_ZFOG                0x00200000
#define D3DPRASTERCAPS_COLORPERSPECTIVE    0x00400000
#define D3DPRASTERCAPS_SCISSORTEST         0x01000000
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000
#define D3DPRASTERCAPS_DEPTHBIAS           0x04000000
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE  0x08000000

#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 D3DPBLENDCAPS_BLENDFACTOR     0x00002000
#ifndef D3D_DISABLE_9EX
# define D3DPBLENDCAPS_SRCCOLOR2      0x00004000
# define D3DPBLENDCAPS_INVSRCCOLOR2   0x00008000
#endif

#define D3DPSHADECAPS_COLORGOURAUDRGB    0x00000008
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND  0x00004000
#define D3DPSHADECAPS_FOGGOURAUD         0x00080000

#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001
#define D3DPTEXTURECAPS_POW2                     0x00000002
#define D3DPTEXTURECAPS_ALPHA                    0x00000004
#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       0x00000100
#define D3DPTEXTURECAPS_PROJECTED                0x00000400
#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800
#define D3DPTEXTURECAPS_VOLUMEMAP                0x00002000
#define D3DPTEXTURECAPS_MIPMAP                   0x00004000
#define D3DPTEXTURECAPS_MIPVOLUMEMAP             0x00008000
#define D3DPTEXTURECAPS_MIPCUBEMAP               0x00010000
#define D3DPTEXTURECAPS_CUBEMAP_POW2             0x00020000
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           0x00040000
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV       0x00200000

#define D3DPTFILTERCAPS_MINFPOINT         0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR        0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC   0x00000400
#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD 0x00000800
#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD  0x00001000
#define D3DPTFILTERCAPS_MIPFPOINT         0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR        0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT         0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR        0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC   0x04000000
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD  0x10000000

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

#define D3DLINECAPS_TEXTURE   0x00000001
#define D3DLINECAPS_ZTEST     0x00000002
#define D3DLINECAPS_BLEND     0x00000004
#define D3DLINECAPS_ALPHACMP  0x00000008
#define D3DLINECAPS_FOG       0x00000010
#define D3DLINECAPS_ANTIALIAS 0x00000020

#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 D3DSTENCILCAPS_TWOSIDED 0x00000100

#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
#define D3DFVFCAPS_PSIZE              0x00100000

#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 D3DTEXOPCAPS_MULTIPLYADD               0x01000000
#define D3DTEXOPCAPS_LERP                      0x02000000

#define D3DVTXPCAPS_TEXGEN                   0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7          0x00000002
#define D3DVTXPCAPS_DIRECTIONALLIGHTS        0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS         0x00000010
#define D3DVTXPCAPS_LOCALVIEWER              0x00000020
#define D3DVTXPCAPS_TWEENING                 0x00000040
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP         0x00000100
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200

#define D3DDEVCAPS2_STREAMOFFSET                       0x00000001
#define D3DDEVCAPS2_DMAPNPATCH                         0x00000002
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH                0x00000004
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH                 0x00000008
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES      0x00000010
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH               0x00000020
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040

#define D3DDTCAPS_UBYTE4    0x00000001
#define D3DDTCAPS_UBYTE4N   0x00000002
#define D3DDTCAPS_SHORT2N   0x00000004
#define D3DDTCAPS_SHORT4N   0x00000008
#define D3DDTCAPS_USHORT2N  0x00000010
#define D3DDTCAPS_USHORT4N  0x00000020
#define D3DDTCAPS_UDEC3     0x00000040
#define D3DDTCAPS_DEC3N     0x00000080
#define D3DDTCAPS_FLOAT16_2 0x00000100
#define D3DDTCAPS_FLOAT16_4 0x00000200


#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
#define D3DVS20_MAX_NUMTEMPS                 32
#define D3DVS20_MIN_NUMTEMPS                 12
#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH   4
#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH   1

#define D3DVS20CAPS_PREDICATION              (1 << 0)

#define D3DPS20CAPS_ARBITRARYSWIZZLE         (1 << 0)
#define D3DPS20CAPS_GRADIENTINSTRUCTIONS     (1 << 1)
#define D3DPS20CAPS_PREDICATION              (1 << 2)
#define D3DPS20CAPS_NODEPENDENTREADLIMIT     (1 << 3)
#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT    (1 << 4)

#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
#define D3DPS20_MAX_NUMTEMPS                 32
#define D3DPS20_MIN_NUMTEMPS                 12
#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH   4
#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH   0
#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS      512
#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS      96

#define D3DMIN30SHADERINSTRUCTIONS          512
#define D3DMAX30SHADERINSTRUCTIONS          32768

/* Structs */
typedef struct _D3DVSHADERCAPS2_0 {
	DWORD Caps;
	INT DynamicFlowControlDepth;
	INT NumTemps;
	INT StaticFlowControlDepth;
} D3DVSHADERCAPS2_0, *PD3DVSHADERCAPS2_0, *LPD3DVSHADERCAPS2_0;

typedef struct _D3DPSHADERCAPS2_0 {
	DWORD Caps;
	INT DynamicFlowControlDepth;
	INT NumTemps;
	INT StaticFlowControlDepth;
	INT NumInstructionSlots;
} D3DPSHADERCAPS2_0, *PD3DPSHADERCAPS2_0, *LPD3DPSHADERCAPS2_0;

typedef struct _D3DCAPS9 {
	D3DDEVTYPE DeviceType;
	UINT AdapterOrdinal;
	DWORD Caps;
	DWORD Caps2;
	DWORD Caps3;
	DWORD PresentationIntervals;
	DWORD CursorCaps;
	DWORD DevCaps;
	DWORD PrimitiveMiscCaps;
	DWORD RasterCaps;
	DWORD ZCmpCaps;
	DWORD SrcBlendCaps;
	DWORD DestBlendCaps;
	DWORD AlphaCmpCaps;
	DWORD ShadeCaps;
	DWORD TextureCaps;
	DWORD TextureFilterCaps;
	DWORD CubeTextureFilterCaps;
	DWORD VolumeTextureFilterCaps;
	DWORD TextureAddressCaps;
	DWORD VolumeTextureAddressCaps;
	DWORD LineCaps;
	DWORD MaxTextureWidth;
	DWORD MaxTextureHeight;
	DWORD MaxVolumeExtent;
	DWORD MaxTextureRepeat;
	DWORD MaxTextureAspectRatio;
	DWORD MaxAnisotropy;
	float MaxVertexW;
	float GuardBandLeft;
	float GuardBandTop;
	float GuardBandRight;
	float GuardBandBottom;
	float ExtentsAdjust;
	DWORD StencilCaps;
	DWORD FVFCaps;
	DWORD TextureOpCaps;
	DWORD MaxTextureBlendStages;
	DWORD MaxSimultaneousTextures;
	DWORD VertexProcessingCaps;
	DWORD MaxActiveLights;
	DWORD MaxUserClipPlanes;
	DWORD MaxVertexBlendMatrices;
	DWORD MaxVertexBlendMatrixIndex;
	float MaxPointSize;
	DWORD MaxPrimitiveCount;
	DWORD MaxVertexIndex;
	DWORD MaxStreams;
	DWORD MaxStreamStride;
	DWORD VertexShaderVersion;
	DWORD MaxVertexShaderConst;
	DWORD PixelShaderVersion;
	float PixelShader1xMaxValue;
	DWORD DevCaps2;
	float MaxNpatchTessellationLevel;
	DWORD Reserved5;
	UINT MasterAdapterOrdinal;
	UINT AdapterOrdinalInGroup;
	UINT NumberOfAdaptersInGroup;
	DWORD DeclTypes;
	DWORD NumSimultaneousRTs;
	DWORD StretchRectFilterCaps;
	D3DVSHADERCAPS2_0 VS20Caps;
	D3DPSHADERCAPS2_0 PS20Caps;
	DWORD VertexTextureFilterCaps;
	DWORD MaxVShaderInstructionsExecuted;
	DWORD MaxPShaderInstructionsExecuted;
	DWORD MaxVertexShader30InstructionSlots;
	DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9, *PD3DCAPS9, *LPD3DCAPS9;

typedef struct _D3DCONTENTPROTECTIONCAPS {
    DWORD Caps;
    GUID KeyExchangeType;
    UINT BufferAlignmentStart;
    UINT BlockAlignmentSize;
    ULONGLONG ProtectedMemorySize;
} D3DCONTENTPROTECTIONCAPS, *PD3DCONTENTPROTECTIONCAPS, *LPD3DCONTENTPROTECTIONCAPS;

typedef struct _D3DOVERLAYCAPS {
    UINT Caps;
    UINT MaxOverlayDisplayWidth;
    UINT MaxOverlayDisplayHeight;
} D3DOVERLAYCAPS, *PD3DOVERLAYCAPS, *LPD3DOVERLAYCAPS;

#endif /* _D3D9CAPS_H_ */
