[HEADERS]
[reactos.git] / reactos / include / ddk / d3dnthal.h
index 982dbe0..b396e6f 100644 (file)
@@ -9,6 +9,15 @@
 #include <d3dtypes.h>
 #include <d3dcaps.h>
 
+/* Helper macro to enable gcc's extension.  */
+#ifndef __GNU_EXTENSION
+#ifdef __GNUC__
+#define __GNU_EXTENSION __extension__
+#else
+#define __GNU_EXTENSION
+#endif
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -20,19 +29,19 @@ DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8
 DEFINE_GUID(GUID_ZPixelFormats,                  0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
 DEFINE_GUID(GUID_DDStereoMode,                   0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
 
-typedef struct _D3DNTHAL_CONTEXTCREATEDATA 
+typedef struct _D3DNTHAL_CONTEXTCREATEDATA
 {
-    union
+    __GNU_EXTENSION union
     {
         PDD_DIRECTDRAW_GLOBAL lpDDGbl;
         PDD_DIRECTDRAW_LOCAL lpDDLcl;
     };
-    union
+    __GNU_EXTENSION union
     {
         PDD_SURFACE_LOCAL lpDDS;
         PDD_SURFACE_LOCAL lpDDSLcl;
     };
-    union
+    __GNU_EXTENSION union
     {
         PDD_SURFACE_LOCAL lpDDSZ;
         PDD_SURFACE_LOCAL lpDDSZLcl;
@@ -42,26 +51,26 @@ typedef struct _D3DNTHAL_CONTEXTCREATEDATA
     HRESULT ddrval;
 } D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA;
 
-typedef struct _D3DNTHAL_CONTEXTDESTROYDATA 
+typedef struct _D3DNTHAL_CONTEXTDESTROYDATA
 {
     ULONG_PTR dwhContext;
     HRESULT ddrval;
 } D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA;
 
-typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA 
+typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA
 {
     DWORD dwPID;
     HRESULT ddrval;
 } D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA;
 
-typedef struct _D3DNTHAL_SCENECAPTUREDATA 
+typedef struct _D3DNTHAL_SCENECAPTUREDATA
 {
     ULONG_PTR dwhContext;
     DWORD dwFlag;
     HRESULT ddrval;
 } D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA;
 
-typedef struct _D3DNTHAL_TEXTURECREATEDATA 
+typedef struct _D3DNTHAL_TEXTURECREATEDATA
 {
     ULONG_PTR dwhContext;
     HANDLE hDDS;
@@ -69,14 +78,14 @@ typedef struct _D3DNTHAL_TEXTURECREATEDATA
     HRESULT ddrval;
 } D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA;
 
-typedef struct _D3DNTHAL_TEXTUREDESTROYDATA 
+typedef struct _D3DNTHAL_TEXTUREDESTROYDATA
 {
     ULONG_PTR dwhContext;
     ULONG_PTR dwHandle;
     HRESULT ddrval;
 } D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA;
 
-typedef struct _D3DNTHAL_TEXTURESWAPDATA 
+typedef struct _D3DNTHAL_TEXTURESWAPDATA
 {
     ULONG_PTR dwhContext;
     ULONG_PTR dwHandle1;
@@ -84,10 +93,10 @@ typedef struct _D3DNTHAL_TEXTURESWAPDATA
     HRESULT ddrval;
 } D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA;
 
-typedef struct _D3DNTHAL_TEXTUREGETSURFDATA 
+typedef struct _D3DNTHAL_TEXTUREGETSURFDATA
 {
     ULONG_PTR dwhContext;
-    HANDLE hDDS; 
+    HANDLE hDDS;
     ULONG_PTR dwHandle;
     HRESULT ddrval;
 } D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA;
@@ -101,7 +110,7 @@ typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYD
 typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA);
 typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA);
 
-typedef struct _D3DNTHALDeviceDesc_V1 
+typedef struct _D3DNTHALDeviceDesc_V1
 {
        DWORD            dwSize;
        DWORD            dwFlags;
@@ -118,7 +127,7 @@ typedef struct _D3DNTHALDeviceDesc_V1
        DWORD            dwMaxVertexCount;
 } D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1;
 
-typedef struct _D3DNTHAL_GLOBALDRIVERDATA 
+typedef struct _D3DNTHAL_GLOBALDRIVERDATA
 {
        DWORD               dwSize;
     D3DNTHALDEVICEDESC_V1 hwCaps;
@@ -128,7 +137,7 @@ typedef struct _D3DNTHAL_GLOBALDRIVERDATA
        LPDDSURFACEDESC     lpTextureFormats;
 } D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA;
 
-typedef struct _D3DNTHAL_CALLBACKS 
+typedef struct _D3DNTHAL_CALLBACKS
 {
     DWORD dwSize;
     LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
@@ -167,8 +176,19 @@ typedef struct _D3DNTHAL_CALLBACKS
     ULONG_PTR dwReserved9;
 } D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS;
 
+
+typedef struct _D3DNTHAL_SETRENDERTARGETDATA
+{
+    ULONG_PTR dwhContext;
+    PDD_SURFACE_LOCAL lpDDS;
+    PDD_SURFACE_LOCAL lpDDSZ;
+    HRESULT ddrval;
+} D3DNTHAL_SETRENDERTARGETDATA;
+typedef D3DNTHAL_SETRENDERTARGETDATA *LPD3DNTHAL_SETRENDERTARGETDATA;
+
 typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA);
 
+
 typedef struct _D3DNTHAL_CALLBACKS2
 {
     DWORD dwSize;
@@ -181,21 +201,19 @@ typedef struct _D3DNTHAL_CALLBACKS2
     LPVOID dwReserved4;
 } D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2;
 
-typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
 
-typedef struct _D3DNTHAL_CALLBACKS3
+typedef struct _D3DNTHAL_CLEAR2DATA
 {
-    DWORD dwSize; 
+    ULONG_PTR dwhContext;
     DWORD dwFlags;
-
-    LPD3DNTHAL_CLEAR2CB Clear2;
-    LPVOID lpvReserved;
-    LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
-    LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
-} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
-
+    DWORD dwFillColor;
+    D3DVALUE dvFillDepth;
+    DWORD dwFillStencil;
+    LPD3DRECT lpRects;
+    DWORD dwNumRects;
+    HRESULT ddrval;
+} D3DNTHAL_CLEAR2DATA;
+typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA;
 
 typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
 {
@@ -214,7 +232,7 @@ typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
     PDD_SURFACE_LOCAL lpDDCommands;
     DWORD dwCommandOffset;
     DWORD dwCommandLength;
-    union
+    __GNU_EXTENSION union
     {
         PDD_SURFACE_LOCAL lpDDVertex;
         LPVOID lpVertices;
@@ -224,7 +242,7 @@ typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
     DWORD dwReqVertexBufSize;
     DWORD dwReqCommandBufSize;
     LPDWORD lpdwRStates;
-    union
+    __GNU_EXTENSION union
     {
         DWORD dwVertexSize;
         HRESULT ddrval;
@@ -232,6 +250,21 @@ typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
     DWORD dwErrorOffset;
 } D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA;
 
+typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
+
+typedef struct _D3DNTHAL_CALLBACKS3
+{
+    DWORD dwSize; 
+    DWORD dwFlags;
+
+    LPD3DNTHAL_CLEAR2CB Clear2;
+    LPVOID lpvReserved;
+    LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
+    LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
+} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif