merge ROS Shell without integrated explorer part into trunk
[reactos.git] / reactos / include / ddk / d3dnthal.h
1 /*
2 * Direct3D NT driver interface
3 */
4
5 #ifndef __DDK_D3DNTHAL_H
6 #define __DDK_D3DNTHAL_H
7
8 #include <ddk/ddrawint.h>
9 #include <d3dtypes.h>
10 #include <d3dcaps.h>
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 DEFINE_GUID(GUID_D3DCallbacks, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
17 DEFINE_GUID(GUID_D3DCallbacks3, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
18 DEFINE_GUID(GUID_D3DExtendedCaps, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
19 DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
20 DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
21 DEFINE_GUID(GUID_DDStereoMode, 0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
22
23 typedef struct _D3DNTHAL_CONTEXTCREATEDATA *PD3DNTHAL_CONTEXTCREATEDATA;
24 typedef struct _D3DNTHAL_CONTEXTDESTROYDATA *PD3DNTHAL_CONTEXTDESTROYDATA;
25 typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA *PD3DNTHAL_DRAWPRIMITIVES2DATA;
26 typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA *PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
27
28 /* DIRECT3D object callbacks */
29 typedef DWORD (STDCALL *PD3DNTHAL_CONTEXTCREATECB)(PD3DNTHAL_CONTEXTCREATEDATA);
30 typedef DWORD (STDCALL *PD3DNTHAL_CONTEXTDESTROYCB)(PD3DNTHAL_CONTEXTDESTROYDATA);
31
32 typedef struct _D3DNTHAL_CALLBACKS {
33 DWORD dwSize;
34 PD3DNTHAL_CONTEXTCREATECB ContextCreate;
35 PD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
36 PVOID Reserved[32];
37 } D3DNTHAL_CALLBACKS;
38 typedef D3DNTHAL_CALLBACKS *PD3DNTHAL_CALLBACKS;
39
40 /* Structures to report driver capabilities */
41
42 typedef struct _D3DNTHAL_DEVICEDESC {
43 DWORD dwSize;
44 DWORD dwFlags;
45 D3DCOLORMODEL dcmColorModel;
46 DWORD dwDevCaps;
47 D3DTRANSFORMCAPS dtcTransformCaps;
48 BOOL bClipping;
49 D3DLIGHTINGCAPS dlcLightingCaps;
50 D3DPRIMCAPS dpcLineCaps;
51 D3DPRIMCAPS dpcTriCaps;
52 DWORD dwDeviceRenderBitDepth;
53 DWORD dwDeviceZBufferBitDepth;
54 DWORD dwMaxBufferSize;
55 DWORD dwMaxVertexCount;
56 } D3DNTHAL_DEVICEDESC, *PD3DNT_HALDEVICEDESC;
57
58 typedef struct _D3DNTHAL_GLOBALDRIVERDATA {
59 DWORD dwSize;
60 D3DNTHAL_DEVICEDESC hwCaps;
61 DWORD dwNumVertices;
62 DWORD dwNumClipVertices;
63 DWORD dwNumTextureFormats;
64 LPDDSURFACEDESC lpTextureFormats;
65 } D3DNTHAL_GLOBALDRIVERDATA, *PD3DNTHAL_GLOBALDRIVERDATA;
66
67
68 #ifdef __cplusplus
69 } /* extern "C" */
70 #endif
71
72 #endif /* __DDK_D3DNTHAL_H */