From b6a2d79ae4bcd87831f4159dcadd08d0e3e725fc Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Sat, 3 Dec 2005 09:09:10 +0000 Subject: [PATCH] Correct some prototypes and struct, Adding some missing struct for d3d Thx Alex Ionescu for his patch for it. svn path=/trunk/; revision=19835 --- reactos/include/win32k/ntddraw.h | 15 +- reactos/subsys/win32k/include/intddraw.h | 6 +- reactos/subsys/win32k/ntddraw/ddraw.c | 4 +- reactos/subsys/win32k/ntddraw/stubs.c | 10 +- reactos/w32api/include/ddk/d3dnthal.h | 177 ++++++++++++++++++++--- 5 files changed, 176 insertions(+), 36 deletions(-) diff --git a/reactos/include/win32k/ntddraw.h b/reactos/include/win32k/ntddraw.h index 4a1457ca78e..e476c105d97 100644 --- a/reactos/include/win32k/ntddraw.h +++ b/reactos/include/win32k/ntddraw.h @@ -10,11 +10,13 @@ BOOL STDCALL NtGdiD3dContextCreate( HANDLE hDirectDrawLocal, HANDLE hSurfColor, HANDLE hSurfZ, - PD3DNTHAL_CONTEXTCREATEDATA pdcci + /* Is msdn wrong on D3DNTHAL_CONTEXTCREATEDATA ?? */ + D3DNTHAL_CONTEXTCREATEDATA *pdcci ); + DWORD STDCALL NtGdiD3dContextDestroy( - PD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData + LPD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData ); DWORD STDCALL NtGdiD3dContextDestroyAll(VOID); @@ -22,15 +24,16 @@ DWORD STDCALL NtGdiD3dContextDestroyAll(VOID); DWORD STDCALL NtGdiD3dDrawPrimitives2( HANDLE hCmdBuf, HANDLE hVBuf, - PD3DNTHAL_DRAWPRIMITIVES2DATA pded, + LPD3DNTHAL_DRAWPRIMITIVES2DATA pded, FLATPTR *pfpVidMemCmd, DWORD *pdwSizeCmd, FLATPTR *pfpVidMemVtx, DWORD *pdwSizeVtx + ); DWORD STDCALL NtGdiD3dValidateTextureStageState( - PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData + LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData ); DWORD STDCALL NtGdiDdAddAttachedSurface( @@ -233,8 +236,8 @@ BOOL STDCALL NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal, DD_HALINFO *pHalInfo, DWORD *pCallBackFlags, - PD3DNTHAL_CALLBACKS puD3dCallbacks, - PD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, + LPD3DNTHAL_CALLBACKS puD3dCallbacks, + LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, LPDDSURFACEDESC puD3dTextureFormats, DWORD *puNumHeaps, diff --git a/reactos/subsys/win32k/include/intddraw.h b/reactos/subsys/win32k/include/intddraw.h index 041600e94fa..c3b19d47e8f 100644 --- a/reactos/subsys/win32k/include/intddraw.h +++ b/reactos/subsys/win32k/include/intddraw.h @@ -1,6 +1,8 @@ #ifndef _INT_W32k_DDRAW #define _INT_W32k_DDRAW +#include + #define GDI_OBJECT_TYPE_DIRECTDRAW 0x00600000 #define GDI_OBJECT_TYPE_DD_SURFACE 0x00610000 #define GDI_OBJECT_TYPE_DD_VIDEOPORT 0x00620000 @@ -8,8 +10,6 @@ #define GDI_OBJECT_TYPE_DD_CLIPPER 0x00640000 #define GDI_OBJECT_TYPE_DD_MOTIONCOMP 0x00650000 - - typedef struct { DD_SURFACE_LOCAL Local; @@ -49,7 +49,7 @@ typedef struct // D3DHAL_D3DEXTENDEDCAPS D3dHal3Ext; // Heap Callback - DD_GETHEAPALIGNMENTDATA HeapData; + PDD_GETHEAPALIGNMENTDATA HeapData; // Kernel Callback DD_KERNELCALLBACKS Kernel; diff --git a/reactos/subsys/win32k/ntddraw/ddraw.c b/reactos/subsys/win32k/ntddraw/ddraw.c index caacefcdbea..052b37c352d 100644 --- a/reactos/subsys/win32k/ntddraw/ddraw.c +++ b/reactos/subsys/win32k/ntddraw/ddraw.c @@ -116,8 +116,8 @@ BOOL STDCALL NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal, DD_HALINFO *pHalInfo, DWORD *pCallBackFlags, - PD3DNTHAL_CALLBACKS puD3dCallbacks, - PD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, + LPD3DNTHAL_CALLBACKS puD3dCallbacks, + LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, LPDDSURFACEDESC puD3dTextureFormats, DWORD *puNumHeaps, diff --git a/reactos/subsys/win32k/ntddraw/stubs.c b/reactos/subsys/win32k/ntddraw/stubs.c index 15cdd39c43f..03d799d4e74 100644 --- a/reactos/subsys/win32k/ntddraw/stubs.c +++ b/reactos/subsys/win32k/ntddraw/stubs.c @@ -20,7 +20,7 @@ BOOL STDCALL NtGdiD3dContextCreate( HANDLE hDirectDrawLocal, HANDLE hSurfColor, HANDLE hSurfZ, - PD3DNTHAL_CONTEXTCREATEDATA pdcci + D3DNTHAL_CONTEXTCREATEDATA *pdcci ) { UNIMPLEMENTED @@ -29,7 +29,7 @@ BOOL STDCALL NtGdiD3dContextCreate( } DWORD STDCALL NtGdiD3dContextDestroy( - PD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData + LPD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData ) { UNIMPLEMENTED @@ -46,9 +46,9 @@ DWORD STDCALL NtGdiD3dContextDestroyAll(VOID) } DWORD STDCALL NtGdiD3dDrawPrimitives2( - HANDLE hCmdBuf, + HANDLE hCmdBuf, HANDLE hVBuf, - PD3DNTHAL_DRAWPRIMITIVES2DATA pded, + LPD3DNTHAL_DRAWPRIMITIVES2DATA pded, FLATPTR *pfpVidMemCmd, DWORD *pdwSizeCmd, FLATPTR *pfpVidMemVtx, @@ -61,7 +61,7 @@ DWORD STDCALL NtGdiD3dDrawPrimitives2( } DWORD STDCALL NtGdiD3dValidateTextureStageState( - PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData + LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData ) { UNIMPLEMENTED diff --git a/reactos/w32api/include/ddk/d3dnthal.h b/reactos/w32api/include/ddk/d3dnthal.h index d3517fd2339..90e91300713 100644 --- a/reactos/w32api/include/ddk/d3dnthal.h +++ b/reactos/w32api/include/ddk/d3dnthal.h @@ -20,26 +20,89 @@ 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 *PD3DNTHAL_CONTEXTCREATEDATA; -typedef struct _D3DNTHAL_CONTEXTDESTROYDATA *PD3DNTHAL_CONTEXTDESTROYDATA; -typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA *PD3DNTHAL_DRAWPRIMITIVES2DATA; -typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA *PD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA; +typedef struct _D3DNTHAL_CONTEXTCREATEDATA +{ + union + { + PDD_DIRECTDRAW_GLOBAL lpDDGbl; + PDD_DIRECTDRAW_LOCAL lpDDLcl; + }; + union + { + PDD_SURFACE_LOCAL lpDDS; + PDD_SURFACE_LOCAL lpDDSLcl; + }; + union + { + PDD_SURFACE_LOCAL lpDDSZ; + PDD_SURFACE_LOCAL lpDDSZLcl; + }; + DWORD dwPID; + ULONG_PTR dwhContext; + HRESULT ddrval; +} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA; -/* DIRECT3D object callbacks */ -typedef DWORD (STDCALL *PD3DNTHAL_CONTEXTCREATECB)(PD3DNTHAL_CONTEXTCREATEDATA); -typedef DWORD (STDCALL *PD3DNTHAL_CONTEXTDESTROYCB)(PD3DNTHAL_CONTEXTDESTROYDATA); +typedef struct _D3DNTHAL_CONTEXTDESTROYDATA +{ + ULONG_PTR dwhContext; + HRESULT ddrval; +} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA; -typedef struct _D3DNTHAL_CALLBACKS { - DWORD dwSize; - PD3DNTHAL_CONTEXTCREATECB ContextCreate; - PD3DNTHAL_CONTEXTDESTROYCB ContextDestroy; - PVOID Reserved[32]; -} D3DNTHAL_CALLBACKS; -typedef D3DNTHAL_CALLBACKS *PD3DNTHAL_CALLBACKS; +typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA +{ + DWORD dwPID; + HRESULT ddrval; +} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA; -/* Structures to report driver capabilities */ +typedef struct _D3DNTHAL_SCENECAPTUREDATA +{ + ULONG_PTR dwhContext; + DWORD dwFlag; + HRESULT ddrval; +} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA; -typedef struct _D3DNTHAL_DEVICEDESC { +typedef struct _D3DNTHAL_TEXTURECREATEDATA +{ + ULONG_PTR dwhContext; + HANDLE hDDS; + ULONG_PTR dwHandle; + HRESULT ddrval; +} D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA; + +typedef struct _D3DNTHAL_TEXTUREDESTROYDATA +{ + ULONG_PTR dwhContext; + ULONG_PTR dwHandle; + HRESULT ddrval; +} D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA; + +typedef struct _D3DNTHAL_TEXTURESWAPDATA +{ + ULONG_PTR dwhContext; + ULONG_PTR dwHandle1; + ULONG_PTR dwHandle2; + HRESULT ddrval; +} D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA; + +typedef struct _D3DNTHAL_TEXTUREGETSURFDATA +{ + ULONG_PTR dwhContext; + HANDLE hDDS; + ULONG_PTR dwHandle; + HRESULT ddrval; +} D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA; + +typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB)(LPD3DNTHAL_CONTEXTCREATEDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB)(LPD3DNTHAL_CONTEXTDESTROYDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB)(LPD3DNTHAL_CONTEXTDESTROYALLDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB)(LPD3DNTHAL_SCENECAPTUREDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB)(LPD3DNTHAL_TEXTURECREATEDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA); +typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA); + +typedef struct _D3DNTHALDeviceDesc_V1 +{ DWORD dwSize; DWORD dwFlags; D3DCOLORMODEL dcmColorModel; @@ -53,17 +116,91 @@ typedef struct _D3DNTHAL_DEVICEDESC { DWORD dwDeviceZBufferBitDepth; DWORD dwMaxBufferSize; DWORD dwMaxVertexCount; -} D3DNTHAL_DEVICEDESC, *PD3DNT_HALDEVICEDESC; +} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1; -typedef struct _D3DNTHAL_GLOBALDRIVERDATA { +typedef struct _D3DNTHAL_GLOBALDRIVERDATA +{ DWORD dwSize; - D3DNTHAL_DEVICEDESC hwCaps; + D3DNTHALDEVICEDESC_V1 hwCaps; DWORD dwNumVertices; DWORD dwNumClipVertices; DWORD dwNumTextureFormats; LPDDSURFACEDESC lpTextureFormats; -} D3DNTHAL_GLOBALDRIVERDATA, *PD3DNTHAL_GLOBALDRIVERDATA; +} D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA; +typedef struct _D3DNTHAL_CALLBACKS +{ + DWORD dwSize; + LPD3DNTHAL_CONTEXTCREATECB ContextCreate; + LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy; + LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll; + LPD3DNTHAL_SCENECAPTURECB SceneCapture; + LPVOID dwReserved10; + LPVOID dwReserved11; + LPVOID dwReserved22; + LPVOID dwReserved23; + ULONG_PTR dwReserved; + LPD3DNTHAL_TEXTURECREATECB TextureCreate; + LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy; + LPD3DNTHAL_TEXTURESWAPCB TextureSwap; + LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf; + LPVOID dwReserved12; + LPVOID dwReserved13; + LPVOID dwReserved14; + LPVOID dwReserved15; + LPVOID dwReserved16; + LPVOID dwReserved17; + LPVOID dwReserved18; + LPVOID dwReserved19; + LPVOID dwReserved20; + LPVOID dwReserved21; + LPVOID dwReserved24; + ULONG_PTR dwReserved0; + ULONG_PTR dwReserved1; + ULONG_PTR dwReserved2; + ULONG_PTR dwReserved3; + ULONG_PTR dwReserved4; + ULONG_PTR dwReserved5; + ULONG_PTR dwReserved6; + ULONG_PTR dwReserved7; + ULONG_PTR dwReserved8; + ULONG_PTR dwReserved9; +} D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS; + +typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA +{ + ULONG_PTR dwhContext; + DWORD dwFlags; + ULONG_PTR dwReserved; + DWORD dwNumPasses; + HRESULT ddrval; +} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA, FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA; + +typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA +{ + ULONG_PTR dwhContext; + DWORD dwFlags; + DWORD dwVertexType; + PDD_SURFACE_LOCAL lpDDCommands; + DWORD dwCommandOffset; + DWORD dwCommandLength; + union + { + PDD_SURFACE_LOCAL lpDDVertex; + LPVOID lpVertices; + }; + DWORD dwVertexOffset; + DWORD dwVertexLength; + DWORD dwReqVertexBufSize; + DWORD dwReqCommandBufSize; + LPDWORD lpdwRStates; + union + { + DWORD dwVertexSize; + HRESULT ddrval; + }; + DWORD dwErrorOffset; +} D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA; #ifdef __cplusplus } /* extern "C" */