Apps can know if the window is occluded by checking for specific error messages. The behaviour is different for Device9 and Device9Ex. This allow games to release the mouse and stop rendering until the focus is restored. In case of multiple swapchain we do care only of the device one. Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
1817 lines
57 KiB
C
1817 lines
57 KiB
C
/*
|
|
* 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 _D3D9TYPES_H_
|
|
#define _D3D9TYPES_H_
|
|
|
|
#ifdef _WIN32
|
|
#include <windows.h>
|
|
#else /* _WIN32 */
|
|
#include <stdint.h>
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
|
|
/********************************************************
|
|
* Windows types *
|
|
********************************************************/
|
|
/* Function macros */
|
|
#define FAILED(x) ((HRESULT)(x) < 0)
|
|
#define SUCCEEDED(x) ((HRESULT)(x) >= 0)
|
|
|
|
#define MAKE_HRESULT(sev,fac,code) \
|
|
( \
|
|
((HRESULT)(sev) << 31) | \
|
|
((HRESULT)(fac) << 16) | \
|
|
(HRESULT)(code) \
|
|
)
|
|
|
|
/* Windows errors */
|
|
#define E_OUTOFMEMORY MAKE_HRESULT(1, 0x007, 14)
|
|
#define E_NOINTERFACE MAKE_HRESULT(1, 0x000, 0x4002)
|
|
#define E_POINTER MAKE_HRESULT(1, 0x000, 0x4003)
|
|
#define E_FAIL MAKE_HRESULT(1, 0x000, 0x4005)
|
|
|
|
#define S_OK ((HRESULT)0)
|
|
#define S_FALSE ((HRESULT)1)
|
|
|
|
/* WORD types */
|
|
typedef uint8_t BYTE;
|
|
typedef uint16_t WORD;
|
|
typedef uint32_t DWORD;
|
|
|
|
/* Renamed types */
|
|
typedef int BOOL;
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#define TRUE (!FALSE)
|
|
#endif
|
|
|
|
typedef uint32_t UINT32;
|
|
typedef uint64_t UINT64;
|
|
|
|
typedef unsigned short USHORT;
|
|
typedef unsigned int UINT;
|
|
typedef unsigned int ULONG;
|
|
typedef unsigned long long ULONGLONG;
|
|
|
|
typedef short SHORT;
|
|
typedef int INT;
|
|
typedef int LONG;
|
|
typedef long long LONGLONG;
|
|
typedef float FLOAT;
|
|
|
|
/* Windows types */
|
|
typedef void *HANDLE;
|
|
typedef int32_t HRESULT;
|
|
typedef HANDLE HWND;
|
|
typedef HANDLE HMONITOR;
|
|
typedef HANDLE HDC;
|
|
|
|
/* Unions */
|
|
typedef union {
|
|
struct {
|
|
DWORD LowPart;
|
|
LONG HighPart;
|
|
};
|
|
|
|
struct {
|
|
DWORD LowPart;
|
|
LONG HighPart;
|
|
} u;
|
|
|
|
LONGLONG QuadPart;
|
|
} LARGE_INTEGER, *LPLARGE_INTEGER;
|
|
|
|
/* Structs */
|
|
|
|
typedef struct _GUID {
|
|
DWORD Data1;
|
|
WORD Data2;
|
|
WORD Data3;
|
|
BYTE Data4[8];
|
|
} GUID, IID, *LPGUID, *REFGUID, *REFIID;
|
|
|
|
typedef struct _LUID {
|
|
DWORD LowPart;
|
|
LONG HighPart;
|
|
} LUID, *LPLUID, *PLUID;
|
|
|
|
typedef struct _PALETTEENTRY {
|
|
BYTE peRed;
|
|
BYTE peGreen;
|
|
BYTE peBlue;
|
|
BYTE peFlags;
|
|
} PALETTEENTRY, *LPPALETTEENTRY;
|
|
|
|
typedef struct _POINT {
|
|
LONG x;
|
|
LONG y;
|
|
} POINT, *LPPOINT;
|
|
|
|
typedef struct _RECT {
|
|
LONG left;
|
|
LONG top;
|
|
LONG right;
|
|
LONG bottom;
|
|
} RECT, *LPRECT;
|
|
|
|
typedef struct _RGNDATAHEADER {
|
|
DWORD dwSize;
|
|
DWORD iType;
|
|
DWORD nCount;
|
|
DWORD nRgnSize;
|
|
RECT rcBound;
|
|
} RGNDATAHEADER, *LPRGNDATAHEADER;
|
|
|
|
typedef struct _RGNDATA {
|
|
RGNDATAHEADER rdh;
|
|
char Buffer[1];
|
|
} RGNDATA, *LPRGNDATA;
|
|
#endif /* _WIN32 */
|
|
|
|
#ifndef MAKEFOURCC
|
|
#define MAKEFOURCC(a, b, c, d) \
|
|
( \
|
|
(DWORD)(BYTE)(a) | \
|
|
((DWORD)(BYTE)(b) << 8) | \
|
|
((DWORD)(BYTE)(c) << 16) | \
|
|
((DWORD)(BYTE)(d) << 24) \
|
|
)
|
|
#endif /* MAKEFOURCC */
|
|
|
|
|
|
#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001
|
|
#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002
|
|
#define D3DPRESENTFLAG_DEVICECLIP 0x00000004
|
|
#define D3DPRESENTFLAG_VIDEO 0x00000010
|
|
#define D3DPRESENTFLAG_NOAUTOROTATE 0x00000020
|
|
#define D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040
|
|
#define D3DPRESENTFLAG_OVERLAY_LIMITEDRGB 0x00000080
|
|
#define D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 0x00000100
|
|
#define D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC 0x00000200
|
|
#define D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400
|
|
#define D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800
|
|
|
|
|
|
#ifdef WINAPI
|
|
#undef WINAPI
|
|
#endif /* WINAPI*/
|
|
|
|
#if defined(__x86_64__) || defined(_M_X64)
|
|
#define WINAPI __attribute__((ms_abi))
|
|
#else /* x86_64 */
|
|
#define WINAPI __attribute__((__stdcall__))
|
|
#endif /* x86_64 */
|
|
|
|
/* Implementation caps */
|
|
#define D3DPRESENT_BACK_BUFFERS_MAX 3
|
|
#define D3DPRESENT_BACK_BUFFERS_MAX_EX 30
|
|
|
|
/* Functions */
|
|
#define MAKE_D3DHRESULT(code) MAKE_HRESULT(1, 0x876, code)
|
|
#define MAKE_D3DSTATUS(code) MAKE_HRESULT(0, 0x876, code)
|
|
|
|
/* SDK version */
|
|
#define D3D_SDK_VERSION 32
|
|
|
|
/* Adapter */
|
|
#define D3DADAPTER_DEFAULT 0
|
|
|
|
/********************************************************
|
|
* Return codes *
|
|
********************************************************/
|
|
#define D3D_OK S_OK
|
|
#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
|
|
#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
|
|
#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
|
|
#define D3DERR_WRONGTEXTUREFORMAT MAKE_D3DHRESULT(2072)
|
|
#define D3DERR_UNSUPPORTEDCOLOROPERATION MAKE_D3DHRESULT(2073)
|
|
#define D3DERR_UNSUPPORTEDCOLORARG MAKE_D3DHRESULT(2074)
|
|
#define D3DERR_UNSUPPORTEDALPHAOPERATION MAKE_D3DHRESULT(2075)
|
|
#define D3DERR_UNSUPPORTEDALPHAARG MAKE_D3DHRESULT(2076)
|
|
#define D3DERR_TOOMANYOPERATIONS MAKE_D3DHRESULT(2077)
|
|
#define D3DERR_CONFLICTINGTEXTUREFILTER MAKE_D3DHRESULT(2078)
|
|
#define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT(2079)
|
|
#define D3DERR_CONFLICTINGRENDERSTATE MAKE_D3DHRESULT(2081)
|
|
#define D3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_D3DHRESULT(2082)
|
|
#define D3DERR_CONFLICTINGTEXTUREPALETTE MAKE_D3DHRESULT(2086)
|
|
#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
|
|
#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
|
|
#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
|
|
#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
|
|
#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
|
|
#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
|
|
#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
|
|
#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
|
|
#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
|
|
#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
|
|
#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
|
|
#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
|
|
|
|
/********************************************************
|
|
* Bitmasks *
|
|
*******************************************************/
|
|
/* IDirect3DDevice9::Clear */
|
|
#define D3DCLEAR_TARGET 0x00000001
|
|
#define D3DCLEAR_ZBUFFER 0x00000002
|
|
#define D3DCLEAR_STENCIL 0x00000004
|
|
|
|
/* Usage */
|
|
/* http://msdn.microsoft.com/en-us/library/ee416659(VS.85).aspx */
|
|
#define D3DUSAGE_RENDERTARGET 0x00000001
|
|
#define D3DUSAGE_DEPTHSTENCIL 0x00000002
|
|
#define D3DUSAGE_WRITEONLY 0x00000008
|
|
#define D3DUSAGE_SOFTWAREPROCESSING 0x00000010
|
|
#define D3DUSAGE_DONOTCLIP 0x00000020
|
|
#define D3DUSAGE_POINTS 0x00000040
|
|
#define D3DUSAGE_RTPATCHES 0x00000080
|
|
#define D3DUSAGE_NPATCHES 0x00000100
|
|
#define D3DUSAGE_DYNAMIC 0x00000200
|
|
#define D3DUSAGE_AUTOGENMIPMAP 0x00000400
|
|
#ifndef D3D_DISABLE_9EX
|
|
#define D3DUSAGE_RESTRICTED_CONTENT 0x00000800
|
|
#define D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER 0x00001000
|
|
#define D3DUSAGE_RESTRICT_SHARED_RESOURCE 0x00002000
|
|
#endif
|
|
#define D3DUSAGE_DMAP 0x00004000
|
|
#define D3DUSAGE_QUERY_LEGACYBUMPMAP 0x00008000
|
|
#define D3DUSAGE_QUERY_SRGBREAD 0x00010000
|
|
#define D3DUSAGE_QUERY_FILTER 0x00020000
|
|
#define D3DUSAGE_QUERY_SRGBWRITE 0x00040000
|
|
#define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000
|
|
#define D3DUSAGE_QUERY_VERTEXTEXTURE 0x00100000
|
|
#define D3DUSAGE_QUERY_WRAPANDMIP 0x00200000
|
|
#ifndef D3D_DISABLE_9EX
|
|
#define D3DUSAGE_NONSECURE 0x00800000
|
|
#define D3DUSAGE_TEXTAPI 0x10000000
|
|
#endif
|
|
|
|
/* Buffer locking */
|
|
/* http://msdn.microsoft.com/en-us/library/ee416503(VS.85).aspx */
|
|
#define D3DLOCK_READONLY 0x00000010
|
|
#define D3DLOCK_NOSYSLOCK 0x00000800
|
|
#define D3DLOCK_NOOVERWRITE 0x00001000
|
|
#define D3DLOCK_DISCARD 0x00002000
|
|
#define D3DLOCK_DONOTWAIT 0x00004000
|
|
#define D3DLOCK_NO_DIRTY_UPDATE 0x00008000
|
|
|
|
/* FVF */
|
|
/* http://msdn.microsoft.com/en-us/library/ee416490(VS.85).aspx */
|
|
/* http://msdn.microsoft.com/en-us/library/ms791638.aspx */
|
|
#define D3DFVF_XYZ 0x00000002
|
|
#define D3DFVF_XYZRHW 0x00000004
|
|
#define D3DFVF_XYZB1 0x00000006
|
|
#define D3DFVF_XYZB2 0x00000008
|
|
#define D3DFVF_XYZB3 0x0000000A
|
|
#define D3DFVF_XYZB4 0x0000000C
|
|
#define D3DFVF_XYZB5 0x0000000E
|
|
#define D3DFVF_XYZW 0x00004002
|
|
#define D3DFVF_POSITION_MASK 0x0000400E
|
|
|
|
#define D3DFVF_NORMAL 0x00000010
|
|
#define D3DFVF_PSIZE 0x00000020
|
|
#define D3DFVF_DIFFUSE 0x00000040
|
|
#define D3DFVF_SPECULAR 0x00000080
|
|
|
|
#define D3DFVF_TEX0 0x00000000
|
|
#define D3DFVF_TEX1 0x00000100
|
|
#define D3DFVF_TEX2 0x00000200
|
|
#define D3DFVF_TEX3 0x00000300
|
|
#define D3DFVF_TEX4 0x00000400
|
|
#define D3DFVF_TEX5 0x00000500
|
|
#define D3DFVF_TEX6 0x00000600
|
|
#define D3DFVF_TEX7 0x00000700
|
|
#define D3DFVF_TEX8 0x00000800
|
|
#define D3DFVF_TEXCOUNT_MASK 0x00000F00
|
|
#define D3DFVF_TEXCOUNT_SHIFT 8
|
|
#define D3DFVF_TEXTUREFORMAT1 0x00000003
|
|
#define D3DFVF_TEXTUREFORMAT2 0x00000000
|
|
#define D3DFVF_TEXTUREFORMAT3 0x00000001
|
|
#define D3DFVF_TEXTUREFORMAT4 0x00000002
|
|
|
|
#define D3DFVF_POSITION_MASK 0x0000400E
|
|
#define D3DFVF_TEXCOUNT_MASK 0x00000F00
|
|
#define D3DFVF_TEXCOUNT_SHIFT 8
|
|
|
|
#define D3DFVF_LASTBETA_UBYTE4 0x00001000
|
|
#define D3DFVF_LASTBETA_D3DCOLOR 0x00008000
|
|
|
|
#define D3DFVF_RESERVED0 0x00000001
|
|
#define D3DFVF_RESERVED2 0x00006000
|
|
|
|
#define D3DTA_SELECTMASK 0x0000000f
|
|
#define D3DTA_DIFFUSE 0x00000000
|
|
#define D3DTA_CURRENT 0x00000001
|
|
#define D3DTA_TEXTURE 0x00000002
|
|
#define D3DTA_TFACTOR 0x00000003
|
|
#define D3DTA_SPECULAR 0x00000004
|
|
#define D3DTA_TEMP 0x00000005
|
|
#define D3DTA_CONSTANT 0x00000006
|
|
#define D3DTA_COMPLEMENT 0x00000010
|
|
#define D3DTA_ALPHAREPLICATE 0x00000020
|
|
|
|
#define D3DSPD_IUNKNOWN 0x00000001
|
|
|
|
#define D3DPRESENT_DONOTWAIT 0x00000001
|
|
#define D3DPRESENT_LINEAR_CONTENT 0x00000002
|
|
#define D3DPRESENT_RATE_DEFAULT 0
|
|
|
|
#define D3DCREATE_FPU_PRESERVE 0x00000002
|
|
#define D3DCREATE_MULTITHREADED 0x00000004
|
|
#define D3DCREATE_PUREDEVICE 0x00000010
|
|
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020
|
|
#define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040
|
|
#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080
|
|
#define D3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100
|
|
#define D3DCREATE_ADAPTERGROUP_DEVICE 0x00000200
|
|
|
|
#define D3DSTREAMSOURCE_INDEXEDDATA (1 << 30)
|
|
#define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
|
|
|
|
/* D3DRS_COLORWRITEENABLE */
|
|
#define D3DCOLORWRITEENABLE_RED (1L << 0)
|
|
#define D3DCOLORWRITEENABLE_GREEN (1L << 1)
|
|
#define D3DCOLORWRITEENABLE_BLUE (1L << 2)
|
|
#define D3DCOLORWRITEENABLE_ALPHA (1L << 3)
|
|
|
|
|
|
/********************************************************
|
|
* Function macros *
|
|
*******************************************************/
|
|
|
|
/* Colors */
|
|
#define D3DCOLOR_ARGB(a,r,g,b) \
|
|
((D3DCOLOR)( \
|
|
(((a) & 0xFF) << 24) | \
|
|
(((r) & 0xFF) << 16) | \
|
|
(((g) & 0xFF) << 8) | \
|
|
((b) & 0xFF) \
|
|
))
|
|
|
|
#define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b)
|
|
#define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xFF,r,g,b)
|
|
#define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v)
|
|
#define D3DCOLOR_XYUV(y,u,v) D3DCOLOR_ARGB(0xFF,y,u,v)
|
|
|
|
#define D3DCOLOR_COLORVALUE(r,g,b,a) \
|
|
D3DCOLOR_RGBA( \
|
|
(DWORD)((r) * 255.0f), \
|
|
(DWORD)((g) * 255.0f), \
|
|
(DWORD)((b) * 255.0f), \
|
|
(DWORD)((a) * 255.0f) \
|
|
)
|
|
|
|
/* Shaders */
|
|
#define D3DDECL_END() { 0xFF, 0, D3DDECLTYPE_UNUSED, 0, 0, 0 }
|
|
|
|
/*****************************************************************************
|
|
* Typedefs *
|
|
*****************************************************************************/
|
|
typedef DWORD D3DCOLOR;
|
|
|
|
/*****************************************************************************
|
|
* Enums *
|
|
*****************************************************************************/
|
|
typedef enum D3DDISPLAYROTATION {
|
|
D3DDISPLAYROTATION_IDENTITY = 1,
|
|
D3DDISPLAYROTATION_90 = 2,
|
|
D3DDISPLAYROTATION_180 = 3,
|
|
D3DDISPLAYROTATION_270 = 4
|
|
} D3DDISPLAYROTATION;
|
|
|
|
typedef enum D3DSCANLINEORDERING {
|
|
D3DSCANLINEORDERING_UNKNOWN = 0,
|
|
D3DSCANLINEORDERING_PROGRESSIVE = 1,
|
|
D3DSCANLINEORDERING_INTERLACED = 2
|
|
} D3DSCANLINEORDERING;
|
|
|
|
typedef enum _D3DAUTHENTICATEDCHANNELTYPE {
|
|
D3DAUTHENTICATEDCHANNEL_D3D9 = 1,
|
|
D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE = 2,
|
|
D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE = 3
|
|
} D3DAUTHENTICATEDCHANNELTYPE;
|
|
|
|
typedef enum _D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE {
|
|
PROCESSIDTYPE_UNKNOWN = 0,
|
|
PROCESSIDTYPE_DWM = 1,
|
|
PROCESSIDTYPE_HANDLE = 2
|
|
} D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE;
|
|
|
|
typedef enum _D3DBACKBUFFER_TYPE {
|
|
D3DBACKBUFFER_TYPE_MONO = 0,
|
|
D3DBACKBUFFER_TYPE_LEFT = 1,
|
|
D3DBACKBUFFER_TYPE_RIGHT = 2
|
|
} D3DBACKBUFFER_TYPE;
|
|
|
|
typedef enum _D3DBASISTYPE {
|
|
D3DBASIS_BEZIER = 0,
|
|
D3DBASIS_BSPLINE = 1,
|
|
D3DBASIS_CATMULL_ROM = 2
|
|
} D3DBASISTYPE;
|
|
|
|
typedef enum _D3DBLEND {
|
|
D3DBLEND_ZERO = 1,
|
|
D3DBLEND_ONE = 2,
|
|
D3DBLEND_SRCCOLOR = 3,
|
|
D3DBLEND_INVSRCCOLOR = 4,
|
|
D3DBLEND_SRCALPHA = 5,
|
|
D3DBLEND_INVSRCALPHA = 6,
|
|
D3DBLEND_DESTALPHA = 7,
|
|
D3DBLEND_INVDESTALPHA = 8,
|
|
D3DBLEND_DESTCOLOR = 9,
|
|
D3DBLEND_INVDESTCOLOR = 10,
|
|
D3DBLEND_SRCALPHASAT = 11,
|
|
D3DBLEND_BOTHSRCALPHA = 12,
|
|
D3DBLEND_BOTHINVSRCALPHA = 13,
|
|
D3DBLEND_BLENDFACTOR = 14,
|
|
D3DBLEND_INVBLENDFACTOR = 15,
|
|
D3DBLEND_SRCCOLOR2 = 16,
|
|
D3DBLEND_INVSRCCOLOR2 = 17
|
|
} D3DBLEND;
|
|
|
|
typedef enum _D3DBLENDOP {
|
|
D3DBLENDOP_ADD = 1,
|
|
D3DBLENDOP_SUBTRACT = 2,
|
|
D3DBLENDOP_REVSUBTRACT = 3,
|
|
D3DBLENDOP_MIN = 4,
|
|
D3DBLENDOP_MAX = 5
|
|
} D3DBLENDOP;
|
|
|
|
typedef enum _D3DBUSTYPE {
|
|
D3DBUSTYPE_OTHER = 0x00000000,
|
|
D3DBUSTYPE_PCI = 0x00000001,
|
|
D3DBUSTYPE_PCIX = 0x00000002,
|
|
D3DBUSTYPE_PCIEXPRESS = 0x00000003,
|
|
D3DBUSTYPE_AGP = 0x00000004,
|
|
D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x00010000,
|
|
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x00020000,
|
|
D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x00030000,
|
|
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x00040000,
|
|
D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x00050000,
|
|
D3DBUSIMPL_MODIFIER_NON_STANDARD = 0x80000000
|
|
} D3DBUSTYPE;
|
|
|
|
typedef enum _D3DCMPFUNC {
|
|
D3DCMP_NEVER_ZERO = 0, //Needed to avoid warnings
|
|
D3DCMP_NEVER = 1,
|
|
D3DCMP_LESS = 2,
|
|
D3DCMP_EQUAL = 3,
|
|
D3DCMP_LESSEQUAL = 4,
|
|
D3DCMP_GREATER = 5,
|
|
D3DCMP_NOTEQUAL = 6,
|
|
D3DCMP_GREATEREQUAL = 7,
|
|
D3DCMP_ALWAYS = 8
|
|
} D3DCMPFUNC;
|
|
|
|
typedef enum _D3DCOMPOSERECTSOP{
|
|
D3DCOMPOSERECTS_COPY = 1,
|
|
D3DCOMPOSERECTS_OR = 2,
|
|
D3DCOMPOSERECTS_AND = 3,
|
|
D3DCOMPOSERECTS_NEG = 4
|
|
} D3DCOMPOSERECTSOP;
|
|
|
|
typedef enum _D3DCUBEMAP_FACES {
|
|
D3DCUBEMAP_FACE_POSITIVE_X = 0,
|
|
D3DCUBEMAP_FACE_NEGATIVE_X = 1,
|
|
D3DCUBEMAP_FACE_POSITIVE_Y = 2,
|
|
D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
|
|
D3DCUBEMAP_FACE_POSITIVE_Z = 4,
|
|
D3DCUBEMAP_FACE_NEGATIVE_Z = 5
|
|
} D3DCUBEMAP_FACES;
|
|
|
|
typedef enum _D3DCULL {
|
|
D3DCULL_NONE = 1,
|
|
D3DCULL_CW = 2,
|
|
D3DCULL_CCW = 3
|
|
} D3DCULL;
|
|
|
|
typedef enum _D3DDEBUGMONITORTOKENS {
|
|
D3DDMT_ENABLE = 0,
|
|
D3DDMT_DISABLE = 1
|
|
} D3DDEBUGMONITORTOKENS;
|
|
|
|
typedef enum _D3DDECLMETHOD {
|
|
D3DDECLMETHOD_DEFAULT = 0,
|
|
D3DDECLMETHOD_PARTIALU = 1,
|
|
D3DDECLMETHOD_PARTIALV = 2,
|
|
D3DDECLMETHOD_CROSSUV = 3,
|
|
D3DDECLMETHOD_UV = 4,
|
|
D3DDECLMETHOD_LOOKUP = 5,
|
|
D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
|
|
} D3DDECLMETHOD;
|
|
|
|
typedef enum _D3DDECLTYPE {
|
|
D3DDECLTYPE_FLOAT1 = 0,
|
|
D3DDECLTYPE_FLOAT2 = 1,
|
|
D3DDECLTYPE_FLOAT3 = 2,
|
|
D3DDECLTYPE_FLOAT4 = 3,
|
|
D3DDECLTYPE_D3DCOLOR = 4,
|
|
D3DDECLTYPE_UBYTE4 = 5,
|
|
D3DDECLTYPE_SHORT2 = 6,
|
|
D3DDECLTYPE_SHORT4 = 7,
|
|
D3DDECLTYPE_UBYTE4N = 8,
|
|
D3DDECLTYPE_SHORT2N = 9,
|
|
D3DDECLTYPE_SHORT4N = 10,
|
|
D3DDECLTYPE_USHORT2N = 11,
|
|
D3DDECLTYPE_USHORT4N = 12,
|
|
D3DDECLTYPE_UDEC3 = 13,
|
|
D3DDECLTYPE_DEC3N = 14,
|
|
D3DDECLTYPE_FLOAT16_2 = 15,
|
|
D3DDECLTYPE_FLOAT16_4 = 16,
|
|
D3DDECLTYPE_UNUSED = 17
|
|
} D3DDECLTYPE;
|
|
|
|
typedef enum _D3DDECLUSAGE {
|
|
D3DDECLUSAGE_POSITION = 0,
|
|
D3DDECLUSAGE_BLENDWEIGHT = 1,
|
|
D3DDECLUSAGE_BLENDINDICES = 2,
|
|
D3DDECLUSAGE_NORMAL = 3,
|
|
D3DDECLUSAGE_PSIZE = 4,
|
|
D3DDECLUSAGE_TEXCOORD = 5,
|
|
D3DDECLUSAGE_TANGENT = 6,
|
|
D3DDECLUSAGE_BINORMAL = 7,
|
|
D3DDECLUSAGE_TESSFACTOR = 8,
|
|
D3DDECLUSAGE_POSITIONT = 9,
|
|
D3DDECLUSAGE_COLOR = 10,
|
|
D3DDECLUSAGE_FOG = 11,
|
|
D3DDECLUSAGE_DEPTH = 12,
|
|
D3DDECLUSAGE_SAMPLE = 13
|
|
} D3DDECLUSAGE;
|
|
|
|
typedef enum _D3DDEGREETYPE {
|
|
D3DDEGREE_LINEAR = 1,
|
|
D3DDEGREE_QUADRATIC = 2,
|
|
D3DDEGREE_CUBIC = 3,
|
|
D3DDEGREE_QUINTIC = 5
|
|
} D3DDEGREETYPE;
|
|
|
|
typedef enum _D3DDEVTYPE {
|
|
D3DDEVTYPE_HAL = 1,
|
|
D3DDEVTYPE_REF = 2,
|
|
D3DDEVTYPE_SW = 3,
|
|
D3DDEVTYPE_NULLREF = 4
|
|
} D3DDEVTYPE;
|
|
|
|
typedef enum _D3DFILLMODE {
|
|
D3DFILL_SOLID_ZERO = 0,
|
|
D3DFILL_POINT = 1,
|
|
D3DFILL_WIREFRAME = 2,
|
|
D3DFILL_SOLID = 3
|
|
} D3DFILLMODE;
|
|
|
|
typedef enum _D3DFOGMODE {
|
|
D3DFOG_NONE = 0,
|
|
D3DFOG_EXP = 1,
|
|
D3DFOG_EXP2 = 2,
|
|
D3DFOG_LINEAR = 3
|
|
} D3DFOGMODE;
|
|
|
|
typedef enum _D3DFORMAT {
|
|
D3DFMT_UNKNOWN = 0,
|
|
D3DFMT_R8G8B8 = 20,
|
|
D3DFMT_A8R8G8B8 = 21,
|
|
D3DFMT_X8R8G8B8 = 22,
|
|
D3DFMT_R5G6B5 = 23,
|
|
D3DFMT_X1R5G5B5 = 24,
|
|
D3DFMT_A1R5G5B5 = 25,
|
|
D3DFMT_A4R4G4B4 = 26,
|
|
D3DFMT_R3G3B2 = 27,
|
|
D3DFMT_A8 = 28,
|
|
D3DFMT_A8R3G3B2 = 29,
|
|
D3DFMT_X4R4G4B4 = 30,
|
|
D3DFMT_A2B10G10R10 = 31,
|
|
D3DFMT_A8B8G8R8 = 32,
|
|
D3DFMT_X8B8G8R8 = 33,
|
|
D3DFMT_G16R16 = 34,
|
|
D3DFMT_A2R10G10B10 = 35,
|
|
D3DFMT_A16B16G16R16 = 36,
|
|
D3DFMT_A8P8 = 40,
|
|
D3DFMT_P8 = 41,
|
|
D3DFMT_L8 = 50,
|
|
D3DFMT_A8L8 = 51,
|
|
D3DFMT_A4L4 = 52,
|
|
D3DFMT_V8U8 = 60,
|
|
D3DFMT_L6V5U5 = 61,
|
|
D3DFMT_X8L8V8U8 = 62,
|
|
D3DFMT_Q8W8V8U8 = 63,
|
|
D3DFMT_V16U16 = 64,
|
|
D3DFMT_A2W10V10U10 = 67,
|
|
D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
|
|
D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
|
|
D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
|
|
D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
|
|
D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
|
|
D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
|
|
D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
|
|
D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
|
|
D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
|
|
D3DFMT_D16_LOCKABLE = 70,
|
|
D3DFMT_D32 = 71,
|
|
D3DFMT_D15S1 = 73,
|
|
D3DFMT_D24S8 = 75,
|
|
D3DFMT_D24X8 = 77,
|
|
D3DFMT_D24X4S4 = 79,
|
|
D3DFMT_D16 = 80,
|
|
D3DFMT_D32F_LOCKABLE = 82,
|
|
D3DFMT_D24FS8 = 83,
|
|
D3DFMT_D32_LOCKABLE = 84,
|
|
D3DFMT_S8_LOCKABLE = 85,
|
|
D3DFMT_L16 = 81,
|
|
D3DFMT_VERTEXDATA = 100,
|
|
D3DFMT_INDEX16 = 101,
|
|
D3DFMT_INDEX32 = 102,
|
|
D3DFMT_Q16W16V16U16 = 110,
|
|
D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'),
|
|
D3DFMT_R16F = 111,
|
|
D3DFMT_G16R16F = 112,
|
|
D3DFMT_A16B16G16R16F = 113,
|
|
D3DFMT_R32F = 114,
|
|
D3DFMT_G32R32F = 115,
|
|
D3DFMT_A32B32G32R32F = 116,
|
|
D3DFMT_CxV8U8 = 117,
|
|
D3DFMT_A1 = 118,
|
|
D3DFMT_A2B10G10R10_XR_BIAS = 119,
|
|
D3DFMT_BINARYBUFFER = 199,
|
|
D3DFMT_ATI1 = MAKEFOURCC('A', 'T', 'I', '1'),
|
|
D3DFMT_ATI2 = MAKEFOURCC('A', 'T', 'I', '2'),
|
|
D3DFMT_ATOC = MAKEFOURCC('A', 'T', 'O', 'C'),
|
|
D3DFMT_DF16 = MAKEFOURCC('D', 'F', '1', '6'),
|
|
D3DFMT_DF24 = MAKEFOURCC('D', 'F', '2', '4'),
|
|
D3DFMT_INTZ = MAKEFOURCC('I', 'N', 'T', 'Z'),
|
|
D3DFMT_NULL = MAKEFOURCC('N', 'U', 'L', 'L'),
|
|
D3DFMT_NVDB = MAKEFOURCC('N', 'V', 'D', 'B'),
|
|
D3DFMT_NV11 = MAKEFOURCC('N', 'V', '1', '1'),
|
|
D3DFMT_NV12 = MAKEFOURCC('N', 'V', '1', '2'),
|
|
D3DFMT_RESZ = MAKEFOURCC('R', 'E', 'S', 'Z'),
|
|
D3DFMT_Y210 = MAKEFOURCC('Y', '2', '1', '0'),
|
|
D3DFMT_Y216 = MAKEFOURCC('Y', '2', '1', '6'),
|
|
D3DFMT_Y410 = MAKEFOURCC('Y', '4', '1', '0')
|
|
} D3DFORMAT;
|
|
|
|
typedef enum _D3DLIGHTTYPE {
|
|
D3DLIGHT_POINT = 1,
|
|
D3DLIGHT_SPOT = 2,
|
|
D3DLIGHT_DIRECTIONAL = 3
|
|
} D3DLIGHTTYPE;
|
|
|
|
typedef enum _D3DMATERIALCOLORSOURCE {
|
|
D3DMCS_MATERIAL = 0,
|
|
D3DMCS_COLOR1 = 1,
|
|
D3DMCS_COLOR2 = 2
|
|
} D3DMATERIALCOLORSOURCE;
|
|
|
|
typedef enum _D3DMULTISAMPLE_TYPE {
|
|
D3DMULTISAMPLE_NONE = 0,
|
|
D3DMULTISAMPLE_NONMASKABLE = 1,
|
|
D3DMULTISAMPLE_2_SAMPLES = 2,
|
|
D3DMULTISAMPLE_3_SAMPLES = 3,
|
|
D3DMULTISAMPLE_4_SAMPLES = 4,
|
|
D3DMULTISAMPLE_5_SAMPLES = 5,
|
|
D3DMULTISAMPLE_6_SAMPLES = 6,
|
|
D3DMULTISAMPLE_7_SAMPLES = 7,
|
|
D3DMULTISAMPLE_8_SAMPLES = 8,
|
|
D3DMULTISAMPLE_9_SAMPLES = 9,
|
|
D3DMULTISAMPLE_10_SAMPLES = 10,
|
|
D3DMULTISAMPLE_11_SAMPLES = 11,
|
|
D3DMULTISAMPLE_12_SAMPLES = 12,
|
|
D3DMULTISAMPLE_13_SAMPLES = 13,
|
|
D3DMULTISAMPLE_14_SAMPLES = 14,
|
|
D3DMULTISAMPLE_15_SAMPLES = 15,
|
|
D3DMULTISAMPLE_16_SAMPLES = 16
|
|
} D3DMULTISAMPLE_TYPE;
|
|
|
|
typedef enum _D3DPATCHEDGESTYLE {
|
|
D3DPATCHEDGE_DISCRETE = 0,
|
|
D3DPATCHEDGE_CONTINUOUS = 1
|
|
} D3DPATCHEDGESTYLE;
|
|
|
|
typedef enum _D3DPOOL {
|
|
D3DPOOL_DEFAULT = 0,
|
|
D3DPOOL_MANAGED = 1,
|
|
D3DPOOL_SYSTEMMEM = 2,
|
|
D3DPOOL_SCRATCH = 3
|
|
} D3DPOOL;
|
|
|
|
typedef enum _D3DPRIMITIVETYPE {
|
|
D3DPT_POINTLIST = 1,
|
|
D3DPT_LINELIST = 2,
|
|
D3DPT_LINESTRIP = 3,
|
|
D3DPT_TRIANGLELIST = 4,
|
|
D3DPT_TRIANGLESTRIP = 5,
|
|
D3DPT_TRIANGLEFAN = 6
|
|
} D3DPRIMITIVETYPE;
|
|
|
|
typedef enum _D3DQUERYTYPE {
|
|
D3DQUERYTYPE_VCACHE = 4,
|
|
D3DQUERYTYPE_RESOURCEMANAGER = 5,
|
|
D3DQUERYTYPE_VERTEXSTATS = 6,
|
|
D3DQUERYTYPE_EVENT = 8,
|
|
D3DQUERYTYPE_OCCLUSION = 9,
|
|
D3DQUERYTYPE_TIMESTAMP = 10,
|
|
D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
|
|
D3DQUERYTYPE_TIMESTAMPFREQ = 12,
|
|
D3DQUERYTYPE_PIPELINETIMINGS = 13,
|
|
D3DQUERYTYPE_INTERFACETIMINGS = 14,
|
|
D3DQUERYTYPE_VERTEXTIMINGS = 15,
|
|
D3DQUERYTYPE_PIXELTIMINGS = 16,
|
|
D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
|
|
D3DQUERYTYPE_CACHEUTILIZATION = 18,
|
|
D3DQUERYTYPE_MEMORYPRESSURE = 19
|
|
} D3DQUERYTYPE;
|
|
|
|
#define D3DISSUE_BEGIN (1 << 1)
|
|
#define D3DISSUE_END (1 << 0)
|
|
#define D3DGETDATA_FLUSH (1 << 0)
|
|
|
|
|
|
typedef enum _D3DRENDERSTATETYPE {
|
|
D3DRS_ZENABLE = 7,
|
|
D3DRS_FILLMODE = 8,
|
|
D3DRS_SHADEMODE = 9,
|
|
D3DRS_ZWRITEENABLE = 14,
|
|
D3DRS_ALPHATESTENABLE = 15,
|
|
D3DRS_LASTPIXEL = 16,
|
|
D3DRS_SRCBLEND = 19,
|
|
D3DRS_DESTBLEND = 20,
|
|
D3DRS_CULLMODE = 22,
|
|
D3DRS_ZFUNC = 23,
|
|
D3DRS_ALPHAREF = 24,
|
|
D3DRS_ALPHAFUNC = 25,
|
|
D3DRS_DITHERENABLE = 26,
|
|
D3DRS_ALPHABLENDENABLE = 27,
|
|
D3DRS_FOGENABLE = 28,
|
|
D3DRS_SPECULARENABLE = 29,
|
|
D3DRS_FOGCOLOR = 34,
|
|
D3DRS_FOGTABLEMODE = 35,
|
|
D3DRS_FOGSTART = 36,
|
|
D3DRS_FOGEND = 37,
|
|
D3DRS_FOGDENSITY = 38,
|
|
D3DRS_RANGEFOGENABLE = 48,
|
|
D3DRS_STENCILENABLE = 52,
|
|
D3DRS_STENCILFAIL = 53,
|
|
D3DRS_STENCILZFAIL = 54,
|
|
D3DRS_STENCILPASS = 55,
|
|
D3DRS_STENCILFUNC = 56,
|
|
D3DRS_STENCILREF = 57,
|
|
D3DRS_STENCILMASK = 58,
|
|
D3DRS_STENCILWRITEMASK = 59,
|
|
D3DRS_TEXTUREFACTOR = 60,
|
|
D3DRS_WRAP0 = 128,
|
|
D3DRS_WRAP1 = 129,
|
|
D3DRS_WRAP2 = 130,
|
|
D3DRS_WRAP3 = 131,
|
|
D3DRS_WRAP4 = 132,
|
|
D3DRS_WRAP5 = 133,
|
|
D3DRS_WRAP6 = 134,
|
|
D3DRS_WRAP7 = 135,
|
|
D3DRS_CLIPPING = 136,
|
|
D3DRS_LIGHTING = 137,
|
|
D3DRS_AMBIENT = 139,
|
|
D3DRS_FOGVERTEXMODE = 140,
|
|
D3DRS_COLORVERTEX = 141,
|
|
D3DRS_LOCALVIEWER = 142,
|
|
D3DRS_NORMALIZENORMALS = 143,
|
|
D3DRS_DIFFUSEMATERIALSOURCE = 145,
|
|
D3DRS_SPECULARMATERIALSOURCE = 146,
|
|
D3DRS_AMBIENTMATERIALSOURCE = 147,
|
|
D3DRS_EMISSIVEMATERIALSOURCE = 148,
|
|
D3DRS_VERTEXBLEND = 151,
|
|
D3DRS_CLIPPLANEENABLE = 152,
|
|
D3DRS_POINTSIZE = 154,
|
|
D3DRS_POINTSIZE_MIN = 155,
|
|
D3DRS_POINTSPRITEENABLE = 156,
|
|
D3DRS_POINTSCALEENABLE = 157,
|
|
D3DRS_POINTSCALE_A = 158,
|
|
D3DRS_POINTSCALE_B = 159,
|
|
D3DRS_POINTSCALE_C = 160,
|
|
D3DRS_MULTISAMPLEANTIALIAS = 161,
|
|
D3DRS_MULTISAMPLEMASK = 162,
|
|
D3DRS_PATCHEDGESTYLE = 163,
|
|
D3DRS_DEBUGMONITORTOKEN = 165,
|
|
D3DRS_POINTSIZE_MAX = 166,
|
|
D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
|
|
D3DRS_COLORWRITEENABLE = 168,
|
|
D3DRS_TWEENFACTOR = 170,
|
|
D3DRS_BLENDOP = 171,
|
|
D3DRS_POSITIONDEGREE = 172,
|
|
D3DRS_NORMALDEGREE = 173,
|
|
D3DRS_SCISSORTESTENABLE = 174,
|
|
D3DRS_SLOPESCALEDEPTHBIAS = 175,
|
|
D3DRS_ANTIALIASEDLINEENABLE = 176,
|
|
D3DRS_MINTESSELLATIONLEVEL = 178,
|
|
D3DRS_MAXTESSELLATIONLEVEL = 179,
|
|
D3DRS_ADAPTIVETESS_X = 180,
|
|
D3DRS_ADAPTIVETESS_Y = 181,
|
|
D3DRS_ADAPTIVETESS_Z = 182,
|
|
D3DRS_ADAPTIVETESS_W = 183,
|
|
D3DRS_ENABLEADAPTIVETESSELLATION = 184,
|
|
D3DRS_TWOSIDEDSTENCILMODE = 185,
|
|
D3DRS_CCW_STENCILFAIL = 186,
|
|
D3DRS_CCW_STENCILZFAIL = 187,
|
|
D3DRS_CCW_STENCILPASS = 188,
|
|
D3DRS_CCW_STENCILFUNC = 189,
|
|
D3DRS_COLORWRITEENABLE1 = 190,
|
|
D3DRS_COLORWRITEENABLE2 = 191,
|
|
D3DRS_COLORWRITEENABLE3 = 192,
|
|
D3DRS_BLENDFACTOR = 193,
|
|
D3DRS_SRGBWRITEENABLE = 194,
|
|
D3DRS_DEPTHBIAS = 195,
|
|
D3DRS_WRAP8 = 198,
|
|
D3DRS_WRAP9 = 199,
|
|
D3DRS_WRAP10 = 200,
|
|
D3DRS_WRAP11 = 201,
|
|
D3DRS_WRAP12 = 202,
|
|
D3DRS_WRAP13 = 203,
|
|
D3DRS_WRAP14 = 204,
|
|
D3DRS_WRAP15 = 205,
|
|
D3DRS_SEPARATEALPHABLENDENABLE = 206,
|
|
D3DRS_SRCBLENDALPHA = 207,
|
|
D3DRS_DESTBLENDALPHA = 208,
|
|
D3DRS_BLENDOPALPHA = 209
|
|
} D3DRENDERSTATETYPE;
|
|
|
|
typedef enum _D3DRESOURCETYPE {
|
|
D3DRTYPE_SURFACE = 1,
|
|
D3DRTYPE_VOLUME = 2,
|
|
D3DRTYPE_TEXTURE = 3,
|
|
D3DRTYPE_VOLUMETEXTURE = 4,
|
|
D3DRTYPE_CUBETEXTURE = 5,
|
|
D3DRTYPE_VERTEXBUFFER = 6,
|
|
D3DRTYPE_INDEXBUFFER = 7
|
|
} D3DRESOURCETYPE;
|
|
#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
|
|
|
|
typedef enum _D3DSAMPLERSTATETYPE {
|
|
D3DSAMP_ADDRESSU = 1,
|
|
D3DSAMP_ADDRESSV = 2,
|
|
D3DSAMP_ADDRESSW = 3,
|
|
D3DSAMP_BORDERCOLOR = 4,
|
|
D3DSAMP_MAGFILTER = 5,
|
|
D3DSAMP_MINFILTER = 6,
|
|
D3DSAMP_MIPFILTER = 7,
|
|
D3DSAMP_MIPMAPLODBIAS = 8,
|
|
D3DSAMP_MAXMIPLEVEL = 9,
|
|
D3DSAMP_MAXANISOTROPY = 10,
|
|
D3DSAMP_SRGBTEXTURE = 11,
|
|
D3DSAMP_ELEMENTINDEX = 12,
|
|
D3DSAMP_DMAPOFFSET = 13
|
|
} D3DSAMPLERSTATETYPE;
|
|
|
|
typedef enum _D3DSAMPLER_TEXTURE_TYPE {
|
|
D3DSTT_UNKNOWN = 0<<27,
|
|
D3DSTT_1D = 1<<27,
|
|
D3DSTT_2D = 2<<27,
|
|
D3DSTT_CUBE = 3<<27,
|
|
D3DSTT_VOLUME = 4<<27
|
|
} D3DSAMPLER_TEXTURE_TYPE;
|
|
|
|
typedef enum _D3DSHADEMODE {
|
|
D3DSHADE_FLAT = 1,
|
|
D3DSHADE_GOURAUD = 2,
|
|
D3DSHADE_PHONG = 3
|
|
} D3DSHADEMODE;
|
|
|
|
typedef enum _D3DSHADER_ADDRESSMODE_TYPE {
|
|
D3DSHADER_ADDRMODE_ABSOLUTE = 0<<13,
|
|
D3DSHADER_ADDRMODE_RELATIVE = 1<<13
|
|
} D3DSHADER_ADDRESSMODE_TYPE;
|
|
|
|
typedef enum _D3DSHADER_COMPARISON {
|
|
D3DSPC_RESERVED0 = 0,
|
|
D3DSPC_GT = 1,
|
|
D3DSPC_EQ = 2,
|
|
D3DSPC_GE = 3,
|
|
D3DSPC_LT = 4,
|
|
D3DSPC_NE = 5,
|
|
D3DSPC_LE = 6,
|
|
D3DSPC_RESERVED1 = 7
|
|
} D3DSHADER_COMPARISON;
|
|
|
|
#define D3DDP_MAXTEXCOORD 8
|
|
|
|
#define D3DSI_OPCODE_MASK 0x0000FFFF
|
|
#define D3DSI_INSTLENGTH_MASK 0x0F000000
|
|
#define D3DSI_INSTLENGTH_SHIFT 24
|
|
|
|
typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
|
|
D3DSIO_NOP = 0,
|
|
D3DSIO_MOV = 1,
|
|
D3DSIO_ADD = 2,
|
|
D3DSIO_SUB = 3,
|
|
D3DSIO_MAD = 4,
|
|
D3DSIO_MUL = 5,
|
|
D3DSIO_RCP = 6,
|
|
D3DSIO_RSQ = 7,
|
|
D3DSIO_DP3 = 8,
|
|
D3DSIO_DP4 = 9,
|
|
D3DSIO_MIN = 10,
|
|
D3DSIO_MAX = 11,
|
|
D3DSIO_SLT = 12,
|
|
D3DSIO_SGE = 13,
|
|
D3DSIO_EXP = 14,
|
|
D3DSIO_LOG = 15,
|
|
D3DSIO_LIT = 16,
|
|
D3DSIO_DST = 17,
|
|
D3DSIO_LRP = 18,
|
|
D3DSIO_FRC = 19,
|
|
D3DSIO_M4x4 = 20,
|
|
D3DSIO_M4x3 = 21,
|
|
D3DSIO_M3x4 = 22,
|
|
D3DSIO_M3x3 = 23,
|
|
D3DSIO_M3x2 = 24,
|
|
D3DSIO_CALL = 25,
|
|
D3DSIO_CALLNZ = 26,
|
|
D3DSIO_LOOP = 27,
|
|
D3DSIO_RET = 28,
|
|
D3DSIO_ENDLOOP = 29,
|
|
D3DSIO_LABEL = 30,
|
|
D3DSIO_DCL = 31,
|
|
D3DSIO_POW = 32,
|
|
D3DSIO_CRS = 33,
|
|
D3DSIO_SGN = 34,
|
|
D3DSIO_ABS = 35,
|
|
D3DSIO_NRM = 36,
|
|
D3DSIO_SINCOS = 37,
|
|
D3DSIO_REP = 38,
|
|
D3DSIO_ENDREP = 39,
|
|
D3DSIO_IF = 40,
|
|
D3DSIO_IFC = 41,
|
|
D3DSIO_ELSE = 42,
|
|
D3DSIO_ENDIF = 43,
|
|
D3DSIO_BREAK = 44,
|
|
D3DSIO_BREAKC = 45,
|
|
D3DSIO_MOVA = 46,
|
|
D3DSIO_DEFB = 47,
|
|
D3DSIO_DEFI = 48,
|
|
D3DSIO_TEXCOORD = 64,
|
|
D3DSIO_TEXKILL = 65,
|
|
D3DSIO_TEX = 66,
|
|
D3DSIO_TEXBEM = 67,
|
|
D3DSIO_TEXBEML = 68,
|
|
D3DSIO_TEXREG2AR = 69,
|
|
D3DSIO_TEXREG2GB = 70,
|
|
D3DSIO_TEXM3x2PAD = 71,
|
|
D3DSIO_TEXM3x2TEX = 72,
|
|
D3DSIO_TEXM3x3PAD = 73,
|
|
D3DSIO_TEXM3x3TEX = 74,
|
|
D3DSIO_RESERVED0 = 75,
|
|
D3DSIO_TEXM3x3SPEC = 76,
|
|
D3DSIO_TEXM3x3VSPEC = 77,
|
|
D3DSIO_EXPP = 78,
|
|
D3DSIO_LOGP = 79,
|
|
D3DSIO_CND = 80,
|
|
D3DSIO_DEF = 81,
|
|
D3DSIO_TEXREG2RGB = 82,
|
|
D3DSIO_TEXDP3TEX = 83,
|
|
D3DSIO_TEXM3x2DEPTH = 84,
|
|
D3DSIO_TEXDP3 = 85,
|
|
D3DSIO_TEXM3x3 = 86,
|
|
D3DSIO_TEXDEPTH = 87,
|
|
D3DSIO_CMP = 88,
|
|
D3DSIO_BEM = 89,
|
|
D3DSIO_DP2ADD = 90,
|
|
D3DSIO_DSX = 91,
|
|
D3DSIO_DSY = 92,
|
|
D3DSIO_TEXLDD = 93,
|
|
D3DSIO_SETP = 94,
|
|
D3DSIO_TEXLDL = 95,
|
|
D3DSIO_BREAKP = 96,
|
|
D3DSIO_PHASE = 0xFFFD,
|
|
D3DSIO_COMMENT = 0xFFFE,
|
|
D3DSIO_END = 0xFFFF
|
|
} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
|
|
|
|
#define D3DSI_COISSUE 0x40000000
|
|
|
|
#define D3DSP_DCL_USAGE_SHIFT 0
|
|
#define D3DSP_DCL_USAGE_MASK 0x0000000f
|
|
|
|
#define D3DSP_DCL_USAGEINDEX_SHIFT 16
|
|
#define D3DSP_DCL_USAGEINDEX_MASK 0x000f0000
|
|
|
|
#define D3DSP_TEXTURETYPE_SHIFT 27
|
|
#define D3DSP_TEXTURETYPE_MASK 0x78000000
|
|
|
|
#define D3DSP_REGNUM_MASK 0x000007FF
|
|
|
|
#define D3DSP_WRITEMASK_0 0x00010000
|
|
#define D3DSP_WRITEMASK_1 0x00020000
|
|
#define D3DSP_WRITEMASK_2 0x00040000
|
|
#define D3DSP_WRITEMASK_3 0x00080000
|
|
#define D3DSP_WRITEMASK_ALL 0x000F0000
|
|
|
|
#define D3DSP_DSTMOD_SHIFT 20
|
|
#define D3DSP_DSTMOD_MASK (0xF << D3DSP_DSTMOD_SHIFT)
|
|
|
|
typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
|
|
D3DSPDM_NONE = 0 << D3DSP_DSTMOD_SHIFT,
|
|
D3DSPDM_SATURATE = 1 << D3DSP_DSTMOD_SHIFT,
|
|
D3DSPDM_PARTIALPRECISION = 2 << D3DSP_DSTMOD_SHIFT,
|
|
D3DSPDM_MSAMPCENTROID = 4 << D3DSP_DSTMOD_SHIFT,
|
|
D3DSPDM_FORCE_DWORD = 0x7FFFFFFF
|
|
} D3DSHADER_PARAM_DSTMOD_TYPE;
|
|
|
|
#define D3DSP_DSTSHIFT_SHIFT 24
|
|
#define D3DSP_DSTSHIFT_MASK (0xF << D3DSP_DSTSHIFT_SHIFT)
|
|
|
|
#define D3DSP_REGTYPE_SHIFT 28
|
|
#define D3DSP_REGTYPE_SHIFT2 8
|
|
#define D3DSP_REGTYPE_MASK (0x7 << D3DSP_REGTYPE_SHIFT)
|
|
#define D3DSP_REGTYPE_MASK2 0x00001800
|
|
|
|
typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
|
|
D3DSMO_POSITION = 0,
|
|
D3DSMO_FACE = 1
|
|
} D3DSHADER_MISCTYPE_OFFSETS;
|
|
|
|
typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
|
|
D3DSPR_TEMP = 0,
|
|
D3DSPR_INPUT = 1,
|
|
D3DSPR_CONST = 2,
|
|
D3DSPR_ADDR = 3,
|
|
D3DSPR_TEXTURE = 3,
|
|
D3DSPR_RASTOUT = 4,
|
|
D3DSPR_ATTROUT = 5,
|
|
D3DSPR_TEXCRDOUT = 6,
|
|
D3DSPR_OUTPUT = 6,
|
|
D3DSPR_CONSTINT = 7,
|
|
D3DSPR_COLOROUT = 8,
|
|
D3DSPR_DEPTHOUT = 9,
|
|
D3DSPR_SAMPLER = 10,
|
|
D3DSPR_CONST2 = 11,
|
|
D3DSPR_CONST3 = 12,
|
|
D3DSPR_CONST4 = 13,
|
|
D3DSPR_CONSTBOOL = 14,
|
|
D3DSPR_LOOP = 15,
|
|
D3DSPR_TEMPFLOAT16 = 16,
|
|
D3DSPR_MISCTYPE = 17,
|
|
D3DSPR_LABEL = 18,
|
|
D3DSPR_PREDICATE = 19
|
|
} D3DSHADER_PARAM_REGISTER_TYPE;
|
|
|
|
#define D3DSP_SWIZZLE_SHIFT 16
|
|
#define D3DSP_SWIZZLE_MASK (0xFF << D3DSP_SWIZZLE_SHIFT)
|
|
|
|
#define D3DSP_NOSWIZZLE \
|
|
((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
|
|
|
|
#define D3DSP_SRCMOD_SHIFT 24
|
|
#define D3DSP_SRCMOD_MASK (0xF << D3DSP_SRCMOD_SHIFT)
|
|
|
|
typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
|
|
D3DSPSM_NONE = 0<<24,
|
|
D3DSPSM_NEG = 1<<24,
|
|
D3DSPSM_BIAS = 2<<24,
|
|
D3DSPSM_BIASNEG = 3<<24,
|
|
D3DSPSM_SIGN = 4<<24,
|
|
D3DSPSM_SIGNNEG = 5<<24,
|
|
D3DSPSM_COMP = 6<<24,
|
|
D3DSPSM_X2 = 7<<24,
|
|
D3DSPSM_X2NEG = 8<<24,
|
|
D3DSPSM_DZ = 9<<24,
|
|
D3DSPSM_DW = 10<<24,
|
|
D3DSPSM_ABS = 11<<24,
|
|
D3DSPSM_ABSNEG = 12<<24,
|
|
D3DSPSM_NOT = 13<<24
|
|
} D3DSHADER_PARAM_SRCMOD_TYPE;
|
|
|
|
#define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor))
|
|
#define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor))
|
|
#define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF)
|
|
#define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF)
|
|
|
|
#define D3DSI_COMMENTSIZE_SHIFT 16
|
|
#define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT)
|
|
|
|
typedef enum _D3DSTATEBLOCKTYPE {
|
|
D3DSBT_ALL = 1,
|
|
D3DSBT_PIXELSTATE = 2,
|
|
D3DSBT_VERTEXSTATE = 3
|
|
} D3DSTATEBLOCKTYPE;
|
|
|
|
typedef enum _D3DSTENCILOP {
|
|
D3DSTENCILOP_KEEP = 1,
|
|
D3DSTENCILOP_ZERO = 2,
|
|
D3DSTENCILOP_REPLACE = 3,
|
|
D3DSTENCILOP_INCRSAT = 4,
|
|
D3DSTENCILOP_DECRSAT = 5,
|
|
D3DSTENCILOP_INVERT = 6,
|
|
D3DSTENCILOP_INCR = 7,
|
|
D3DSTENCILOP_DECR = 8
|
|
} D3DSTENCILOP;
|
|
|
|
typedef enum _D3DSWAPEFFECT {
|
|
D3DSWAPEFFECT_DISCARD = 1,
|
|
D3DSWAPEFFECT_FLIP = 2,
|
|
D3DSWAPEFFECT_COPY = 3,
|
|
D3DSWAPEFFECT_OVERLAY = 4,
|
|
D3DSWAPEFFECT_FLIPEX = 5
|
|
} D3DSWAPEFFECT;
|
|
|
|
typedef enum _D3DTEXTUREADDRESS {
|
|
D3DTADDRESS_WRAP = 1,
|
|
D3DTADDRESS_MIRROR = 2,
|
|
D3DTADDRESS_CLAMP = 3,
|
|
D3DTADDRESS_BORDER = 4,
|
|
D3DTADDRESS_MIRRORONCE = 5
|
|
} D3DTEXTUREADDRESS;
|
|
|
|
typedef enum _D3DTEXTUREFILTERTYPE {
|
|
D3DTEXF_NONE = 0,
|
|
D3DTEXF_POINT = 1,
|
|
D3DTEXF_LINEAR = 2,
|
|
D3DTEXF_ANISOTROPIC = 3,
|
|
D3DTEXF_PYRAMIDALQUAD = 6,
|
|
D3DTEXF_GAUSSIANQUAD = 7,
|
|
D3DTEXF_CONVOLUTIONMONO = 8
|
|
} D3DTEXTUREFILTERTYPE;
|
|
|
|
typedef enum _D3DTEXTUREOP {
|
|
D3DTOP_DISABLE = 1,
|
|
D3DTOP_SELECTARG1 = 2,
|
|
D3DTOP_SELECTARG2 = 3,
|
|
D3DTOP_MODULATE = 4,
|
|
D3DTOP_MODULATE2X = 5,
|
|
D3DTOP_MODULATE4X = 6,
|
|
D3DTOP_ADD = 7,
|
|
D3DTOP_ADDSIGNED = 8,
|
|
D3DTOP_ADDSIGNED2X = 9,
|
|
D3DTOP_SUBTRACT = 10,
|
|
D3DTOP_ADDSMOOTH = 11,
|
|
D3DTOP_BLENDDIFFUSEALPHA = 12,
|
|
D3DTOP_BLENDTEXTUREALPHA = 13,
|
|
D3DTOP_BLENDFACTORALPHA = 14,
|
|
D3DTOP_BLENDTEXTUREALPHAPM = 15,
|
|
D3DTOP_BLENDCURRENTALPHA = 16,
|
|
D3DTOP_PREMODULATE = 17,
|
|
D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
|
|
D3DTOP_MODULATECOLOR_ADDALPHA = 19,
|
|
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
|
|
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
|
|
D3DTOP_BUMPENVMAP = 22,
|
|
D3DTOP_BUMPENVMAPLUMINANCE = 23,
|
|
D3DTOP_DOTPRODUCT3 = 24,
|
|
D3DTOP_MULTIPLYADD = 25,
|
|
D3DTOP_LERP = 26
|
|
} D3DTEXTUREOP;
|
|
|
|
typedef enum _D3DTEXTURESTAGESTATETYPE {
|
|
D3DTSS_COLOROP = 1,
|
|
D3DTSS_COLORARG1 = 2,
|
|
D3DTSS_COLORARG2 = 3,
|
|
D3DTSS_ALPHAOP = 4,
|
|
D3DTSS_ALPHAARG1 = 5,
|
|
D3DTSS_ALPHAARG2 = 6,
|
|
D3DTSS_BUMPENVMAT00 = 7,
|
|
D3DTSS_BUMPENVMAT01 = 8,
|
|
D3DTSS_BUMPENVMAT10 = 9,
|
|
D3DTSS_BUMPENVMAT11 = 10,
|
|
D3DTSS_TEXCOORDINDEX = 11,
|
|
D3DTSS_BUMPENVLSCALE = 22,
|
|
D3DTSS_BUMPENVLOFFSET = 23,
|
|
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
|
|
D3DTSS_COLORARG0 = 26,
|
|
D3DTSS_ALPHAARG0 = 27,
|
|
D3DTSS_RESULTARG = 28,
|
|
D3DTSS_CONSTANT = 32
|
|
} D3DTEXTURESTAGESTATETYPE;
|
|
|
|
/* MSDN has this in d3d9caps.h, but it should be here */
|
|
#define D3DTSS_TCI_PASSTHRU 0x00000
|
|
#define D3DTSS_TCI_CAMERASPACENORMAL 0x10000
|
|
#define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000
|
|
#define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000
|
|
#define D3DTSS_TCI_SPHEREMAP 0x40000
|
|
|
|
typedef enum _D3DTEXTURETRANSFORMFLAGS {
|
|
D3DTTFF_DISABLE = 0,
|
|
D3DTTFF_COUNT1 = 1,
|
|
D3DTTFF_COUNT2 = 2,
|
|
D3DTTFF_COUNT3 = 3,
|
|
D3DTTFF_COUNT4 = 4,
|
|
D3DTTFF_PROJECTED = 256
|
|
} D3DTEXTURETRANSFORMFLAGS;
|
|
|
|
typedef enum _D3DTRANSFORMSTATETYPE {
|
|
D3DTS_VIEW = 2,
|
|
D3DTS_PROJECTION = 3,
|
|
D3DTS_TEXTURE0 = 16,
|
|
D3DTS_TEXTURE1 = 17,
|
|
D3DTS_TEXTURE2 = 18,
|
|
D3DTS_TEXTURE3 = 19,
|
|
D3DTS_TEXTURE4 = 20,
|
|
D3DTS_TEXTURE5 = 21,
|
|
D3DTS_TEXTURE6 = 22,
|
|
D3DTS_TEXTURE7 = 23
|
|
} D3DTRANSFORMSTATETYPE;
|
|
|
|
#define D3DDMAPSAMPLER 256
|
|
#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
|
|
#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
|
|
#define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3)
|
|
#define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4)
|
|
|
|
#define D3DTS_WORLD D3DTS_WORLDMATRIX(0)
|
|
#define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1)
|
|
#define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2)
|
|
#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
|
|
#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
|
|
|
|
typedef enum _D3DVERTEXBLENDFLAGS {
|
|
D3DVBF_DISABLE = 0,
|
|
D3DVBF_1WEIGHTS = 1,
|
|
D3DVBF_2WEIGHTS = 2,
|
|
D3DVBF_3WEIGHTS = 3,
|
|
D3DVBF_TWEENING = 255,
|
|
D3DVBF_0WEIGHTS = 256
|
|
} D3DVERTEXBLENDFLAGS;
|
|
|
|
typedef enum _D3DVS_ADDRESSMODE_TYPE {
|
|
D3DVS_ADDRMODE_ABSOLUTE = 0<<13,
|
|
D3DVS_ADDRMODE_RELATIVE = 1<<13
|
|
} D3DVS_ADDRESSMODE_TYPE;
|
|
|
|
typedef enum _D3DVS_RASTOUT_OFFSETS {
|
|
D3DSRO_POSITION = 0,
|
|
D3DSRO_FOG = 1,
|
|
D3DSRO_POINT_SIZE = 2
|
|
} D3DVS_RASTOUT_OFFSETS;
|
|
|
|
typedef enum _D3DZBUFFERTYPE {
|
|
D3DZB_FALSE = 0,
|
|
D3DZB_TRUE = 1,
|
|
D3DZB_USEW = 2
|
|
} D3DZBUFFERTYPE;
|
|
|
|
/*****************************************************************************
|
|
* Structs *
|
|
*****************************************************************************/
|
|
typedef struct D3DDISPLAYMODEEX {
|
|
UINT Size;
|
|
UINT Width;
|
|
UINT Height;
|
|
UINT RefreshRate;
|
|
D3DFORMAT Format;
|
|
D3DSCANLINEORDERING ScanLineOrdering;
|
|
} D3DDISPLAYMODEEX, *PD3DDISPLAYMODEEX, *LPD3DDISPLAYMODEEX;
|
|
|
|
typedef struct D3DDISPLAYMODEFILTER {
|
|
UINT Size;
|
|
D3DFORMAT Format;
|
|
D3DSCANLINEORDERING ScanLineOrdering;
|
|
} D3DDISPLAYMODEFILTER, *PD3DDISPLAYMODEFILTER, *LPD3DDISPLAYMODEFILTER;
|
|
|
|
typedef struct _D3D_OMAC {
|
|
BYTE Omac[16];
|
|
} D3D_OMAC, *PD3D_OMAC, *LPD3D_OMAC;
|
|
|
|
typedef struct _D3DADAPTER_IDENTIFIER9 {
|
|
char Driver[512];
|
|
char Description[512];
|
|
char DeviceName[32];
|
|
DWORD DriverVersionLowPart;
|
|
DWORD DriverVersionHighPart;
|
|
DWORD VendorId;
|
|
DWORD DeviceId;
|
|
DWORD SubSysId;
|
|
DWORD Revision;
|
|
GUID DeviceIdentifier;
|
|
DWORD WHQLLevel;
|
|
} D3DADAPTER_IDENTIFIER9, *PD3DADAPTER_IDENTIFIER9, *LPD3DADAPTER_IDENTIFIER9;
|
|
|
|
typedef struct _D3DAES_CTR_IV {
|
|
UINT64 IV;
|
|
UINT64 Count;
|
|
} D3DAES_CTR_IV, *PD3DAES_CTR_IV, *LPD3DAES_CTR_IV;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT {
|
|
D3D_OMAC omac;
|
|
GUID ConfigureType;
|
|
HANDLE hChannel;
|
|
UINT SequenceNumber;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, *PD3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION {
|
|
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
|
|
HANDLE DXVA2DecodeHandle;
|
|
HANDLE CryptoSessionHandle;
|
|
HANDLE DeviceHandle;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION, *PD3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE {
|
|
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
|
|
UINT StartSequenceQuery;
|
|
UINT StartSequenceConfigure;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE, *PD3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE, *LPD3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS {
|
|
union {
|
|
struct {
|
|
UINT ProtectionEnabled : 1;
|
|
UINT OverlayOrFullscreenRequired : 1;
|
|
UINT Reserved : 30;
|
|
};
|
|
UINT Value;
|
|
};
|
|
} D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS, *PD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS, *LPD3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION {
|
|
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
|
|
D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS Protections;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION, *PD3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION, *LPD3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE {
|
|
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
|
|
D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE ProcessIdentiferType;
|
|
HANDLE ProcessHandle;
|
|
BOOL AllowAccess;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE, *PD3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION {
|
|
D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT Parameters;
|
|
GUID EncryptionGuid;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION, *PD3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION, *LPD3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT {
|
|
D3D_OMAC omac;
|
|
GUID ConfigureType;
|
|
HANDLE hChannel;
|
|
UINT SequenceNumber;
|
|
HRESULT ReturnCode;
|
|
} D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERY_INPUT {
|
|
GUID QueryType;
|
|
HANDLE hChannel;
|
|
UINT SequenceNumber;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERY_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERY_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT {
|
|
D3D_OMAC omac;
|
|
GUID QueryType;
|
|
HANDLE hChannel;
|
|
UINT SequenceNumber;
|
|
HRESULT ReturnCode;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
D3DAUTHENTICATEDCHANNELTYPE ChannelType;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
|
|
HANDLE DXVA2DecodeHandle;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
HANDLE DXVA2DecodeHandle;
|
|
HANDLE CryptoSessionHandle;
|
|
HANDLE DeviceHandle;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
HANDLE DeviceHandle;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
UINT NumEncryptionGuids;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
|
|
UINT EncryptionGuidIndex;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
UINT EncryptionGuidIndex;
|
|
GUID EncryptionGuid;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
D3DBUSTYPE BusType;
|
|
BOOL bAccessibleInContiguousBlocks;
|
|
BOOL bAccessibleInNonContiguousBlocks;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
|
|
HANDLE DeviceHandle;
|
|
HANDLE CryptoSessionHandle;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
HANDLE DeviceHandle;
|
|
HANDLE CryptoSessionHandle;
|
|
UINT NumOutputIDs;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
|
|
HANDLE DeviceHandle;
|
|
HANDLE CryptoSessionHandle;
|
|
UINT OutputIDIndex;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
HANDLE DeviceHandle;
|
|
HANDLE CryptoSessionHandle;
|
|
UINT OutputIDIndex;
|
|
UINT64 OutputID;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS ProtectionFlags;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
UINT NumRestrictedSharedResourceProcesses;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_INPUT Input;
|
|
UINT ProcessIndex;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
UINT ProcessIndex;
|
|
D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE ProcessIdentifer;
|
|
HANDLE ProcessHandle;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
GUID EncryptionGuid;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT;
|
|
|
|
typedef struct _D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT {
|
|
D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT Output;
|
|
UINT NumUnrestrictedProtectedSharedResources;
|
|
} D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT, *PD3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT, *LPD3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT;
|
|
|
|
typedef struct _D3DBOX {
|
|
UINT Left;
|
|
UINT Top;
|
|
UINT Right;
|
|
UINT Bottom;
|
|
UINT Front;
|
|
UINT Back;
|
|
} D3DBOX, *PD3DBOX, *LPD3DBOX;
|
|
|
|
typedef struct _D3DCLIPSTATUS9 {
|
|
DWORD ClipUnion;
|
|
DWORD ClipIntersection;
|
|
} D3DCLIPSTATUS9, *PD3DCLIPSTATUS9, *LPD3DCLIPSTATUS9;
|
|
|
|
typedef struct _D3DCOLORVALUE {
|
|
float r;
|
|
float g;
|
|
float b;
|
|
float a;
|
|
} D3DCOLORVALUE, *PD3DCOLORVALUE, *LPD3DCOLORVALUE;
|
|
|
|
typedef struct _D3DCOMPOSERECTDESC {
|
|
USHORT X, Y;
|
|
USHORT Width, Height;
|
|
} D3DCOMPOSERECTDESC, *PD3DCOMPOSERECTDESC, *LPD3DCOMPOSERECTDESC;
|
|
|
|
typedef struct _D3DCOMPOSERECTDESTINATION {
|
|
USHORT SrcRectIndex;
|
|
USHORT Reserved;
|
|
SHORT X, Y;
|
|
} D3DCOMPOSERECTDESTINATION, *PD3DCOMPOSERECTDESTINATION, *LPD3DCOMPOSERECTDESTINATION;
|
|
|
|
typedef struct _D3DDEVICE_CREATION_PARAMETERS {
|
|
UINT AdapterOrdinal;
|
|
D3DDEVTYPE DeviceType;
|
|
HWND hFocusWindow;
|
|
DWORD BehaviorFlags;
|
|
} D3DDEVICE_CREATION_PARAMETERS, *PD3DDEVICE_CREATION_PARAMETERS, *LPD3DDEVICE_CREATION_PARAMETERS;
|
|
|
|
typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
|
|
FLOAT MaxBandwidthUtilized;
|
|
FLOAT FrontEndUploadMemoryUtilizedPercent;
|
|
FLOAT VertexRateUtilizedPercent;
|
|
FLOAT TriangleSetupRateUtilizedPercent;
|
|
FLOAT FillRateUtilizedPercent;
|
|
} D3DDEVINFO_D3D9BANDWIDTHTIMINGS, *PD3DDEVINFO_D3D9BANDWIDTHTIMINGS, *LPD3DDEVINFO_D3D9BANDWIDTHTIMINGS;
|
|
|
|
typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
|
|
FLOAT TextureCacheHitRate;
|
|
FLOAT PostTransformVertexCacheHitRate;
|
|
} D3DDEVINFO_D3D9CACHEUTILIZATION, *PD3DDEVINFO_D3D9CACHEUTILIZATION, *LPD3DDEVINFO_D3D9CACHEUTILIZATION;
|
|
|
|
typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
|
|
FLOAT WaitingForGPUToUseApplicationResourceTimePercent;
|
|
FLOAT WaitingForGPUToAcceptMoreCommandsTimePercent;
|
|
FLOAT WaitingForGPUToStayWithinLatencyTimePercent;
|
|
FLOAT WaitingForGPUExclusiveResourceTimePercent;
|
|
FLOAT WaitingForGPUOtherTimePercent;
|
|
} D3DDEVINFO_D3D9INTERFACETIMINGS, *PD3DDEVINFO_D3D9INTERFACETIMINGS, *LPD3DDEVINFO_D3D9INTERFACETIMINGS;
|
|
|
|
typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
|
|
FLOAT VertexProcessingTimePercent;
|
|
FLOAT PixelProcessingTimePercent;
|
|
FLOAT OtherGPUProcessingTimePercent;
|
|
FLOAT GPUIdleTimePercent;
|
|
} D3DDEVINFO_D3D9PIPELINETIMINGS, *PD3DDEVINFO_D3D9PIPELINETIMINGS, *LPD3DDEVINFO_D3D9PIPELINETIMINGS;
|
|
|
|
typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
|
|
FLOAT MemoryProcessingPercent;
|
|
FLOAT ComputationProcessingPercent;
|
|
} D3DDEVINFO_D3D9STAGETIMINGS, *PD3DDEVINFO_D3D9STAGETIMINGS, *LPD3DDEVINFO_D3D9STAGETIMINGS;
|
|
|
|
typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
|
|
DWORD NumRenderedTriangles;
|
|
DWORD NumExtraClippingTriangles;
|
|
} D3DDEVINFO_D3DVERTEXSTATS, *LPD3DDEVINFO_D3DVERTEXSTATS;
|
|
|
|
typedef struct _D3DRESOURCESTATS {
|
|
BOOL bThrashing;
|
|
DWORD ApproxBytesDownloaded;
|
|
DWORD NumEvicts;
|
|
DWORD NumVidCreates;
|
|
DWORD LastPri;
|
|
DWORD NumUsed;
|
|
DWORD NumUsedInVidMem;
|
|
DWORD WorkingSet;
|
|
DWORD WorkingSetBytes;
|
|
DWORD TotalManaged;
|
|
DWORD TotalBytes;
|
|
} D3DRESOURCESTATS, *PD3DRESOURCESTATS, *LPD3DRESOURCESTATS;
|
|
|
|
typedef struct _D3DDEVINFO_RESOURCEMANAGER {
|
|
D3DRESOURCESTATS stats[(D3DRTYPE_INDEXBUFFER+1)];
|
|
} D3DDEVINFO_RESOURCEMANAGER, *LPD3DDEVINFO_RESOURCEMANAGER;
|
|
|
|
typedef struct _D3DDEVINFO_VCACHE {
|
|
DWORD Pattern;
|
|
DWORD OptMethod;
|
|
DWORD CacheSize;
|
|
DWORD MagicNumber;
|
|
} D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE;
|
|
|
|
typedef struct _D3DDISPLAYMODE {
|
|
UINT Width;
|
|
UINT Height;
|
|
UINT RefreshRate;
|
|
D3DFORMAT Format;
|
|
} D3DDISPLAYMODE, *PD3DDISPLAYMODE, *LPD3DDISPLAYMODE;
|
|
|
|
typedef struct _D3DENCRYPTED_BLOCK_INFO {
|
|
UINT NumEncryptedBytesAtBeginning;
|
|
UINT NumBytesInSkipPattern;
|
|
UINT NumBytesInEncryptPattern;
|
|
} D3DENCRYPTED_BLOCK_INFO, *PD3DENCRYPTED_BLOCK_INFO, *LPD3DENCRYPTED_BLOCK_INFO;
|
|
|
|
typedef struct _D3DGAMMARAMP {
|
|
WORD red [256];
|
|
WORD green[256];
|
|
WORD blue [256];
|
|
} D3DGAMMARAMP, *PD3DGAMMARAMP, *LPD3DGAMMARAMP;
|
|
|
|
typedef struct _D3DINDEXBUFFER_DESC {
|
|
D3DFORMAT Format;
|
|
D3DRESOURCETYPE Type;
|
|
DWORD Usage;
|
|
D3DPOOL Pool;
|
|
UINT Size;
|
|
} D3DINDEXBUFFER_DESC, *PD3DINDEXBUFFER_DESC, *LPD3DINDEXBUFFER_DESC;
|
|
|
|
typedef struct _D3DVECTOR {
|
|
float x;
|
|
float y;
|
|
float z;
|
|
} D3DVECTOR, *PD3DVECTOR, *LPD3DVECTOR;
|
|
|
|
typedef struct _D3DLIGHT9 {
|
|
D3DLIGHTTYPE Type;
|
|
D3DCOLORVALUE Diffuse;
|
|
D3DCOLORVALUE Specular;
|
|
D3DCOLORVALUE Ambient;
|
|
D3DVECTOR Position;
|
|
D3DVECTOR Direction;
|
|
float Range;
|
|
float Falloff;
|
|
float Attenuation0;
|
|
float Attenuation1;
|
|
float Attenuation2;
|
|
float Theta;
|
|
float Phi;
|
|
} D3DLIGHT9, *PD3DLIGHT9, *LPD3DLIGHT9;
|
|
|
|
typedef struct _D3DLOCKED_BOX {
|
|
INT RowPitch;
|
|
INT SlicePitch;
|
|
void* pBits;
|
|
} D3DLOCKED_BOX, *PD3DLOCKED_BOX, *LPD3DLOCKED_BOX;
|
|
|
|
typedef struct _D3DLOCKED_RECT {
|
|
INT Pitch;
|
|
void* pBits;
|
|
} D3DLOCKED_RECT, *PD3DLOCKED_RECT, *LPD3DLOCKED_RECT;
|
|
|
|
typedef struct _D3DMATERIAL9 {
|
|
D3DCOLORVALUE Diffuse;
|
|
D3DCOLORVALUE Ambient;
|
|
D3DCOLORVALUE Specular;
|
|
D3DCOLORVALUE Emissive;
|
|
float Power;
|
|
} D3DMATERIAL9, *PD3DMATERIAL9, *LPD3DMATERIAL9;
|
|
|
|
typedef struct _D3DMATRIX {
|
|
union {
|
|
struct {
|
|
float _11, _12, _13, _14;
|
|
float _21, _22, _23, _24;
|
|
float _31, _32, _33, _34;
|
|
float _41, _42, _43, _44;
|
|
};
|
|
float m[4][4];
|
|
};
|
|
} D3DMATRIX, *PD3DMATRIX, *LPD3DMATRIX;
|
|
|
|
typedef struct _D3DMEMORYPRESSURE {
|
|
UINT64 BytesEvictedFromProcess;
|
|
UINT64 SizeOfInefficientAllocation;
|
|
DWORD LevelOfEfficiency;
|
|
} D3DMEMORYPRESSURE, *PD3DMEMORYPRESSURE, *LPD3DMEMORYPRESSURE;
|
|
|
|
typedef struct _D3DPRESENTSTATS {
|
|
UINT PresentCount;
|
|
UINT PresentRefreshCount;
|
|
UINT SyncRefreshCount;
|
|
LARGE_INTEGER SyncQPCTime;
|
|
LARGE_INTEGER SyncGPUTime;
|
|
} D3DPRESENTSTATS, *PD3DPRESENTSTATS, *LPD3DPRESENTSTATS;
|
|
|
|
typedef struct _D3DPRESENT_PARAMETERS_ {
|
|
UINT BackBufferWidth;
|
|
UINT BackBufferHeight;
|
|
D3DFORMAT BackBufferFormat;
|
|
UINT BackBufferCount;
|
|
D3DMULTISAMPLE_TYPE MultiSampleType;
|
|
DWORD MultiSampleQuality;
|
|
D3DSWAPEFFECT SwapEffect;
|
|
HWND hDeviceWindow;
|
|
BOOL Windowed;
|
|
BOOL EnableAutoDepthStencil;
|
|
D3DFORMAT AutoDepthStencilFormat;
|
|
DWORD Flags;
|
|
UINT FullScreen_RefreshRateInHz;
|
|
UINT PresentationInterval;
|
|
} D3DPRESENT_PARAMETERS, *PD3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS;
|
|
|
|
typedef struct _D3DRANGE {
|
|
UINT Offset;
|
|
UINT Size;
|
|
} D3DRANGE, *PD3DRANGE, *LPD3DRANGE;
|
|
|
|
typedef struct _D3DRASTER_STATUS {
|
|
BOOL InVBlank;
|
|
UINT ScanLine;
|
|
} D3DRASTER_STATUS, *PD3DRASTER_STATUS, *LPD3DRASTER_STATUS;
|
|
|
|
typedef struct _D3DRECT {
|
|
LONG x1;
|
|
LONG y1;
|
|
LONG x2;
|
|
LONG y2;
|
|
} D3DRECT, *PD3DRECT, *LPD3DRECT;
|
|
|
|
typedef struct _D3DRECTPATCH_INFO {
|
|
UINT StartVertexOffsetWidth;
|
|
UINT StartVertexOffsetHeight;
|
|
UINT Width;
|
|
UINT Height;
|
|
UINT Stride;
|
|
D3DBASISTYPE Basis;
|
|
D3DDEGREETYPE Degree;
|
|
} D3DRECTPATCH_INFO, *PD3DRECTPATCH_INFO, *LPD3DRECTPATCH_INFO;
|
|
|
|
typedef struct _D3DSURFACE_DESC {
|
|
D3DFORMAT Format;
|
|
D3DRESOURCETYPE Type;
|
|
DWORD Usage;
|
|
D3DPOOL Pool;
|
|
D3DMULTISAMPLE_TYPE MultiSampleType;
|
|
DWORD MultiSampleQuality;
|
|
UINT Width;
|
|
UINT Height;
|
|
} D3DSURFACE_DESC, *PD3DSURFACE_DESC, *LPD3DSURFACE_DESC;
|
|
|
|
typedef struct _D3DTRIPATCH_INFO {
|
|
UINT StartVertexOffset;
|
|
UINT NumVertices;
|
|
D3DBASISTYPE Basis;
|
|
D3DDEGREETYPE Degree;
|
|
} D3DTRIPATCH_INFO, *PD3DTRIPATCH_INFO, *LPD3DTRIPATCH_INFO;
|
|
|
|
typedef struct _D3DVERTEXBUFFER_DESC {
|
|
D3DFORMAT Format;
|
|
D3DRESOURCETYPE Type;
|
|
DWORD Usage;
|
|
D3DPOOL Pool;
|
|
UINT Size;
|
|
DWORD FVF;
|
|
} D3DVERTEXBUFFER_DESC, *PD3DVERTEXBUFFER_DESC, *LPD3DVERTEXBUFFER_DESC;
|
|
|
|
typedef struct _D3DVERTEXELEMENT9 {
|
|
WORD Stream;
|
|
WORD Offset;
|
|
BYTE Type;
|
|
BYTE Method;
|
|
BYTE Usage;
|
|
BYTE UsageIndex;
|
|
} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
|
|
|
|
typedef struct _D3DVIEWPORT9 {
|
|
DWORD X;
|
|
DWORD Y;
|
|
DWORD Width;
|
|
DWORD Height;
|
|
float MinZ;
|
|
float MaxZ;
|
|
} D3DVIEWPORT9, *PD3DVIEWPORT9, *LPD3DVIEWPORT9;
|
|
|
|
typedef struct _D3DVOLUME_DESC {
|
|
D3DFORMAT Format;
|
|
D3DRESOURCETYPE Type;
|
|
DWORD Usage;
|
|
D3DPOOL Pool;
|
|
UINT Width;
|
|
UINT Height;
|
|
UINT Depth;
|
|
} D3DVOLUME_DESC, *PD3DVOLUME_DESC, *LPD3DVOLUME_DESC;
|
|
|
|
#ifndef _WIN32
|
|
/* If _WIN32 isn't declared it means only internal header files are used. To
|
|
* avoid a conflict, IUnknown is declared here rather than in d3d9.h */
|
|
|
|
typedef struct IUnknown IUnknown, *PUNKNOWN, *LPUNKNOWN;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" const GUID IID_IUnknown;
|
|
|
|
struct IUnknown
|
|
{
|
|
virtual HRESULT WINAPI QueryInterface(REFIID riid, void **ppvObject) = 0;
|
|
virtual ULONG WINAPI AddRef() = 0;
|
|
virtual ULONG WINAPI Release() = 0;
|
|
};
|
|
#else /* __cplusplus */
|
|
extern const GUID IID_IUnknown;
|
|
|
|
typedef struct IUnknownVtbl
|
|
{
|
|
/* IUnknown */
|
|
HRESULT (WINAPI *QueryInterface)(IUnknown *This, REFIID riid, void **ppvObject);
|
|
ULONG (WINAPI *AddRef)(IUnknown *This);
|
|
ULONG (WINAPI *Release)(IUnknown *This);
|
|
} IUnknownVtbl;
|
|
|
|
struct IUnknown
|
|
{
|
|
IUnknownVtbl *lpVtbl;
|
|
};
|
|
|
|
/* IUnknown macros */
|
|
#define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
|
#define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
|
|
#define IUnknown_Release(p) (p)->lpVtbl->Release(p)
|
|
#endif /* __cplusplus */
|
|
#endif /* _WIN32 */
|
|
|
|
#endif /* _D3D9TYPES_H_ */
|