diff --git a/reactos/include/ddk/acpiioct.h b/reactos/include/ddk/acpiioct.h index d4d550feae1..eeeb6e8eacc 100644 --- a/reactos/include/ddk/acpiioct.h +++ b/reactos/include/ddk/acpiioct.h @@ -35,7 +35,7 @@ extern "C" { typedef struct _ACPI_EVAL_INPUT_BUFFER { ULONG Signature; - union { + _ANONYMOUS_UNION union { UCHAR MethodName[4]; ULONG MethodNameAsUlong; } DUMMYUNIONNAME; @@ -43,7 +43,7 @@ typedef struct _ACPI_EVAL_INPUT_BUFFER { typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER { ULONG Signature; - union { + _ANONYMOUS_UNION union { UCHAR MethodName[4]; ULONG MethodNameAsUlong; } DUMMYUNIONNAME; @@ -52,7 +52,7 @@ typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER { typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING { ULONG Signature; - union { + _ANONYMOUS_UNION union { UCHAR MethodName[4]; ULONG MethodNameAsUlong; } DUMMYUNIONNAME; @@ -63,7 +63,7 @@ typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING { typedef struct _ACPI_METHOD_ARGUMENT { USHORT Type; USHORT DataLength; - union { + _ANONYMOUS_UNION union { ULONG Argument; UCHAR Data[ANYSIZE_ARRAY]; } DUMMYUNIONNAME; @@ -72,7 +72,7 @@ typedef ACPI_METHOD_ARGUMENT UNALIGNED *PACPI_METHOD_ARGUMENT; typedef struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX { ULONG Signature; - union { + _ANONYMOUS_UNION union { UCHAR MethodName[4]; ULONG MethodNameAsUlong; } DUMMYUNIONNAME; @@ -142,47 +142,47 @@ typedef struct _ACPI_ENUM_CHILDREN_OUTPUT_BUFFER { typedef ACPI_ENUM_CHILDREN_OUTPUT_BUFFER UNALIGNED *PACPI_ENUM_CHILDREN_OUTPUT_BUFFER; #define ACPI_METHOD_ARGUMENT_LENGTH( DataLength ) \ - (FIELD_OFFSET(ACPI_METHOD_ARGUMENT, Data) + max(sizeof(ULONG), DataLength)) + (FIELD_OFFSET(ACPI_METHOD_ARGUMENT, Data) + max(sizeof(ULONG), DataLength)) #define ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) \ - (ACPI_METHOD_ARGUMENT_LENGTH(((PACPI_METHOD_ARGUMENT)Argument)->DataLength)) + (ACPI_METHOD_ARGUMENT_LENGTH(((PACPI_METHOD_ARGUMENT)Argument)->DataLength)) #define ACPI_METHOD_NEXT_ARGUMENT( Argument ) \ - (PACPI_METHOD_ARGUMENT) ( (PUCHAR) Argument + \ - ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) ) + (PACPI_METHOD_ARGUMENT) ( (PUCHAR) Argument + \ + ACPI_METHOD_ARGUMENT_LENGTH_FROM_ARGUMENT( Argument ) ) #define ACPI_METHOD_SET_ARGUMENT_INTEGER( MethodArgument, IntData ) \ - { MethodArgument->Type = ACPI_METHOD_ARGUMENT_INTEGER; \ - MethodArgument->DataLength = sizeof(ULONG); \ - MethodArgument->Argument = IntData; } + { MethodArgument->Type = ACPI_METHOD_ARGUMENT_INTEGER; \ + MethodArgument->DataLength = sizeof(ULONG); \ + MethodArgument->Argument = IntData; } #define ACPI_METHOD_SET_ARGUMENT_STRING( Argument, StrData ) \ - { Argument->Type = ACPI_METHOD_ARGUMENT_STRING; \ - Argument->DataLength = strlen((PCHAR)StrData) + sizeof(UCHAR); \ - RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); } + { Argument->Type = ACPI_METHOD_ARGUMENT_STRING; \ + Argument->DataLength = strlen((PCHAR)StrData) + sizeof(UCHAR); \ + RtlCopyMemory(&Argument->Data[0],(PUCHAR)StrData,Argument->DataLength); } #define ACPI_METHOD_SET_ARGUMENT_BUFFER( Argument, BuffData, BuffLength ) \ - { Argument->Type = ACPI_METHOD_ARGUMENT_BUFFER; \ - Argument->DataLength = BuffLength; \ - RtlCopyMemory(&Argument->Data[0],(PUCHAR)BuffData,Argument->DataLength); } + { Argument->Type = ACPI_METHOD_ARGUMENT_BUFFER; \ + Argument->DataLength = BuffLength; \ + RtlCopyMemory(&Argument->Data[0],(PUCHAR)BuffData,Argument->DataLength); } -#define ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) \ - ( (2* sizeof (ULONG)) + Child->NameLength ) +#define ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) \ + ( (2* sizeof (ULONG)) + Child->NameLength ) -#define ACPI_ENUM_CHILD_NEXT( Child ) \ - (PACPI_ENUM_CHILD) ( (PUCHAR) Child + \ - ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) ) +#define ACPI_ENUM_CHILD_NEXT( Child ) \ + (PACPI_ENUM_CHILD) ( (PUCHAR) Child + \ + ACPI_ENUM_CHILD_LENGTH_FROM_CHILD( Child ) ) -#define IOCTL_ACPI_ASYNC_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -#define IOCTL_ACPI_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -#define IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -#define IOCTL_ACPI_RELEASE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_ASYNC_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_EVAL_METHOD CTL_CODE(FILE_DEVICE_ACPI, 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 4, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_RELEASE_GLOBAL_LOCK CTL_CODE(FILE_DEVICE_ACPI, 5, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #if (NTDDI_VERSION >= NTDDI_VISTA) -#define IOCTL_ACPI_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -#define IOCTL_ACPI_ASYNC_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -#define IOCTL_ACPI_ENUM_CHILDREN CTL_CODE(FILE_DEVICE_ACPI, 8, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 6, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_ASYNC_EVAL_METHOD_EX CTL_CODE(FILE_DEVICE_ACPI, 7, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_ACPI_ENUM_CHILDREN CTL_CODE(FILE_DEVICE_ACPI, 8, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #endif #ifdef __cplusplus diff --git a/reactos/include/ddk/bdasup.h b/reactos/include/ddk/bdasup.h index 373ccdbdcbf..51964113d77 100644 --- a/reactos/include/ddk/bdasup.h +++ b/reactos/include/ddk/bdasup.h @@ -6,15 +6,6 @@ extern "C" { #endif -/* Helper macro to enable gcc's extension. */ -#ifndef __GNU_EXTENSION -#ifdef __GNUC__ -#define __GNU_EXTENSION __extension__ -#else -#define __GNU_EXTENSION -#endif -#endif - #define STDMETHODCALLTYPE __stdcall #ifndef _WDMDDK_ diff --git a/reactos/include/ddk/d3dhal.h b/reactos/include/ddk/d3dhal.h index d4ecc2ca4e9..a6b0a7bad33 100644 --- a/reactos/include/ddk/d3dhal.h +++ b/reactos/include/ddk/d3dhal.h @@ -22,15 +22,6 @@ #ifndef _D3DHAL_H_ #define _D3DHAL_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 @@ -61,31 +52,31 @@ typedef struct _DDRAWI_DDRAWSURFACE_LCL FAR *LPDDRAWI_DDRAWSURFACE_LCL; * device info structures */ typedef struct _D3DDeviceDesc_V1 { - DWORD dwSize; - DWORD dwFlags; - D3DCOLORMODEL dcmColorModel; - DWORD dwDevCaps; - D3DTRANSFORMCAPS dtcTransformCaps; - BOOL bClipping; - D3DLIGHTINGCAPS dlcLightingCaps; - D3DPRIMCAPS dpcLineCaps; - D3DPRIMCAPS dpcTriCaps; - DWORD dwDeviceRenderBitDepth; - DWORD dwDeviceZBufferBitDepth; - DWORD dwMaxBufferSize; - DWORD dwMaxVertexCount; + DWORD dwSize; + DWORD dwFlags; + D3DCOLORMODEL dcmColorModel; + DWORD dwDevCaps; + D3DTRANSFORMCAPS dtcTransformCaps; + BOOL bClipping; + D3DLIGHTINGCAPS dlcLightingCaps; + D3DPRIMCAPS dpcLineCaps; + D3DPRIMCAPS dpcTriCaps; + DWORD dwDeviceRenderBitDepth; + DWORD dwDeviceZBufferBitDepth; + DWORD dwMaxBufferSize; + DWORD dwMaxVertexCount; } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1; /* this is to allow keeping the bulk of our OpenGL code out of x11drv */ #define D3DDD_WINE_OPENGL_DEVICE 0x00008000 typedef struct _D3DHAL_GLOBALDRIVERDATA { - DWORD dwSize; - D3DDEVICEDESC_V1 hwCaps; - DWORD dwNumVertices; - DWORD dwNumClipVertices; - DWORD dwNumTextureFormats; - LPDDSURFACEDESC lpTextureFormats; + DWORD dwSize; + D3DDEVICEDESC_V1 hwCaps; + DWORD dwNumVertices; + DWORD dwNumClipVertices; + DWORD dwNumTextureFormats; + LPDDSURFACEDESC lpTextureFormats; } D3DHAL_GLOBALDRIVERDATA; #ifndef D3DHAL_GLOBALDRIVERDATA_DEFINED @@ -94,103 +85,103 @@ typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA; #endif typedef struct _D3DHAL_D3DEXTENDEDCAPS { - DWORD dwSize; + DWORD dwSize; /* DirectX 5 */ - DWORD dwMinTextureWidth, dwMaxTextureWidth; - DWORD dwMinTextureHeight, dwMaxTextureHeight; - DWORD dwMinStippleWidth, dwMaxStippleWidth; - DWORD dwMinStippleHeight, dwMaxStippleHeight; + DWORD dwMinTextureWidth, dwMaxTextureWidth; + DWORD dwMinTextureHeight, dwMaxTextureHeight; + DWORD dwMinStippleWidth, dwMaxStippleWidth; + DWORD dwMinStippleHeight, dwMaxStippleHeight; /* DirectX 6 */ - DWORD dwMaxTextureRepeat; - DWORD dwMaxTextureAspectRatio; - DWORD dwMaxAnisotropy; - D3DVALUE dvGuardBandLeft; - D3DVALUE dvGuardBandTop; - D3DVALUE dvGuardBandRight; - D3DVALUE dvGuardBandBottom; - D3DVALUE dvExtentsAdjust; - DWORD dwStencilCaps; - DWORD dwFVFCaps; - DWORD dwTextureOpCaps; - WORD wMaxTextureBlendStages; - WORD wMaxSimultaneousTextures; + DWORD dwMaxTextureRepeat; + DWORD dwMaxTextureAspectRatio; + DWORD dwMaxAnisotropy; + D3DVALUE dvGuardBandLeft; + D3DVALUE dvGuardBandTop; + D3DVALUE dvGuardBandRight; + D3DVALUE dvGuardBandBottom; + D3DVALUE dvExtentsAdjust; + DWORD dwStencilCaps; + DWORD dwFVFCaps; + DWORD dwTextureOpCaps; + WORD wMaxTextureBlendStages; + WORD wMaxSimultaneousTextures; /* DirectX 7 */ - DWORD dwMaxActiveLights; - D3DVALUE dvMaxVertexW; - WORD wMaxUserClipPlanes; - WORD wMaxVertexBlendMatrices; - DWORD dwVertexProcessingCaps; - DWORD dwReserved1; - DWORD dwReserved2; - DWORD dwReserved3; - DWORD dwReserved4; + DWORD dwMaxActiveLights; + D3DVALUE dvMaxVertexW; + WORD wMaxUserClipPlanes; + WORD wMaxVertexBlendMatrices; + DWORD dwVertexProcessingCaps; + DWORD dwReserved1; + DWORD dwReserved2; + DWORD dwReserved3; + DWORD dwReserved4; } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS; /***************************************************************************** * d3d->driver callbacks */ -typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA; -typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA; -typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA; -typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA; -typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA; -typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA; -typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA; -typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA; -typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA; -typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA; -typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA; +typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA; +typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA; +typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA; +typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA; +typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA; +typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA; +typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA; +typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA; +typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA; +typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA; +typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA; typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA); typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA); typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA); -typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA); -typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA); +typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA); +typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA); typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA); typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA); typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA); -typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA); +typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA); typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA); -typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA); +typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA); typedef struct _D3DHAL_CALLBACKS { - DWORD dwSize; - LPD3DHAL_CONTEXTCREATECB ContextCreate; - LPD3DHAL_CONTEXTDESTROYCB ContextDestroy; - LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll; - LPD3DHAL_SCENECAPTURECB SceneCapture; - LPVOID lpReserved10; - LPVOID lpReserved11; - LPD3DHAL_RENDERSTATECB RenderState; - LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive; - DWORD dwReserved; - LPD3DHAL_TEXTURECREATECB TextureCreate; - LPD3DHAL_TEXTUREDESTROYCB TextureDestroy; - LPD3DHAL_TEXTURESWAPCB TextureSwap; - LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf; + DWORD dwSize; + LPD3DHAL_CONTEXTCREATECB ContextCreate; + LPD3DHAL_CONTEXTDESTROYCB ContextDestroy; + LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll; + LPD3DHAL_SCENECAPTURECB SceneCapture; + LPVOID lpReserved10; + LPVOID lpReserved11; + LPD3DHAL_RENDERSTATECB RenderState; + LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive; + DWORD dwReserved; + LPD3DHAL_TEXTURECREATECB TextureCreate; + LPD3DHAL_TEXTUREDESTROYCB TextureDestroy; + LPD3DHAL_TEXTURESWAPCB TextureSwap; + LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf; /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if * all these reserved fields were available? we may never know */ - LPVOID lpReserved12; - LPVOID lpReserved13; - LPVOID lpReserved14; - LPVOID lpReserved15; - LPVOID lpReserved16; - LPVOID lpReserved17; - LPVOID lpReserved18; - LPVOID lpReserved19; - LPVOID lpReserved20; - LPVOID lpReserved21; - LPD3DHAL_GETSTATECB GetState; - DWORD dwReserved0; - DWORD dwReserved1; - DWORD dwReserved2; - DWORD dwReserved3; - DWORD dwReserved4; - DWORD dwReserved5; - DWORD dwReserved6; - DWORD dwReserved7; - DWORD dwReserved8; - DWORD dwReserved9; + LPVOID lpReserved12; + LPVOID lpReserved13; + LPVOID lpReserved14; + LPVOID lpReserved15; + LPVOID lpReserved16; + LPVOID lpReserved17; + LPVOID lpReserved18; + LPVOID lpReserved19; + LPVOID lpReserved20; + LPVOID lpReserved21; + LPD3DHAL_GETSTATECB GetState; + DWORD dwReserved0; + DWORD dwReserved1; + DWORD dwReserved2; + DWORD dwReserved3; + DWORD dwReserved4; + DWORD dwReserved5; + DWORD dwReserved6; + DWORD dwReserved7; + DWORD dwReserved8; + DWORD dwReserved9; } D3DHAL_CALLBACKS; #ifndef D3DHAL_CALLBACKS_DEFINED @@ -198,132 +189,132 @@ typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS; #define D3DHAL_CALLBACKS_DEFINED #endif -typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA; -typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA; -typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA; -typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA; -typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA; +typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA; +typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA; +typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA; +typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA; +typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA; -typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA); -typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA); -typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA); +typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA); +typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA); +typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA); typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA); -typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA); +typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA); typedef struct _D3DHAL_CALLBACKS2 { - DWORD dwSize; - DWORD dwFlags; - LPD3DHAL_SETRENDERTARGETCB SetRenderTarget; - LPD3DHAL_CLEARCB Clear; - LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive; - LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive; - LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives; + DWORD dwSize; + DWORD dwFlags; + LPD3DHAL_SETRENDERTARGETCB SetRenderTarget; + LPD3DHAL_CLEARCB Clear; + LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive; + LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive; + LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives; } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2; -typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA; -typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA; -typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA; +typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA; +typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA; +typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA; -typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA); -typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA); -typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA); +typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA); +typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB) (LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA); +typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA); typedef struct _D3DHAL_CALLBACKS3 { - DWORD dwSize; - DWORD dwFlags; - LPD3DHAL_CLEAR2CB Clear2; - LPVOID lpvReserved; - LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState; - LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2; + DWORD dwSize; + DWORD dwFlags; + LPD3DHAL_CLEAR2CB Clear2; + LPVOID lpvReserved; + LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState; + LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2; } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3; /***************************************************************************** * parameter structures */ typedef struct _D3DHAL_CONTEXTCREATEDATA { - union { - LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */ - LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */ + _ANONYMOUS_UNION union { + LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */ + LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */ } DUMMYUNIONNAME1; - union { - LPDIRECTDRAWSURFACE lpDDS; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */ + _ANONYMOUS_UNION union { + LPDIRECTDRAWSURFACE lpDDS; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */ } DUMMYUNIONNAME2; - union { - LPDIRECTDRAWSURFACE lpDDSZ; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */ + _ANONYMOUS_UNION union { + LPDIRECTDRAWSURFACE lpDDSZ; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */ } DUMMYUNIONNAME3; - union { - DWORD dwPID; - ULONG_PTR dwrstates; + _ANONYMOUS_UNION union { + DWORD dwPID; + ULONG_PTR dwrstates; } DUMMYUNIONNAME4; - ULONG_PTR dwhContext; - HRESULT ddrval; + ULONG_PTR dwhContext; + HRESULT ddrval; } D3DHAL_CONTEXTCREATEDATA; typedef struct _D3DHAL_CONTEXTDESTROYDATA { - ULONG_PTR dwhContext; - HRESULT ddrval; + ULONG_PTR dwhContext; + HRESULT ddrval; } D3DHAL_CONTEXTDESTROYDATA; typedef struct _D3DHAL_CONTEXTDESTROYALLDATA { - DWORD dwPID; - HRESULT ddrval; + DWORD dwPID; + HRESULT ddrval; } D3DHAL_CONTEXTDESTROYALLDATA; typedef struct _D3DHAL_SCENECAPTUREDATA { - ULONG_PTR dwhContext; - DWORD dwFlag; - HRESULT ddrval; + ULONG_PTR dwhContext; + DWORD dwFlag; + HRESULT ddrval; } D3DHAL_SCENECAPTUREDATA; -#define D3DHAL_SCENE_CAPTURE_START 0x00000000 -#define D3DHAL_SCENE_CAPTURE_END 0x00000001 +#define D3DHAL_SCENE_CAPTURE_START 0x00000000 +#define D3DHAL_SCENE_CAPTURE_END 0x00000001 typedef struct _D3DHAL_SETRENDERTARGETDATA { - ULONG_PTR dwhContext; - union { - LPDIRECTDRAWSURFACE lpDDS; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; + ULONG_PTR dwhContext; + _ANONYMOUS_UNION union { + LPDIRECTDRAWSURFACE lpDDS; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; } DUMMYUNIONNAME1; - union { - LPDIRECTDRAWSURFACE lpDDSZ; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; + _ANONYMOUS_UNION union { + LPDIRECTDRAWSURFACE lpDDSZ; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; } DUMMYUNIONNAME2; - HRESULT ddrval; + HRESULT ddrval; } D3DHAL_SETRENDERTARGETDATA; typedef struct _D3DHAL_DRAWPRIMITIVES2DATA { - ULONG_PTR dwhContext; - DWORD dwFlags; - DWORD dwVertexType; - LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands; - DWORD dwCommandOffset; - DWORD dwCommandLength; - union { - LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex; - LPVOID lpVertices; + ULONG_PTR dwhContext; + DWORD dwFlags; + DWORD dwVertexType; + LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands; + DWORD dwCommandOffset; + DWORD dwCommandLength; + _ANONYMOUS_UNION union { + LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex; + LPVOID lpVertices; } DUMMYUNIONNAME1; - DWORD dwVertexOffset; - DWORD dwVertexLength; - DWORD dwReqVertexBufSize; - DWORD dwReqCommandBufSize; - LPDWORD lpdwRStates; - union { - DWORD dwVertexSize; - HRESULT ddrval; + DWORD dwVertexOffset; + DWORD dwVertexLength; + DWORD dwReqVertexBufSize; + DWORD dwReqCommandBufSize; + LPDWORD lpdwRStates; + _ANONYMOUS_UNION union { + DWORD dwVertexSize; + HRESULT ddrval; } DUMMYUNIONNAME2; - DWORD dwErrorOffset; + DWORD dwErrorOffset; } D3DHAL_DRAWPRIMITIVES2DATA; -#define D3DHALDP2_USERMEMVERTICES 0x00000001 -#define D3DHALDP2_EXECUTEBUFFER 0x00000002 -#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004 -#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008 -#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010 -#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020 -#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040 -#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080 +#define D3DHALDP2_USERMEMVERTICES 0x00000001 +#define D3DHALDP2_EXECUTEBUFFER 0x00000002 +#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004 +#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008 +#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010 +#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020 +#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040 +#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080 /***************************************************************************** * DrawPrimitives2 command structures @@ -331,50 +322,50 @@ typedef struct _D3DHAL_DRAWPRIMITIVES2DATA { typedef struct _D3DHAL_DP2COMMAND { BYTE bCommand; BYTE bReserved; - union { + _ANONYMOUS_UNION union { WORD wPrimitiveCount; WORD wStateCount; } DUMMYUNIONNAME; } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND; typedef enum _D3DHAL_DP2OPERATION { - D3DDP2OP_POINTS = 1, - D3DDP2OP_INDEXEDLINELIST = 2, - D3DDP2OP_INDEXEDTRIANGLELIST = 3, - D3DDP2OP_RENDERSTATE = 8, - D3DDP2OP_LINELIST = 15, - D3DDP2OP_LINESTRIP = 16, - D3DDP2OP_INDEXEDLINESTRIP = 17, - D3DDP2OP_TRIANGLELIST = 18, - D3DDP2OP_TRIANGLESTRIP = 19, - D3DDP2OP_INDEXEDTRIANGLESTRIP = 20, - D3DDP2OP_TRIANGLEFAN = 21, - D3DDP2OP_INDEXEDTRIANGLEFAN = 22, - D3DDP2OP_TRIANGLEFAN_IMM = 23, - D3DDP2OP_LINELIST_IMM = 24, - D3DDP2OP_TEXTURESTAGESTATE = 25, - D3DDP2OP_INDEXEDTRIANGLELIST2 = 26, - D3DDP2OP_INDEXEDLINELIST2 = 27, - D3DDP2OP_VIEWPORTINFO = 28, - D3DDP2OP_WINFO = 29, + D3DDP2OP_POINTS = 1, + D3DDP2OP_INDEXEDLINELIST = 2, + D3DDP2OP_INDEXEDTRIANGLELIST = 3, + D3DDP2OP_RENDERSTATE = 8, + D3DDP2OP_LINELIST = 15, + D3DDP2OP_LINESTRIP = 16, + D3DDP2OP_INDEXEDLINESTRIP = 17, + D3DDP2OP_TRIANGLELIST = 18, + D3DDP2OP_TRIANGLESTRIP = 19, + D3DDP2OP_INDEXEDTRIANGLESTRIP = 20, + D3DDP2OP_TRIANGLEFAN = 21, + D3DDP2OP_INDEXEDTRIANGLEFAN = 22, + D3DDP2OP_TRIANGLEFAN_IMM = 23, + D3DDP2OP_LINELIST_IMM = 24, + D3DDP2OP_TEXTURESTAGESTATE = 25, + D3DDP2OP_INDEXEDTRIANGLELIST2 = 26, + D3DDP2OP_INDEXEDLINELIST2 = 27, + D3DDP2OP_VIEWPORTINFO = 28, + D3DDP2OP_WINFO = 29, /* pre-DirectX 7 interfaces */ - D3DDP2OP_SETPALETTE = 30, - D3DDP2OP_UPDATEPALETTE = 31, + D3DDP2OP_SETPALETTE = 30, + D3DDP2OP_UPDATEPALETTE = 31, /* DirectX 7 interfaces */ - D3DDP2OP_ZRANGE = 32, - D3DDP2OP_SETMATERIAL = 33, - D3DDP2OP_SETLIGHT = 34, - D3DDP2OP_CREATELIGHT = 35, - D3DDP2OP_SETTRANSFORM = 36, - D3DDP2OP_TEXBLT = 38, - D3DDP2OP_STATESET = 39, - D3DDP2OP_SETPRIORITY = 40, + D3DDP2OP_ZRANGE = 32, + D3DDP2OP_SETMATERIAL = 33, + D3DDP2OP_SETLIGHT = 34, + D3DDP2OP_CREATELIGHT = 35, + D3DDP2OP_SETTRANSFORM = 36, + D3DDP2OP_TEXBLT = 38, + D3DDP2OP_STATESET = 39, + D3DDP2OP_SETPRIORITY = 40, /* all interfaces */ - D3DDP2OP_SETRENDERTARGET = 41, - D3DDP2OP_CLEAR = 42, + D3DDP2OP_SETRENDERTARGET = 41, + D3DDP2OP_CLEAR = 42, /* DirectX 7 interfaces */ - D3DDP2OP_SETTEXLOD = 43, - D3DPP2OP_SETCLIPPLANE = 44, + D3DDP2OP_SETTEXLOD = 43, + D3DPP2OP_SETCLIPPLANE = 44, #if(DIRECT3D_VERSION >= 0x0800) D3DDP2OP_CREATEVERTEXSHADER = 45, D3DDP2OP_DELETEVERTEXSHADER = 46, @@ -499,16 +490,16 @@ typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM { /* render states */ typedef struct _D3DHAL_DP2RENDERSTATE { - D3DRENDERSTATETYPE RenderState; - union { + D3DRENDERSTATETYPE RenderState; + _ANONYMOUS_UNION union { D3DVALUE dvState; DWORD dwState; } DUMMYUNIONNAME; } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE; typedef struct _D3DHAL_DP2TEXTURESTAGESTATE { - WORD wStage; - WORD TSState; + WORD wStage; + WORD TSState; DWORD dwValue; } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE; @@ -534,8 +525,8 @@ typedef struct _D3DHAL_DP2SETPALETTE { typedef struct _D3DHAL_DP2UPDATEPALETTE { DWORD dwPaletteHandle; - WORD wStartIndex; - WORD wNumEntries; + WORD wStartIndex; + WORD wNumEntries; } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE; typedef struct _D3DHAL_DP2ZRANGE { @@ -550,17 +541,17 @@ typedef struct _D3DHAL_DP2SETLIGHT { DWORD dwDataType; } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT; -#define D3DHAL_SETLIGHT_ENABLE 0 -#define D3DHAL_SETLIGHT_DISABLE 1 -#define D3DHAL_SETLIGHT_DATA 2 +#define D3DHAL_SETLIGHT_ENABLE 0 +#define D3DHAL_SETLIGHT_DISABLE 1 +#define D3DHAL_SETLIGHT_DATA 2 typedef struct _D3DHAL_DP2CREATELIGHT { DWORD dwIndex; } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT; typedef struct _D3DHAL_DP2SETTRANSFORM { - D3DTRANSFORMSTATETYPE xfrmType; - D3DMATRIX matrix; + D3DTRANSFORMSTATETYPE xfrmType; + D3DMATRIX matrix; } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM; typedef struct _D3DHAL_DP2TEXBLT { @@ -572,16 +563,16 @@ typedef struct _D3DHAL_DP2TEXBLT { } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT; typedef struct _D3DHAL_DP2STATESET { - DWORD dwOperation; - DWORD dwParam; - D3DSTATEBLOCKTYPE sbType; + DWORD dwOperation; + DWORD dwParam; + D3DSTATEBLOCKTYPE sbType; } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET; -#define D3DHAL_STATESETBEGIN 0 -#define D3DHAL_STATESETEND 1 -#define D3DHAL_STATESETDELETE 2 -#define D3DHAL_STATESETEXECUTE 3 -#define D3DHAL_STATESETCAPTURE 4 +#define D3DHAL_STATESETBEGIN 0 +#define D3DHAL_STATESETEND 1 +#define D3DHAL_STATESETDELETE 2 +#define D3DHAL_STATESETEXECUTE 3 +#define D3DHAL_STATESETCAPTURE 4 typedef struct _D3DHAL_DP2SETPRIORITY { DWORD dwDDSurface; @@ -594,11 +585,11 @@ typedef struct _D3DHAL_DP2SETRENDERTARGET { } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET; typedef struct _D3DHAL_DP2CLEAR { - DWORD dwFlags; - DWORD dwFillColor; - D3DVALUE dvFillDepth; - DWORD dwFillStencil; - RECT Rects[1]; + DWORD dwFlags; + DWORD dwFillColor; + D3DVALUE dvFillDepth; + DWORD dwFillStencil; + RECT Rects[1]; } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR; typedef struct _D3DHAL_DP2SETTEXLOD { @@ -606,35 +597,35 @@ typedef struct _D3DHAL_DP2SETTEXLOD { DWORD dwLOD; } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD; - #if (DIRECT3D_VERSION >= 0x0900) -#define DX9_DDI_VERSION 4 +#define DX9_DDI_VERSION 4 #ifndef D3DVTXPCAPS_NO_VSDT_UBYTE4 -#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080 +#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080 #endif -#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004 +#ifndef D3DPMISCCAPS_LINEPATTERNREP +#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004 +#endif -#define D3DDEVCAPS_HWVERTEXBUFFER 0x02000000 -#define D3DDEVCAPS_HWINDEXBUFFER 0x04000000 -#define D3DDEVCAPS_SUBVOLUMELOCK 0x08000000 +#define D3DDEVCAPS_HWVERTEXBUFFER 0x02000000 +#define D3DDEVCAPS_HWINDEXBUFFER 0x04000000 +#define D3DDEVCAPS_SUBVOLUMELOCK 0x08000000 #ifndef D3DPMISCCAPS_FOGINFVF -#define D3DPMISCCAPS_FOGINFVF 0x00002000 +#define D3DPMISCCAPS_FOGINFVF 0x00002000 #endif #ifndef D3DFVF_FOG -#define D3DFVF_FOG 0x00002000 +#define D3DFVF_FOG 0x00002000 #endif -typedef struct _DD_GETDRIVERINFO2DATA -{ - DWORD dwReserved; - DWORD dwMagic; - DWORD dwType; - DWORD dwExpectedSize; +typedef struct _DD_GETDRIVERINFO2DATA { + DWORD dwReserved; + DWORD dwMagic; + DWORD dwType; + DWORD dwExpectedSize; } DD_GETDRIVERINFO2DATA; /** @@ -642,19 +633,19 @@ typedef struct _DD_GETDRIVERINFO2DATA * D3DGDI2_MAGIC to see if the passed GUID is GUID_GetDriverInfo2 * or a GUID_DDStereoMode. */ -#define GUID_GetDriverInfo2 GUID_DDStereoMode +#define GUID_GetDriverInfo2 GUID_DDStereoMode /** * Magic number used in DD_GETDRIVERINFO2DATA.dwHeight when * GUID_GetDriverInfo2/GUID_DDStereoMode is specified in a * GetDriverInfo call. */ -#define D3DGDI2_MAGIC 0xFFFFFFFF +#define D3DGDI2_MAGIC 0xFFFFFFFF #define D3DGDI2_TYPE_GETD3DCAPS8 0x00000001 #define D3DGDI2_TYPE_GETFORMATCOUNT 0x00000002 #define D3DGDI2_TYPE_GETFORMAT 0x00000003 -#define D3DGDI2_TYPE_DXVERSION 0x00000004 /* Make driver aware of currently used DirectX version */ +#define D3DGDI2_TYPE_DXVERSION 0x00000004 /* Make driver aware of currently used DirectX version */ #define D3DGDI2_TYPE_GETD3DCAPS9 0x00000010 #define D3DGDI2_TYPE_GETEXTENDEDMODECOUNT 0x00000011 #define D3DGDI2_TYPE_GETEXTENDEDMODE 0x00000012 @@ -665,10 +656,9 @@ typedef struct _DD_GETDRIVERINFO2DATA #define D3DGDI2_TYPE_DEFER_AGP_FREES 0x00000020 #define D3DGDI2_TYPE_GETD3DQUERYCOUNT 0x00000021 #define D3DGDI2_TYPE_GETD3DQUERY 0x00000022 -#define D3DGDI2_TYPE_GETDDIVERSION 0x00000023 /* Returns DX9_DDI_VERSION, used to check which DDK version the driver is compiled against */ +#define D3DGDI2_TYPE_GETDDIVERSION 0x00000023 /* Returns DX9_DDI_VERSION, used to check which DDK version the driver is compiled against */ -typedef struct _D3DCAPS8 -{ +typedef struct _D3DCAPS8 { D3DDEVTYPE DeviceType; UINT AdapterOrdinal; DWORD Caps; @@ -724,90 +714,77 @@ typedef struct _D3DCAPS8 float MaxPixelShaderValue; } D3DCAPS8; -typedef struct _DD_GETFORMATCOUNTDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwFormatCount; - DWORD dwReserved; +typedef struct _DD_GETFORMATCOUNTDATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwFormatCount; + DWORD dwReserved; } DD_GETFORMATCOUNTDATA; -typedef struct _DD_GETFORMATDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwFormatIndex; - DDPIXELFORMAT format; +typedef struct _DD_GETFORMATDATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwFormatIndex; + DDPIXELFORMAT format; } DD_GETFORMATDATA; -typedef struct _DD_DXVERSION -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwDXVersion; - DWORD dwReserved; +typedef struct _DD_DXVERSION { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwDXVersion; + DWORD dwReserved; } DD_DXVERSION; -typedef struct _DD_DEFERRED_AGP_AWARE_DATA -{ - DD_GETDRIVERINFO2DATA gdi2; +typedef struct _DD_DEFERRED_AGP_AWARE_DATA { + DD_GETDRIVERINFO2DATA gdi2; } DD_DEFERRED_AGP_AWARE_DATA; -typedef struct _DD_FREE_DEFERRED_AGP_DATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwProcessId; +typedef struct _DD_FREE_DEFERRED_AGP_DATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwProcessId; } DD_FREE_DEFERRED_AGP_DATA; -typedef struct _DD_GETEXTENDEDMODECOUNTDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwModeCount; - DWORD dwReserved; +typedef struct _DD_GETEXTENDEDMODECOUNTDATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwModeCount; + DWORD dwReserved; } DD_GETEXTENDEDMODECOUNTDATA; -typedef struct _DD_GETEXTENDEDMODEDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwModeIndex; - D3DDISPLAYMODE mode; +typedef struct _DD_GETEXTENDEDMODEDATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwModeIndex; + D3DDISPLAYMODE mode; } DD_GETEXTENDEDMODEDATA; -typedef struct _DD_GETADAPTERGROUPDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - ULONG_PTR ulUniqueAdapterGroupId; - DWORD dwReserved1; - DWORD dwReserved2; +typedef struct _DD_GETADAPTERGROUPDATA { + DD_GETDRIVERINFO2DATA gdi2; + ULONG_PTR ulUniqueAdapterGroupId; + DWORD dwReserved1; + DWORD dwReserved2; } DD_GETADAPTERGROUPDATA; -typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - D3DFORMAT Format; - BOOL bFlip : 1; - D3DMULTISAMPLE_TYPE MSType : 31; - DWORD QualityLevels; +typedef struct _DD_MULTISAMPLEQUALITYLEVELSDATA { + DD_GETDRIVERINFO2DATA gdi2; + D3DFORMAT Format; + WINBOOL bFlip : 1; + D3DMULTISAMPLE_TYPE MSType : 31; + DWORD QualityLevels; } DD_MULTISAMPLEQUALITYLEVELSDATA; -typedef struct _DD_GETD3DQUERYCOUNTDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwNumQueries; +typedef struct _DD_GETD3DQUERYCOUNTDATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwNumQueries; } DD_GETD3DQUERYCOUNTDATA; -typedef struct _DD_GETD3DQUERYDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - __GNU_EXTENSION union - { - DWORD dwQueryIndex; - D3DQUERYTYPE QueryType; - }; +typedef struct _DD_GETD3DQUERYDATA { + DD_GETDRIVERINFO2DATA gdi2; + __GNU_EXTENSION union { + DWORD dwQueryIndex; + D3DQUERYTYPE QueryType; + }; } DD_GETD3DQUERYDATA; -typedef struct _DD_GETDDIVERSIONDATA -{ - DD_GETDRIVERINFO2DATA gdi2; - DWORD dwDXVersion; - DWORD dwDDIVersion; +typedef struct _DD_GETDDIVERSIONDATA { + DD_GETDRIVERINFO2DATA gdi2; + DWORD dwDXVersion; + DWORD dwDDIVersion; } DD_GETDDIVERSIONDATA; #endif /* (DIRECT3D_VERSION >= 0x0900) */ diff --git a/reactos/include/ddk/d3dhalex.h b/reactos/include/ddk/d3dhalex.h index c040876c8fb..7c852aedc94 100644 --- a/reactos/include/ddk/d3dhalex.h +++ b/reactos/include/ddk/d3dhalex.h @@ -1,10 +1,10 @@ - #ifndef _D3DHALEX_H #define _D3DHALEX_H + #define D3DGDI_IS_GDI2(pData) ((((DD_GETDRIVERINFO2DATA*)(pData->lpvData))->dwMagic) == D3DGDI2_MAGIC) #define D3DGDI_IS_STEREOMODE(pData) ((((DD_STEREOMODE*) (pData->lpvData))->dwHeight) != D3DGDI2_MAGIC) #define D3DGDI_GET_GDI2_DATA(pData) (D3DGDI_IS_GDI2(pData) ? (((DD_GETDRIVERINFO2DATA*)(pData->lpvData))) : NULL) #define D3DGDI_GET_STEREOMODE_DATA(pData) (D3DGDI_IS_STEREOMODE(pData) ? (((DD_STEREOMODE*)(pData->lpvData))) : NULL) -#endif +#endif /* _D3DHALEX_H */ diff --git a/reactos/include/ddk/d3dnthal.h b/reactos/include/ddk/d3dnthal.h deleted file mode 100644 index b396e6f23a3..00000000000 --- a/reactos/include/ddk/d3dnthal.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Direct3D NT driver interface - */ - -#ifndef __DDK_D3DNTHAL_H -#define __DDK_D3DNTHAL_H - -#include -#include -#include - -/* 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 - -DEFINE_GUID(GUID_D3DCallbacks, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02); -DEFINE_GUID(GUID_D3DCallbacks3, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E); -DEFINE_GUID(GUID_D3DExtendedCaps, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29); -DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8); -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 -{ - __GNU_EXTENSION union - { - PDD_DIRECTDRAW_GLOBAL lpDDGbl; - PDD_DIRECTDRAW_LOCAL lpDDLcl; - }; - __GNU_EXTENSION union - { - PDD_SURFACE_LOCAL lpDDS; - PDD_SURFACE_LOCAL lpDDSLcl; - }; - __GNU_EXTENSION union - { - PDD_SURFACE_LOCAL lpDDSZ; - PDD_SURFACE_LOCAL lpDDSZLcl; - }; - DWORD dwPID; - ULONG_PTR dwhContext; - HRESULT ddrval; -} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA; - -typedef struct _D3DNTHAL_CONTEXTDESTROYDATA -{ - ULONG_PTR dwhContext; - HRESULT ddrval; -} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA; - -typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA -{ - DWORD dwPID; - HRESULT ddrval; -} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA; - -typedef struct _D3DNTHAL_SCENECAPTUREDATA -{ - ULONG_PTR dwhContext; - DWORD dwFlag; - HRESULT ddrval; -} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA; - -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; - DWORD dwDevCaps; - D3DTRANSFORMCAPS dtcTransformCaps; - BOOL bClipping; - D3DLIGHTINGCAPS dlcLightingCaps; - D3DPRIMCAPS dpcLineCaps; - D3DPRIMCAPS dpcTriCaps; - DWORD dwDeviceRenderBitDepth; - DWORD dwDeviceZBufferBitDepth; - DWORD dwMaxBufferSize; - DWORD dwMaxVertexCount; -} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1; - -typedef struct _D3DNTHAL_GLOBALDRIVERDATA -{ - DWORD dwSize; - D3DNTHALDEVICEDESC_V1 hwCaps; - DWORD dwNumVertices; - DWORD dwNumClipVertices; - DWORD dwNumTextureFormats; - LPDDSURFACEDESC lpTextureFormats; -} 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_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; - DWORD dwFlags; - - LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget; - LPVOID dwReserved1; - LPVOID dwReserved2; - LPVOID dwReserved3; - LPVOID dwReserved4; -} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2; - - -typedef struct _D3DNTHAL_CLEAR2DATA -{ - ULONG_PTR dwhContext; - DWORD dwFlags; - DWORD dwFillColor; - D3DVALUE dvFillDepth; - DWORD dwFillStencil; - LPD3DRECT lpRects; - DWORD dwNumRects; - HRESULT ddrval; -} D3DNTHAL_CLEAR2DATA; -typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA; - -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; - __GNU_EXTENSION union - { - PDD_SURFACE_LOCAL lpDDVertex; - LPVOID lpVertices; - }; - DWORD dwVertexOffset; - DWORD dwVertexLength; - DWORD dwReqVertexBufSize; - DWORD dwReqCommandBufSize; - LPDWORD lpdwRStates; - __GNU_EXTENSION union - { - DWORD dwVertexSize; - HRESULT ddrval; - }; - 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 - -#endif /* __DDK_D3DNTHAL_H */ diff --git a/reactos/include/ddk/ddkernel.h b/reactos/include/ddk/ddkernel.h deleted file mode 100644 index bd46c759851..00000000000 --- a/reactos/include/ddk/ddkernel.h +++ /dev/null @@ -1,97 +0,0 @@ -/* $Id$ - * - * COPYRIGHT: This file is in the public domain. - * PROJECT: ReactOS kernel - * FILE: - * PURPOSE: Directx headers - * PROGRAMMER: Magnus Olsen (greatlrd) - * - */ - -#ifndef __DDKM_INCLUDED__ -#define __DDKM_INCLUDED__ - -#if defined (_WIN32) && !defined (_NO_COM) -DEFINE_GUID (IID_IDirectDrawKernel, 0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID (IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -#endif - -typedef struct _DDKERNELCAPS -{ - DWORD dwSize; - DWORD dwCaps; - DWORD dwIRQCaps; -} DDKERNELCAPS, *LPDDKERNELCAPS; - -#define DDKERNELCAPS_SKIPFIELDS 0x00000001 -#define DDKERNELCAPS_AUTOFLIP 0x00000002 -#define DDKERNELCAPS_SETSTATE 0x00000004 -#define DDKERNELCAPS_LOCK 0x00000008 -#define DDKERNELCAPS_FLIPVIDEOPORT 0x00000010 -#define DDKERNELCAPS_FLIPOVERLAY 0x00000020 -#define DDKERNELCAPS_CAPTURE_SYSMEM 0x00000040 -#define DDKERNELCAPS_CAPTURE_NONLOCALVIDMEM 0x00000080 -#define DDKERNELCAPS_FIELDPOLARITY 0x00000100 -#define DDKERNELCAPS_CAPTURE_INVERTED 0x00000200 -#define DDIRQ_DISPLAY_VSYNC 0x00000001 -#define DDIRQ_RESERVED1 0x00000002 -#define DDIRQ_VPORT0_VSYNC 0x00000004 -#define DDIRQ_VPORT0_LINE 0x00000008 -#define DDIRQ_VPORT1_VSYNC 0x00000010 -#define DDIRQ_VPORT1_LINE 0x00000020 -#define DDIRQ_VPORT2_VSYNC 0x00000040 -#define DDIRQ_VPORT2_LINE 0x00000080 -#define DDIRQ_VPORT3_VSYNC 0x00000100 -#define DDIRQ_VPORT3_LINE 0x00000200 -#define DDIRQ_VPORT4_VSYNC 0x00000400 -#define DDIRQ_VPORT4_LINE 0x00000800 -#define DDIRQ_VPORT5_VSYNC 0x00001000 -#define DDIRQ_VPORT5_LINE 0x00002000 -#define DDIRQ_VPORT6_VSYNC 0x00004000 -#define DDIRQ_VPORT6_LINE 0x00008000 -#define DDIRQ_VPORT7_VSYNC 0x00010000 -#define DDIRQ_VPORT7_LINE 0x00020000 -#define DDIRQ_VPORT8_VSYNC 0x00040000 -#define DDIRQ_VPORT8_LINE 0x00080000 -#define DDIRQ_VPORT9_VSYNC 0x00010000 -#define DDIRQ_VPORT9_LINE 0x00020000 - -typedef struct IDirectDrawKernel* LPDIRECTDRAWKERNEL; -typedef struct IDirectDrawSurfaceKernel* LPDIRECTDRAWSURFACEKERNEL; - -#if defined(_WIN32) && !defined(_NO_COM) - -#undef INTERFACE -#define INTERFACE IDirectDrawKernel -DECLARE_INTERFACE_ (IDirectDrawKernel, IUnknown) -{ - STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE; - STDMETHOD(ReleaseKernelHandle) (THIS) PURE; -}; - -#undef INTERFACE -#define INTERFACE IDirectDrawSurfaceKernel -DECLARE_INTERFACE_ (IDirectDrawSurfaceKernel, IUnknown) -{ - STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE; - STDMETHOD(ReleaseKernelHandle) (THIS) PURE; -}; - -#undef INTERFACE -#endif // defined(_WIN32) && !defined(_NO_COM) - -#ifdef __cplusplus -}; -#endif - -#endif - - - - diff --git a/reactos/include/ddk/ddrawi.h b/reactos/include/ddk/ddrawi.h deleted file mode 100644 index 6b658ff5120..00000000000 --- a/reactos/include/ddk/ddrawi.h +++ /dev/null @@ -1,2204 +0,0 @@ -/* - * DirectDraw driver interface - * (DirectX 7 version) - * - * Copyright (C) 2001 Ove Kaaven - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __DDRAWI_INCLUDED__ -#define __DDRAWI_INCLUDED__ - -/* 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 - -#define OBJECT_ISROOT 0x80000000 - -#include -#include -#include -#include - -#define DDAPI WINAPI - -#define VALID_ALIGNMENT(align) \ - (!((align==0)||(align%2)!= 0 )) - -/* the DirectDraw versions */ -#define DD_VERSION 0x0200 /* compatibility version */ -#define DD_RUNTIME_VERSION 0x0902 /* actual version */ - -/* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */ -#define DD_HAL_VERSION 0x0100 - -/* more DCICOMMAND escapes */ -#ifndef DCICOMMAND -#define DCICOMMAND 3075 -#endif - -#define DDCREATEDRIVEROBJECT 10 -#define DDGET32BITDRIVERNAME 11 -#define DDNEWCALLBACKFNS 12 -#define DDVERSIONINFO 13 - - - -#define DDUNSUPPORTEDMODE ((DWORD) -1) - -#include "dciddi.h" - -#ifndef CCHDEVICENAME -#define CCHDEVICENAME 32 -#endif -#define MAX_DRIVER_NAME CCHDEVICENAME - -#define DDHAL_DRIVER_DLLNAME "DDRAW16.DLL" -#define DDHAL_APP_DLLNAME "DDRAW.DLL" - - - -/* GUID */ -#ifdef _WIN32 -DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); -DEFINE_GUID(GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); -DEFINE_GUID(GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); -DEFINE_GUID(GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); -DEFINE_GUID(GUID_D3DCallbacks2, 0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); -DEFINE_GUID(GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e); -DEFINE_GUID(GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37); -DEFINE_GUID(GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); -DEFINE_GUID(GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); -DEFINE_GUID(GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29); -DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae); -DEFINE_GUID(GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5); -DEFINE_GUID(GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); -DEFINE_GUID(GUID_OptSurfaceKmodeInfo, 0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); -DEFINE_GUID(GUID_OptSurfaceUmodeInfo, 0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); -DEFINE_GUID(GUID_UserModeDriverInfo, 0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); -DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); -DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); -DEFINE_GUID(GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e); -DEFINE_GUID(GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A); -#endif - -#ifndef _WIN32 -#undef E_NOTIMPL -#undef E_OUTOFMEMORY -#undef E_INVALIDARG -#undef E_FAIL -#define E_NOTIMPL 0x80004001L -#define E_OUTOFMEMORY 0x8007000EL -#define E_INVALIDARG 0x80070057L -#define E_FAIL 0x80004005L -#endif - - -/***************************************************************************** - * Initialization stuff - */ -typedef struct { - char szName[260]; - char szEntryPoint[64]; - DWORD dwContext; -} DD32BITDRIVERDATA,*LPDD32BITDRIVERDATA; - -typedef struct { - DWORD dwHALVersion; - ULONG_PTR dwReserved1; - ULONG_PTR dwReserved2; -} DDVERSIONDATA,*LPDDVERSIONDATA; - -typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext); - - - -/* predeclare some structures */ -typedef struct _DDHALINFO *LPDDHALINFO; -typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT; - -#ifndef DDRAWI_DIRECTDRAW_DEFINED -typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL; -typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL; -#define DDRAWI_DIRECTDRAW_DEFINED -#endif - -typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT; - -#ifndef DDRAWI_DDRAWSURFACE_DEFINED -typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL; -#define DDRAWI_DDRAWSURFACE_DEFINED -#endif - -typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL; -typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE; -typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE; -typedef struct _DDRAWI_DDRAWPALETTE_INT *LPDDRAWI_DDRAWPALETTE_INT; -typedef struct _DDRAWI_DDRAWPALETTE_LCL *LPDDRAWI_DDRAWPALETTE_LCL; -typedef struct _DDRAWI_DDRAWPALETTE_GBL *LPDDRAWI_DDRAWPALETTE_GBL; -typedef struct _DDRAWI_DDRAWCLIPPER_INT *LPDDRAWI_DDRAWCLIPPER_INT; -typedef struct _DDRAWI_DDRAWCLIPPER_LCL *LPDDRAWI_DDRAWCLIPPER_LCL; -typedef struct _DDRAWI_DDRAWCLIPPER_GBL *LPDDRAWI_DDRAWCLIPPER_GBL; -typedef struct _DDRAWI_DDVIDEOPORT_INT *LPDDRAWI_DDVIDEOPORT_INT; -typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL; -typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT; -typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL; - -/***************************************************************************** - * driver->ddraw callbacks - */ -typedef BOOL (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset); -typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight); -typedef void (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem); - -typedef struct { - DWORD dwSize; - LPDDHAL_SETINFO lpSetInfo; - LPDDHAL_VIDMEMALLOC lpVidMemAlloc; - LPDDHAL_VIDMEMFREE lpVidMemFree; -} DDHALDDRAWFNS,*LPDDHALDDRAWFNS; - -/***************************************************************************** - * mode info structure - */ -typedef struct _DDHALMODEINFO { - DWORD dwWidth; - DWORD dwHeight; - LONG lPitch; - DWORD dwBPP; - WORD wFlags; - WORD wRefreshRate; - DWORD dwRBitMask; - DWORD dwGBitMask; - DWORD dwBBitMask; - DWORD dwAlphaBitMask; -} DDHALMODEINFO,*LPDDHALMODEINFO; - - - - -#define DDMODEINFO_PALETTIZED 0x0001 -#define DDMODEINFO_MODEX 0x0002 -#define DDMODEINFO_UNSUPPORTED 0x0004 -#define DDMODEINFO_STANDARDVGA 0x0008 -#define DDMODEINFO_MAXREFRESH 0x0010 -#define DDMODEINFO_STEREO 0x0020 - -/***************************************************************************** - * video memory info structure - */ -typedef struct _VIDMEM { - DWORD dwFlags; - FLATPTR fpStart; - __GNU_EXTENSION union { - FLATPTR fpEnd; - DWORD dwWidth; - }; - DDSCAPS ddsCaps; - DDSCAPS ddsCapsAlt; - __GNU_EXTENSION union { - LPVMEMHEAP lpHeap; - DWORD dwHeight; - }; -} VIDMEM; - - -#define VIDMEM_ISLINEAR 0x00000001l -#define VIDMEM_ISRECTANGULAR 0x00000002l -#define VIDMEM_ISHEAP 0x00000004l -#define VIDMEM_ISNONLOCAL 0x00000008l -#define VIDMEM_ISWC 0x00000010l -#define VIDMEM_HEAPDISABLED 0x00000020l - -typedef struct _VIDMEMINFO { - FLATPTR fpPrimary; - DWORD dwFlags; - DWORD dwDisplayWidth; - DWORD dwDisplayHeight; - LONG lDisplayPitch; - DDPIXELFORMAT ddpfDisplay; - DWORD dwOffscreenAlign; - DWORD dwOverlayAlign; - DWORD dwTextureAlign; - DWORD dwZBufferAlign; - DWORD dwAlphaAlign; - DWORD dwNumHeaps; - LPVIDMEM pvmList; -} VIDMEMINFO,*LPVIDMEMINFO; - - - -typedef struct _HEAPALIAS { - FLATPTR fpVidMem; - LPVOID lpAlias; - DWORD dwAliasSize; -} HEAPALIAS,*LPHEAPALIAS; - -typedef struct _HEAPALIASINFO { - DWORD dwRefCnt; - DWORD dwFlags; - DWORD dwNumHeaps; - LPHEAPALIAS lpAliases; -} HEAPALIASINFO,*LPHEAPALIASINFO; - -#define HEAPALIASINFO_MAPPEDREAL 0x00000001 -#define HEAPALIASINFO_MAPPEDDUMMY 0x00000002 - -/***************************************************************************** - * capabilities structures - */ -typedef struct _DDCORECAPS { - DWORD dwSize; - DWORD dwCaps; - DWORD dwCaps2; - DWORD dwCKeyCaps; - DWORD dwFXCaps; - DWORD dwFXAlphaCaps; - DWORD dwPalCaps; - DWORD dwSVCaps; - DWORD dwAlphaBltConstBitDepths; - DWORD dwAlphaBltPixelBitDepths; - DWORD dwAlphaBltSurfaceBitDepths; - DWORD dwAlphaOverlayConstBitDepths; - DWORD dwAlphaOverlayPixelBitDepths; - DWORD dwAlphaOverlaySurfaceBitDepths; - DWORD dwZBufferBitDepths; - DWORD dwVidMemTotal; - DWORD dwVidMemFree; - DWORD dwMaxVisibleOverlays; - DWORD dwCurrVisibleOverlays; - DWORD dwNumFourCCCodes; - DWORD dwAlignBoundarySrc; - DWORD dwAlignSizeSrc; - DWORD dwAlignBoundaryDest; - DWORD dwAlignSizeDest; - DWORD dwAlignStrideAlign; - DWORD dwRops[DD_ROP_SPACE]; - DDSCAPS ddsCaps; - DWORD dwMinOverlayStretch; - DWORD dwMaxOverlayStretch; - DWORD dwMinLiveVideoStretch; - DWORD dwMaxLiveVideoStretch; - DWORD dwMinHwCodecStretch; - DWORD dwMaxHwCodecStretch; - DWORD dwReserved1; - DWORD dwReserved2; - DWORD dwReserved3; - DWORD dwSVBCaps; - DWORD dwSVBCKeyCaps; - DWORD dwSVBFXCaps; - DWORD dwSVBRops[DD_ROP_SPACE]; - DWORD dwVSBCaps; - DWORD dwVSBCKeyCaps; - DWORD dwVSBFXCaps; - DWORD dwVSBRops[DD_ROP_SPACE]; - DWORD dwSSBCaps; - DWORD dwSSBCKeyCaps; - DWORD dwSSBFXCaps; - DWORD dwSSBRops[DD_ROP_SPACE]; - DWORD dwMaxVideoPorts; - DWORD dwCurrVideoPorts; - DWORD dwSVBCaps2; -} DDCORECAPS,*LPDDCORECAPS; - -typedef struct _DDNONLOCALVIDMEMCAPS { - DWORD dwSize; - DWORD dwNLVBCaps; - DWORD dwNLVBCaps2; - DWORD dwNLVBCKeyCaps; - DWORD dwNLVBFXCaps; - DWORD dwNLVBRops[DD_ROP_SPACE]; -} DDNONLOCALVIDMEMCAPS,*LPDDNONLOCALVIDMEMCAPS; - - - -#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2 -#define DDSCAPS2_VERTEXBUFFER DDSCAPS2_RESERVED1 -#define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2 - - - - -/***************************************************************************** - * ddraw->driver callbacks - */ -#define DDHAL_DRIVER_NOTHANDLED 0x00000000l -#define DDHAL_DRIVER_HANDLED 0x00000001l -#define DDHAL_DRIVER_NOCKEYHW 0x00000002l - -typedef struct _DDHAL_DESTROYDRIVERDATA *LPDDHAL_DESTROYDRIVERDATA; -typedef struct _DDHAL_CREATESURFACEDATA *LPDDHAL_CREATESURFACEDATA; -typedef struct _DDHAL_DRVSETCOLORKEYDATA *LPDDHAL_DRVSETCOLORKEYDATA; -typedef struct _DDHAL_SETMODEDATA *LPDDHAL_SETMODEDATA; -typedef struct _DDHAL_WAITFORVERTICALBLANKDATA *LPDDHAL_WAITFORVERTICALBLANKDATA; -typedef struct _DDHAL_CANCREATESURFACEDATA *LPDDHAL_CANCREATESURFACEDATA; -typedef struct _DDHAL_CREATEPALETTEDATA *LPDDHAL_CREATEPALETTEDATA; -typedef struct _DDHAL_GETSCANLINEDATA *LPDDHAL_GETSCANLINEDATA; -typedef struct _DDHAL_SETEXCLUSIVEMODEDATA *LPDDHAL_SETEXCLUSIVEMODEDATA; -typedef struct _DDHAL_FLIPTOGDISURFACEDATA *LPDDHAL_FLIPTOGDISURFACEDATA; - -typedef DWORD (PASCAL *LPDDHAL_DESTROYDRIVER) (LPDDHAL_DESTROYDRIVERDATA); -typedef DWORD (PASCAL *LPDDHAL_CREATESURFACE) (LPDDHAL_CREATESURFACEDATA); -typedef DWORD (PASCAL *LPDDHAL_SETCOLORKEY) (LPDDHAL_DRVSETCOLORKEYDATA); -typedef DWORD (PASCAL *LPDDHAL_SETMODE) (LPDDHAL_SETMODEDATA); -typedef DWORD (PASCAL *LPDDHAL_WAITFORVERTICALBLANK)(LPDDHAL_WAITFORVERTICALBLANKDATA); -typedef DWORD (PASCAL *LPDDHAL_CANCREATESURFACE) (LPDDHAL_CANCREATESURFACEDATA ); -typedef DWORD (PASCAL *LPDDHAL_CREATEPALETTE) (LPDDHAL_CREATEPALETTEDATA); -typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE) (LPDDHAL_GETSCANLINEDATA); -typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE) (LPDDHAL_SETEXCLUSIVEMODEDATA); -typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE) (LPDDHAL_FLIPTOGDISURFACEDATA); - - - -typedef struct _DDHAL_DDCALLBACKS { - DWORD dwSize; - DWORD dwFlags; - LPDDHAL_DESTROYDRIVER DestroyDriver; - LPDDHAL_CREATESURFACE CreateSurface; - LPDDHAL_SETCOLORKEY SetColorKey; - LPDDHAL_SETMODE SetMode; - LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; - LPDDHAL_CANCREATESURFACE CanCreateSurface; - LPDDHAL_CREATEPALETTE CreatePalette; - LPDDHAL_GETSCANLINE GetScanLine; - /* DirectX 2 */ - LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; - LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; -} DDHAL_DDCALLBACKS,*LPDDHAL_DDCALLBACKS; - - - -typedef struct _DDHAL_DESTROYSURFACEDATA *LPDDHAL_DESTROYSURFACEDATA; -typedef struct _DDHAL_FLIPDATA *LPDDHAL_FLIPDATA; -typedef struct _DDHAL_SETCLIPLISTDATA *LPDDHAL_SETCLIPLISTDATA; -typedef struct _DDHAL_LOCKDATA *LPDDHAL_LOCKDATA; -typedef struct _DDHAL_UNLOCKDATA *LPDDHAL_UNLOCKDATA; -typedef struct _DDHAL_BLTDATA *LPDDHAL_BLTDATA; -typedef struct _DDHAL_SETCOLORKEYDATA *LPDDHAL_SETCOLORKEYDATA; -typedef struct _DDHAL_ADDATTACHEDSURFACEDATA *LPDDHAL_ADDATTACHEDSURFACEDATA; -typedef struct _DDHAL_GETBLTSTATUSDATA *LPDDHAL_GETBLTSTATUSDATA; -typedef struct _DDHAL_GETFLIPSTATUSDATA *LPDDHAL_GETFLIPSTATUSDATA; -typedef struct _DDHAL_UPDATEOVERLAYDATA *LPDDHAL_UPDATEOVERLAYDATA; -typedef struct _DDHAL_SETOVERLAYPOSITIONDATA *LPDDHAL_SETOVERLAYPOSITIONDATA; -typedef struct _DDHAL_SETPALETTEDATA *LPDDHAL_SETPALETTEDATA; - -typedef DWORD (PASCAL *LPDDHALSURFCB_DESTROYSURFACE) (LPDDHAL_DESTROYSURFACEDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_FLIP) (LPDDHAL_FLIPDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_SETCLIPLIST) (LPDDHAL_SETCLIPLISTDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_LOCK) (LPDDHAL_LOCKDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_UNLOCK) (LPDDHAL_UNLOCKDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_BLT) (LPDDHAL_BLTDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_SETCOLORKEY) (LPDDHAL_SETCOLORKEYDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_GETBLTSTATUS) (LPDDHAL_GETBLTSTATUSDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_GETFLIPSTATUS) (LPDDHAL_GETFLIPSTATUSDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_UPDATEOVERLAY) (LPDDHAL_UPDATEOVERLAYDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA); -typedef DWORD (PASCAL *LPDDHALSURFCB_SETPALETTE) (LPDDHAL_SETPALETTEDATA); - -typedef struct _DDHAL_DDSURFACECALLBACKS { - DWORD dwSize; - DWORD dwFlags; - LPDDHALSURFCB_DESTROYSURFACE DestroySurface; - LPDDHALSURFCB_FLIP Flip; - LPDDHALSURFCB_SETCLIPLIST SetClipList; - LPDDHALSURFCB_LOCK Lock; - LPDDHALSURFCB_UNLOCK Unlock; - LPDDHALSURFCB_BLT Blt; - LPDDHALSURFCB_SETCOLORKEY SetColorKey; - LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; - LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; - LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; - LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; - LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; - LPVOID reserved4; - LPDDHALSURFCB_SETPALETTE SetPalette; -} DDHAL_DDSURFACECALLBACKS,*LPDDHAL_DDSURFACECALLBACKS; - - - -typedef struct _DDHAL_DESTROYPALETTEDATA *LPDDHAL_DESTROYPALETTEDATA; -typedef struct _DDHAL_SETENTRIESDATA *LPDDHAL_SETENTRIESDATA; - -typedef DWORD (PASCAL *LPDDHALPALCB_DESTROYPALETTE)(LPDDHAL_DESTROYPALETTEDATA); -typedef DWORD (PASCAL *LPDDHALPALCB_SETENTRIES) (LPDDHAL_SETENTRIESDATA); - -typedef struct _DDHAL_DDPALETTECALLBACKS { - DWORD dwSize; - DWORD dwFlags; - LPDDHALPALCB_DESTROYPALETTE DestroyPalette; - LPDDHALPALCB_SETENTRIES SetEntries; -} DDHAL_DDPALETTECALLBACKS,*LPDDHAL_DDPALETTECALLBACKS; - -typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF)(LPDDHAL_CANCREATESURFACEDATA); -typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF) (LPDDHAL_CREATESURFACEDATA); -typedef DWORD (PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF) (LPDDHAL_DESTROYSURFACEDATA); -typedef DWORD (PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF) (LPDDHAL_LOCKDATA); -typedef DWORD (PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF) (LPDDHAL_UNLOCKDATA); - -typedef struct _DDHAL_DDEXEBUFCALLBACKS { - DWORD dwSize; - DWORD dwFlags; - LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer; - LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer; - LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer; - LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer; - LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer; -} DDHAL_DDEXEBUFCALLBACKS,*LPDDHAL_DDEXEBUFCALLBACKS; - -typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA *LPDDHAL_GETAVAILDRIVERMEMORYDATA; -typedef struct _DDHAL_UPDATENONLOCALHEAPDATA *LPDDHAL_UPDATENONLOCALHEAPDATA; -typedef struct _DDHAL_GETHEAPALIGNMENTDATA *LPDDHAL_GETHEAPALIGNMENTDATA; - -typedef DWORD (PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA); -typedef DWORD (PASCAL *LPDDHAL_UPDATENONLOCALHEAP) (LPDDHAL_UPDATENONLOCALHEAPDATA); -typedef DWORD (PASCAL *LPDDHAL_GETHEAPALIGNMENT) (LPDDHAL_GETHEAPALIGNMENTDATA); - -typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS { - DWORD dwSize; - DWORD dwFlags; - LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; - LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; - LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; - LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus; -} DDHAL_DDMISCELLANEOUSCALLBACKS,*LPDDHAL_DDMISCELLANEOUSCALLBACKS; - -typedef struct _DDHAL_CREATESURFACEEXDATA *LPDDHAL_CREATESURFACEEXDATA; -typedef struct _DDHAL_GETDRIVERSTATEDATA *LPDDHAL_GETDRIVERSTATEDATA; -typedef struct _DDHAL_DESTROYDDLOCALDATA *LPDDHAL_DESTROYDDLOCALDATA; - -typedef DWORD (PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA); -typedef DWORD (PASCAL *LPDDHAL_GETDRIVERSTATE) (LPDDHAL_GETDRIVERSTATEDATA); -typedef DWORD (PASCAL *LPDDHAL_DESTROYDDLOCAL) (LPDDHAL_DESTROYDDLOCALDATA); - -typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS { - DWORD dwSize; - DWORD dwFlags; - LPVOID Reserved; - LPDDHAL_CREATESURFACEEX CreateSurfaceEx; - LPDDHAL_GETDRIVERSTATE GetDriverState; - LPDDHAL_DESTROYDDLOCAL DestroyDDLocal; -} DDHAL_DDMISCELLANEOUS2CALLBACKS,*LPDDHAL_DDMISCELLANEOUS2CALLBACKS; - - -typedef struct _DDHAL_CANCREATEVPORTDATA *LPDDHAL_CANCREATEVPORTDATA; -typedef struct _DDHAL_CREATEVPORTDATA *LPDDHAL_CREATEVPORTDATA; -typedef struct _DDHAL_FLIPVPORTDATA *LPDDHAL_FLIPVPORTDATA; -typedef struct _DDHAL_GETVPORTCONNECTDATA *LPDDHAL_GETVPORTCONNECTDATA; -typedef struct _DDHAL_GETVPORTBANDWIDTHDATA *LPDDHAL_GETVPORTBANDWIDTHDATA; -typedef struct _DDHAL_GETVPORTINPUTFORMATDATA *LPDDHAL_GETVPORTINPUTFORMATDATA; -typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA; -typedef struct _DDHAL_GETVPORTFIELDDATA *LPDDHAL_GETVPORTFIELDDATA; -typedef struct _DDHAL_GETVPORTLINEDATA *LPDDHAL_GETVPORTLINEDATA; -typedef struct _DDHAL_DESTROYVPORTDATA *LPDDHAL_DESTROYVPORTDATA; -typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA *LPDDHAL_GETVPORTFLIPSTATUSDATA; -typedef struct _DDHAL_UPDATEVPORTDATA *LPDDHAL_UPDATEVPORTDATA; -typedef struct _DDHAL_WAITFORVPORTSYNCDATA *LPDDHAL_WAITFORVPORTSYNCDATA; -typedef struct _DDHAL_GETVPORTSIGNALDATA *LPDDHAL_GETVPORTSIGNALDATA; -typedef struct _DDHAL_VPORTCOLORDATA *LPDDHAL_VPORTCOLORDATA; - -typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA); -typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA); - -typedef struct _DDHAL_DDVIDEOPORTCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; - LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort; - LPDDHALVPORTCB_FLIP FlipVideoPort; - LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth; - LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; - LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; - LPVOID lpReserved1; - LPDDHALVPORTCB_GETFIELD GetVideoPortField; - LPDDHALVPORTCB_GETLINE GetVideoPortLine; - LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; - LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort; - LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; - LPDDHALVPORTCB_UPDATE UpdateVideoPort; - LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync; - LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; - LPDDHALVPORTCB_COLORCONTROL ColorControl; -} DDHAL_DDVIDEOPORTCALLBACKS; - - -typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA; - -typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA); - - -typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - LPDDHALCOLORCB_COLORCONTROL ColorControl; -} DDHAL_DDCOLORCONTROLCALLBACKS; - -typedef struct _DDHAL_SYNCSURFACEDATA *LPDDHAL_SYNCSURFACEDATA; -typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA; - -typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA); -typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA); - -typedef struct _DDHAL_DDKERNELCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - LPDDHALKERNELCB_SYNCSURFACE SyncSurfaceData; - LPDDHALKERNELCB_SYNCVIDEOPORT SyncVideoPortData; -} DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS; - -typedef struct _DDHAL_GETMOCOMPGUIDSDATA *LPDDHAL_GETMOCOMPGUIDSDATA; -typedef struct _DDHAL_GETMOCOMPFORMATSDATA *LPDDHAL_GETMOCOMPFORMATSDATA; -typedef struct _DDHAL_CREATEMOCOMPDATA *LPDDHAL_CREATEMOCOMPDATA; -typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA *LPDDHAL_GETMOCOMPCOMPBUFFDATA; -typedef struct _DDHAL_GETINTERNALMOCOMPDATA *LPDDHAL_GETINTERNALMOCOMPDATA; -typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA *LPDDHAL_BEGINMOCOMPFRAMEDATA; -typedef struct _DDHAL_ENDMOCOMPFRAMEDATA *LPDDHAL_ENDMOCOMPFRAMEDATA; -typedef struct _DDHAL_RENDERMOCOMPDATA *LPDDHAL_RENDERMOCOMPDATA; -typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA *LPDDHAL_QUERYMOCOMPSTATUSDATA; -typedef struct _DDHAL_DESTROYMOCOMPDATA *LPDDHAL_DESTROYMOCOMPDATA; - -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)( LPDDHAL_GETMOCOMPGUIDSDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)( LPDDHAL_GETMOCOMPFORMATSDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)( LPDDHAL_CREATEMOCOMPDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)( LPDDHAL_GETMOCOMPCOMPBUFFDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)( LPDDHAL_GETINTERNALMOCOMPDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)( LPDDHAL_BEGINMOCOMPFRAMEDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)( LPDDHAL_ENDMOCOMPFRAMEDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)( LPDDHAL_RENDERMOCOMPDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)( LPDDHAL_QUERYMOCOMPSTATUSDATA); -typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)( LPDDHAL_DESTROYMOCOMPDATA); - -typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids; - LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats; - LPDDHALMOCOMPCB_CREATE CreateMoComp; - LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; - LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; - LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame; - LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame; - LPDDHALMOCOMPCB_RENDER RenderMoComp; - LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus; - LPDDHALMOCOMPCB_DESTROY DestroyMoComp; -} DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS; - - - -typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE); - - - -/***************************************************************************** - * driver info structure - * - * The HAL is queried for additional callbacks via the GetDriverInfo callback. - */ -typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA; -typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA); - - -typedef struct _DDHAL_GETDRIVERINFODATA { - DWORD dwSize; - DWORD dwFlags; - GUID guidInfo; - DWORD dwExpectedSize; - LPVOID lpvData; - DWORD dwActualSize; - HRESULT ddRVal; - ULONG_PTR dwContext; - -} DDHAL_GETDRIVERINFODATA; - -typedef struct _DDHALINFO { - DWORD dwSize; - LPDDHAL_DDCALLBACKS lpDDCallbacks; - LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks; - LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks; - VIDMEMINFO vmiData; - DDCORECAPS ddCaps; - DWORD dwMonitorFrequency; - LPDDHAL_GETDRIVERINFO GetDriverInfo; - DWORD dwModeIndex; - LPDWORD lpdwFourCC; - DWORD dwNumModes; - LPDDHALMODEINFO lpModeInfo; - DWORD dwFlags; - LPVOID lpPDevice; - DWORD hInstance; - /* DirectX 2 */ - ULONG_PTR lpD3DGlobalDriverData; - ULONG_PTR lpD3DHALCallbacks; - LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks; -} DDHALINFO; - - - -#define DDPALETTECALLBACKSSIZE sizeof( DDHAL_DDPALETTECALLBACKS ) -#define DDSURFACECALLBACKSSIZE sizeof( DDHAL_DDSURFACECALLBACKS ) -#define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS) -#define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS) -#define DDEXEBUFCALLBACKSSIZE sizeof( DDHAL_DDEXEBUFCALLBACKS ) -#define DDVIDEOPORTCALLBACKSSIZE sizeof( DDHAL_DDVIDEOPORTCALLBACKS ) -#define DDCOLORCONTROLCALLBACKSSIZE sizeof( DDHAL_DDCOLORCONTROLCALLBACKS ) -#define DDKERNELCALLBACKSSIZE sizeof(DDHAL_DDKERNELCALLBACKS) -#define DDMOTIONCOMPCALLBACKSSIZE sizeof( DDHAL_DDMOTIONCOMPCALLBACKS ) - -#define MAX_PALETTE_SIZE 256 - -#define MAX_AUTOFLIP_BUFFERS 10 -#define DDSCAPS2_INDEXBUFFER DDSCAPS2_RESERVED3 -#define DDSCAPS3_VIDEO DDSCAPS3_RESERVED2 -#define D3DFMT_INTERNAL_D32 71 -#define D3DFMT_INTERNAL_S1D15 72 -#define D3DFMT_INTERNAL_D15S1 73 -#define D3DFMT_INTERNAL_S8D24 74 -#define D3DFMT_INTERNAL_D24S8 75 -#define D3DFMT_INTERNAL_X8D24 76 -#define D3DFMT_INTERNAL_D24X8 77 -#define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l -#define DDHAL_PLEASEALLOC_LINEARSIZE 0x00000003l - -#define DDHAL_CB32_DESTROYDRIVER 0x00000001l -#define DDHAL_CB32_CREATESURFACE 0x00000002l -#define DDHAL_CB32_SETCOLORKEY 0x00000004l -#define DDHAL_CB32_SETMODE 0x00000008l -#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l -#define DDHAL_CB32_CANCREATESURFACE 0x00000020l -#define DDHAL_CB32_CREATEPALETTE 0x00000040l -#define DDHAL_CB32_GETSCANLINE 0x00000080l -#define DDHAL_CB32_SETEXCLUSIVEMODE 0x00000100l -#define DDHAL_CB32_FLIPTOGDISURFACE 0x00000200l -#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l -#define DDHAL_PALCB32_SETENTRIES 0x00000002l -#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001 -#define DDHALINFO_MODEXILLEGAL 0x00000002 -#define DDHALINFO_GETDRIVERINFOSET 0x00000004 -#define DDHALINFO_GETDRIVERINFO2 0x00000008 -#define DDRAWI_VPORTSTART 0x0001 -#define DDRAWI_VPORTSTOP 0x0002 -#define DDRAWI_VPORTUPDATE 0x0003 -#define DDRAWI_VPORTGETCOLOR 0x0001 -#define DDRAWI_VPORTSETCOLOR 0x0002 -#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001 -#define DDHAL_SURFCB32_FLIP 0x00000002 -#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004 -#define DDHAL_SURFCB32_LOCK 0x00000008 -#define DDHAL_SURFCB32_UNLOCK 0x00000010 -#define DDHAL_SURFCB32_BLT 0x00000020 -#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040 -#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080 -#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100 -#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200 -#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400 -#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800 -#define DDHAL_SURFCB32_RESERVED4 0x00001000 -#define DDHAL_SURFCB32_SETPALETTE 0x00002000 -#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001 -#define DDHAL_MISCCB32_UPDATENONLOCALHEAP 0x00000002 -#define DDHAL_MISCCB32_GETHEAPALIGNMENT 0x00000004 -#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS 0x00000008 -#define DDHAL_MISC2CB32_ALPHABLT 0x00000001 -#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002 -#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004 -#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008 -#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l -#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l -#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l -#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l -#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l -#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001 -#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002 -#define DDHAL_VPORT32_FLIP 0x00000004 -#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008 -#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010 -#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020 -#define DDHAL_VPORT32_GETFIELD 0x00000080 -#define DDHAL_VPORT32_GETLINE 0x00000100 -#define DDHAL_VPORT32_GETCONNECT 0x00000200 -#define DDHAL_VPORT32_DESTROY 0x00000400 -#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800 -#define DDHAL_VPORT32_UPDATE 0x00001000 -#define DDHAL_VPORT32_WAITFORSYNC 0x00002000 -#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000 -#define DDHAL_VPORT32_COLORCONTROL 0x00008000 -#define DDHAL_COLOR_COLORCONTROL 0x00000001 -#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l -#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l -#define DDHAL_MOCOMP32_GETGUIDS 0x00000001 -#define DDHAL_MOCOMP32_GETFORMATS 0x00000002 -#define DDHAL_MOCOMP32_CREATE 0x00000004 -#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008 -#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010 -#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020 -#define DDHAL_MOCOMP32_ENDFRAME 0x00000040 -#define DDHAL_MOCOMP32_RENDER 0x00000080 -#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100 -#define DDHAL_MOCOMP32_DESTROY 0x00000200 - - -/* where the high-level ddraw implementation stores the callbacks */ -typedef struct _DDHAL_CALLBACKS { - DDHAL_DDCALLBACKS cbDDCallbacks; - DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks; - DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks; - DDHAL_DDCALLBACKS HALDD; - DDHAL_DDSURFACECALLBACKS HALDDSurface; - DDHAL_DDPALETTECALLBACKS HALDDPalette; - DDHAL_DDCALLBACKS HELDD; - DDHAL_DDSURFACECALLBACKS HELDDSurface; - DDHAL_DDPALETTECALLBACKS HELDDPalette; - DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks; - DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf; - DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf; - DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks; - DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort; - DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks; - DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl; - DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks; - DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous; - DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks; - DDHAL_DDKERNELCALLBACKS HALDDKernel; - DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks; - DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp; -} DDHAL_CALLBACKS,*LPDDHAL_CALLBACKS; - -/***************************************************************************** - * parameter structures - */ -typedef struct _DDHAL_DESTROYDRIVERDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - HRESULT ddRVal; - LPDDHAL_DESTROYDRIVER DestroyDriver; -} DDHAL_DESTROYDRIVERDATA; - -typedef struct _DDHAL_SETMODEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwModeIndex; - HRESULT ddRVal; - LPDDHAL_SETMODE SetMode; - BOOL inexcl; - BOOL useRefreshRate; -} DDHAL_SETMODEDATA; - -typedef struct _DDHAL_CREATESURFACEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDSURFACEDESC lpDDSurfaceDesc; - LPDDRAWI_DDRAWSURFACE_LCL * lplpSList; - DWORD dwSCnt; - HRESULT ddRVal; - LPDDHAL_CREATESURFACE CreateSurface; -} DDHAL_CREATESURFACEDATA; - -typedef struct _DDHAL_CANCREATESURFACEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDSURFACEDESC lpDDSurfaceDesc; - DWORD bIsDifferentPixelFormat; - HRESULT ddRVal; - LPDDHAL_CANCREATESURFACE CanCreateSurface; -} DDHAL_CANCREATESURFACEDATA; - -typedef struct _DDHAL_CREATEPALETTEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; - LPPALETTEENTRY lpColorTable; - HRESULT ddRVal; - LPDDHAL_CREATEPALETTE CreatePalette; - BOOL is_excl; -} DDHAL_CREATEPALETTEDATA; - -typedef struct _DDHAL_SETEXCLUSIVEMODEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwEnterExcl; - DWORD dwReserved; - HRESULT ddRVal; - LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; -} DDHAL_SETEXCLUSIVEMODEDATA; - -/* surfaces */ -typedef struct _DDHAL_DESTROYSURFACEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - HRESULT ddRVal; - LPDDHALSURFCB_DESTROYSURFACE DestroySurface; -} DDHAL_DESTROYSURFACEDATA; - -typedef struct _DDHAL_FLIPDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; - DWORD dwFlags; - HRESULT ddRVal; - LPDDHALSURFCB_FLIP Flip; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurrLeft; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfTargLeft; -} DDHAL_FLIPDATA; - -typedef struct _DDHAL_LOCKDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - DWORD bHasRect; - RECTL rArea; - LPVOID lpSurfData; - HRESULT ddRVal; - LPDDHALSURFCB_LOCK Lock; - DWORD dwFlags; -} DDHAL_LOCKDATA; - -typedef struct _DDHAL_UNLOCKDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - HRESULT ddRVal; - LPDDHALSURFCB_UNLOCK Unlock; -} DDHAL_UNLOCKDATA; - -typedef struct _DDHAL_BLTDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; - RECTL rDest; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; - RECTL rSrc; - DWORD dwFlags; - DWORD dwROPFlags; - DDBLTFX bltFX; - HRESULT ddRVal; - LPDDHALSURFCB_BLT Blt; - BOOL IsClipped; - RECTL rOrigDest; - RECTL rOrigSrc; - DWORD dwRectCnt; - LPRECT prDestRects; -} DDHAL_BLTDATA; - -typedef struct _DDHAL_SETPALETTEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; - HRESULT ddRVal; - LPDDHALSURFCB_SETPALETTE SetPalette; - BOOL Attach; -} DDHAL_SETPALETTEDATA; - -/* palettes */ -typedef struct _DDHAL_DESTROYPALETTEDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; - HRESULT ddRVal; - LPDDHALPALCB_DESTROYPALETTE DestroyPalette; -} DDHAL_DESTROYPALETTEDATA; - -typedef struct _DDHAL_SETENTRIESDATA { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; - DWORD dwBase; - DWORD dwNumEntries; - LPPALETTEENTRY lpEntries; - HRESULT ddRVal; - LPDDHALPALCB_SETENTRIES SetEntries; -} DDHAL_SETENTRIESDATA; - - -typedef struct _DDHAL_CANCREATEVPORTDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDVIDEOPORTDESC lpDDVideoPortDesc; - HRESULT ddRVal; - LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; -} DDHAL_CANCREATEVPORTDATA; - -typedef struct _DDHAL_CREATEVPORTDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDVIDEOPORTDESC lpDDVideoPortDesc; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - HRESULT ddRVal; - LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort; -} DDHAL_CREATEVPORTDATA; - -typedef struct _DDHAL_GETVPORTBANDWIDTHDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - LPDDPIXELFORMAT lpddpfFormat; - DWORD dwWidth; - DWORD dwHeight; - DWORD dwFlags; - LPDDVIDEOPORTBANDWIDTH lpBandwidth; - HRESULT ddRVal; - LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth; -} DDHAL_GETVPORTBANDWIDTHDATA; - -typedef struct _DDHAL_GETVPORTINPUTFORMATDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwFlags; - LPDDPIXELFORMAT lpddpfFormat; - DWORD dwNumFormats; - HRESULT ddRVal; - LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; -} DDHAL_GETVPORTINPUTFORMATDATA; - -typedef struct _DDHAL_GETVPORTFIELDDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - BOOL bField; - HRESULT ddRVal; - LPDDHALVPORTCB_GETFIELD GetVideoPortField; -} DDHAL_GETVPORTFIELDDATA; - -typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwFlags; - LPDDPIXELFORMAT lpddpfInputFormat; - LPDDPIXELFORMAT lpddpfOutputFormats; - DWORD dwNumFormats; - HRESULT ddRVal; - LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; -} DDHAL_GETVPORTOUTPUTFORMATDATA; - -typedef struct _DDHAL_GETVPORTLINEDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwLine; - HRESULT ddRVal; - LPDDHALVPORTCB_GETLINE GetVideoPortLine; -} DDHAL_GETVPORTLINEDATA; - -typedef struct _DDHAL_DESTROYVPORTDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - HRESULT ddRVal; - LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort; -} DDHAL_DESTROYVPORTDATA; - -typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - FLATPTR fpSurface; - HRESULT ddRVal; - LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; -} DDHAL_GETVPORTFLIPSTATUSDATA; - -typedef struct _DDHAL_UPDATEVPORTDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - LPDDRAWI_DDRAWSURFACE_INT *lplpDDSurface; - LPDDRAWI_DDRAWSURFACE_INT *lplpDDVBISurface; - LPDDVIDEOPORTINFO lpVideoInfo; - DWORD dwFlags; - DWORD dwNumAutoflip; - DWORD dwNumVBIAutoflip; - HRESULT ddRVal; - LPDDHALVPORTCB_UPDATE UpdateVideoPort; -} DDHAL_UPDATEVPORTDATA; - -typedef struct _DDHAL_WAITFORVPORTSYNCDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwFlags; - DWORD dwLine; - DWORD dwTimeOut; - HRESULT ddRVal; - LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync; -} DDHAL_WAITFORVPORTSYNCDATA; - -typedef struct _DDHAL_GETVPORTSIGNALDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwStatus; - HRESULT ddRVal; - LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; -} DDHAL_GETVPORTSIGNALDATA; - -typedef struct _DDHAL_VPORTCOLORDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwFlags; - LPDDCOLORCONTROL lpColorData; - HRESULT ddRVal; - LPDDHALVPORTCB_COLORCONTROL ColorControl; -} DDHAL_VPORTCOLORDATA; - -typedef struct _DDHAL_FLIPVPORTDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; - HRESULT ddRVal; - LPDDHALVPORTCB_FLIP FlipVideoPort; -} DDHAL_FLIPVPORTDATA; - -typedef struct _DDHAL_GETVPORTCONNECTDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - DWORD dwPortId; - LPDDVIDEOPORTCONNECT lpConnect; - DWORD dwNumEntries; - HRESULT ddRVal; - LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; -} DDHAL_GETVPORTCONNECTDATA; - -typedef struct _DDHAL_SYNCSURFACEDATA -{ - DWORD dwSize; - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - DWORD dwSurfaceOffset; - ULONG_PTR fpLockPtr; - LONG lPitch; - DWORD dwOverlayOffset; - DWORD dwOverlaySrcWidth; - DWORD dwOverlaySrcHeight; - DWORD dwOverlayDestWidth; - DWORD dwOverlayDestHeight; - ULONG_PTR dwDriverReserved1; - ULONG_PTR dwDriverReserved2; - ULONG_PTR dwDriverReserved3; - HRESULT ddRVal; -} DDHAL_SYNCSURFACEDATA; - -typedef struct _DDHAL_SYNCVIDEOPORTDATA -{ - DWORD dwSize; - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - DWORD dwOriginOffset; - DWORD dwHeight; - DWORD dwVBIHeight; - ULONG_PTR dwDriverReserved1; - ULONG_PTR dwDriverReserved2; - ULONG_PTR dwDriverReserved3; - HRESULT ddRVal; -} DDHAL_SYNCVIDEOPORTDATA; - -typedef struct _DDHAL_DESTROYDDLOCALDATA -{ - DWORD dwFlags; - LPDDRAWI_DIRECTDRAW_LCL pDDLcl; - HRESULT ddRVal; -} DDHAL_DESTROYDDLOCALDATA; - -typedef struct _DDHAL_CREATESURFACEEXDATA { - DWORD dwFlags; - LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; - HRESULT ddRVal; -} DDHAL_CREATESURFACEEXDATA; - -typedef struct _DDHAL_GETHEAPALIGNMENTDATA -{ - ULONG_PTR dwInstance; - DWORD dwHeap; - HRESULT ddRVal; - LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; - HEAPALIGNMENT Alignment; -} DDHAL_GETHEAPALIGNMENTDATA; - - -typedef struct _DDMORESURFACECAPS -{ - DWORD dwSize; - DDSCAPSEX ddsCapsMore; - struct tagExtendedHeapRestrictions - { - DDSCAPSEX ddsCapsEx; - DDSCAPSEX ddsCapsExAlt; - } ddsExtendedHeapRestrictions[1]; -} DDMORESURFACECAPS, * LPDDMORESURFACECAPS; - -typedef struct _DDSTEREOMODE -{ - DWORD dwSize; - DWORD dwHeight; - DWORD dwWidth; - DWORD dwBpp; - DWORD dwRefreshRate; - BOOL bSupported; - -} DDSTEREOMODE, * LPDDSTEREOMODE; - -/***************************************************************************** - * high-level ddraw implementation structures - */ -typedef struct _IUNKNOWN_LIST { - struct _IUNKNOWN_LIST * lpLink; - LPGUID lpGuid; - -#ifndef _NO_COM - IUnknown * lpIUnknown; -#else - LPVOID lpIUnknown; -#endif /* _NO_COM */ -} IUNKNOWN_LIST,*LPIUNKNOWN_LIST; - - -typedef struct _PROCESS_LIST { - struct _PROCESS_LIST * lpLink; - DWORD dwProcessId; - DWORD dwRefCnt; - DWORD dwAlphaDepth; - DWORD dwZDepth; -} PROCESS_LIST,*LPPROCESS_LIST; - -typedef struct _ATTACHLIST { - DWORD dwFlags; - struct _ATTACHLIST * lpLink; - LPDDRAWI_DDRAWSURFACE_LCL lpAttached; - LPDDRAWI_DDRAWSURFACE_INT lpIAttached; -} ATTACHLIST,*LPATTACHLIST; - -#define DDAL_IMPLICIT 0x00000001 - -typedef struct _ACCESSRECTLIST { - struct _ACCESSRECTLIST * lpLink; - RECT rDest; - LPDDRAWI_DIRECTDRAW_LCL lpOwner; - LPVOID lpSurfaceData; - DWORD dwFlags; - LPHEAPALIASINFO lpHeapAliasInfo; -} ACCESSRECTLIST,*LPACCESSRECTLIST; - -#define ACCESSRECT_VRAMSTYLE 0x00000001 -#define ACCESSRECT_NOTHOLDINGWIN16LOCK 0x00000002 -#define ACCESSRECT_BROKEN 0x00000004 - -typedef struct _DBLNODE { - struct _DBLNODE * next; - struct _DBLNODE * prev; - LPDDRAWI_DDRAWSURFACE_LCL object; - LPDDRAWI_DDRAWSURFACE_INT object_int; -} DBLNODE,*LPDBLNODE; - -typedef struct _DDRAWI_DIRECTDRAW_INT { - LPVOID lpVtbl; - LPDDRAWI_DIRECTDRAW_LCL lpLcl; - LPDDRAWI_DIRECTDRAW_INT lpLink; - DWORD dwIntRefCnt; -} DDRAWI_DIRECTDRAW_INT; - - -typedef struct _DDRAWI_DIRECTDRAW_LCL { - DWORD lpDDMore; - LPDDRAWI_DIRECTDRAW_GBL lpGbl; - DWORD dwUnused0; - DWORD dwLocalFlags; - DWORD dwLocalRefCnt; - DWORD dwProcessId; -#ifndef _NO_COM - IUnknown * pUnkOuter; -#else - PVOID pUnkOuter; -#endif - DWORD dwObsolete1; - ULONG_PTR hWnd; - ULONG_PTR hDC; - DWORD dwErrorMode; - LPDDRAWI_DDRAWSURFACE_INT lpPrimary; - LPDDRAWI_DDRAWSURFACE_INT lpCB; - DWORD dwPreferredMode; - /* DirectX 2 */ - HINSTANCE hD3DInstance; -#ifndef _NO_COM - IUnknown * pD3DIUnknown; -#else - PVOID pD3DIUnknown; -#endif - LPDDHAL_CALLBACKS lpDDCB; - ULONG_PTR hDDVxd; - /* DirectX 5.0 */ - DWORD dwAppHackFlags; - /* DirectX 5.0A */ - ULONG_PTR hFocusWnd; - DWORD dwHotTracking; - DWORD dwIMEState; - /* DirectX 6.0 */ - ULONG_PTR hWndPopup; - ULONG_PTR hDD; - ULONG_PTR hGammaCalibrator; - LPDDGAMMACALIBRATORPROC lpGammaCalibrator; -} DDRAWI_DIRECTDRAW_LCL; - - -#define DDRAWILCL_HASEXCLUSIVEMODE 0x00000001 -#define DDRAWILCL_ISFULLSCREEN 0x00000002 -#define DDRAWILCL_SETCOOPCALLED 0x00000004 -#define DDRAWILCL_ACTIVEYES 0x00000008 -#define DDRAWILCL_ACTIVENO 0x00000010 -#define DDRAWILCL_HOOKEDHWND 0x00000020 -#define DDRAWILCL_ALLOWMODEX 0x00000040 -#define DDRAWILCL_V1SCLBEHAVIOUR 0x00000080 -#define DDRAWILCL_MODEHASBEENCHANGED 0x00000100 -#define DDRAWILCL_CREATEDWINDOW 0x00000200 -#define DDRAWILCL_DIRTYDC 0x00000400 -#define DDRAWILCL_DISABLEINACTIVATE 0x00000800 -#define DDRAWILCL_CURSORCLIPPED 0x00001000 -#define DDRAWILCL_EXPLICITMONITOR 0x00002000 -#define DDRAWILCL_MULTITHREADED 0x00004000 -#define DDRAWILCL_FPUSETUP 0x00008000 -#define DDRAWILCL_POWEREDDOWN 0x00010000 -#define DDRAWILCL_DIRECTDRAW7 0x00020000 -#define DDRAWILCL_ATTEMPTEDD3DCONTEXT 0x00040000 -#define DDRAWILCL_FPUPRESERVE 0x00080000 -#define DDRAWILCL_DX8DRIVER 0x00100000 -#define DDRAWILCL_DIRECTDRAW8 0x00200000 - - -typedef struct _DDRAWI_DIRECTDRAW_GBL { - DWORD dwRefCnt; - DWORD dwFlags; - FLATPTR fpPrimaryOrig; - DDCORECAPS ddCaps; - DWORD dwInternal1; - DWORD dwUnused1[9]; - LPDDHAL_CALLBACKS lpDDCBtmp; - LPDDRAWI_DDRAWSURFACE_INT dsList; - LPDDRAWI_DDRAWPALETTE_INT palList; - LPDDRAWI_DDRAWCLIPPER_INT clipperList; - LPDDRAWI_DIRECTDRAW_GBL lp16DD; - DWORD dwMaxOverlays; - DWORD dwCurrOverlays; - DWORD dwMonitorFrequency; - DDCORECAPS ddHELCaps; - DWORD dwUnused2[50]; - DDCOLORKEY ddckCKDestOverlay; - DDCOLORKEY ddckCKSrcOverlay; - VIDMEMINFO vmiData; - LPVOID lpDriverHandle; - LPDDRAWI_DIRECTDRAW_LCL lpExclusiveOwner; - DWORD dwModeIndex; - DWORD dwModeIndexOrig; - DWORD dwNumFourCC; - LPDWORD lpdwFourCC; - DWORD dwNumModes; - LPDDHALMODEINFO lpModeInfo; - PROCESS_LIST plProcessList; - DWORD dwSurfaceLockCount; - DWORD dwAliasedLockCnt; - ULONG_PTR dwReserved3; - ULONG_PTR hDD; - char cObsolete[12]; - DWORD dwReserved1; - DWORD dwReserved2; - DBLNODE dbnOverlayRoot; - volatile LPWORD lpwPDeviceFlags; - DWORD dwPDevice; - DWORD dwWin16LockCnt; - DWORD dwUnused3; - DWORD hInstance; - DWORD dwEvent16; - DWORD dwSaveNumModes; - /* DirectX 2 */ - ULONG_PTR lpD3DGlobalDriverData; - ULONG_PTR lpD3DHALCallbacks; - DDCORECAPS ddBothCaps; - /* DirectX 5.0 */ - LPDDVIDEOPORTCAPS lpDDVideoPortCaps; - LPDDRAWI_DDVIDEOPORT_INT dvpList; - ULONG_PTR lpD3DHALCallbacks2; - RECT rectDevice; - DWORD cMonitors; - LPVOID gpbmiSrc; - LPVOID gpbmiDest; - LPHEAPALIASINFO phaiHeapAliases; - ULONG_PTR hKernelHandle; - ULONG_PTR pfnNotifyProc; - LPDDKERNELCAPS lpDDKernelCaps; - LPDDNONLOCALVIDMEMCAPS lpddNLVCaps; - LPDDNONLOCALVIDMEMCAPS lpddNLVHELCaps; - LPDDNONLOCALVIDMEMCAPS lpddNLVBothCaps; - ULONG_PTR lpD3DExtendedCaps; - /* DirectX 5.0A */ - DWORD dwDOSBoxEvent; - RECT rectDesktop; - char cDriverName[MAX_DRIVER_NAME]; - /* DirectX 6.0 */ - ULONG_PTR lpD3DHALCallbacks3; - DWORD dwNumZPixelFormats; - LPDDPIXELFORMAT lpZPixelFormats; - LPDDRAWI_DDMOTIONCOMP_INT mcList; - DWORD hDDVxd; - DDSCAPSEX ddsCapsMore; -} DDRAWI_DIRECTDRAW_GBL; - -#define DDRAWI_xxxxxxxxx1 0x00000001 -#define DDRAWI_xxxxxxxxx2 0x00000002 -#define DDRAWI_VIRTUALDESKTOP 0x00000008 -#define DDRAWI_MODEX 0x00000010 -#define DDRAWI_DISPLAYDRV 0x00000020 -#define DDRAWI_FULLSCREEN 0x00000040 -#define DDRAWI_MODECHANGED 0x00000080 -#define DDRAWI_NOHARDWARE 0x00000100 -#define DDRAWI_PALETTEINIT 0x00000200 -#define DDRAWI_NOEMULATION 0x00000400 -#define DDRAWI_HASCKEYDESTOVERLAY 0x00000800 -#define DDRAWI_HASCKEYSRCOVERLAY 0x00001000 -#define DDRAWI_HASGDIPALETTE 0x00002000 -#define DDRAWI_EMULATIONINITIALIZED 0x00004000 -#define DDRAWI_HASGDIPALETTE_EXCLUSIVE 0x00008000 -#define DDRAWI_MODEXILLEGAL 0x00010000 -#define DDRAWI_FLIPPEDTOGDI 0x00020000 -#define DDRAWI_NEEDSWIN16FORVRAMLOCK 0x00040000 -#define DDRAWI_PDEVICEVRAMBITCLEARED 0x00080000 -#define DDRAWI_STANDARDVGA 0x00100000 -#define DDRAWI_EXTENDEDALIGNMENT 0x00200000 -#define DDRAWI_CHANGINGMODE 0x00400000 -#define DDRAWI_GDIDRV 0x00800000 -#define DDRAWI_ATTACHEDTODESKTOP 0x01000000 -#define DDRAWI_UMODELOADED 0x02000000 -#define DDRAWI_DDRAWDATANOTFETCHED 0x04000000 -#define DDRAWI_SECONDARYDRIVERLOADED 0x08000000 -#define DDRAWI_TESTINGMODES 0x10000000 -#define DDRAWI_DRIVERINFO2 0x20000000 -#define DDRAWI_BADPDEV 0x40000000 - - -/* surfaces */ -typedef struct _DDRAWI_DDRAWSURFACE_INT { - LPVOID lpVtbl; - LPDDRAWI_DDRAWSURFACE_LCL lpLcl; - LPDDRAWI_DDRAWSURFACE_INT lpLink; - DWORD dwIntRefCnt; -} DDRAWI_DDRAWSURFACE_INT; - -typedef struct _DDRAWI_DDRAWSURFACE_GBL { - DWORD dwRefCnt; - DWORD dwGlobalFlags; - __GNU_EXTENSION union { - LPACCESSRECTLIST lpRectList; - DWORD dwBlockSizeY; - LONG lSlicePitch; - }; - __GNU_EXTENSION union { - LPVMEMHEAP lpVidMemHeap; - DWORD dwBlockSizeX; - }; - __GNU_EXTENSION union { - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPVOID lpDDHandle; - }; - FLATPTR fpVidMem; - __GNU_EXTENSION union { - LONG lPitch; - DWORD dwLinearSize; - }; - WORD wHeight; - WORD wWidth; - DWORD dwUsageCount; - ULONG_PTR dwReserved1; - DDPIXELFORMAT ddpfSurface; -} DDRAWI_DDRAWSURFACE_GBL; - -#define DDRAWISURFGBL_MEMFREE 0x00000001L -#define DDRAWISURFGBL_SYSMEMREQUESTED 0x00000002L -#define DDRAWISURFGBL_ISGDISURFACE 0x00000004L -#define DDRAWISURFGBL_SOFTWAREAUTOFLIP 0x00000008L -#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK 0x00000010L -#define DDRAWISURFGBL_LOCKVRAMSTYLE 0x00000020L -#define DDRAWISURFGBL_LOCKBROKEN 0x00000040L -#define DDRAWISURFGBL_IMPLICITHANDLE 0x00000080L -#define DDRAWISURFGBL_ISCLIENTMEM 0x00000100L -#define DDRAWISURFGBL_HARDWAREOPSOURCE 0x00000200L -#define DDRAWISURFGBL_HARDWAREOPDEST 0x00000400L -#define DDRAWISURFGBL_HARDWAREOPSTARTED (DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST) -#define DDRAWISURFGBL_VPORTINTERLEAVED 0x00000800L -#define DDRAWISURFGBL_VPORTDATA 0x00001000L -#define DDRAWISURFGBL_LATEALLOCATELINEAR 0x00002000L -#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER 0x00004000L -#define DDRAWISURFGBL_FASTLOCKHELD 0x00008000L -#define DDRAWISURFGBL_READONLYLOCKHELD 0x00010000L -#define DDRAWISURFGBL_DX8SURFACE 0x00080000L -#define DDRAWISURFGBL_DDHELDONTFREE 0x00100000L -#define DDRAWISURFGBL_NOTIFYWHENUNLOCKED 0x00200000L -#define DDRAWISURFGBL_RESERVED0 0x80000000L // Reserved flag - -typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE { - DWORD dwSize; - __GNU_EXTENSION union { - DWORD dwPhysicalPageTable; - FLATPTR fpPhysicalVidMem; - }; - LPDWORD pPageTable; - DWORD cPages; - ULONG_PTR dwSavedDCContext; - FLATPTR fpAliasedVidMem; - ULONG_PTR dwDriverReserved; - ULONG_PTR dwHELReserved; - DWORD cPageUnlocks; - ULONG_PTR hKernelSurface; - DWORD dwKernelRefCnt; - LPDDCOLORCONTROL lpColorInfo; - FLATPTR fpNTAlias; - DWORD dwContentsStamp; - LPVOID lpvUnswappedDriverReserved; - LPVOID lpDDRAWReserved2; - DWORD dwDDRAWReserved1; - DWORD dwDDRAWReserved2; - FLATPTR fpAliasOfVidMem; -} DDRAWI_DDRAWSURFACE_GBL_MORE; - -/* the MS version of this macro was somewhat obfuscated and unreadable - * (possibly because of mediocre MS coders)... so I simplified it... - * (and so I commit no copyright violations either, hah) */ -#define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \ - (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1)) - -#define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \ - ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem ) - - -typedef struct _DISPLAYMODEINFO -{ - WORD wWidth; - WORD wHeight; - BYTE wBPP; - BYTE wMonitorsAttachedToDesktop; - WORD wRefreshRate; -} DISPLAYMODEINFO, *LPDISPLAYMODEINFO; - -#define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO))) - - - - -typedef struct _DDRAWI_DDRAWSURFACE_MORE { - DWORD dwSize; - IUNKNOWN_LIST * lpIUnknowns; - LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; - DWORD dwPageLockCount; - DWORD dwBytesAllocated; - LPDDRAWI_DIRECTDRAW_INT lpDD_int; - DWORD dwMipMapCount; - LPDDRAWI_DDRAWCLIPPER_INT lpDDIClipper; - /* DirectX 5.0 */ - LPHEAPALIASINFO lpHeapAliasInfo; - DWORD dwOverlayFlags; - VOID *rgjunc; - LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; - LPDDOVERLAYFX lpddOverlayFX; - DDSCAPSEX ddsCapsEx; - DWORD dwTextureStage; - LPVOID lpDDRAWReserved; - LPVOID lpDDRAWReserved2; - LPVOID lpDDrawReserved3; - DWORD dwDDrawReserved4; - LPVOID lpDDrawReserved5; - LPDWORD lpGammaRamp; - LPDWORD lpOriginalGammaRamp; - LPVOID lpDDrawReserved6; - #ifndef WIN95 - DISPLAYMODEINFO dmiDDrawReserved7; - #endif - DWORD dwSurfaceHandle; - DWORD qwDDrawReserved8[2]; - LPVOID lpDDrawReserved9; - DWORD cSurfaces; - LPDDSURFACEDESC2 pCreatedDDSurfaceDesc2; - LPDDRAWI_DDRAWSURFACE_LCL *slist; - DWORD dwFVF; - LPVOID lpVB; -} DDRAWI_DDRAWSURFACE_MORE; - - - -typedef struct _DDRAWI_DDRAWSURFACE_LCL { - LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore; - LPDDRAWI_DDRAWSURFACE_GBL lpGbl; - ULONG_PTR hDDSurface; - LPATTACHLIST lpAttachList; - LPATTACHLIST lpAttachListFrom; - DWORD dwLocalRefCnt; - DWORD dwProcessId; - DWORD dwFlags; - DDSCAPS ddsCaps; - __GNU_EXTENSION union - { - LPDDRAWI_DDRAWPALETTE_INT lpDDPalette; - LPDDRAWI_DDRAWPALETTE_INT lp16DDPalette; - }; - __GNU_EXTENSION union - { - LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper; - LPDDRAWI_DDRAWCLIPPER_INT lp16DDClipper; - }; - DWORD dwModeCreatedIn; - DWORD dwBackBufferCount; - DDCOLORKEY ddckCKDestBlt; - DDCOLORKEY ddckCKSrcBlt; - ULONG_PTR hDC; - ULONG_PTR dwReserved1; - DDCOLORKEY ddckCKSrcOverlay; - DDCOLORKEY ddckCKDestOverlay; - LPDDRAWI_DDRAWSURFACE_INT lpSurfaceOverlaying; - DBLNODE dbnOverlayNode; - RECT rcOverlaySrc; - RECT rcOverlayDest; - DWORD dwClrXparent; - DWORD dwAlpha; - LONG lOverlayX; - LONG lOverlayY; -} DDRAWI_DDRAWSURFACE_LCL; - -#define DDRAWISURF_ATTACHED 0x00000001L -#define DDRAWISURF_IMPLICITCREATE 0x00000002L -#define DDRAWISURF_ISFREE 0x00000004L -#define DDRAWISURF_ATTACHED_FROM 0x00000008L -#define DDRAWISURF_IMPLICITROOT 0x00000010L -#define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020L -#define DDRAWISURF_DATAISALIASED 0x00000040L -#define DDRAWISURF_HASDC 0x00000080L -#define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100L -#define DDRAWISURF_HASCKEYDESTBLT 0x00000200L -#define DDRAWISURF_HASCKEYSRCOVERLAY 0x00000400L -#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L -#define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000L -#define DDRAWISURF_HASPIXELFORMAT 0x00002000L -#define DDRAWISURF_HASOVERLAYDATA 0x00004000L -#define DDRAWISURF_SETGAMMA 0x00008000L -#define DDRAWISURF_SW_CKEYDESTOVERLAY 0x00010000L -#define DDRAWISURF_SW_CKEYDESTBLT 0x00020000L -#define DDRAWISURF_SW_CKEYSRCOVERLAY 0x00040000L -#define DDRAWISURF_SW_CKEYSRCBLT 0x00080000L -#define DDRAWISURF_HW_CKEYDESTOVERLAY 0x00100000L -#define DDRAWISURF_HW_CKEYDESTBLT 0x00200000L -#define DDRAWISURF_HW_CKEYSRCOVERLAY 0x00400000L -#define DDRAWISURF_HW_CKEYSRCBLT 0x00800000L -#define DDRAWISURF_INMASTERSPRITELIST 0x01000000L -#define DDRAWISURF_HELCB 0x02000000L -#define DDRAWISURF_FRONTBUFFER 0x04000000L -#define DDRAWISURF_BACKBUFFER 0x08000000L -#define DDRAWISURF_INVALID 0x10000000L -#define DDRAWISURF_DCIBUSY 0x20000000L -#define DDRAWISURF_GETDCNULL 0x40000000L -#define DDRAWISURF_STEREOSURFACELEFT 0x20000000L -#define DDRAWISURF_DRIVERMANAGED 0x40000000L -#define DDRAWISURF_DCILOCK 0x80000000L - -/* palettes */ -typedef struct _DDRAWI_DDRAWPALETTE_INT { - LPVOID lpVtbl; - LPDDRAWI_DDRAWPALETTE_LCL lpLcl; - LPDDRAWI_DDRAWPALETTE_INT lpLink; - DWORD dwIntRefCnt; -} DDRAWI_DDRAWPALETTE_INT; - -typedef struct _DDRAWI_DDRAWPALETTE_GBL { - DWORD dwRefCnt; - DWORD dwFlags; - LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; - DWORD dwProcessId; - LPPALETTEENTRY lpColorTable; - __GNU_EXTENSION union { - ULONG_PTR dwReserved1; - HPALETTE hHELGDIPalette; - }; - DWORD dwDriverReserved; - DWORD dwContentsStamp; - DWORD dwSaveStamp; - DWORD dwHandle; -} DDRAWI_DDRAWPALETTE_GBL; - -#define DDRAWIPAL_256 0x00000001 -#define DDRAWIPAL_16 0x00000002 -#define DDRAWIPAL_GDI 0x00000004 -#define DDRAWIPAL_STORED_8 0x00000008 -#define DDRAWIPAL_STORED_16 0x00000010 -#define DDRAWIPAL_STORED_24 0x00000020 -#define DDRAWIPAL_EXCLUSIVE 0x00000040 -#define DDRAWIPAL_INHEL 0x00000080 -#define DDRAWIPAL_DIRTY 0x00000100 -#define DDRAWIPAL_ALLOW256 0x00000200 -#define DDRAWIPAL_4 0x00000400 -#define DDRAWIPAL_2 0x00000800 -#define DDRAWIPAL_STORED_8INDEX 0x00001000 -#define DDRAWIPAL_ALPHA 0x00002000 - -#define D3DFORMAT_OP_TEXTURE 0x00000001L -#define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L -#define D3DFORMAT_OP_CUBETEXTURE 0x00000004L -#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L -#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L -#define D3DFORMAT_OP_ZSTENCIL 0x00000040L -#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L -#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L -#define D3DFORMAT_OP_DISPLAYMODE 0x00000400L -#define D3DFORMAT_OP_3DACCELERATION 0x00000800L -#define D3DFORMAT_OP_PIXELSIZE 0x00001000L -#define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L -#define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L -#define D3DFORMAT_OP_SRGBREAD 0x00008000L -#define D3DFORMAT_OP_BUMPMAP 0x00010000L -#define D3DFORMAT_OP_NOFILTER 0x00040000L -#define DDPF_D3DFORMAT 0x00200000l -#define DDPF_NOVEL_TEXTURE_FORMAT 0x00100000l -#define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L -#define D3DFORMAT_OP_SRGBWRITE 0x00100000L -#define D3DFORMAT_OP_NOALPHABLEND 0x00200000L -#define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L -#define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L -#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L -#define DELETED_OK 0 -#define DELETED_LASTONE 1 -#define DELETED_NOTFOUND 2 -#define DDCALLBACKSSIZE_V1 ( offsetof( DDHAL_DDCALLBACKS, SetExclusiveMode ) ) -#define DDCALLBACKSSIZE sizeof( DDHAL_DDCALLBACKS ) -#define DDRAWICLIP_WATCHWINDOW 0x00000001 -#define DDRAWICLIP_ISINITIALIZED 0x00000002 -#define DDRAWICLIP_INMASTERSPRITELIST 0x00000004 -#define PFINDEX_UNINITIALIZED (0UL) -#define PFINDEX_UNSUPPORTED (~0UL) -#define ROP_HAS_SOURCE 0x00000001l -#define ROP_HAS_PATTERN 0x00000002l -#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN -#define DDRAWIVPORT_ON 0x00000001 -#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002 -#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004 -#define DDRAWIVPORT_NOKERNELHANDLES 0x00000008 -#define DDRAWIVPORT_SOFTWARE_BOB 0x00000010 -#define DDRAWIVPORT_VBION 0x00000020 -#define DDRAWIVPORT_VIDEOON 0x00000040 -#define DDRAWI_GETCOLOR 0x0001 -#define DDRAWI_SETCOLOR 0x0002 -#define DDMCQUERY_READ 0x00000001 -#define DDWAITVB_I_TESTVB 0x80000006 - - -#define DDBLT_ANYALPHA \ - (DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE | \ - DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE | \ - DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST) - -#define DDHAL_ALIGNVALIDCAPS (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER | \ - DDSCAPS_OVERLAY | DDSCAPS_TEXTURE | \ - DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP ) - - -#define DDHALINFOSIZE_V2 sizeof(DDHALINFO) - -#define DDOVER_ANYALPHA \ - (DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE | \ - DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE | \ - DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST) - - -typedef struct _DDRAWI_DDRAWPALETTE_LCL { - DWORD lpPalMore; - LPDDRAWI_DDRAWPALETTE_GBL lpGbl; - ULONG_PTR dwUnused0; - DWORD dwLocalRefCnt; -#ifndef _NO_COM - IUnknown * pUnkOuter; -#else - PVOID pUnkOuter; -#endif - LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; - ULONG_PTR dwReserved1; - /* DirectX 6.0 */ - ULONG_PTR dwDDRAWReserved1; - ULONG_PTR dwDDRAWReserved2; - ULONG_PTR dwDDRAWReserved3; -} DDRAWI_DDRAWPALETTE_LCL; - - -typedef struct _DDMCCOMPBUFFERINFO -{ - DWORD dwSize; - DWORD dwNumCompBuffers; - DWORD dwWidthToCreate; - DWORD dwHeightToCreate; - DWORD dwBytesToAllocate; - DDSCAPS2 ddCompCaps; - DDPIXELFORMAT ddPixelFormat; -} DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO; - -typedef struct _DDMCBUFFERINFO -{ - DWORD dwSize; - LPDDRAWI_DDRAWSURFACE_LCL lpCompSurface; - DWORD dwDataOffset; - DWORD dwDataSize; - LPVOID lpPrivate; -} DDMCBUFFERINFO, *LPDDMCBUFFERINFO; - -typedef struct _DDHAL_GETDRIVERSTATEDATA { - DWORD dwFlags; - __GNU_EXTENSION union - { - ULONG_PTR dwhContext; - }; - LPDWORD lpdwStates; - DWORD dwLength; - HRESULT ddRVal; -} DDHAL_GETDRIVERSTATEDATA; - -typedef struct _DDHAL_ADDATTACHEDSURFACEDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - LPDDRAWI_DDRAWSURFACE_LCL lpSurfAttached; - HRESULT ddRVal; - LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; -} DDHAL_ADDATTACHEDSURFACEDATA; - - - -typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; - LPDDRAWI_DDRAWSURFACE_LCL lpDestSurface; - DWORD dwInputDataSize; - LPVOID lpInputData; - DWORD dwOutputDataSize; - LPVOID lpOutputData; - HRESULT ddRVal; - LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame; -} DDHAL_BEGINMOCOMPFRAMEDATA; - -typedef struct _DDHAL_COLORCONTROLDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - LPDDCOLORCONTROL lpColorData; - DWORD dwFlags; - HRESULT ddRVal; - LPDDHALCOLORCB_COLORCONTROL ColorControl; -} DDHAL_COLORCONTROLDATA; - -typedef struct _DDHAL_CREATEMOCOMPDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; - LPGUID lpGuid; - DWORD dwUncompWidth; - DWORD dwUncompHeight; - DDPIXELFORMAT ddUncompPixelFormat; - LPVOID lpData; - DWORD dwDataSize; - HRESULT ddRVal; - LPDDHALMOCOMPCB_CREATE CreateMoComp; -} DDHAL_CREATEMOCOMPDATA; - -typedef struct _DDHAL_DESTROYMOCOMPDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; - HRESULT ddRVal; - LPDDHALMOCOMPCB_DESTROY DestroyMoComp; -} DDHAL_DESTROYMOCOMPDATA; - -typedef struct _DDHAL_ENDMOCOMPFRAMEDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; - LPVOID lpInputData; - DWORD dwInputDataSize; - HRESULT ddRVal; - LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame; -} DDHAL_ENDMOCOMPFRAMEDATA; - -typedef struct _DDHAL_FLIPTOGDISURFACEDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwToGDI; - DWORD dwReserved; - HRESULT ddRVal; - LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; -} DDHAL_FLIPTOGDISURFACEDATA; - -typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DDSCAPS DDSCaps; - DWORD dwTotal; - DWORD dwFree; - HRESULT ddRVal; - LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; - DDSCAPSEX ddsCapsEx; - -} DDHAL_GETAVAILDRIVERMEMORYDATA; - -typedef struct _DDHAL_GETBLTSTATUSDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - DWORD dwFlags; - HRESULT ddRVal; - LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; -} DDHAL_GETBLTSTATUSDATA; - -typedef struct _DDHAL_GETFLIPSTATUSDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - DWORD dwFlags; - HRESULT ddRVal; - LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; -} DDHAL_GETFLIPSTATUSDATA; - -typedef struct _DDHAL_GETINTERNALMOCOMPDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPGUID lpGuid; - DWORD dwWidth; - DWORD dwHeight; - DDPIXELFORMAT ddPixelFormat; - DWORD dwScratchMemAlloc; - HRESULT ddRVal; - LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; -} DDHAL_GETINTERNALMOCOMPDATA; - -typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPGUID lpGuid; - DWORD dwWidth; - DWORD dwHeight; - DDPIXELFORMAT ddPixelFormat; - DWORD dwNumTypesCompBuffs; - LPDDMCCOMPBUFFERINFO lpCompBuffInfo; - HRESULT ddRVal; - LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; -} DDHAL_GETMOCOMPCOMPBUFFDATA; - -typedef struct _DDHAL_GETMOCOMPGUIDSDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - DWORD dwNumGuids; - LPGUID lpGuids; - HRESULT ddRVal; - LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids; -} DDHAL_GETMOCOMPGUIDSDATA; - -typedef struct _DDHAL_GETMOCOMPFORMATSDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPGUID lpGuid; - DWORD dwNumFormats; - LPDDPIXELFORMAT lpFormats; - HRESULT ddRVal; - LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats; -} DDHAL_GETMOCOMPFORMATSDATA; - -typedef struct _DDHAL_GETSCANLINEDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwScanLine; - HRESULT ddRVal; - LPDDHAL_GETSCANLINE GetScanLine; -} DDHAL_GETSCANLINEDATA; - -typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; - LPDDRAWI_DDRAWSURFACE_LCL lpSurface; - DWORD dwFlags; - HRESULT ddRVal; - LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus; -} DDHAL_QUERYMOCOMPSTATUSDATA; - -typedef struct _DDHAL_RENDERMOCOMPDATA -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; - DWORD dwNumBuffers; - LPDDMCBUFFERINFO lpBufferInfo; - DWORD dwFunction; - LPVOID lpInputData; - DWORD dwInputDataSize; - LPVOID lpOutputData; - DWORD dwOutputDataSize; - HRESULT ddRVal; - LPDDHALMOCOMPCB_RENDER RenderMoComp; -} DDHAL_RENDERMOCOMPDATA; - -typedef struct _DDHAL_SETCOLORKEYDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - DWORD dwFlags; - DDCOLORKEY ckNew; - HRESULT ddRVal; - LPDDHALSURFCB_SETCOLORKEY SetColorKey; -} DDHAL_SETCOLORKEYDATA; - -typedef struct _DDHAL_SETOVERLAYPOSITIONDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; - LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; - LONG lXPos; - LONG lYPos; - HRESULT ddRVal; - LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; -} DDHAL_SETOVERLAYPOSITIONDATA; - -typedef struct _DDHAL_UPDATEOVERLAYDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; - RECTL rDest; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; - RECTL rSrc; - DWORD dwFlags; - DDOVERLAYFX overlayFX; - HRESULT ddRVal; - LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; -} DDHAL_UPDATEOVERLAYDATA; - -typedef struct _DDHAL_WAITFORVERTICALBLANKDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwFlags; - DWORD bIsInVB; - ULONG_PTR hEvent; - HRESULT ddRVal; - LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; -} DDHAL_WAITFORVERTICALBLANKDATA; - -typedef struct _DDHAL_DRVSETCOLORKEYDATA -{ - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - DWORD dwFlags; - DDCOLORKEY ckNew; - HRESULT ddRVal; - LPDDHAL_SETCOLORKEY SetColorKey; -} DDHAL_DRVSETCOLORKEYDATA; - -typedef struct _DDMONITORINFO -{ - WORD Manufacturer; - WORD Product; - DWORD SerialNumber; - GUID DeviceIdentifier; - int Mode640x480; - int Mode800x600; - int Mode1024x768; - int Mode1280x1024; - int Mode1600x1200; - int ModeReserved1; - int ModeReserved2; - int ModeReserved3; -} DDMONITORINFO, FAR *LPDDMONITORINFO; - -typedef struct _DDRAWI_DDRAWCLIPPER_INT -{ - LPVOID lpVtbl; - LPDDRAWI_DDRAWCLIPPER_LCL lpLcl; - LPDDRAWI_DDRAWCLIPPER_INT lpLink; - DWORD dwIntRefCnt; -} DDRAWI_DDRAWCLIPPER_INT; - -typedef struct _DDHAL_UPDATENONLOCALHEAPDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwHeap; - FLATPTR fpGARTLin; - FLATPTR fpGARTDev; - ULONG_PTR ulPolicyMaxBytes; - HRESULT ddRVal; - LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; -} DDHAL_UPDATENONLOCALHEAPDATA; - -typedef struct _DDHAL_SETCLIPLISTDATA -{ - LPDDRAWI_DIRECTDRAW_GBL lpDD; - LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; - HRESULT ddRVal; - LPDDHALSURFCB_SETCLIPLIST SetClipList; -} DDHAL_SETCLIPLISTDATA; - -typedef struct _DDRAWI_DDMOTIONCOMP_LCL -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - GUID guid; - DWORD dwUncompWidth; - DWORD dwUncompHeight; - DDPIXELFORMAT ddUncompPixelFormat; - DWORD dwInternalFlags; - DWORD dwRefCnt; - DWORD dwProcessId; - HANDLE hMoComp; - DWORD dwDriverReserved1; - DWORD dwDriverReserved2; - DWORD dwDriverReserved3; - LPVOID lpDriverReserved1; - LPVOID lpDriverReserved2; - LPVOID lpDriverReserved3; -} DDRAWI_DDMOTIONCOMP_LCL; - -typedef struct _DDRAWI_DDMOTIONCOMP_INT -{ - LPVOID lpVtbl; - LPDDRAWI_DDMOTIONCOMP_LCL lpLcl; - LPDDRAWI_DDMOTIONCOMP_INT lpLink; - DWORD dwIntRefCnt; -} DDRAWI_DDMOTIONCOMP_INT; - - -typedef struct _DDRAWI_DDVIDEOPORT_LCL -{ - LPDDRAWI_DIRECTDRAW_LCL lpDD; - DDVIDEOPORTDESC ddvpDesc; - DDVIDEOPORTINFO ddvpInfo; - LPDDRAWI_DDRAWSURFACE_INT lpSurface; - LPDDRAWI_DDRAWSURFACE_INT lpVBISurface; - LPDDRAWI_DDRAWSURFACE_INT *lpFlipInts; - DWORD dwNumAutoflip; - DWORD dwProcessID; - DWORD dwStateFlags; - DWORD dwFlags; - DWORD dwRefCnt; - FLATPTR fpLastFlip; - ULONG_PTR dwReserved1; - ULONG_PTR dwReserved2; - HANDLE hDDVideoPort; - DWORD dwNumVBIAutoflip; - LPDDVIDEOPORTDESC lpVBIDesc; - LPDDVIDEOPORTDESC lpVideoDesc; - LPDDVIDEOPORTINFO lpVBIInfo; - LPDDVIDEOPORTINFO lpVideoInfo; - DWORD dwVBIProcessID; - LPDDRAWI_DDVIDEOPORT_INT lpVPNotify; -} DDRAWI_DDVIDEOPORT_LCL; - - -typedef struct _DDRAWI_DDVIDEOPORT_INT -{ - LPVOID lpVtbl; - LPDDRAWI_DDVIDEOPORT_LCL lpLcl; - LPDDRAWI_DDVIDEOPORT_INT lpLink; - DWORD dwIntRefCnt; - DWORD dwFlags; -} DDRAWI_DDVIDEOPORT_INT; - - -typedef struct _DDRAWI_DDRAWCLIPPER_LCL -{ - DWORD lpClipMore; - LPDDRAWI_DDRAWCLIPPER_GBL lpGbl; - LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; - DWORD dwLocalRefCnt; -#ifndef _NO_COM - IUnknown *pUnkOuter; -#else - PVOID *pUnkOuter; -#endif - LPDDRAWI_DIRECTDRAW_INT lpDD_int; - ULONG_PTR dwReserved1; -#ifndef _NO_COM - IUnknown * pAddrefedThisOwner; -#else - PVOID pAddrefedThisOwner; -#endif -} DDRAWI_DDRAWCLIPPER_LCL; - - - -typedef struct _DDRAWI_DDRAWCLIPPER_GBL -{ - DWORD dwRefCnt; - DWORD dwFlags; - LPDDRAWI_DIRECTDRAW_GBL lpDD; - DWORD dwProcessId; - ULONG_PTR dwReserved1; - ULONG_PTR hWnd; - LPRGNDATA lpStaticClipList; -} DDRAWI_DDRAWCLIPPER_GBL; - -typedef BOOL (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,BOOL); - -extern HRESULT DDAPI - LateAllocateSurfaceMem( - LPDIRECTDRAWSURFACE lpSurface, - DWORD dwPleaseAllocType, - DWORD dwWidthInBytesOrSize, - DWORD dwHeight); - - LPDIRECTDRAWSURFACE GetNextMipMap( - LPDIRECTDRAWSURFACE lpLevel); - - - -typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS; -typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS; -typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS; -typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS; -typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS; -typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS; -typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS; -typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS; -typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS; -typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS; -typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS; -typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS; -typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS; -typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS; -typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS; - - -typedef DIRECTDRAWCLIPPERCALLBACKS *LPDIRECTDRAWCLIPPERCALLBACKS; -typedef DIRECTDRAWPALETTECALLBACKS *LPDIRECTDRAWPALETTECALLBACKS; -typedef DIRECTDRAWSURFACECALLBACKS *LPDIRECTDRAWSURFACECALLBACKS; -typedef DIRECTDRAWCALLBACKS *LPDIRECTDRAWCALLBACKS; - - -HRESULT CALLBACK - D3DParseUnknownCommand (LPVOID lpvCommands, - LPVOID *lplpvReturnedCommand); - -#ifdef __cplusplus - /* extern "C" */ -#endif - -#endif /* __DDRAWI_INCLUDED__ */ diff --git a/reactos/include/ddk/ddrawint.h b/reactos/include/ddk/ddrawint.h deleted file mode 100644 index b78c209bc9d..00000000000 --- a/reactos/include/ddk/ddrawint.h +++ /dev/null @@ -1,1475 +0,0 @@ -/* - * DirectDraw NT driver interface - */ - -#ifndef __DD_INCLUDED__ -#define __DD_INCLUDED__ - -/* Helper macro to enable gcc's extension. */ -#ifndef __GNU_EXTENSION -#ifdef __GNUC__ -#define __GNU_EXTENSION __extension__ -#else -#define __GNU_EXTENSION -#endif -#endif - -DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); -DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A); -DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); -DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); -DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e); -DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); -DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02); -DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29); -DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02); -DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); -DEFINE_GUID( GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e); -DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37); -DEFINE_GUID( GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); -DEFINE_GUID( GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); -DEFINE_GUID( GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae); -DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b); -DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); -DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba); -DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5); -DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); -DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); -DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c); -DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); -DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8); - - -#ifndef GUID_DEFS_ONLY - -#ifndef _NO_DDRAWINT_NO_COM -#ifndef _NO_COM -#define _NO_COM -#include -#include -#undef _NO_COM -#else -#include -#include -#endif -#else -#include -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here -#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) -#endif - -#ifndef FLATPTR_DEFINED -typedef ULONG_PTR FLATPTR; -#define FLATPTR_DEFINED -#endif - -typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL; - -/************************************************************************/ -/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */ - /************************************************************************/ -struct _DD_GETHEAPALIGNMENTDATA; -#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED -typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA; -#define DD_GETHEAPALIGNMENTDATA_DECLARED -#endif - -/************************************************************************/ -/* Video memory info structures */ -/************************************************************************/ - -typedef struct _VIDEOMEMORY -{ - DWORD dwFlags; - FLATPTR fpStart; - __GNU_EXTENSION union - { - FLATPTR fpEnd; - DWORD dwWidth; - }; - DDSCAPS ddsCaps; - DDSCAPS ddsCapsAlt; - __GNU_EXTENSION union - { - struct _VMEMHEAP *lpHeap; - DWORD dwHeight; - }; -} VIDEOMEMORY, *PVIDEOMEMORY; - -typedef struct _VIDEOMEMORYINFO -{ - FLATPTR fpPrimary; - DWORD dwFlags; - DWORD dwDisplayWidth; - DWORD dwDisplayHeight; - LONG lDisplayPitch; - DDPIXELFORMAT ddpfDisplay; - DWORD dwOffscreenAlign; - DWORD dwOverlayAlign; - DWORD dwTextureAlign; - DWORD dwZBufferAlign; - DWORD dwAlphaAlign; - PVOID pvPrimary; -} VIDEOMEMORYINFO; -typedef VIDEOMEMORYINFO *LPVIDEOMEMORYINFO; - -typedef struct _DD_DIRECTDRAW_GLOBAL -{ - PVOID dhpdev; - ULONG_PTR dwReserved1; - ULONG_PTR dwReserved2; - LPDDVIDEOPORTCAPS lpDDVideoPortCaps; -} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL; - -typedef struct _DD_DIRECTDRAW_LOCAL -{ - PDD_DIRECTDRAW_GLOBAL lpGbl; -} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL; - - -typedef struct _DD_SURFACE_GLOBAL -{ - __GNU_EXTENSION union - { - DWORD dwBlockSizeY; - LONG lSlicePitch; - }; - - __GNU_EXTENSION union - { - PVIDEOMEMORY lpVidMemHeap; - DWORD dwBlockSizeX; - DWORD dwUserMemSize; - }; - - FLATPTR fpVidMem; - __GNU_EXTENSION union - { - LONG lPitch; - DWORD dwLinearSize; - }; - LONG yHint; - LONG xHint; - DWORD wHeight; - DWORD wWidth; - ULONG_PTR dwReserved1; - DDPIXELFORMAT ddpfSurface; - FLATPTR fpHeapOffset; - HANDLE hCreatorProcess; -} DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL; - -typedef struct _DD_SURFACE_MORE -{ - DWORD dwMipMapCount; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwOverlayFlags; - DDSCAPSEX ddsCapsEx; - DWORD dwSurfaceHandle; -} DD_SURFACE_MORE, *PDD_SURFACE_MORE; - -typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST; - -typedef struct _DD_SURFACE_LOCAL -{ - PDD_SURFACE_GLOBAL lpGbl; - DWORD dwFlags; - DDSCAPS ddsCaps; - ULONG_PTR dwReserved1; - __GNU_EXTENSION union - { - DDCOLORKEY ddckCKSrcOverlay; - DDCOLORKEY ddckCKSrcBlt; - }; - __GNU_EXTENSION union - { - DDCOLORKEY ddckCKDestOverlay; - DDCOLORKEY ddckCKDestBlt; - }; - PDD_SURFACE_MORE lpSurfMore; - PDD_ATTACHLIST lpAttachList; - PDD_ATTACHLIST lpAttachListFrom; - RECT rcOverlaySrc; -} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL; - -typedef struct _DD_ATTACHLIST -{ - PDD_ATTACHLIST lpLink; - PDD_SURFACE_LOCAL lpAttached; -} DD_ATTACHLIST; - -typedef struct _DD_SURFACE_INT -{ - PDD_SURFACE_LOCAL lpLcl; -} DD_SURFACE_INT, *PDD_SURFACE_INT; - -/************************************************************************/ -/* DDI representation of the DirectDrawPalette object */ -/************************************************************************/ - -typedef struct _DD_PALETTE_GLOBAL -{ - ULONG_PTR Reserved1; -} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL; - -/************************************************************************/ -/* DDI representation of the DirectDrawVideo object */ -/************************************************************************/ - -typedef struct -{ - PDD_DIRECTDRAW_LOCAL lpDD; - GUID guid; - DWORD dwUncompWidth; - DWORD dwUncompHeight; - DDPIXELFORMAT ddUncompPixelFormat; - DWORD dwDriverReserved1; - DWORD dwDriverReserved2; - DWORD dwDriverReserved3; - LPVOID lpDriverReserved1; - LPVOID lpDriverReserved2; - LPVOID lpDriverReserved3; -} DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL; - - -typedef struct _DD_VIDEOPORT_LOCAL -{ - PDD_DIRECTDRAW_LOCAL lpDD; - DDVIDEOPORTDESC ddvpDesc; - DDVIDEOPORTINFO ddvpInfo; - PDD_SURFACE_INT lpSurface; - PDD_SURFACE_INT lpVBISurface; - DWORD dwNumAutoflip; - DWORD dwNumVBIAutoflip; - ULONG_PTR dwReserved1; - ULONG_PTR dwReserved2; - ULONG_PTR dwReserved3; -} DD_VIDEOPORT_LOCAL ; - -/************************************************************************/ -/* IDirectDrawSurface callbacks */ -/************************************************************************/ - -typedef struct _DD_LOCKDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - DWORD bHasRect; - RECTL rArea; - LPVOID lpSurfData; - HRESULT ddRVal; - PVOID Lock; - DWORD dwFlags; - FLATPTR fpProcess; -} DD_LOCKDATA, *PDD_LOCKDATA; -typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA); - - -typedef struct _DD_UNLOCKDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - HRESULT ddRVal; - PVOID Unlock; -} DD_UNLOCKDATA, *PDD_UNLOCKDATA; -typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA); - -#define DDABLT_SRCOVERDEST 0x00000001 -#define DDBLT_AFLAGS 0x80000000 - - - -typedef struct _DD_BLTDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDDestSurface; - RECTL rDest; - PDD_SURFACE_LOCAL lpDDSrcSurface; - RECTL rSrc; - DWORD dwFlags; - DWORD dwROPFlags; - DDBLTFX bltFX; - HRESULT ddRVal; - PVOID Blt; - BOOL IsClipped; - RECTL rOrigDest; - RECTL rOrigSrc; - DWORD dwRectCnt; - LPRECT prDestRects; - DWORD dwAFlags; - DDARGB ddargbScaleFactors; -} DD_BLTDATA, *PDD_BLTDATA; -typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA); - -typedef struct _DD_UPDATEOVERLAYDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDDestSurface; - RECTL rDest; - PDD_SURFACE_LOCAL lpDDSrcSurface; - RECTL rSrc; - DWORD dwFlags; - DDOVERLAYFX overlayFX; - HRESULT ddRVal; - PVOID UpdateOverlay; -} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA; -typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA); - -typedef struct _DD_SETOVERLAYPOSITIONDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSrcSurface; - PDD_SURFACE_LOCAL lpDDDestSurface; - LONG lXPos; - LONG lYPos; - HRESULT ddRVal; - PVOID SetOverlayPosition; -} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA; -typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA); - -typedef struct _DD_SETPALETTEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - PDD_PALETTE_GLOBAL lpDDPalette; - HRESULT ddRVal; - PVOID SetPalette; - BOOL Attach; -} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA; -typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA); - -typedef struct _DD_FLIPDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpSurfCurr; - PDD_SURFACE_LOCAL lpSurfTarg; - DWORD dwFlags; - HRESULT ddRVal; - PVOID Flip; - PDD_SURFACE_LOCAL lpSurfCurrLeft; - PDD_SURFACE_LOCAL lpSurfTargLeft; -} DD_FLIPDATA, *PDD_FLIPDATA; -typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA); - -typedef struct _DD_DESTROYSURFACEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - HRESULT ddRVal; - PVOID DestroySurface; -} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA; -typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA); - -typedef struct _DD_SETCLIPLISTDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - HRESULT ddRVal; - PVOID SetClipList; -} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA; -typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA); - -typedef struct _DD_ADDATTACHEDSURFACEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - PDD_SURFACE_LOCAL lpSurfAttached; - HRESULT ddRVal; - PVOID AddAttachedSurface; -} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA; -typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA); - -typedef struct _DD_SETCOLORKEYDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - DWORD dwFlags; - DDCOLORKEY ckNew; - HRESULT ddRVal; - PVOID SetColorKey; -} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA; -typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA); - -typedef struct _DD_GETBLTSTATUSDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - DWORD dwFlags; - HRESULT ddRVal; - PVOID GetBltStatus; -} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA; -typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA); - -typedef struct _DD_GETFLIPSTATUSDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - DWORD dwFlags; - HRESULT ddRVal; - PVOID GetFlipStatus; -} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA; -typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA); - -typedef struct DD_SURFACECALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_SURFCB_DESTROYSURFACE DestroySurface; - PDD_SURFCB_FLIP Flip; - PDD_SURFCB_SETCLIPLIST SetClipList; - PDD_SURFCB_LOCK Lock; - PDD_SURFCB_UNLOCK Unlock; - PDD_SURFCB_BLT Blt; - PDD_SURFCB_SETCOLORKEY SetColorKey; - PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface; - PDD_SURFCB_GETBLTSTATUS GetBltStatus; - PDD_SURFCB_GETFLIPSTATUS GetFlipStatus; - PDD_SURFCB_UPDATEOVERLAY UpdateOverlay; - PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition; - PVOID reserved4; - PDD_SURFCB_SETPALETTE SetPalette; -} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS; - - -#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001 -#define DDHAL_SURFCB32_FLIP 0x00000002 -#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004 -#define DDHAL_SURFCB32_LOCK 0x00000008 -#define DDHAL_SURFCB32_UNLOCK 0x00000010 -#define DDHAL_SURFCB32_BLT 0x00000020 -#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040 -#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080 -#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100 -#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200 -#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400 -#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800 -#define DDHAL_SURFCB32_RESERVED4 0x00001000 -#define DDHAL_SURFCB32_SETPALETTE 0x00002000 -/************************************************************************/ -/* IDirectDraw callbacks */ -/************************************************************************/ - -typedef struct _DD_CREATESURFACEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DDSURFACEDESC *lpDDSurfaceDesc; - PDD_SURFACE_LOCAL *lplpSList; - DWORD dwSCnt; - HRESULT ddRVal; - PVOID CreateSurface; -} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA; -typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA); - -typedef struct _DD_DRVSETCOLORKEYDATA -{ - PDD_SURFACE_LOCAL lpDDSurface; - DWORD dwFlags; - DDCOLORKEY ckNew; - HRESULT ddRVal; - PVOID SetColorKey; -} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA; -typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA); - -#define DDWAITVB_I_TESTVB 0x80000006 - -typedef struct _DD_WAITFORVERTICALBLANKDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DWORD dwFlags; - DWORD bIsInVB; - DWORD hEvent; - HRESULT ddRVal; - PVOID WaitForVerticalBlank; -} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA; -typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA); - -typedef struct _DD_CANCREATESURFACEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DDSURFACEDESC *lpDDSurfaceDesc; - DWORD bIsDifferentPixelFormat; - HRESULT ddRVal; - PVOID CanCreateSurface; -} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA; -typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA); - -typedef struct _DD_CREATEPALETTEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_PALETTE_GLOBAL lpDDPalette; - LPPALETTEENTRY lpColorTable; - HRESULT ddRVal; - PVOID CreatePalette; - BOOL is_excl; -} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA; -typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA); - -typedef struct _DD_GETSCANLINEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DWORD dwScanLine; - HRESULT ddRVal; - PVOID GetScanLine; -} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA; -typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA); - -typedef struct _DD_MAPMEMORYDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - BOOL bMap; - HANDLE hProcess; - FLATPTR fpProcess; - HRESULT ddRVal; -} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA; -typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA); - - - - -typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA; -typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA; - -typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA); -typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA); - -typedef struct DD_CALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_DESTROYDRIVER DestroyDriver; - PDD_CREATESURFACE CreateSurface; - PDD_SETCOLORKEY SetColorKey; - PDD_SETMODE SetMode; - PDD_WAITFORVERTICALBLANK WaitForVerticalBlank; - PDD_CANCREATESURFACE CanCreateSurface; - PDD_CREATEPALETTE CreatePalette; - PDD_GETSCANLINE GetScanLine; - PDD_MAPMEMORY MapMemory; -} DD_CALLBACKS, *PDD_CALLBACKS; - - - -#define DDHAL_CB32_DESTROYDRIVER 0x00000001l -#define DDHAL_CB32_CREATESURFACE 0x00000002l -#define DDHAL_CB32_SETCOLORKEY 0x00000004l -#define DDHAL_CB32_SETMODE 0x00000008l -#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l -#define DDHAL_CB32_CANCREATESURFACE 0x00000020l -#define DDHAL_CB32_CREATEPALETTE 0x00000040l -#define DDHAL_CB32_GETSCANLINE 0x00000080l -#define DDHAL_CB32_MAPMEMORY 0x80000000l - -typedef struct _DD_GETAVAILDRIVERMEMORYDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DDSCAPS DDSCaps; - DWORD dwTotal; - DWORD dwFree; - HRESULT ddRVal; - PVOID GetAvailDriverMemory; -} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA; -typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA); - -typedef struct _DD_MISCELLANEOUSCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory; -} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS; - -#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001 - -typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA); - -typedef struct _DD_CREATESURFACEEXDATA -{ - DWORD dwFlags; - PDD_DIRECTDRAW_LOCAL lpDDLcl; - PDD_SURFACE_LOCAL lpDDSLcl; - HRESULT ddRVal; -} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA; -typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA); - -typedef struct _DD_GETDRIVERSTATEDATA -{ - DWORD dwFlags; - __GNU_EXTENSION union - { - PDD_DIRECTDRAW_GLOBAL lpDD; - DWORD_PTR dwhContext; - }; - LPDWORD lpdwStates; - DWORD dwLength; - HRESULT ddRVal; -} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA; -typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA); - -typedef struct _DD_DESTROYDDLOCALDATA -{ - DWORD dwFlags; - PDD_DIRECTDRAW_LOCAL pDDLcl; - HRESULT ddRVal; -} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA; -typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA); - - - -typedef struct _DD_MISCELLANEOUS2CALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_ALPHABLT AlphaBlt; - PDD_CREATESURFACEEX CreateSurfaceEx; - PDD_GETDRIVERSTATE GetDriverState; - PDD_DESTROYDDLOCAL DestroyDDLocal; -} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS; - - -#define DDHAL_MISC2CB32_ALPHABLT 0x00000001 -#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002 -#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004 -#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008 - - -typedef struct _DD_FREEDRIVERMEMORYDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - HRESULT ddRVal; - PVOID FreeDriverMemory; -} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA; -typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA); - -typedef struct _DD_SETEXCLUSIVEMODEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DWORD dwEnterExcl; - DWORD dwReserved; - HRESULT ddRVal; - PVOID SetExclusiveMode; -} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA; -typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA); - -typedef struct _DD_FLIPTOGDISURFACEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DWORD dwToGDI; - DWORD dwReserved; - HRESULT ddRVal; - PVOID FlipToGDISurface; -} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA; -typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA); - - - -typedef struct _DD_NTCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_FREEDRIVERMEMORY FreeDriverMemory; - PDD_SETEXCLUSIVEMODE SetExclusiveMode; - PDD_FLIPTOGDISURFACE FlipToGDISurface; -} DD_NTCALLBACKS, *PDD_NTCALLBACKS; - - -#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001 -#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002 -#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004 - -/************************************************************************/ -/* IDirectDrawPalette callbacks */ -/************************************************************************/ - -typedef struct _DD_DESTROYPALETTEDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_PALETTE_GLOBAL lpDDPalette; - HRESULT ddRVal; - PVOID DestroyPalette; -} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA; -typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA); - -typedef struct _DD_SETENTRIESDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_PALETTE_GLOBAL lpDDPalette; - DWORD dwBase; - DWORD dwNumEntries; - LPPALETTEENTRY lpEntries; - HRESULT ddRVal; - PVOID SetEntries; -} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA; -typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA); - -typedef struct DD_PALETTECALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_PALCB_DESTROYPALETTE DestroyPalette; - PDD_PALCB_SETENTRIES SetEntries; -} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS; - -#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l -#define DDHAL_PALCB32_SETENTRIES 0x00000002l - -/************************************************************************/ -/* IDirectDrawVideoport callbacks */ -/************************************************************************/ - -typedef struct _DD_CANCREATEVPORTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - LPDDVIDEOPORTDESC lpDDVideoPortDesc; - HRESULT ddRVal; - PVOID CanCreateVideoPort; -} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA); - -typedef struct _DD_CREATEVPORTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - LPDDVIDEOPORTDESC lpDDVideoPortDesc; - PDD_VIDEOPORT_LOCAL lpVideoPort; - HRESULT ddRVal; - PVOID CreateVideoPort; -} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA); - -typedef struct _DD_FLIPVPORTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - PDD_SURFACE_LOCAL lpSurfCurr; - PDD_SURFACE_LOCAL lpSurfTarg; - HRESULT ddRVal; - PVOID FlipVideoPort; -} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA); - -typedef struct _DD_GETVPORTBANDWIDTHDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - LPDDPIXELFORMAT lpddpfFormat; - DWORD dwWidth; - DWORD dwHeight; - DWORD dwFlags; - LPDDVIDEOPORTBANDWIDTH lpBandwidth; - HRESULT ddRVal; - PVOID GetVideoPortBandwidth; -} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA); - -typedef struct _DD_GETVPORTINPUTFORMATDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwFlags; - LPDDPIXELFORMAT lpddpfFormat; - DWORD dwNumFormats; - HRESULT ddRVal; - PVOID GetVideoPortInputFormats; -} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA); - -typedef struct _DD_GETVPORTOUTPUTFORMATDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwFlags; - LPDDPIXELFORMAT lpddpfInputFormat; - LPDDPIXELFORMAT lpddpfOutputFormats; - DWORD dwNumFormats; - HRESULT ddRVal; - PVOID GetVideoPortInputFormats; -} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA); - -typedef struct _DD_GETVPORTFIELDDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - BOOL bField; - HRESULT ddRVal; - PVOID GetVideoPortField; -} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA); - -typedef struct _DD_GETVPORTLINEDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwLine; - HRESULT ddRVal; - PVOID GetVideoPortLine; -} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA); - -typedef struct _DD_GETVPORTCONNECTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - DWORD dwPortId; - LPDDVIDEOPORTCONNECT lpConnect; - DWORD dwNumEntries; - HRESULT ddRVal; - PVOID GetVideoPortConnectInfo; -} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA); - -typedef struct _DD_DESTROYVPORTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - HRESULT ddRVal; - PVOID DestroyVideoPort; -} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA); - -typedef struct _DD_GETVPORTFLIPSTATUSDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - FLATPTR fpSurface; - HRESULT ddRVal; - PVOID GetVideoPortFlipStatus; -} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA); - - - -typedef struct _DD_UPDATEVPORTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - PDD_SURFACE_INT *lplpDDSurface; - PDD_SURFACE_INT *lplpDDVBISurface; - LPDDVIDEOPORTINFO lpVideoInfo; - DWORD dwFlags; - DWORD dwNumAutoflip; - DWORD dwNumVBIAutoflip; - HRESULT ddRVal; - PVOID UpdateVideoPort; -} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA); - -typedef struct _DD_WAITFORVPORTSYNCDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwFlags; - DWORD dwLine; - DWORD dwTimeOut; - HRESULT ddRVal; - PVOID UpdateVideoPort; -} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA); - -typedef struct _DD_GETVPORTSIGNALDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwStatus; - HRESULT ddRVal; - PVOID GetVideoSignalStatus; -} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA); - - - -typedef struct _DD_VPORTCOLORDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwFlags; - LPDDCOLORCONTROL lpColorData; - HRESULT ddRVal; - PVOID ColorControl; -} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA; -typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA); - - -typedef struct DD_VIDEOPORTCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; - PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort; - PDD_VPORTCB_FLIP FlipVideoPort; - PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth; - PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; - PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; - PVOID lpReserved1; - PDD_VPORTCB_GETFIELD GetVideoPortField; - PDD_VPORTCB_GETLINE GetVideoPortLine; - PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; - PDD_VPORTCB_DESTROYVPORT DestroyVideoPort; - PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; - PDD_VPORTCB_UPDATE UpdateVideoPort; - PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync; - PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; - PDD_VPORTCB_COLORCONTROL ColorControl; -} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS; - -#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001 -#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002 -#define DDHAL_VPORT32_FLIP 0x00000004 -#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008 -#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010 -#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020 -#define DDHAL_VPORT32_GETFIELD 0x00000080 -#define DDHAL_VPORT32_GETLINE 0x00000100 -#define DDHAL_VPORT32_GETCONNECT 0x00000200 -#define DDHAL_VPORT32_DESTROY 0x00000400 -#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800 -#define DDHAL_VPORT32_UPDATE 0x00001000 -#define DDHAL_VPORT32_WAITFORSYNC 0x00002000 -#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000 -#define DDHAL_VPORT32_COLORCONTROL 0x00008000 - - -/************************************************************************/ -/* IDirectDrawColorControl callbacks */ -/************************************************************************/ - -#define DDRAWI_GETCOLOR 0x0001 -#define DDRAWI_SETCOLOR 0x0002 - -typedef struct _DD_COLORCONTROLDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - LPDDCOLORCONTROL lpColorData; - DWORD dwFlags; - HRESULT ddRVal; - PVOID ColorControl; -} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA; -typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA); - - - -typedef struct _DD_COLORCONTROLCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_COLORCB_COLORCONTROL ColorControl; -} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS; - -#define DDHAL_COLOR_COLORCONTROL 0x00000001 - -/************************************************************************/ -/* IDirectDrawVideo callbacks */ -/************************************************************************/ - -typedef struct _DD_GETMOCOMPGUIDSDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - DWORD dwNumGuids; - GUID *lpGuids; - HRESULT ddRVal; -} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA); - -typedef struct _DD_GETMOCOMPFORMATSDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - GUID *lpGuid; - DWORD dwNumFormats; - LPDDPIXELFORMAT lpFormats; - HRESULT ddRVal; -} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA); - -typedef struct _DD_CREATEMOCOMPDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_MOTIONCOMP_LOCAL lpMoComp; - GUID *lpGuid; - DWORD dwUncompWidth; - DWORD dwUncompHeight; - DDPIXELFORMAT ddUncompPixelFormat; - LPVOID lpData; - DWORD dwDataSize; - HRESULT ddRVal; -} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA); - -typedef struct _DDCOMPBUFFERINFO -{ - DWORD dwSize; - DWORD dwNumCompBuffers; - DWORD dwWidthToCreate; - DWORD dwHeightToCreate; - DWORD dwBytesToAllocate; - DDSCAPS2 ddCompCaps; - DDPIXELFORMAT ddPixelFormat; -} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO; - -typedef struct _DD_GETMOCOMPCOMPBUFFDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - GUID *lpGuid; - DWORD dwWidth; - DWORD dwHeight; - DDPIXELFORMAT ddPixelFormat; - DWORD dwNumTypesCompBuffs; - LPDDCOMPBUFFERINFO lpCompBuffInfo; - HRESULT ddRVal; -} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA); - -typedef struct _DD_GETINTERNALMOCOMPDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - GUID *lpGuid; - DWORD dwWidth; - DWORD dwHeight; - DDPIXELFORMAT ddPixelFormat; - DWORD dwScratchMemAlloc; - HRESULT ddRVal; -} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA); - -typedef struct _DD_BEGINMOCOMPFRAMEDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_MOTIONCOMP_LOCAL lpMoComp; - PDD_SURFACE_LOCAL lpDestSurface; - DWORD dwInputDataSize; - LPVOID lpInputData; - DWORD dwOutputDataSize; - LPVOID lpOutputData; - HRESULT ddRVal; -} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA); - -typedef struct _DD_ENDMOCOMPFRAMEDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_MOTIONCOMP_LOCAL lpMoComp; - LPVOID lpInputData; - DWORD dwInputDataSize; - HRESULT ddRVal; -} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA); - -typedef struct _DDMOCOMPBUFFERINFO -{ - DWORD dwSize; - PDD_SURFACE_LOCAL lpCompSurface; - DWORD dwDataOffset; - DWORD dwDataSize; - LPVOID lpPrivate; -} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO; - -typedef struct _DD_RENDERMOCOMPDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_MOTIONCOMP_LOCAL lpMoComp; - DWORD dwNumBuffers; - LPDDMOCOMPBUFFERINFO lpBufferInfo; - DWORD dwFunction; - LPVOID lpInputData; - DWORD dwInputDataSize; - LPVOID lpOutputData; - DWORD dwOutputDataSize; - HRESULT ddRVal; -} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA); - -#define DDMCQUERY_READ 0x00000001 - -typedef struct _DD_QUERYMOCOMPSTATUSDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_MOTIONCOMP_LOCAL lpMoComp; - PDD_SURFACE_LOCAL lpSurface; - DWORD dwFlags; - HRESULT ddRVal; -} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA); - -typedef struct _DD_DESTROYMOCOMPDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_MOTIONCOMP_LOCAL lpMoComp; - HRESULT ddRVal; -} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA; -typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA); - - - -typedef struct DD_MOTIONCOMPCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_MOCOMPCB_GETGUIDS GetMoCompGuids; - PDD_MOCOMPCB_GETFORMATS GetMoCompFormats; - PDD_MOCOMPCB_CREATE CreateMoComp; - PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; - PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; - PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame; - PDD_MOCOMPCB_ENDFRAME EndMoCompFrame; - PDD_MOCOMPCB_RENDER RenderMoComp; - PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus; - PDD_MOCOMPCB_DESTROY DestroyMoComp; -} DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS; - -#define DDHAL_MOCOMP32_GETGUIDS 0x00000001 -#define DDHAL_MOCOMP32_GETFORMATS 0x00000002 -#define DDHAL_MOCOMP32_CREATE 0x00000004 -#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008 -#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010 -#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020 -#define DDHAL_MOCOMP32_ENDFRAME 0x00000040 -#define DDHAL_MOCOMP32_RENDER 0x00000080 -#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100 -#define DDHAL_MOCOMP32_DESTROY 0x00000200 - -/************************************************************************/ -/* D3D buffer callbacks */ -/************************************************************************/ - -typedef struct _DD_D3DBUFCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_CANCREATESURFACE CanCreateD3DBuffer; - PDD_CREATESURFACE CreateD3DBuffer; - PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer; - PDD_SURFCB_LOCK LockD3DBuffer; - PDD_SURFCB_UNLOCK UnlockD3DBuffer; -} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS; - -/************************************************************************/ -/* DdGetDriverInfo callback */ -/************************************************************************/ - -typedef struct _DD_GETDRIVERINFODATA -{ - // Input: - PVOID dhpdev; - DWORD dwSize; - DWORD dwFlags; - GUID guidInfo; - DWORD dwExpectedSize; - PVOID lpvData; - // Output: - DWORD dwActualSize; - HRESULT ddRVal; -} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA; -typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA); - - - - -/************************************************************************/ -/* Driver info structures */ -/************************************************************************/ - -typedef struct _DDNTCORECAPS -{ - DWORD dwSize; - DWORD dwCaps; - DWORD dwCaps2; - DWORD dwCKeyCaps; - DWORD dwFXCaps; - DWORD dwFXAlphaCaps; - DWORD dwPalCaps; - DWORD dwSVCaps; - DWORD dwAlphaBltConstBitDepths; - DWORD dwAlphaBltPixelBitDepths; - DWORD dwAlphaBltSurfaceBitDepths; - DWORD dwAlphaOverlayConstBitDepths; - DWORD dwAlphaOverlayPixelBitDepths; - DWORD dwAlphaOverlaySurfaceBitDepths; - DWORD dwZBufferBitDepths; - DWORD dwVidMemTotal; - DWORD dwVidMemFree; - DWORD dwMaxVisibleOverlays; - DWORD dwCurrVisibleOverlays; - DWORD dwNumFourCCCodes; - DWORD dwAlignBoundarySrc; - DWORD dwAlignSizeSrc; - DWORD dwAlignBoundaryDest; - DWORD dwAlignSizeDest; - DWORD dwAlignStrideAlign; - DWORD dwRops[DD_ROP_SPACE]; - DDSCAPS ddsCaps; - DWORD dwMinOverlayStretch; - DWORD dwMaxOverlayStretch; - DWORD dwMinLiveVideoStretch; - DWORD dwMaxLiveVideoStretch; - DWORD dwMinHwCodecStretch; - DWORD dwMaxHwCodecStretch; - DWORD dwReserved1; - DWORD dwReserved2; - DWORD dwReserved3; - DWORD dwSVBCaps; - DWORD dwSVBCKeyCaps; - DWORD dwSVBFXCaps; - DWORD dwSVBRops[DD_ROP_SPACE]; - DWORD dwVSBCaps; - DWORD dwVSBCKeyCaps; - DWORD dwVSBFXCaps; - DWORD dwVSBRops[DD_ROP_SPACE]; - DWORD dwSSBCaps; - DWORD dwSSBCKeyCaps; - DWORD dwSSBFXCaps; - DWORD dwSSBRops[DD_ROP_SPACE]; - DWORD dwMaxVideoPorts; - DWORD dwCurrVideoPorts; - DWORD dwSVBCaps2; -} DDNTCORECAPS, *PDDNTCORECAPS; - - -typedef struct _DD_HALINFO_V4 -{ - DWORD dwSize; - VIDEOMEMORYINFO vmiData; - DDNTCORECAPS ddCaps; - PDD_GETDRIVERINFO GetDriverInfo; - DWORD dwFlags; -} DD_HALINFO_V4, *PDD_HALINFO_V4; - -typedef struct _DD_HALINFO -{ - DWORD dwSize; - VIDEOMEMORYINFO vmiData; - DDNTCORECAPS ddCaps; - PDD_GETDRIVERINFO GetDriverInfo; - DWORD dwFlags; - PVOID lpD3DGlobalDriverData; - PVOID lpD3DHALCallbacks; - PDD_D3DBUFCALLBACKS lpD3DBufCallbacks; -} DD_HALINFO, *PDD_HALINFO; - - - -typedef struct _DD_NONLOCALVIDMEMCAPS -{ - DWORD dwSize; - DWORD dwNLVBCaps; - DWORD dwNLVBCaps2; - DWORD dwNLVBCKeyCaps; - DWORD dwNLVBFXCaps; - DWORD dwNLVBRops[DD_ROP_SPACE]; -} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS; - - - -typedef struct _DD_MORESURFACECAPS -{ - DWORD dwSize; - DDSCAPSEX ddsCapsMore; - struct tagNTExtendedHeapRestrictions - { - DDSCAPSEX ddsCapsEx; - DDSCAPSEX ddsCapsExAlt; - } ddsExtendedHeapRestrictions[1]; -} DD_MORESURFACECAPS, *PDD_MORESURFACECAPS; - - -/*********************************************************/ -/* Kernel Callbacks */ -/*********************************************************/ -typedef struct _DD_SYNCSURFACEDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_SURFACE_LOCAL lpDDSurface; - DWORD dwSurfaceOffset; - ULONG_PTR fpLockPtr; - LONG lPitch; - DWORD dwOverlayOffset; - ULONG dwDriverReserved1; - ULONG dwDriverReserved2; - ULONG dwDriverReserved3; - ULONG dwDriverReserved4; - HRESULT ddRVal; -} DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA; -typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA); - -typedef struct _DD_SYNCVIDEOPORTDATA -{ - PDD_DIRECTDRAW_LOCAL lpDD; - PDD_VIDEOPORT_LOCAL lpVideoPort; - DWORD dwOriginOffset; - DWORD dwHeight; - DWORD dwVBIHeight; - ULONG dwDriverReserved1; - ULONG dwDriverReserved2; - ULONG dwDriverReserved3; - HRESULT ddRVal; -} DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA; -typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA); - - -typedef struct DD_NTPRIVATEDRIVERCAPS -{ - DWORD dwSize; - DWORD dwPrivateCaps; -} DD_NTPRIVATEDRIVERCAPS; - -typedef struct _DD_UPDATENONLOCALHEAPDATA -{ - PDD_DIRECTDRAW_GLOBAL lpDD; - DWORD dwHeap; - FLATPTR fpGARTLin; - FLATPTR fpGARTDev; - ULONG_PTR ulPolicyMaxBytes; - HRESULT ddRVal; - VOID* UpdateNonLocalHeap; -} DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA; - -typedef struct _DD_STEREOMODE -{ - DWORD dwSize; - DWORD dwHeight; - DWORD dwWidth; - DWORD dwBpp; - DWORD dwRefreshRate; - BOOL bSupported; -} DD_STEREOMODE, *PDD_STEREOMODE; - -typedef struct _DD_MORECAPS -{ - DWORD dwSize; - DWORD dwAlphaCaps; - DWORD dwSVBAlphaCaps; - DWORD dwVSBAlphaCaps; - DWORD dwSSBAlphaCaps; - DWORD dwFilterCaps; - DWORD dwSVBFilterCaps; - DWORD dwVSBFilterCaps; - DWORD dwSSBFilterCaps; -} DD_MORECAPS, *PDD_MORECAPS; - -typedef struct _DD_CLIPPER_GLOBAL -{ - ULONG_PTR dwReserved1; -} DD_CLIPPER_GLOBAL; - -typedef struct _DD_CLIPPER_LOCAL -{ - ULONG_PTR dwReserved1; -} DD_CLIPPER_LOCAL; - -typedef struct _DD_PALETTE_LOCAL -{ - ULONG dwReserved0; - ULONG_PTR dwReserved1; -} DD_PALETTE_LOCAL; - - -typedef struct DD_KERNELCALLBACKS -{ - DWORD dwSize; - DWORD dwFlags; - PDD_KERNELCB_SYNCSURFACE SyncSurfaceData; - PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData; -} DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS; - - -#define MAX_AUTOFLIP_BUFFERS 10 -#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2 -#define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3 -#define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4 -#define DDPF_D3DFORMAT 0x00200000l -#define D3DFORMAT_OP_TEXTURE 0x00000001L -#define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L -#define D3DFORMAT_OP_CUBETEXTURE 0x00000004L -#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L -#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L -#define D3DFORMAT_OP_ZSTENCIL 0x00000040L -#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L -#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L -#define D3DFORMAT_OP_DISPLAYMODE 0x00000400L -#define D3DFORMAT_OP_3DACCELERATION 0x00000800L -#define D3DFORMAT_OP_PIXELSIZE 0x00001000L -#define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L -#define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L -#define D3DFORMAT_OP_SRGBREAD 0x00008000L -#define D3DFORMAT_OP_BUMPMAP 0x00010000L -#define D3DFORMAT_OP_DMAP 0x00020000L -#define D3DFORMAT_OP_NOFILTER 0x00040000L -#define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L -#define D3DFORMAT_OP_SRGBWRITE 0x00100000L -#define D3DFORMAT_OP_NOALPHABLEND 0x00200000L -#define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L -#define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L -#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L -#define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l -#define DDHAL_PLEASEALLOC_USERMEM 0x00000004l - - -#define VIDMEM_ISLINEAR 0x00000001l -#define VIDMEM_ISRECTANGULAR 0x00000002l -#define VIDMEM_ISHEAP 0x00000004l -#define VIDMEM_ISNONLOCAL 0x00000008l -#define VIDMEM_ISWC 0x00000010l -#define VIDMEM_HEAPDISABLED 0x00000020l - -#define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l - -#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l -#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l - -#define DDHAL_DRIVER_NOTHANDLED 0x00000000l -#define DDHAL_DRIVER_HANDLED 0x00000001l -#define DDHAL_DRIVER_NOCKEYHW 0x00000002l - -#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L -#define DDRAWISURF_HASPIXELFORMAT 0x00002000L -#define DDRAWISURF_HASOVERLAYDATA 0x00004000L -#define DDRAWISURF_FRONTBUFFER 0x04000000L -#define DDRAWISURF_BACKBUFFER 0x08000000L -#define DDRAWISURF_INVALID 0x10000000L -#define DDRAWISURF_DRIVERMANAGED 0x40000000L - -#define ROP_HAS_SOURCE 0x00000001l -#define ROP_HAS_PATTERN 0x00000002l -#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN - -#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l -#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l -#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l -#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l -#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l - -#define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF -#define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF -#define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF -#define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF -#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF - -#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001 -#define DDHALINFO_MODEXILLEGAL 0x00000002 -#define DDHALINFO_GETDRIVERINFOSET 0x00000004 -#define DDHALINFO_GETDRIVERINFO2 0x00000008 - -#define DDRAWIVPORT_ON 0x00000001 -#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002 -#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004 - -#define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l -#define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l -#define DDHAL_PRIVATECAP_RESERVED1 0x00000004l - -#define DDRAWI_VPORTSTART 0x0001 -#define DDRAWI_VPORTSTOP 0x0002 -#define DDRAWI_VPORTUPDATE 0x0003 -#define DDRAWI_VPORTGETCOLOR 0x0001 -#define DDRAWI_VPORTSETCOLOR 0x0002 - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* GUID_DEFS_ONLY */ - -#endif /* __DD_INCLUDED__ */ diff --git a/reactos/include/ddk/dvp.h b/reactos/include/ddk/dvp.h index 1a0826f76c5..0e79d3ea62a 100644 --- a/reactos/include/ddk/dvp.h +++ b/reactos/include/ddk/dvp.h @@ -367,7 +367,7 @@ typedef HRESULT (*LPDDENUMVIDEOCALLBACK)(LPDDVIDEOPORTCAPS, LPVOID); #endif #ifdef __cplusplus -}; +} #endif #endif #endif diff --git a/reactos/include/ddk/ioaccess.h b/reactos/include/ddk/ioaccess.h index 0f1877f6c19..d1247302c0a 100755 --- a/reactos/include/ddk/ioaccess.h +++ b/reactos/include/ddk/ioaccess.h @@ -24,7 +24,7 @@ extern "C" { #endif #define H2I(p) PtrToUshort(p) - + #ifndef NO_PORT_MACROS #if defined(_X86_) || defined(_M_AMD64) @@ -41,7 +41,7 @@ extern "C" { #define WRITE_PORT_USHORT(p, v) __outword (H2I(p), (v)) #define WRITE_PORT_ULONG(p, v) __outdword (H2I(p), (v)) -#define MEMORY_BARRIER() +#define MEMORY_BARRIER() #elif defined(_PPC_) || defined(_MIPS_) || defined(_ARM_) @@ -59,10 +59,15 @@ extern "C" { #define WRITE_PORT_ULONG(p, v) WRITE_REGISTER_ULONG(p, (ULONG) (v)) #else - + #error Unsupported architecture #endif #endif /* NO_PORT_MACROS */ + +#ifdef __cplusplus +} +#endif + #endif /* __IOACCESS_H */ diff --git a/reactos/include/psdk/d3dnthal.h b/reactos/include/psdk/d3dnthal.h new file mode 100644 index 00000000000..8f3f3d79159 --- /dev/null +++ b/reactos/include/psdk/d3dnthal.h @@ -0,0 +1,234 @@ +/* + * Direct3D NT driver interface + */ + +#ifndef __DDK_D3DNTHAL_H +#define __DDK_D3DNTHAL_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +DEFINE_GUID(GUID_D3DCallbacks, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02); +DEFINE_GUID(GUID_D3DCallbacks3, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E); +DEFINE_GUID(GUID_D3DExtendedCaps, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29); +DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8); +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 { + __GNU_EXTENSION union { + PDD_DIRECTDRAW_GLOBAL lpDDGbl; + PDD_DIRECTDRAW_LOCAL lpDDLcl; + }; + __GNU_EXTENSION union { + PDD_SURFACE_LOCAL lpDDS; + PDD_SURFACE_LOCAL lpDDSLcl; + }; + __GNU_EXTENSION union { + PDD_SURFACE_LOCAL lpDDSZ; + PDD_SURFACE_LOCAL lpDDSZLcl; + }; + DWORD dwPID; + ULONG_PTR dwhContext; + HRESULT ddrval; +} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA; + +typedef struct _D3DNTHAL_CONTEXTDESTROYDATA { + ULONG_PTR dwhContext; + HRESULT ddrval; +} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA; + +typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA { + DWORD dwPID; + HRESULT ddrval; +} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA; + +typedef struct _D3DNTHAL_SCENECAPTUREDATA { + ULONG_PTR dwhContext; + DWORD dwFlag; + HRESULT ddrval; +} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA; + +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; + DWORD dwDevCaps; + D3DTRANSFORMCAPS dtcTransformCaps; + BOOL bClipping; + D3DLIGHTINGCAPS dlcLightingCaps; + D3DPRIMCAPS dpcLineCaps; + D3DPRIMCAPS dpcTriCaps; + DWORD dwDeviceRenderBitDepth; + DWORD dwDeviceZBufferBitDepth; + DWORD dwMaxBufferSize; + DWORD dwMaxVertexCount; +} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1; + +typedef struct _D3DNTHAL_GLOBALDRIVERDATA { + DWORD dwSize; + D3DNTHALDEVICEDESC_V1 hwCaps; + DWORD dwNumVertices; + DWORD dwNumClipVertices; + DWORD dwNumTextureFormats; + LPDDSURFACEDESC lpTextureFormats; +} 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_SETRENDERTARGETDATA { + ULONG_PTR dwhContext; + PDD_SURFACE_LOCAL lpDDS; + PDD_SURFACE_LOCAL lpDDSZ; + HRESULT ddrval; +} D3DNTHAL_SETRENDERTARGETDATA, *LPD3DNTHAL_SETRENDERTARGETDATA; + +typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA); + +typedef struct _D3DNTHAL_CALLBACKS2 { + DWORD dwSize; + DWORD dwFlags; + LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget; + LPVOID dwReserved1; + LPVOID dwReserved2; + LPVOID dwReserved3; + LPVOID dwReserved4; +} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2; + +typedef struct _D3DNTHAL_CLEAR2DATA { + ULONG_PTR dwhContext; + DWORD dwFlags; + DWORD dwFillColor; + D3DVALUE dvFillDepth; + DWORD dwFillStencil; + LPD3DRECT lpRects; + DWORD dwNumRects; + HRESULT ddrval; +} D3DNTHAL_CLEAR2DATA, FAR *LPD3DNTHAL_CLEAR2DATA; + +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; + __GNU_EXTENSION union { + PDD_SURFACE_LOCAL lpDDVertex; + LPVOID lpVertices; + }; + DWORD dwVertexOffset; + DWORD dwVertexLength; + DWORD dwReqVertexBufSize; + DWORD dwReqCommandBufSize; + LPDWORD lpdwRStates; + __GNU_EXTENSION union { + DWORD dwVertexSize; + HRESULT ddrval; + }; + 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 + +#endif /* __DDK_D3DNTHAL_H */ diff --git a/reactos/include/psdk/ddkernel.h b/reactos/include/psdk/ddkernel.h new file mode 100644 index 00000000000..8ffedf8165d --- /dev/null +++ b/reactos/include/psdk/ddkernel.h @@ -0,0 +1,95 @@ +/* $Id$ + * + * COPYRIGHT: This file is in the public domain. + * PROJECT: ReactOS kernel + * FILE: + * PURPOSE: Directx headers + * PROGRAMMER: Magnus Olsen (greatlrd) + * + */ + +#ifndef __DDKM_INCLUDED__ +#define __DDKM_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined (_WIN32) && !defined (_NO_COM) +DEFINE_GUID (IID_IDirectDrawKernel, 0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); +DEFINE_GUID (IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); +#endif + +typedef struct _DDKERNELCAPS { + DWORD dwSize; + DWORD dwCaps; + DWORD dwIRQCaps; +} DDKERNELCAPS, *LPDDKERNELCAPS; + +#define DDKERNELCAPS_SKIPFIELDS 0x00000001 +#define DDKERNELCAPS_AUTOFLIP 0x00000002 +#define DDKERNELCAPS_SETSTATE 0x00000004 +#define DDKERNELCAPS_LOCK 0x00000008 +#define DDKERNELCAPS_FLIPVIDEOPORT 0x00000010 +#define DDKERNELCAPS_FLIPOVERLAY 0x00000020 +#define DDKERNELCAPS_CAPTURE_SYSMEM 0x00000040 +#define DDKERNELCAPS_CAPTURE_NONLOCALVIDMEM 0x00000080 +#define DDKERNELCAPS_FIELDPOLARITY 0x00000100 +#define DDKERNELCAPS_CAPTURE_INVERTED 0x00000200 +#define DDIRQ_DISPLAY_VSYNC 0x00000001 +#define DDIRQ_RESERVED1 0x00000002 +#define DDIRQ_VPORT0_VSYNC 0x00000004 +#define DDIRQ_VPORT0_LINE 0x00000008 +#define DDIRQ_VPORT1_VSYNC 0x00000010 +#define DDIRQ_VPORT1_LINE 0x00000020 +#define DDIRQ_VPORT2_VSYNC 0x00000040 +#define DDIRQ_VPORT2_LINE 0x00000080 +#define DDIRQ_VPORT3_VSYNC 0x00000100 +#define DDIRQ_VPORT3_LINE 0x00000200 +#define DDIRQ_VPORT4_VSYNC 0x00000400 +#define DDIRQ_VPORT4_LINE 0x00000800 +#define DDIRQ_VPORT5_VSYNC 0x00001000 +#define DDIRQ_VPORT5_LINE 0x00002000 +#define DDIRQ_VPORT6_VSYNC 0x00004000 +#define DDIRQ_VPORT6_LINE 0x00008000 +#define DDIRQ_VPORT7_VSYNC 0x00010000 +#define DDIRQ_VPORT7_LINE 0x00020000 +#define DDIRQ_VPORT8_VSYNC 0x00040000 +#define DDIRQ_VPORT8_LINE 0x00080000 +#define DDIRQ_VPORT9_VSYNC 0x00010000 +#define DDIRQ_VPORT9_LINE 0x00020000 + +typedef struct IDirectDrawKernel* LPDIRECTDRAWKERNEL; +typedef struct IDirectDrawSurfaceKernel* LPDIRECTDRAWSURFACEKERNEL; + +#if defined(_WIN32) && !defined(_NO_COM) + +#undef INTERFACE +#define INTERFACE IDirectDrawKernel +DECLARE_INTERFACE_ (IDirectDrawKernel, IUnknown) { + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE; + STDMETHOD(ReleaseKernelHandle) (THIS) PURE; +}; + +#undef INTERFACE +#define INTERFACE IDirectDrawSurfaceKernel +DECLARE_INTERFACE_ (IDirectDrawSurfaceKernel, IUnknown) { + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE; + STDMETHOD(ReleaseKernelHandle) (THIS) PURE; +}; + +#undef INTERFACE +#endif /* defined(_WIN32) && !defined(_NO_COM) */ + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/reactos/include/ddk/ddkmapi.h b/reactos/include/psdk/ddkmapi.h similarity index 59% rename from reactos/include/ddk/ddkmapi.h rename to reactos/include/psdk/ddkmapi.h index fdd23a9dc35..5bdedde5258 100644 --- a/reactos/include/ddk/ddkmapi.h +++ b/reactos/include/psdk/ddkmapi.h @@ -21,23 +21,12 @@ #ifndef __DDKMAPI_INCLUDED__ #define __DDKMAPI_INCLUDED__ -/* Helper macro to enable gcc's extension. */ -#ifndef __GNU_EXTENSION -#ifdef __GNUC__ -#define __GNU_EXTENSION __extension__ -#else -#define __GNU_EXTENSION -#endif -#endif - #if defined(_DXAPI_) - #define DXAPI +#define DXAPI #else - #define DXAPI DECLSPEC_IMPORT +#define DXAPI DECLSPEC_IMPORT #endif - - #define DXAPI_MAJORVERSION 1 #define DXAPI_MINORVERSION 0 @@ -106,234 +95,202 @@ typedef DWORD (PASCAL *LPDXAPI)(DWORD dwFunctionNum, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer); typedef ULONG (PASCAL *LPDD_NOTIFYCALLBACK) (DWORD dwFlags, PVOID pContext, DWORD dwParam1, DWORD dwParam2); -typedef struct _DDCAPBUFFINFO -{ - DWORD dwFieldNumber; - DWORD bPolarity; - LARGE_INTEGER liTimeStamp; - DWORD ddRVal; -} DDCAPBUFFINFO, * LPDDCAPBUFFINFO; +typedef struct _DDCAPBUFFINFO { + DWORD dwFieldNumber; + DWORD bPolarity; + LARGE_INTEGER liTimeStamp; + DWORD ddRVal; +} DDCAPBUFFINFO, *LPDDCAPBUFFINFO; -typedef struct _DDADDVPCAPTUREBUFF -{ - HANDLE hCapture; - DWORD dwFlags; - PMDL pMDL; - PKEVENT pKEvent; - LPDDCAPBUFFINFO lpBuffInfo; -} DDADDVPCAPTUREBUFF, * LPDDADDVPCAPTUREBUFF; +typedef struct _DDADDVPCAPTUREBUFF { + HANDLE hCapture; + DWORD dwFlags; + PMDL pMDL; + PKEVENT pKEvent; + LPDDCAPBUFFINFO lpBuffInfo; +} DDADDVPCAPTUREBUFF, *LPDDADDVPCAPTUREBUFF; -typedef struct _DDCLOSEHANDLE -{ - HANDLE hHandle; +typedef struct _DDCLOSEHANDLE { + HANDLE hHandle; } DDCLOSEHANDLE, *LPDDCLOSEHANDLE; -typedef struct _DDFLIPOVERLAY -{ - HANDLE hDirectDraw; - HANDLE hCurrentSurface; - HANDLE hTargetSurface; - DWORD dwFlags; +typedef struct _DDFLIPOVERLAY { + HANDLE hDirectDraw; + HANDLE hCurrentSurface; + HANDLE hTargetSurface; + DWORD dwFlags; } DDFLIPOVERLAY, *LPDDFLIPOVERLAY; -typedef struct _DDFLIPVIDEOPORT -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; - HANDLE hCurrentSurface; - HANDLE hTargetSurface; - DWORD dwFlags; +typedef struct _DDFLIPVIDEOPORT { + HANDLE hDirectDraw; + HANDLE hVideoPort; + HANDLE hCurrentSurface; + HANDLE hTargetSurface; + DWORD dwFlags; } DDFLIPVIDEOPORT, *LPDDFLIPVIDEOPORT; -typedef struct _DDGETAUTOFLIPIN -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; +typedef struct _DDGETAUTOFLIPIN { + HANDLE hDirectDraw; + HANDLE hVideoPort; } DDGETAUTOFLIPIN, *LPDDGETAUTOFLIPIN; -typedef struct _DDGETAUTOFLIPOUT -{ - DWORD ddRVal; - HANDLE hVideoSurface; - HANDLE hVBISurface; - BOOL bPolarity; +typedef struct _DDGETAUTOFLIPOUT { + DWORD ddRVal; + HANDLE hVideoSurface; + HANDLE hVBISurface; + BOOL bPolarity; } DDGETAUTOFLIPOUT, *LPDDGETAUTOFLIPOUT; -typedef struct _DDGETPOLARITYIN -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; +typedef struct _DDGETPOLARITYIN { + HANDLE hDirectDraw; + HANDLE hVideoPort; } DDGETPOLARITYIN, *LPDDGETPOLARITYIN; -typedef struct _DDGETPOLARITYOUT -{ - DWORD ddRVal; - BOOL bPolarity; +typedef struct _DDGETPOLARITYOUT { + DWORD ddRVal; + BOOL bPolarity; } DDGETPOLARITYOUT, *LPDDGETPOLARITYOUT; -typedef struct _DDGETSURFACESTATEIN -{ - HANDLE hDirectDraw; - HANDLE hSurface; +typedef struct _DDGETSURFACESTATEIN { + HANDLE hDirectDraw; + HANDLE hSurface; } DDGETSURFACESTATEIN, *LPDDGETSURFACESTATEIN; -typedef struct _DDGETSURFACESTATEOUT -{ - DWORD ddRVal; - DWORD dwStateCaps; - DWORD dwStateStatus; +typedef struct _DDGETSURFACESTATEOUT { + DWORD ddRVal; + DWORD dwStateCaps; + DWORD dwStateStatus; } DDGETSURFACESTATEOUT, *LPDDGETSURFACESTATEOUT; -typedef struct _DDGETFIELDNUMIN -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; +typedef struct _DDGETFIELDNUMIN { + HANDLE hDirectDraw; + HANDLE hVideoPort; } DDGETFIELDNUMIN, *LPDDGETFIELDNUMIN; -typedef struct _DDGETFIELDNUMOUT -{ - DWORD ddRVal; - DWORD dwFieldNum; +typedef struct _DDGETFIELDNUMOUT { + DWORD ddRVal; + DWORD dwFieldNum; } DDGETFIELDNUMOUT, *LPDDGETFIELDNUMOUT; -typedef struct _DDGETKERNELCAPSOUT -{ - DWORD ddRVal; - DWORD dwCaps; - DWORD dwIRQCaps; +typedef struct _DDGETKERNELCAPSOUT { + DWORD ddRVal; + DWORD dwCaps; + DWORD dwIRQCaps; } DDGETKERNELCAPSOUT, *LPDDGETKERNELCAPSOUT; -typedef struct _DDGETVERSIONNUMBER -{ - DWORD ddRVal; - DWORD dwMajorVersion; - DWORD dwMinorVersion; +typedef struct _DDGETVERSIONNUMBER { + DWORD ddRVal; + DWORD dwMajorVersion; + DWORD dwMinorVersion; } DDGETVERSIONNUMBER, *LPDDGETVERSIONNUMBER; -typedef struct _DDLOCKIN -{ - HANDLE hDirectDraw; - HANDLE hSurface; +typedef struct _DDLOCKIN { + HANDLE hDirectDraw; + HANDLE hSurface; } DDLOCKIN, *LPDDLOCKIN; -typedef struct _DDLOCKOUT -{ - DWORD ddRVal; - DWORD dwSurfHeight; - DWORD dwSurfWidth; - LONG lSurfPitch; - PVOID lpSurface; - DWORD SurfaceCaps; - DWORD dwFormatFlags; - DWORD dwFormatFourCC; - DWORD dwFormatBitCount; - __GNU_EXTENSION union - { - DWORD dwRBitMask; - DWORD dwYBitMask; +typedef struct _DDLOCKOUT { + DWORD ddRVal; + DWORD dwSurfHeight; + DWORD dwSurfWidth; + LONG lSurfPitch; + PVOID lpSurface; + DWORD SurfaceCaps; + DWORD dwFormatFlags; + DWORD dwFormatFourCC; + DWORD dwFormatBitCount; + __GNU_EXTENSION union { + DWORD dwRBitMask; + DWORD dwYBitMask; }; - __GNU_EXTENSION union - { - DWORD dwGBitMask; - DWORD dwUBitMask; + __GNU_EXTENSION union { + DWORD dwGBitMask; + DWORD dwUBitMask; }; - __GNU_EXTENSION union - { - DWORD dwBBitMask; - DWORD dwVBitMask; + __GNU_EXTENSION union { + DWORD dwBBitMask; + DWORD dwVBitMask; }; } DDLOCKOUT, *LPDDLOCKOUT; -typedef struct _DDOPENDIRECTDRAWIN -{ +typedef struct _DDOPENDIRECTDRAWIN { ULONG_PTR dwDirectDrawHandle; - LPDD_NOTIFYCALLBACK pfnDirectDrawClose; - PVOID pContext; + LPDD_NOTIFYCALLBACK pfnDirectDrawClose; + PVOID pContext; } DDOPENDIRECTDRAWIN, *LPDDOPENDIRECTDRAWIN; -typedef struct _DDOPENDIRECTDRAWOUT -{ - DWORD ddRVal; - HANDLE hDirectDraw; +typedef struct _DDOPENDIRECTDRAWOUT { + DWORD ddRVal; + HANDLE hDirectDraw; } DDOPENDIRECTDRAWOUT, *LPDDOPENDIRECTDRAWOUT; -typedef struct _DDOPENSURFACEIN -{ - HANDLE hDirectDraw; - ULONG_PTR dwSurfaceHandle; - LPDD_NOTIFYCALLBACK pfnSurfaceClose; - PVOID pContext; +typedef struct _DDOPENSURFACEIN { + HANDLE hDirectDraw; + ULONG_PTR dwSurfaceHandle; + LPDD_NOTIFYCALLBACK pfnSurfaceClose; + PVOID pContext; } DDOPENSURFACEIN, *LPDDOPENSURFACEIN; -typedef struct _DDOPENSURFACEOUT -{ - DWORD ddRVal; - HANDLE hSurface; +typedef struct _DDOPENSURFACEOUT { + DWORD ddRVal; + HANDLE hSurface; } DDOPENSURFACEOUT, *LPDDOPENSURFACEOUT; -typedef struct _DDOPENVIDEOPORTIN -{ - HANDLE hDirectDraw; - ULONG dwVideoPortHandle; - LPDD_NOTIFYCALLBACK pfnVideoPortClose; - PVOID pContext; +typedef struct _DDOPENVIDEOPORTIN { + HANDLE hDirectDraw; + ULONG dwVideoPortHandle; + LPDD_NOTIFYCALLBACK pfnVideoPortClose; + PVOID pContext; } DDOPENVIDEOPORTIN, *LPDDOPENVIDEOPORTIN; -typedef struct _DDOPENVIDEOPORTOUT -{ - DWORD ddRVal; - HANDLE hVideoPort; +typedef struct _DDOPENVIDEOPORTOUT { + DWORD ddRVal; + HANDLE hVideoPort; } DDOPENVIDEOPORTOUT, *LPDDOPENVIDEOPORTOUT; -typedef struct _DDOPENVPCAPTUREDEVICEIN -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; - DWORD dwStartLine; - DWORD dwEndLine; - DWORD dwCaptureEveryNFields; - LPDD_NOTIFYCALLBACK pfnCaptureClose; - PVOID pContext; - DWORD dwFlags; -} DDOPENVPCAPTUREDEVICEIN, * LPDDOPENVPCAPTUREDEVICEIN; +typedef struct _DDOPENVPCAPTUREDEVICEIN { + HANDLE hDirectDraw; + HANDLE hVideoPort; + DWORD dwStartLine; + DWORD dwEndLine; + DWORD dwCaptureEveryNFields; + LPDD_NOTIFYCALLBACK pfnCaptureClose; + PVOID pContext; + DWORD dwFlags; +} DDOPENVPCAPTUREDEVICEIN, *LPDDOPENVPCAPTUREDEVICEIN; -typedef struct _DDOPENVPCAPTUREDEVICEOUT -{ - DWORD ddRVal; - HANDLE hCapture; -} DDOPENVPCAPTUREDEVICEOUT, * LPDDOPENVPCAPTUREDEVICEOUT; +typedef struct _DDOPENVPCAPTUREDEVICEOUT { + DWORD ddRVal; + HANDLE hCapture; +} DDOPENVPCAPTUREDEVICEOUT, *LPDDOPENVPCAPTUREDEVICEOUT; -typedef struct _DDREGISTERCALLBACK -{ - HANDLE hDirectDraw; - ULONG dwEvents; - LPDD_NOTIFYCALLBACK pfnCallback; - ULONG_PTR dwParam1; - ULONG_PTR dwParam2; - PVOID pContext; +typedef struct _DDREGISTERCALLBACK { + HANDLE hDirectDraw; + ULONG dwEvents; + LPDD_NOTIFYCALLBACK pfnCallback; + ULONG_PTR dwParam1; + ULONG_PTR dwParam2; + PVOID pContext; } DDREGISTERCALLBACK, *LPDDREGISTERCALLBACK; -typedef struct _DDSETSURFACETATE -{ - HANDLE hDirectDraw; - HANDLE hSurface; - DWORD dwState; - DWORD dwStartField; +typedef struct _DDSETSURFACETATE { + HANDLE hDirectDraw; + HANDLE hSurface; + DWORD dwState; + DWORD dwStartField; } DDSETSURFACESTATE, *LPDDSETSURFACESTATE; -typedef struct _DDSETFIELDNUM -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; - DWORD dwFieldNum; +typedef struct _DDSETFIELDNUM { + HANDLE hDirectDraw; + HANDLE hVideoPort; + DWORD dwFieldNum; } DDSETFIELDNUM, *LPDDSETFIELDNUM; -typedef struct _DDSETSKIPFIELD -{ - HANDLE hDirectDraw; - HANDLE hVideoPort; - DWORD dwStartField; +typedef struct _DDSETSKIPFIELD { + HANDLE hDirectDraw; + HANDLE hVideoPort; + DWORD dwStartField; } DDSETSKIPFIELD, *LPDDSETSKIPFIELD; @@ -346,5 +303,5 @@ DxApi(IN DWORD dwFunctionNum, OUT DWORD cbOutBuffer); - #endif /* __DDKMAPI_INCLUDED__ */ + diff --git a/reactos/include/dxsdk/ddraw.h b/reactos/include/psdk/ddraw.h similarity index 99% rename from reactos/include/dxsdk/ddraw.h rename to reactos/include/psdk/ddraw.h index 1e8dbd22af5..7dac04e13d2 100644 --- a/reactos/include/dxsdk/ddraw.h +++ b/reactos/include/psdk/ddraw.h @@ -1,5 +1,4 @@ - #ifndef __DDRAW_INCLUDED__ #define __DDRAW_INCLUDED__ @@ -44,6 +43,15 @@ #endif #endif +/* 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 @@ -2561,7 +2569,7 @@ DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown ) #undef INTERFACE #ifdef __cplusplus -}; +} #endif #ifdef ENABLE_NAMELESS_UNION_PRAGMA @@ -2569,6 +2577,3 @@ DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown ) #endif #endif - - - diff --git a/reactos/include/psdk/ddrawi.h b/reactos/include/psdk/ddrawi.h new file mode 100644 index 00000000000..5097aa7de23 --- /dev/null +++ b/reactos/include/psdk/ddrawi.h @@ -0,0 +1,2065 @@ +/* + * DirectDraw driver interface + * (DirectX 7 version) + * + * Copyright (C) 2001 Ove Kaaven + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __DDRAWI_INCLUDED__ +#define __DDRAWI_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define OBJECT_ISROOT 0x80000000 + +#include +#include +#include +#include + +#define DDAPI WINAPI + +#define VALID_ALIGNMENT(align) \ + (!((align==0)||(align%2)!= 0 )) + +/* the DirectDraw versions */ +#define DD_VERSION 0x0200 /* compatibility version */ +#define DD_RUNTIME_VERSION 0x0902 /* actual version */ + +/* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */ +#define DD_HAL_VERSION 0x0100 + +/* more DCICOMMAND escapes */ +#ifndef DCICOMMAND +#define DCICOMMAND 3075 +#endif + +#define DDCREATEDRIVEROBJECT 10 +#define DDGET32BITDRIVERNAME 11 +#define DDNEWCALLBACKFNS 12 +#define DDVERSIONINFO 13 + +#define DDUNSUPPORTEDMODE ((DWORD) -1) + +#include "dciddi.h" + +#ifndef CCHDEVICENAME +#define CCHDEVICENAME 32 +#endif +#define MAX_DRIVER_NAME CCHDEVICENAME + +#define DDHAL_DRIVER_DLLNAME "DDRAW16.DLL" +#define DDHAL_APP_DLLNAME "DDRAW.DLL" + +/* GUID */ +#ifdef _WIN32 +DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); +DEFINE_GUID(GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); +DEFINE_GUID(GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); +DEFINE_GUID(GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); +DEFINE_GUID(GUID_D3DCallbacks2, 0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); +DEFINE_GUID(GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e); +DEFINE_GUID(GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37); +DEFINE_GUID(GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); +DEFINE_GUID(GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); +DEFINE_GUID(GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29); +DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae); +DEFINE_GUID(GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5); +DEFINE_GUID(GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); +DEFINE_GUID(GUID_OptSurfaceKmodeInfo, 0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); +DEFINE_GUID(GUID_OptSurfaceUmodeInfo, 0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); +DEFINE_GUID(GUID_UserModeDriverInfo, 0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); +DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); +DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); +DEFINE_GUID(GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e); +DEFINE_GUID(GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A); +#endif + +#ifndef _WIN32 +#undef E_NOTIMPL +#undef E_OUTOFMEMORY +#undef E_INVALIDARG +#undef E_FAIL +#define E_NOTIMPL 0x80004001L +#define E_OUTOFMEMORY 0x8007000EL +#define E_INVALIDARG 0x80070057L +#define E_FAIL 0x80004005L +#endif + +/***************************************************************************** + * Initialization stuff + */ +typedef struct { + char szName[260]; + char szEntryPoint[64]; + DWORD dwContext; +} DD32BITDRIVERDATA,*LPDD32BITDRIVERDATA; + +typedef struct { + DWORD dwHALVersion; + ULONG_PTR dwReserved1; + ULONG_PTR dwReserved2; +} DDVERSIONDATA,*LPDDVERSIONDATA; + +typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext); + +/* predeclare some structures */ +typedef struct _DDHALINFO *LPDDHALINFO; +typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT; + +#ifndef DDRAWI_DIRECTDRAW_DEFINED +typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL; +typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL; +#define DDRAWI_DIRECTDRAW_DEFINED +#endif + +typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT; + +#ifndef DDRAWI_DDRAWSURFACE_DEFINED +typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL; +#define DDRAWI_DDRAWSURFACE_DEFINED +#endif + +typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL; +typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE; +typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE; +typedef struct _DDRAWI_DDRAWPALETTE_INT *LPDDRAWI_DDRAWPALETTE_INT; +typedef struct _DDRAWI_DDRAWPALETTE_LCL *LPDDRAWI_DDRAWPALETTE_LCL; +typedef struct _DDRAWI_DDRAWPALETTE_GBL *LPDDRAWI_DDRAWPALETTE_GBL; +typedef struct _DDRAWI_DDRAWCLIPPER_INT *LPDDRAWI_DDRAWCLIPPER_INT; +typedef struct _DDRAWI_DDRAWCLIPPER_LCL *LPDDRAWI_DDRAWCLIPPER_LCL; +typedef struct _DDRAWI_DDRAWCLIPPER_GBL *LPDDRAWI_DDRAWCLIPPER_GBL; +typedef struct _DDRAWI_DDVIDEOPORT_INT *LPDDRAWI_DDVIDEOPORT_INT; +typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL; +typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT; +typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL; + +/***************************************************************************** + * driver->ddraw callbacks + */ +typedef BOOL (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset); +typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight); +typedef void (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem); + +typedef struct { + DWORD dwSize; + LPDDHAL_SETINFO lpSetInfo; + LPDDHAL_VIDMEMALLOC lpVidMemAlloc; + LPDDHAL_VIDMEMFREE lpVidMemFree; +} DDHALDDRAWFNS, *LPDDHALDDRAWFNS; + +/***************************************************************************** + * mode info structure + */ +typedef struct _DDHALMODEINFO { + DWORD dwWidth; + DWORD dwHeight; + LONG lPitch; + DWORD dwBPP; + WORD wFlags; + WORD wRefreshRate; + DWORD dwRBitMask; + DWORD dwGBitMask; + DWORD dwBBitMask; + DWORD dwAlphaBitMask; +} DDHALMODEINFO, *LPDDHALMODEINFO; + +#define DDMODEINFO_PALETTIZED 0x0001 +#define DDMODEINFO_MODEX 0x0002 +#define DDMODEINFO_UNSUPPORTED 0x0004 +#define DDMODEINFO_STANDARDVGA 0x0008 +#define DDMODEINFO_MAXREFRESH 0x0010 +#define DDMODEINFO_STEREO 0x0020 + +/***************************************************************************** + * video memory info structure + */ +typedef struct _VIDMEM { + DWORD dwFlags; + FLATPTR fpStart; + __GNU_EXTENSION union { + FLATPTR fpEnd; + DWORD dwWidth; + }; + DDSCAPS ddsCaps; + DDSCAPS ddsCapsAlt; + __GNU_EXTENSION union { + LPVMEMHEAP lpHeap; + DWORD dwHeight; + }; +} VIDMEM; + +#define VIDMEM_ISLINEAR 0x00000001l +#define VIDMEM_ISRECTANGULAR 0x00000002l +#define VIDMEM_ISHEAP 0x00000004l +#define VIDMEM_ISNONLOCAL 0x00000008l +#define VIDMEM_ISWC 0x00000010l +#define VIDMEM_HEAPDISABLED 0x00000020l + +typedef struct _VIDMEMINFO { + FLATPTR fpPrimary; + DWORD dwFlags; + DWORD dwDisplayWidth; + DWORD dwDisplayHeight; + LONG lDisplayPitch; + DDPIXELFORMAT ddpfDisplay; + DWORD dwOffscreenAlign; + DWORD dwOverlayAlign; + DWORD dwTextureAlign; + DWORD dwZBufferAlign; + DWORD dwAlphaAlign; + DWORD dwNumHeaps; + LPVIDMEM pvmList; +} VIDMEMINFO, *LPVIDMEMINFO; + +typedef struct _HEAPALIAS { + FLATPTR fpVidMem; + LPVOID lpAlias; + DWORD dwAliasSize; +} HEAPALIAS, *LPHEAPALIAS; + +typedef struct _HEAPALIASINFO { + DWORD dwRefCnt; + DWORD dwFlags; + DWORD dwNumHeaps; + LPHEAPALIAS lpAliases; +} HEAPALIASINFO, *LPHEAPALIASINFO; + +#define HEAPALIASINFO_MAPPEDREAL 0x00000001 +#define HEAPALIASINFO_MAPPEDDUMMY 0x00000002 + +/***************************************************************************** + * capabilities structures + */ +typedef struct _DDCORECAPS { + DWORD dwSize; + DWORD dwCaps; + DWORD dwCaps2; + DWORD dwCKeyCaps; + DWORD dwFXCaps; + DWORD dwFXAlphaCaps; + DWORD dwPalCaps; + DWORD dwSVCaps; + DWORD dwAlphaBltConstBitDepths; + DWORD dwAlphaBltPixelBitDepths; + DWORD dwAlphaBltSurfaceBitDepths; + DWORD dwAlphaOverlayConstBitDepths; + DWORD dwAlphaOverlayPixelBitDepths; + DWORD dwAlphaOverlaySurfaceBitDepths; + DWORD dwZBufferBitDepths; + DWORD dwVidMemTotal; + DWORD dwVidMemFree; + DWORD dwMaxVisibleOverlays; + DWORD dwCurrVisibleOverlays; + DWORD dwNumFourCCCodes; + DWORD dwAlignBoundarySrc; + DWORD dwAlignSizeSrc; + DWORD dwAlignBoundaryDest; + DWORD dwAlignSizeDest; + DWORD dwAlignStrideAlign; + DWORD dwRops[DD_ROP_SPACE]; + DDSCAPS ddsCaps; + DWORD dwMinOverlayStretch; + DWORD dwMaxOverlayStretch; + DWORD dwMinLiveVideoStretch; + DWORD dwMaxLiveVideoStretch; + DWORD dwMinHwCodecStretch; + DWORD dwMaxHwCodecStretch; + DWORD dwReserved1; + DWORD dwReserved2; + DWORD dwReserved3; + DWORD dwSVBCaps; + DWORD dwSVBCKeyCaps; + DWORD dwSVBFXCaps; + DWORD dwSVBRops[DD_ROP_SPACE]; + DWORD dwVSBCaps; + DWORD dwVSBCKeyCaps; + DWORD dwVSBFXCaps; + DWORD dwVSBRops[DD_ROP_SPACE]; + DWORD dwSSBCaps; + DWORD dwSSBCKeyCaps; + DWORD dwSSBFXCaps; + DWORD dwSSBRops[DD_ROP_SPACE]; + DWORD dwMaxVideoPorts; + DWORD dwCurrVideoPorts; + DWORD dwSVBCaps2; +} DDCORECAPS, *LPDDCORECAPS; + +typedef struct _DDNONLOCALVIDMEMCAPS { + DWORD dwSize; + DWORD dwNLVBCaps; + DWORD dwNLVBCaps2; + DWORD dwNLVBCKeyCaps; + DWORD dwNLVBFXCaps; + DWORD dwNLVBRops[DD_ROP_SPACE]; +} DDNONLOCALVIDMEMCAPS, *LPDDNONLOCALVIDMEMCAPS; + +#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2 +#define DDSCAPS2_VERTEXBUFFER DDSCAPS2_RESERVED1 +#define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2 + +/***************************************************************************** + * ddraw->driver callbacks + */ +#define DDHAL_DRIVER_NOTHANDLED 0x00000000l +#define DDHAL_DRIVER_HANDLED 0x00000001l +#define DDHAL_DRIVER_NOCKEYHW 0x00000002l + +typedef struct _DDHAL_DESTROYDRIVERDATA *LPDDHAL_DESTROYDRIVERDATA; +typedef struct _DDHAL_CREATESURFACEDATA *LPDDHAL_CREATESURFACEDATA; +typedef struct _DDHAL_DRVSETCOLORKEYDATA *LPDDHAL_DRVSETCOLORKEYDATA; +typedef struct _DDHAL_SETMODEDATA *LPDDHAL_SETMODEDATA; +typedef struct _DDHAL_WAITFORVERTICALBLANKDATA *LPDDHAL_WAITFORVERTICALBLANKDATA; +typedef struct _DDHAL_CANCREATESURFACEDATA *LPDDHAL_CANCREATESURFACEDATA; +typedef struct _DDHAL_CREATEPALETTEDATA *LPDDHAL_CREATEPALETTEDATA; +typedef struct _DDHAL_GETSCANLINEDATA *LPDDHAL_GETSCANLINEDATA; +typedef struct _DDHAL_SETEXCLUSIVEMODEDATA *LPDDHAL_SETEXCLUSIVEMODEDATA; +typedef struct _DDHAL_FLIPTOGDISURFACEDATA *LPDDHAL_FLIPTOGDISURFACEDATA; + +typedef DWORD (PASCAL *LPDDHAL_DESTROYDRIVER) (LPDDHAL_DESTROYDRIVERDATA); +typedef DWORD (PASCAL *LPDDHAL_CREATESURFACE) (LPDDHAL_CREATESURFACEDATA); +typedef DWORD (PASCAL *LPDDHAL_SETCOLORKEY) (LPDDHAL_DRVSETCOLORKEYDATA); +typedef DWORD (PASCAL *LPDDHAL_SETMODE) (LPDDHAL_SETMODEDATA); +typedef DWORD (PASCAL *LPDDHAL_WAITFORVERTICALBLANK)(LPDDHAL_WAITFORVERTICALBLANKDATA); +typedef DWORD (PASCAL *LPDDHAL_CANCREATESURFACE) (LPDDHAL_CANCREATESURFACEDATA ); +typedef DWORD (PASCAL *LPDDHAL_CREATEPALETTE) (LPDDHAL_CREATEPALETTEDATA); +typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE) (LPDDHAL_GETSCANLINEDATA); +typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE) (LPDDHAL_SETEXCLUSIVEMODEDATA); +typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE) (LPDDHAL_FLIPTOGDISURFACEDATA); + +typedef struct _DDHAL_DDCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHAL_DESTROYDRIVER DestroyDriver; + LPDDHAL_CREATESURFACE CreateSurface; + LPDDHAL_SETCOLORKEY SetColorKey; + LPDDHAL_SETMODE SetMode; + LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; + LPDDHAL_CANCREATESURFACE CanCreateSurface; + LPDDHAL_CREATEPALETTE CreatePalette; + LPDDHAL_GETSCANLINE GetScanLine; + /* DirectX 2 */ + LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; + LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; +} DDHAL_DDCALLBACKS, *LPDDHAL_DDCALLBACKS; + +typedef struct _DDHAL_DESTROYSURFACEDATA *LPDDHAL_DESTROYSURFACEDATA; +typedef struct _DDHAL_FLIPDATA *LPDDHAL_FLIPDATA; +typedef struct _DDHAL_SETCLIPLISTDATA *LPDDHAL_SETCLIPLISTDATA; +typedef struct _DDHAL_LOCKDATA *LPDDHAL_LOCKDATA; +typedef struct _DDHAL_UNLOCKDATA *LPDDHAL_UNLOCKDATA; +typedef struct _DDHAL_BLTDATA *LPDDHAL_BLTDATA; +typedef struct _DDHAL_SETCOLORKEYDATA *LPDDHAL_SETCOLORKEYDATA; +typedef struct _DDHAL_ADDATTACHEDSURFACEDATA *LPDDHAL_ADDATTACHEDSURFACEDATA; +typedef struct _DDHAL_GETBLTSTATUSDATA *LPDDHAL_GETBLTSTATUSDATA; +typedef struct _DDHAL_GETFLIPSTATUSDATA *LPDDHAL_GETFLIPSTATUSDATA; +typedef struct _DDHAL_UPDATEOVERLAYDATA *LPDDHAL_UPDATEOVERLAYDATA; +typedef struct _DDHAL_SETOVERLAYPOSITIONDATA *LPDDHAL_SETOVERLAYPOSITIONDATA; +typedef struct _DDHAL_SETPALETTEDATA *LPDDHAL_SETPALETTEDATA; + +typedef DWORD (PASCAL *LPDDHALSURFCB_DESTROYSURFACE) (LPDDHAL_DESTROYSURFACEDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_FLIP) (LPDDHAL_FLIPDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_SETCLIPLIST) (LPDDHAL_SETCLIPLISTDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_LOCK) (LPDDHAL_LOCKDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_UNLOCK) (LPDDHAL_UNLOCKDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_BLT) (LPDDHAL_BLTDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_SETCOLORKEY) (LPDDHAL_SETCOLORKEYDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_GETBLTSTATUS) (LPDDHAL_GETBLTSTATUSDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_GETFLIPSTATUS) (LPDDHAL_GETFLIPSTATUSDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_UPDATEOVERLAY) (LPDDHAL_UPDATEOVERLAYDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA); +typedef DWORD (PASCAL *LPDDHALSURFCB_SETPALETTE) (LPDDHAL_SETPALETTEDATA); + +typedef struct _DDHAL_DDSURFACECALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALSURFCB_DESTROYSURFACE DestroySurface; + LPDDHALSURFCB_FLIP Flip; + LPDDHALSURFCB_SETCLIPLIST SetClipList; + LPDDHALSURFCB_LOCK Lock; + LPDDHALSURFCB_UNLOCK Unlock; + LPDDHALSURFCB_BLT Blt; + LPDDHALSURFCB_SETCOLORKEY SetColorKey; + LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; + LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; + LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; + LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; + LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; + LPVOID reserved4; + LPDDHALSURFCB_SETPALETTE SetPalette; +} DDHAL_DDSURFACECALLBACKS, *LPDDHAL_DDSURFACECALLBACKS; + +typedef struct _DDHAL_DESTROYPALETTEDATA *LPDDHAL_DESTROYPALETTEDATA; +typedef struct _DDHAL_SETENTRIESDATA *LPDDHAL_SETENTRIESDATA; + +typedef DWORD (PASCAL *LPDDHALPALCB_DESTROYPALETTE) (LPDDHAL_DESTROYPALETTEDATA); +typedef DWORD (PASCAL *LPDDHALPALCB_SETENTRIES) (LPDDHAL_SETENTRIESDATA); + +typedef struct _DDHAL_DDPALETTECALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALPALCB_DESTROYPALETTE DestroyPalette; + LPDDHALPALCB_SETENTRIES SetEntries; +} DDHAL_DDPALETTECALLBACKS, *LPDDHAL_DDPALETTECALLBACKS; + +typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF) (LPDDHAL_CANCREATESURFACEDATA); +typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF) (LPDDHAL_CREATESURFACEDATA); +typedef DWORD (PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF) (LPDDHAL_DESTROYSURFACEDATA); +typedef DWORD (PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF) (LPDDHAL_LOCKDATA); +typedef DWORD (PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF) (LPDDHAL_UNLOCKDATA); + +typedef struct _DDHAL_DDEXEBUFCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer; + LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer; + LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer; + LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer; + LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer; +} DDHAL_DDEXEBUFCALLBACKS, *LPDDHAL_DDEXEBUFCALLBACKS; + +typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA *LPDDHAL_GETAVAILDRIVERMEMORYDATA; +typedef struct _DDHAL_UPDATENONLOCALHEAPDATA *LPDDHAL_UPDATENONLOCALHEAPDATA; +typedef struct _DDHAL_GETHEAPALIGNMENTDATA *LPDDHAL_GETHEAPALIGNMENTDATA; + +typedef DWORD (PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA); +typedef DWORD (PASCAL *LPDDHAL_UPDATENONLOCALHEAP) (LPDDHAL_UPDATENONLOCALHEAPDATA); +typedef DWORD (PASCAL *LPDDHAL_GETHEAPALIGNMENT) (LPDDHAL_GETHEAPALIGNMENTDATA); + +typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; + LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; + LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; + LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus; +} DDHAL_DDMISCELLANEOUSCALLBACKS, *LPDDHAL_DDMISCELLANEOUSCALLBACKS; + +typedef struct _DDHAL_CREATESURFACEEXDATA *LPDDHAL_CREATESURFACEEXDATA; +typedef struct _DDHAL_GETDRIVERSTATEDATA *LPDDHAL_GETDRIVERSTATEDATA; +typedef struct _DDHAL_DESTROYDDLOCALDATA *LPDDHAL_DESTROYDDLOCALDATA; + +typedef DWORD (PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA); +typedef DWORD (PASCAL *LPDDHAL_GETDRIVERSTATE) (LPDDHAL_GETDRIVERSTATEDATA); +typedef DWORD (PASCAL *LPDDHAL_DESTROYDDLOCAL) (LPDDHAL_DESTROYDDLOCALDATA); + +typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPVOID Reserved; + LPDDHAL_CREATESURFACEEX CreateSurfaceEx; + LPDDHAL_GETDRIVERSTATE GetDriverState; + LPDDHAL_DESTROYDDLOCAL DestroyDDLocal; +} DDHAL_DDMISCELLANEOUS2CALLBACKS, *LPDDHAL_DDMISCELLANEOUS2CALLBACKS; + +typedef struct _DDHAL_CANCREATEVPORTDATA *LPDDHAL_CANCREATEVPORTDATA; +typedef struct _DDHAL_CREATEVPORTDATA *LPDDHAL_CREATEVPORTDATA; +typedef struct _DDHAL_FLIPVPORTDATA *LPDDHAL_FLIPVPORTDATA; +typedef struct _DDHAL_GETVPORTCONNECTDATA *LPDDHAL_GETVPORTCONNECTDATA; +typedef struct _DDHAL_GETVPORTBANDWIDTHDATA *LPDDHAL_GETVPORTBANDWIDTHDATA; +typedef struct _DDHAL_GETVPORTINPUTFORMATDATA *LPDDHAL_GETVPORTINPUTFORMATDATA; +typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA; +typedef struct _DDHAL_GETVPORTFIELDDATA *LPDDHAL_GETVPORTFIELDDATA; +typedef struct _DDHAL_GETVPORTLINEDATA *LPDDHAL_GETVPORTLINEDATA; +typedef struct _DDHAL_DESTROYVPORTDATA *LPDDHAL_DESTROYVPORTDATA; +typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA *LPDDHAL_GETVPORTFLIPSTATUSDATA; +typedef struct _DDHAL_UPDATEVPORTDATA *LPDDHAL_UPDATEVPORTDATA; +typedef struct _DDHAL_WAITFORVPORTSYNCDATA *LPDDHAL_WAITFORVPORTSYNCDATA; +typedef struct _DDHAL_GETVPORTSIGNALDATA *LPDDHAL_GETVPORTSIGNALDATA; +typedef struct _DDHAL_VPORTCOLORDATA *LPDDHAL_VPORTCOLORDATA; + +typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA); +typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA); + +typedef struct _DDHAL_DDVIDEOPORTCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; + LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort; + LPDDHALVPORTCB_FLIP FlipVideoPort; + LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth; + LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; + LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; + LPVOID lpReserved1; + LPDDHALVPORTCB_GETFIELD GetVideoPortField; + LPDDHALVPORTCB_GETLINE GetVideoPortLine; + LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; + LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort; + LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; + LPDDHALVPORTCB_UPDATE UpdateVideoPort; + LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync; + LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; + LPDDHALVPORTCB_COLORCONTROL ColorControl; +} DDHAL_DDVIDEOPORTCALLBACKS; + +typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA; + +typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA); + +typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALCOLORCB_COLORCONTROL ColorControl; +} DDHAL_DDCOLORCONTROLCALLBACKS; + +typedef struct _DDHAL_SYNCSURFACEDATA *LPDDHAL_SYNCSURFACEDATA; +typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA; + +typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA); +typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA); + +typedef struct _DDHAL_DDKERNELCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALKERNELCB_SYNCSURFACE SyncSurfaceData; + LPDDHALKERNELCB_SYNCVIDEOPORT SyncVideoPortData; +} DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS; + +typedef struct _DDHAL_GETMOCOMPGUIDSDATA *LPDDHAL_GETMOCOMPGUIDSDATA; +typedef struct _DDHAL_GETMOCOMPFORMATSDATA *LPDDHAL_GETMOCOMPFORMATSDATA; +typedef struct _DDHAL_CREATEMOCOMPDATA *LPDDHAL_CREATEMOCOMPDATA; +typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA *LPDDHAL_GETMOCOMPCOMPBUFFDATA; +typedef struct _DDHAL_GETINTERNALMOCOMPDATA *LPDDHAL_GETINTERNALMOCOMPDATA; +typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA *LPDDHAL_BEGINMOCOMPFRAMEDATA; +typedef struct _DDHAL_ENDMOCOMPFRAMEDATA *LPDDHAL_ENDMOCOMPFRAMEDATA; +typedef struct _DDHAL_RENDERMOCOMPDATA *LPDDHAL_RENDERMOCOMPDATA; +typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA *LPDDHAL_QUERYMOCOMPSTATUSDATA; +typedef struct _DDHAL_DESTROYMOCOMPDATA *LPDDHAL_DESTROYMOCOMPDATA; + +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)(LPDDHAL_GETMOCOMPGUIDSDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)(LPDDHAL_GETMOCOMPFORMATSDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)(LPDDHAL_CREATEMOCOMPDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)(LPDDHAL_GETMOCOMPCOMPBUFFDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)(LPDDHAL_GETINTERNALMOCOMPDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)(LPDDHAL_BEGINMOCOMPFRAMEDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)(LPDDHAL_ENDMOCOMPFRAMEDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)(LPDDHAL_RENDERMOCOMPDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)(LPDDHAL_QUERYMOCOMPSTATUSDATA); +typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)(LPDDHAL_DESTROYMOCOMPDATA); + +typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids; + LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats; + LPDDHALMOCOMPCB_CREATE CreateMoComp; + LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; + LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; + LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame; + LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame; + LPDDHALMOCOMPCB_RENDER RenderMoComp; + LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus; + LPDDHALMOCOMPCB_DESTROY DestroyMoComp; +} DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS; + +typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE); + +/***************************************************************************** + * driver info structure + * + * The HAL is queried for additional callbacks via the GetDriverInfo callback. + */ +typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA; +typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA); + +typedef struct _DDHAL_GETDRIVERINFODATA { + DWORD dwSize; + DWORD dwFlags; + GUID guidInfo; + DWORD dwExpectedSize; + LPVOID lpvData; + DWORD dwActualSize; + HRESULT ddRVal; + ULONG_PTR dwContext; +} DDHAL_GETDRIVERINFODATA; + +typedef struct _DDHALINFO { + DWORD dwSize; + LPDDHAL_DDCALLBACKS lpDDCallbacks; + LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks; + LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks; + VIDMEMINFO vmiData; + DDCORECAPS ddCaps; + DWORD dwMonitorFrequency; + LPDDHAL_GETDRIVERINFO GetDriverInfo; + DWORD dwModeIndex; + LPDWORD lpdwFourCC; + DWORD dwNumModes; + LPDDHALMODEINFO lpModeInfo; + DWORD dwFlags; + LPVOID lpPDevice; + DWORD hInstance; + /* DirectX 2 */ + ULONG_PTR lpD3DGlobalDriverData; + ULONG_PTR lpD3DHALCallbacks; + LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks; +} DDHALINFO; + +#define DDPALETTECALLBACKSSIZE sizeof(DDHAL_DDPALETTECALLBACKS) +#define DDSURFACECALLBACKSSIZE sizeof(DDHAL_DDSURFACECALLBACKS) +#define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS) +#define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS) +#define DDEXEBUFCALLBACKSSIZE sizeof(DDHAL_DDEXEBUFCALLBACKS) +#define DDVIDEOPORTCALLBACKSSIZE sizeof(DDHAL_DDVIDEOPORTCALLBACKS) +#define DDCOLORCONTROLCALLBACKSSIZE sizeof(DDHAL_DDCOLORCONTROLCALLBACKS) +#define DDKERNELCALLBACKSSIZE sizeof(DDHAL_DDKERNELCALLBACKS) +#define DDMOTIONCOMPCALLBACKSSIZE sizeof(DDHAL_DDMOTIONCOMPCALLBACKS) + +#define MAX_PALETTE_SIZE 256 + +#define MAX_AUTOFLIP_BUFFERS 10 +#define DDSCAPS2_INDEXBUFFER DDSCAPS2_RESERVED3 +#define DDSCAPS3_VIDEO DDSCAPS3_RESERVED2 +#define D3DFMT_INTERNAL_D32 71 +#define D3DFMT_INTERNAL_S1D15 72 +#define D3DFMT_INTERNAL_D15S1 73 +#define D3DFMT_INTERNAL_S8D24 74 +#define D3DFMT_INTERNAL_D24S8 75 +#define D3DFMT_INTERNAL_X8D24 76 +#define D3DFMT_INTERNAL_D24X8 77 +#define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l +#define DDHAL_PLEASEALLOC_LINEARSIZE 0x00000003l + +#define DDHAL_CB32_DESTROYDRIVER 0x00000001l +#define DDHAL_CB32_CREATESURFACE 0x00000002l +#define DDHAL_CB32_SETCOLORKEY 0x00000004l +#define DDHAL_CB32_SETMODE 0x00000008l +#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l +#define DDHAL_CB32_CANCREATESURFACE 0x00000020l +#define DDHAL_CB32_CREATEPALETTE 0x00000040l +#define DDHAL_CB32_GETSCANLINE 0x00000080l +#define DDHAL_CB32_SETEXCLUSIVEMODE 0x00000100l +#define DDHAL_CB32_FLIPTOGDISURFACE 0x00000200l +#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l +#define DDHAL_PALCB32_SETENTRIES 0x00000002l +#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001 +#define DDHALINFO_MODEXILLEGAL 0x00000002 +#define DDHALINFO_GETDRIVERINFOSET 0x00000004 +#define DDHALINFO_GETDRIVERINFO2 0x00000008 +#define DDRAWI_VPORTSTART 0x0001 +#define DDRAWI_VPORTSTOP 0x0002 +#define DDRAWI_VPORTUPDATE 0x0003 +#define DDRAWI_VPORTGETCOLOR 0x0001 +#define DDRAWI_VPORTSETCOLOR 0x0002 +#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001 +#define DDHAL_SURFCB32_FLIP 0x00000002 +#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004 +#define DDHAL_SURFCB32_LOCK 0x00000008 +#define DDHAL_SURFCB32_UNLOCK 0x00000010 +#define DDHAL_SURFCB32_BLT 0x00000020 +#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040 +#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080 +#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100 +#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200 +#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400 +#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800 +#define DDHAL_SURFCB32_RESERVED4 0x00001000 +#define DDHAL_SURFCB32_SETPALETTE 0x00002000 +#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001 +#define DDHAL_MISCCB32_UPDATENONLOCALHEAP 0x00000002 +#define DDHAL_MISCCB32_GETHEAPALIGNMENT 0x00000004 +#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS 0x00000008 +#define DDHAL_MISC2CB32_ALPHABLT 0x00000001 +#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002 +#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004 +#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008 +#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l +#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l +#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l +#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l +#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l +#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001 +#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002 +#define DDHAL_VPORT32_FLIP 0x00000004 +#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008 +#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010 +#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020 +#define DDHAL_VPORT32_GETFIELD 0x00000080 +#define DDHAL_VPORT32_GETLINE 0x00000100 +#define DDHAL_VPORT32_GETCONNECT 0x00000200 +#define DDHAL_VPORT32_DESTROY 0x00000400 +#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800 +#define DDHAL_VPORT32_UPDATE 0x00001000 +#define DDHAL_VPORT32_WAITFORSYNC 0x00002000 +#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000 +#define DDHAL_VPORT32_COLORCONTROL 0x00008000 +#define DDHAL_COLOR_COLORCONTROL 0x00000001 +#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l +#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l +#define DDHAL_MOCOMP32_GETGUIDS 0x00000001 +#define DDHAL_MOCOMP32_GETFORMATS 0x00000002 +#define DDHAL_MOCOMP32_CREATE 0x00000004 +#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008 +#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010 +#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020 +#define DDHAL_MOCOMP32_ENDFRAME 0x00000040 +#define DDHAL_MOCOMP32_RENDER 0x00000080 +#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100 +#define DDHAL_MOCOMP32_DESTROY 0x00000200 + +/* where the high-level ddraw implementation stores the callbacks */ +typedef struct _DDHAL_CALLBACKS { + DDHAL_DDCALLBACKS cbDDCallbacks; + DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks; + DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks; + DDHAL_DDCALLBACKS HALDD; + DDHAL_DDSURFACECALLBACKS HALDDSurface; + DDHAL_DDPALETTECALLBACKS HALDDPalette; + DDHAL_DDCALLBACKS HELDD; + DDHAL_DDSURFACECALLBACKS HELDDSurface; + DDHAL_DDPALETTECALLBACKS HELDDPalette; + DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks; + DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf; + DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf; + DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks; + DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort; + DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks; + DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl; + DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks; + DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous; + DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks; + DDHAL_DDKERNELCALLBACKS HALDDKernel; + DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks; + DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp; +} DDHAL_CALLBACKS, *LPDDHAL_CALLBACKS; + +/***************************************************************************** + * parameter structures + */ +typedef struct _DDHAL_DESTROYDRIVERDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + HRESULT ddRVal; + LPDDHAL_DESTROYDRIVER DestroyDriver; +} DDHAL_DESTROYDRIVERDATA; + +typedef struct _DDHAL_SETMODEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwModeIndex; + HRESULT ddRVal; + LPDDHAL_SETMODE SetMode; + BOOL inexcl; + BOOL useRefreshRate; +} DDHAL_SETMODEDATA; + +typedef struct _DDHAL_CREATESURFACEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDSURFACEDESC lpDDSurfaceDesc; + LPDDRAWI_DDRAWSURFACE_LCL *lplpSList; + DWORD dwSCnt; + HRESULT ddRVal; + LPDDHAL_CREATESURFACE CreateSurface; +} DDHAL_CREATESURFACEDATA; + +typedef struct _DDHAL_CANCREATESURFACEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDSURFACEDESC lpDDSurfaceDesc; + DWORD bIsDifferentPixelFormat; + HRESULT ddRVal; + LPDDHAL_CANCREATESURFACE CanCreateSurface; +} DDHAL_CANCREATESURFACEDATA; + +typedef struct _DDHAL_CREATEPALETTEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; + LPPALETTEENTRY lpColorTable; + HRESULT ddRVal; + LPDDHAL_CREATEPALETTE CreatePalette; + BOOL is_excl; +} DDHAL_CREATEPALETTEDATA; + +typedef struct _DDHAL_SETEXCLUSIVEMODEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwEnterExcl; + DWORD dwReserved; + HRESULT ddRVal; + LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; +} DDHAL_SETEXCLUSIVEMODEDATA; + +/* surfaces */ +typedef struct _DDHAL_DESTROYSURFACEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + HRESULT ddRVal; + LPDDHALSURFCB_DESTROYSURFACE DestroySurface; +} DDHAL_DESTROYSURFACEDATA; + +typedef struct _DDHAL_FLIPDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; + DWORD dwFlags; + HRESULT ddRVal; + LPDDHALSURFCB_FLIP Flip; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurrLeft; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfTargLeft; +} DDHAL_FLIPDATA; + +typedef struct _DDHAL_LOCKDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + DWORD bHasRect; + RECTL rArea; + LPVOID lpSurfData; + HRESULT ddRVal; + LPDDHALSURFCB_LOCK Lock; + DWORD dwFlags; +} DDHAL_LOCKDATA; + +typedef struct _DDHAL_UNLOCKDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + HRESULT ddRVal; + LPDDHALSURFCB_UNLOCK Unlock; +} DDHAL_UNLOCKDATA; + +typedef struct _DDHAL_BLTDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; + RECTL rDest; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; + RECTL rSrc; + DWORD dwFlags; + DWORD dwROPFlags; + DDBLTFX bltFX; + HRESULT ddRVal; + LPDDHALSURFCB_BLT Blt; + BOOL IsClipped; + RECTL rOrigDest; + RECTL rOrigSrc; + DWORD dwRectCnt; + LPRECT prDestRects; +} DDHAL_BLTDATA; + +typedef struct _DDHAL_SETPALETTEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; + HRESULT ddRVal; + LPDDHALSURFCB_SETPALETTE SetPalette; + BOOL Attach; +} DDHAL_SETPALETTEDATA; + +/* palettes */ +typedef struct _DDHAL_DESTROYPALETTEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; + HRESULT ddRVal; + LPDDHALPALCB_DESTROYPALETTE DestroyPalette; +} DDHAL_DESTROYPALETTEDATA; + +typedef struct _DDHAL_SETENTRIESDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; + DWORD dwBase; + DWORD dwNumEntries; + LPPALETTEENTRY lpEntries; + HRESULT ddRVal; + LPDDHALPALCB_SETENTRIES SetEntries; +} DDHAL_SETENTRIESDATA; + +typedef struct _DDHAL_CANCREATEVPORTDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDVIDEOPORTDESC lpDDVideoPortDesc; + HRESULT ddRVal; + LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; +} DDHAL_CANCREATEVPORTDATA; + +typedef struct _DDHAL_CREATEVPORTDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDVIDEOPORTDESC lpDDVideoPortDesc; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + HRESULT ddRVal; + LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort; +} DDHAL_CREATEVPORTDATA; + +typedef struct _DDHAL_GETVPORTBANDWIDTHDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + LPDDPIXELFORMAT lpddpfFormat; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwFlags; + LPDDVIDEOPORTBANDWIDTH lpBandwidth; + HRESULT ddRVal; + LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth; +} DDHAL_GETVPORTBANDWIDTHDATA; + +typedef struct _DDHAL_GETVPORTINPUTFORMATDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwFlags; + LPDDPIXELFORMAT lpddpfFormat; + DWORD dwNumFormats; + HRESULT ddRVal; + LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; +} DDHAL_GETVPORTINPUTFORMATDATA; + +typedef struct _DDHAL_GETVPORTFIELDDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + BOOL bField; + HRESULT ddRVal; + LPDDHALVPORTCB_GETFIELD GetVideoPortField; +} DDHAL_GETVPORTFIELDDATA; + +typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwFlags; + LPDDPIXELFORMAT lpddpfInputFormat; + LPDDPIXELFORMAT lpddpfOutputFormats; + DWORD dwNumFormats; + HRESULT ddRVal; + LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; +} DDHAL_GETVPORTOUTPUTFORMATDATA; + +typedef struct _DDHAL_GETVPORTLINEDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwLine; + HRESULT ddRVal; + LPDDHALVPORTCB_GETLINE GetVideoPortLine; +} DDHAL_GETVPORTLINEDATA; + +typedef struct _DDHAL_DESTROYVPORTDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + HRESULT ddRVal; + LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort; +} DDHAL_DESTROYVPORTDATA; + +typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + FLATPTR fpSurface; + HRESULT ddRVal; + LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; +} DDHAL_GETVPORTFLIPSTATUSDATA; + +typedef struct _DDHAL_UPDATEVPORTDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + LPDDRAWI_DDRAWSURFACE_INT *lplpDDSurface; + LPDDRAWI_DDRAWSURFACE_INT *lplpDDVBISurface; + LPDDVIDEOPORTINFO lpVideoInfo; + DWORD dwFlags; + DWORD dwNumAutoflip; + DWORD dwNumVBIAutoflip; + HRESULT ddRVal; + LPDDHALVPORTCB_UPDATE UpdateVideoPort; +} DDHAL_UPDATEVPORTDATA; + +typedef struct _DDHAL_WAITFORVPORTSYNCDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwFlags; + DWORD dwLine; + DWORD dwTimeOut; + HRESULT ddRVal; + LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync; +} DDHAL_WAITFORVPORTSYNCDATA; + +typedef struct _DDHAL_GETVPORTSIGNALDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwStatus; + HRESULT ddRVal; + LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; +} DDHAL_GETVPORTSIGNALDATA; + +typedef struct _DDHAL_VPORTCOLORDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwFlags; + LPDDCOLORCONTROL lpColorData; + HRESULT ddRVal; + LPDDHALVPORTCB_COLORCONTROL ColorControl; +} DDHAL_VPORTCOLORDATA; + +typedef struct _DDHAL_FLIPVPORTDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; + HRESULT ddRVal; + LPDDHALVPORTCB_FLIP FlipVideoPort; +} DDHAL_FLIPVPORTDATA; + +typedef struct _DDHAL_GETVPORTCONNECTDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + DWORD dwPortId; + LPDDVIDEOPORTCONNECT lpConnect; + DWORD dwNumEntries; + HRESULT ddRVal; + LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; +} DDHAL_GETVPORTCONNECTDATA; + +typedef struct _DDHAL_SYNCSURFACEDATA { + DWORD dwSize; + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + DWORD dwSurfaceOffset; + ULONG_PTR fpLockPtr; + LONG lPitch; + DWORD dwOverlayOffset; + DWORD dwOverlaySrcWidth; + DWORD dwOverlaySrcHeight; + DWORD dwOverlayDestWidth; + DWORD dwOverlayDestHeight; + ULONG_PTR dwDriverReserved1; + ULONG_PTR dwDriverReserved2; + ULONG_PTR dwDriverReserved3; + HRESULT ddRVal; +} DDHAL_SYNCSURFACEDATA; + +typedef struct _DDHAL_SYNCVIDEOPORTDATA { + DWORD dwSize; + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + DWORD dwOriginOffset; + DWORD dwHeight; + DWORD dwVBIHeight; + ULONG_PTR dwDriverReserved1; + ULONG_PTR dwDriverReserved2; + ULONG_PTR dwDriverReserved3; + HRESULT ddRVal; +} DDHAL_SYNCVIDEOPORTDATA; + +typedef struct _DDHAL_DESTROYDDLOCALDATA { + DWORD dwFlags; + LPDDRAWI_DIRECTDRAW_LCL pDDLcl; + HRESULT ddRVal; +} DDHAL_DESTROYDDLOCALDATA; + +typedef struct _DDHAL_CREATESURFACEEXDATA { + DWORD dwFlags; + LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; + HRESULT ddRVal; +} DDHAL_CREATESURFACEEXDATA; + +typedef struct _DDHAL_GETHEAPALIGNMENTDATA { + ULONG_PTR dwInstance; + DWORD dwHeap; + HRESULT ddRVal; + LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; + HEAPALIGNMENT Alignment; +} DDHAL_GETHEAPALIGNMENTDATA; + +typedef struct _DDMORESURFACECAPS { + DWORD dwSize; + DDSCAPSEX ddsCapsMore; + struct tagExtendedHeapRestrictions { + DDSCAPSEX ddsCapsEx; + DDSCAPSEX ddsCapsExAlt; + } ddsExtendedHeapRestrictions[1]; +} DDMORESURFACECAPS, *LPDDMORESURFACECAPS; + +typedef struct _DDSTEREOMODE { + DWORD dwSize; + DWORD dwHeight; + DWORD dwWidth; + DWORD dwBpp; + DWORD dwRefreshRate; + BOOL bSupported; +} DDSTEREOMODE, *LPDDSTEREOMODE; + +/***************************************************************************** + * high-level ddraw implementation structures + */ +typedef struct _IUNKNOWN_LIST { + struct _IUNKNOWN_LIST *lpLink; + LPGUID lpGuid; +#ifndef _NO_COM + IUnknown *lpIUnknown; +#else + LPVOID lpIUnknown; +#endif /* _NO_COM */ +} IUNKNOWN_LIST, *LPIUNKNOWN_LIST; + +typedef struct _PROCESS_LIST { + struct _PROCESS_LIST *lpLink; + DWORD dwProcessId; + DWORD dwRefCnt; + DWORD dwAlphaDepth; + DWORD dwZDepth; +} PROCESS_LIST, *LPPROCESS_LIST; + +typedef struct _ATTACHLIST { + DWORD dwFlags; + struct _ATTACHLIST *lpLink; + LPDDRAWI_DDRAWSURFACE_LCL lpAttached; + LPDDRAWI_DDRAWSURFACE_INT lpIAttached; +} ATTACHLIST, *LPATTACHLIST; + +#define DDAL_IMPLICIT 0x00000001 + +typedef struct _ACCESSRECTLIST { + struct _ACCESSRECTLIST *lpLink; + RECT rDest; + LPDDRAWI_DIRECTDRAW_LCL lpOwner; + LPVOID lpSurfaceData; + DWORD dwFlags; + LPHEAPALIASINFO lpHeapAliasInfo; +} ACCESSRECTLIST, *LPACCESSRECTLIST; + +#define ACCESSRECT_VRAMSTYLE 0x00000001 +#define ACCESSRECT_NOTHOLDINGWIN16LOCK 0x00000002 +#define ACCESSRECT_BROKEN 0x00000004 + +typedef struct _DBLNODE { + struct _DBLNODE *next; + struct _DBLNODE *prev; + LPDDRAWI_DDRAWSURFACE_LCL object; + LPDDRAWI_DDRAWSURFACE_INT object_int; +} DBLNODE, *LPDBLNODE; + +typedef struct _DDRAWI_DIRECTDRAW_INT { + LPVOID lpVtbl; + LPDDRAWI_DIRECTDRAW_LCL lpLcl; + LPDDRAWI_DIRECTDRAW_INT lpLink; + DWORD dwIntRefCnt; +} DDRAWI_DIRECTDRAW_INT; + +typedef struct _DDRAWI_DIRECTDRAW_LCL { + DWORD lpDDMore; + LPDDRAWI_DIRECTDRAW_GBL lpGbl; + DWORD dwUnused0; + DWORD dwLocalFlags; + DWORD dwLocalRefCnt; + DWORD dwProcessId; +#ifndef _NO_COM + IUnknown *pUnkOuter; +#else + PVOID pUnkOuter; +#endif + DWORD dwObsolete1; + ULONG_PTR hWnd; + ULONG_PTR hDC; + DWORD dwErrorMode; + LPDDRAWI_DDRAWSURFACE_INT lpPrimary; + LPDDRAWI_DDRAWSURFACE_INT lpCB; + DWORD dwPreferredMode; + /* DirectX 2 */ + HINSTANCE hD3DInstance; +#ifndef _NO_COM + IUnknown *pD3DIUnknown; +#else + PVOID pD3DIUnknown; +#endif + LPDDHAL_CALLBACKS lpDDCB; + ULONG_PTR hDDVxd; + /* DirectX 5.0 */ + DWORD dwAppHackFlags; + /* DirectX 5.0A */ + ULONG_PTR hFocusWnd; + DWORD dwHotTracking; + DWORD dwIMEState; + /* DirectX 6.0 */ + ULONG_PTR hWndPopup; + ULONG_PTR hDD; + ULONG_PTR hGammaCalibrator; + LPDDGAMMACALIBRATORPROC lpGammaCalibrator; +} DDRAWI_DIRECTDRAW_LCL; + +#define DDRAWILCL_HASEXCLUSIVEMODE 0x00000001 +#define DDRAWILCL_ISFULLSCREEN 0x00000002 +#define DDRAWILCL_SETCOOPCALLED 0x00000004 +#define DDRAWILCL_ACTIVEYES 0x00000008 +#define DDRAWILCL_ACTIVENO 0x00000010 +#define DDRAWILCL_HOOKEDHWND 0x00000020 +#define DDRAWILCL_ALLOWMODEX 0x00000040 +#define DDRAWILCL_V1SCLBEHAVIOUR 0x00000080 +#define DDRAWILCL_MODEHASBEENCHANGED 0x00000100 +#define DDRAWILCL_CREATEDWINDOW 0x00000200 +#define DDRAWILCL_DIRTYDC 0x00000400 +#define DDRAWILCL_DISABLEINACTIVATE 0x00000800 +#define DDRAWILCL_CURSORCLIPPED 0x00001000 +#define DDRAWILCL_EXPLICITMONITOR 0x00002000 +#define DDRAWILCL_MULTITHREADED 0x00004000 +#define DDRAWILCL_FPUSETUP 0x00008000 +#define DDRAWILCL_POWEREDDOWN 0x00010000 +#define DDRAWILCL_DIRECTDRAW7 0x00020000 +#define DDRAWILCL_ATTEMPTEDD3DCONTEXT 0x00040000 +#define DDRAWILCL_FPUPRESERVE 0x00080000 +#define DDRAWILCL_DX8DRIVER 0x00100000 +#define DDRAWILCL_DIRECTDRAW8 0x00200000 + +typedef struct _DDRAWI_DIRECTDRAW_GBL { + DWORD dwRefCnt; + DWORD dwFlags; + FLATPTR fpPrimaryOrig; + DDCORECAPS ddCaps; + DWORD dwInternal1; + DWORD dwUnused1[9]; + LPDDHAL_CALLBACKS lpDDCBtmp; + LPDDRAWI_DDRAWSURFACE_INT dsList; + LPDDRAWI_DDRAWPALETTE_INT palList; + LPDDRAWI_DDRAWCLIPPER_INT clipperList; + LPDDRAWI_DIRECTDRAW_GBL lp16DD; + DWORD dwMaxOverlays; + DWORD dwCurrOverlays; + DWORD dwMonitorFrequency; + DDCORECAPS ddHELCaps; + DWORD dwUnused2[50]; + DDCOLORKEY ddckCKDestOverlay; + DDCOLORKEY ddckCKSrcOverlay; + VIDMEMINFO vmiData; + LPVOID lpDriverHandle; + LPDDRAWI_DIRECTDRAW_LCL lpExclusiveOwner; + DWORD dwModeIndex; + DWORD dwModeIndexOrig; + DWORD dwNumFourCC; + LPDWORD lpdwFourCC; + DWORD dwNumModes; + LPDDHALMODEINFO lpModeInfo; + PROCESS_LIST plProcessList; + DWORD dwSurfaceLockCount; + DWORD dwAliasedLockCnt; + ULONG_PTR dwReserved3; + ULONG_PTR hDD; + char cObsolete[12]; + DWORD dwReserved1; + DWORD dwReserved2; + DBLNODE dbnOverlayRoot; + volatile LPWORD lpwPDeviceFlags; + DWORD dwPDevice; + DWORD dwWin16LockCnt; + DWORD dwUnused3; + DWORD hInstance; + DWORD dwEvent16; + DWORD dwSaveNumModes; + /* DirectX 2 */ + ULONG_PTR lpD3DGlobalDriverData; + ULONG_PTR lpD3DHALCallbacks; + DDCORECAPS ddBothCaps; + /* DirectX 5.0 */ + LPDDVIDEOPORTCAPS lpDDVideoPortCaps; + LPDDRAWI_DDVIDEOPORT_INT dvpList; + ULONG_PTR lpD3DHALCallbacks2; + RECT rectDevice; + DWORD cMonitors; + LPVOID gpbmiSrc; + LPVOID gpbmiDest; + LPHEAPALIASINFO phaiHeapAliases; + ULONG_PTR hKernelHandle; + ULONG_PTR pfnNotifyProc; + LPDDKERNELCAPS lpDDKernelCaps; + LPDDNONLOCALVIDMEMCAPS lpddNLVCaps; + LPDDNONLOCALVIDMEMCAPS lpddNLVHELCaps; + LPDDNONLOCALVIDMEMCAPS lpddNLVBothCaps; + ULONG_PTR lpD3DExtendedCaps; + /* DirectX 5.0A */ + DWORD dwDOSBoxEvent; + RECT rectDesktop; + char cDriverName[MAX_DRIVER_NAME]; + /* DirectX 6.0 */ + ULONG_PTR lpD3DHALCallbacks3; + DWORD dwNumZPixelFormats; + LPDDPIXELFORMAT lpZPixelFormats; + LPDDRAWI_DDMOTIONCOMP_INT mcList; + DWORD hDDVxd; + DDSCAPSEX ddsCapsMore; +} DDRAWI_DIRECTDRAW_GBL; + +#define DDRAWI_xxxxxxxxx1 0x00000001 +#define DDRAWI_xxxxxxxxx2 0x00000002 +#define DDRAWI_VIRTUALDESKTOP 0x00000008 +#define DDRAWI_MODEX 0x00000010 +#define DDRAWI_DISPLAYDRV 0x00000020 +#define DDRAWI_FULLSCREEN 0x00000040 +#define DDRAWI_MODECHANGED 0x00000080 +#define DDRAWI_NOHARDWARE 0x00000100 +#define DDRAWI_PALETTEINIT 0x00000200 +#define DDRAWI_NOEMULATION 0x00000400 +#define DDRAWI_HASCKEYDESTOVERLAY 0x00000800 +#define DDRAWI_HASCKEYSRCOVERLAY 0x00001000 +#define DDRAWI_HASGDIPALETTE 0x00002000 +#define DDRAWI_EMULATIONINITIALIZED 0x00004000 +#define DDRAWI_HASGDIPALETTE_EXCLUSIVE 0x00008000 +#define DDRAWI_MODEXILLEGAL 0x00010000 +#define DDRAWI_FLIPPEDTOGDI 0x00020000 +#define DDRAWI_NEEDSWIN16FORVRAMLOCK 0x00040000 +#define DDRAWI_PDEVICEVRAMBITCLEARED 0x00080000 +#define DDRAWI_STANDARDVGA 0x00100000 +#define DDRAWI_EXTENDEDALIGNMENT 0x00200000 +#define DDRAWI_CHANGINGMODE 0x00400000 +#define DDRAWI_GDIDRV 0x00800000 +#define DDRAWI_ATTACHEDTODESKTOP 0x01000000 +#define DDRAWI_UMODELOADED 0x02000000 +#define DDRAWI_DDRAWDATANOTFETCHED 0x04000000 +#define DDRAWI_SECONDARYDRIVERLOADED 0x08000000 +#define DDRAWI_TESTINGMODES 0x10000000 +#define DDRAWI_DRIVERINFO2 0x20000000 +#define DDRAWI_BADPDEV 0x40000000 + +/* surfaces */ +typedef struct _DDRAWI_DDRAWSURFACE_INT { + LPVOID lpVtbl; + LPDDRAWI_DDRAWSURFACE_LCL lpLcl; + LPDDRAWI_DDRAWSURFACE_INT lpLink; + DWORD dwIntRefCnt; +} DDRAWI_DDRAWSURFACE_INT; + +typedef struct _DDRAWI_DDRAWSURFACE_GBL { + DWORD dwRefCnt; + DWORD dwGlobalFlags; + __GNU_EXTENSION union { + LPACCESSRECTLIST lpRectList; + DWORD dwBlockSizeY; + LONG lSlicePitch; + }; + __GNU_EXTENSION union { + LPVMEMHEAP lpVidMemHeap; + DWORD dwBlockSizeX; + }; + __GNU_EXTENSION union { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPVOID lpDDHandle; + }; + FLATPTR fpVidMem; + __GNU_EXTENSION union { + LONG lPitch; + DWORD dwLinearSize; + }; + WORD wHeight; + WORD wWidth; + DWORD dwUsageCount; + ULONG_PTR dwReserved1; + DDPIXELFORMAT ddpfSurface; +} DDRAWI_DDRAWSURFACE_GBL; + +#define DDRAWISURFGBL_MEMFREE 0x00000001L +#define DDRAWISURFGBL_SYSMEMREQUESTED 0x00000002L +#define DDRAWISURFGBL_ISGDISURFACE 0x00000004L +#define DDRAWISURFGBL_SOFTWAREAUTOFLIP 0x00000008L +#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK 0x00000010L +#define DDRAWISURFGBL_LOCKVRAMSTYLE 0x00000020L +#define DDRAWISURFGBL_LOCKBROKEN 0x00000040L +#define DDRAWISURFGBL_IMPLICITHANDLE 0x00000080L +#define DDRAWISURFGBL_ISCLIENTMEM 0x00000100L +#define DDRAWISURFGBL_HARDWAREOPSOURCE 0x00000200L +#define DDRAWISURFGBL_HARDWAREOPDEST 0x00000400L +#define DDRAWISURFGBL_HARDWAREOPSTARTED (DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST) +#define DDRAWISURFGBL_VPORTINTERLEAVED 0x00000800L +#define DDRAWISURFGBL_VPORTDATA 0x00001000L +#define DDRAWISURFGBL_LATEALLOCATELINEAR 0x00002000L +#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER 0x00004000L +#define DDRAWISURFGBL_FASTLOCKHELD 0x00008000L +#define DDRAWISURFGBL_READONLYLOCKHELD 0x00010000L +#define DDRAWISURFGBL_DX8SURFACE 0x00080000L +#define DDRAWISURFGBL_DDHELDONTFREE 0x00100000L +#define DDRAWISURFGBL_NOTIFYWHENUNLOCKED 0x00200000L +#define DDRAWISURFGBL_RESERVED0 0x80000000L // Reserved flag + +typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE { + DWORD dwSize; + __GNU_EXTENSION union { + DWORD dwPhysicalPageTable; + FLATPTR fpPhysicalVidMem; + }; + LPDWORD pPageTable; + DWORD cPages; + ULONG_PTR dwSavedDCContext; + FLATPTR fpAliasedVidMem; + ULONG_PTR dwDriverReserved; + ULONG_PTR dwHELReserved; + DWORD cPageUnlocks; + ULONG_PTR hKernelSurface; + DWORD dwKernelRefCnt; + LPDDCOLORCONTROL lpColorInfo; + FLATPTR fpNTAlias; + DWORD dwContentsStamp; + LPVOID lpvUnswappedDriverReserved; + LPVOID lpDDRAWReserved2; + DWORD dwDDRAWReserved1; + DWORD dwDDRAWReserved2; + FLATPTR fpAliasOfVidMem; +} DDRAWI_DDRAWSURFACE_GBL_MORE; + +/* the MS version of this macro was somewhat obfuscated and unreadable + * (possibly because of mediocre MS coders)... so I simplified it... + * (and so I commit no copyright violations either, hah) */ +#define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \ + (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1)) + +#define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \ + ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem ) + +typedef struct _DISPLAYMODEINFO { + WORD wWidth; + WORD wHeight; + BYTE wBPP; + BYTE wMonitorsAttachedToDesktop; + WORD wRefreshRate; +} DISPLAYMODEINFO, *LPDISPLAYMODEINFO; + +#define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO))) + +typedef struct _DDRAWI_DDRAWSURFACE_MORE { + DWORD dwSize; + IUNKNOWN_LIST *lpIUnknowns; + LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; + DWORD dwPageLockCount; + DWORD dwBytesAllocated; + LPDDRAWI_DIRECTDRAW_INT lpDD_int; + DWORD dwMipMapCount; + LPDDRAWI_DDRAWCLIPPER_INT lpDDIClipper; + /* DirectX 5.0 */ + LPHEAPALIASINFO lpHeapAliasInfo; + DWORD dwOverlayFlags; + VOID *rgjunc; + LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; + LPDDOVERLAYFX lpddOverlayFX; + DDSCAPSEX ddsCapsEx; + DWORD dwTextureStage; + LPVOID lpDDRAWReserved; + LPVOID lpDDRAWReserved2; + LPVOID lpDDrawReserved3; + DWORD dwDDrawReserved4; + LPVOID lpDDrawReserved5; + LPDWORD lpGammaRamp; + LPDWORD lpOriginalGammaRamp; + LPVOID lpDDrawReserved6; +# ifndef WIN95 + DISPLAYMODEINFO dmiDDrawReserved7; +# endif + DWORD dwSurfaceHandle; + DWORD qwDDrawReserved8[2]; + LPVOID lpDDrawReserved9; + DWORD cSurfaces; + LPDDSURFACEDESC2 pCreatedDDSurfaceDesc2; + LPDDRAWI_DDRAWSURFACE_LCL *slist; + DWORD dwFVF; + LPVOID lpVB; +} DDRAWI_DDRAWSURFACE_MORE; + +typedef struct _DDRAWI_DDRAWSURFACE_LCL { + LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore; + LPDDRAWI_DDRAWSURFACE_GBL lpGbl; + ULONG_PTR hDDSurface; + LPATTACHLIST lpAttachList; + LPATTACHLIST lpAttachListFrom; + DWORD dwLocalRefCnt; + DWORD dwProcessId; + DWORD dwFlags; + DDSCAPS ddsCaps; + __GNU_EXTENSION union { + LPDDRAWI_DDRAWPALETTE_INT lpDDPalette; + LPDDRAWI_DDRAWPALETTE_INT lp16DDPalette; + }; + __GNU_EXTENSION union { + LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper; + LPDDRAWI_DDRAWCLIPPER_INT lp16DDClipper; + }; + DWORD dwModeCreatedIn; + DWORD dwBackBufferCount; + DDCOLORKEY ddckCKDestBlt; + DDCOLORKEY ddckCKSrcBlt; + ULONG_PTR hDC; + ULONG_PTR dwReserved1; + DDCOLORKEY ddckCKSrcOverlay; + DDCOLORKEY ddckCKDestOverlay; + LPDDRAWI_DDRAWSURFACE_INT lpSurfaceOverlaying; + DBLNODE dbnOverlayNode; + RECT rcOverlaySrc; + RECT rcOverlayDest; + DWORD dwClrXparent; + DWORD dwAlpha; + LONG lOverlayX; + LONG lOverlayY; +} DDRAWI_DDRAWSURFACE_LCL; + +#define DDRAWISURF_ATTACHED 0x00000001L +#define DDRAWISURF_IMPLICITCREATE 0x00000002L +#define DDRAWISURF_ISFREE 0x00000004L +#define DDRAWISURF_ATTACHED_FROM 0x00000008L +#define DDRAWISURF_IMPLICITROOT 0x00000010L +#define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020L +#define DDRAWISURF_DATAISALIASED 0x00000040L +#define DDRAWISURF_HASDC 0x00000080L +#define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100L +#define DDRAWISURF_HASCKEYDESTBLT 0x00000200L +#define DDRAWISURF_HASCKEYSRCOVERLAY 0x00000400L +#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L +#define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000L +#define DDRAWISURF_HASPIXELFORMAT 0x00002000L +#define DDRAWISURF_HASOVERLAYDATA 0x00004000L +#define DDRAWISURF_SETGAMMA 0x00008000L +#define DDRAWISURF_SW_CKEYDESTOVERLAY 0x00010000L +#define DDRAWISURF_SW_CKEYDESTBLT 0x00020000L +#define DDRAWISURF_SW_CKEYSRCOVERLAY 0x00040000L +#define DDRAWISURF_SW_CKEYSRCBLT 0x00080000L +#define DDRAWISURF_HW_CKEYDESTOVERLAY 0x00100000L +#define DDRAWISURF_HW_CKEYDESTBLT 0x00200000L +#define DDRAWISURF_HW_CKEYSRCOVERLAY 0x00400000L +#define DDRAWISURF_HW_CKEYSRCBLT 0x00800000L +#define DDRAWISURF_INMASTERSPRITELIST 0x01000000L +#define DDRAWISURF_HELCB 0x02000000L +#define DDRAWISURF_FRONTBUFFER 0x04000000L +#define DDRAWISURF_BACKBUFFER 0x08000000L +#define DDRAWISURF_INVALID 0x10000000L +#define DDRAWISURF_DCIBUSY 0x20000000L +#define DDRAWISURF_GETDCNULL 0x40000000L +#define DDRAWISURF_STEREOSURFACELEFT 0x20000000L +#define DDRAWISURF_DRIVERMANAGED 0x40000000L +#define DDRAWISURF_DCILOCK 0x80000000L + +/* palettes */ +typedef struct _DDRAWI_DDRAWPALETTE_INT { + LPVOID lpVtbl; + LPDDRAWI_DDRAWPALETTE_LCL lpLcl; + LPDDRAWI_DDRAWPALETTE_INT lpLink; + DWORD dwIntRefCnt; +} DDRAWI_DDRAWPALETTE_INT; + +typedef struct _DDRAWI_DDRAWPALETTE_GBL { + DWORD dwRefCnt; + DWORD dwFlags; + LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; + DWORD dwProcessId; + LPPALETTEENTRY lpColorTable; + __GNU_EXTENSION union { + ULONG_PTR dwReserved1; + HPALETTE hHELGDIPalette; + }; + DWORD dwDriverReserved; + DWORD dwContentsStamp; + DWORD dwSaveStamp; + DWORD dwHandle; +} DDRAWI_DDRAWPALETTE_GBL; + +#define DDRAWIPAL_256 0x00000001 +#define DDRAWIPAL_16 0x00000002 +#define DDRAWIPAL_GDI 0x00000004 +#define DDRAWIPAL_STORED_8 0x00000008 +#define DDRAWIPAL_STORED_16 0x00000010 +#define DDRAWIPAL_STORED_24 0x00000020 +#define DDRAWIPAL_EXCLUSIVE 0x00000040 +#define DDRAWIPAL_INHEL 0x00000080 +#define DDRAWIPAL_DIRTY 0x00000100 +#define DDRAWIPAL_ALLOW256 0x00000200 +#define DDRAWIPAL_4 0x00000400 +#define DDRAWIPAL_2 0x00000800 +#define DDRAWIPAL_STORED_8INDEX 0x00001000 +#define DDRAWIPAL_ALPHA 0x00002000 + +#define D3DFORMAT_OP_TEXTURE 0x00000001L +#define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L +#define D3DFORMAT_OP_CUBETEXTURE 0x00000004L +#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L +#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L +#define D3DFORMAT_OP_ZSTENCIL 0x00000040L +#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L +#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L +#define D3DFORMAT_OP_DISPLAYMODE 0x00000400L +#define D3DFORMAT_OP_3DACCELERATION 0x00000800L +#define D3DFORMAT_OP_PIXELSIZE 0x00001000L +#define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L +#define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L +#define D3DFORMAT_OP_SRGBREAD 0x00008000L +#define D3DFORMAT_OP_BUMPMAP 0x00010000L +#define D3DFORMAT_OP_NOFILTER 0x00040000L +#define DDPF_D3DFORMAT 0x00200000l +#define DDPF_NOVEL_TEXTURE_FORMAT 0x00100000l +#define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L +#define D3DFORMAT_OP_SRGBWRITE 0x00100000L +#define D3DFORMAT_OP_NOALPHABLEND 0x00200000L +#define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L +#define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L +#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L +#define DELETED_OK 0 +#define DELETED_LASTONE 1 +#define DELETED_NOTFOUND 2 +#define DDCALLBACKSSIZE_V1 (offsetof(DDHAL_DDCALLBACKS, SetExclusiveMode)) +#define DDCALLBACKSSIZE sizeof( DDHAL_DDCALLBACKS ) +#define DDRAWICLIP_WATCHWINDOW 0x00000001 +#define DDRAWICLIP_ISINITIALIZED 0x00000002 +#define DDRAWICLIP_INMASTERSPRITELIST 0x00000004 +#define PFINDEX_UNINITIALIZED (0UL) +#define PFINDEX_UNSUPPORTED (~0UL) +#define ROP_HAS_SOURCE 0x00000001l +#define ROP_HAS_PATTERN 0x00000002l +#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN +#define DDRAWIVPORT_ON 0x00000001 +#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002 +#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004 +#define DDRAWIVPORT_NOKERNELHANDLES 0x00000008 +#define DDRAWIVPORT_SOFTWARE_BOB 0x00000010 +#define DDRAWIVPORT_VBION 0x00000020 +#define DDRAWIVPORT_VIDEOON 0x00000040 +#define DDRAWI_GETCOLOR 0x0001 +#define DDRAWI_SETCOLOR 0x0002 +#define DDMCQUERY_READ 0x00000001 +#define DDWAITVB_I_TESTVB 0x80000006 + +#define DDBLT_ANYALPHA \ + (DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE | \ + DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE | \ + DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST) + +#define DDHAL_ALIGNVALIDCAPS (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER | \ + DDSCAPS_OVERLAY | DDSCAPS_TEXTURE | \ + DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP ) + +#define DDHALINFOSIZE_V2 sizeof(DDHALINFO) + +#define DDOVER_ANYALPHA \ + (DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE | \ + DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE | \ + DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST) + +typedef struct _DDRAWI_DDRAWPALETTE_LCL { + DWORD lpPalMore; + LPDDRAWI_DDRAWPALETTE_GBL lpGbl; + ULONG_PTR dwUnused0; + DWORD dwLocalRefCnt; +#ifndef _NO_COM + IUnknown *pUnkOuter; +#else + PVOID pUnkOuter; +#endif + LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; + ULONG_PTR dwReserved1; + /* DirectX 6.0 */ + ULONG_PTR dwDDRAWReserved1; + ULONG_PTR dwDDRAWReserved2; + ULONG_PTR dwDDRAWReserved3; +} DDRAWI_DDRAWPALETTE_LCL; + +typedef struct _DDMCCOMPBUFFERINFO { + DWORD dwSize; + DWORD dwNumCompBuffers; + DWORD dwWidthToCreate; + DWORD dwHeightToCreate; + DWORD dwBytesToAllocate; + DDSCAPS2 ddCompCaps; + DDPIXELFORMAT ddPixelFormat; +} DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO; + +typedef struct _DDMCBUFFERINFO { + DWORD dwSize; + LPDDRAWI_DDRAWSURFACE_LCL lpCompSurface; + DWORD dwDataOffset; + DWORD dwDataSize; + LPVOID lpPrivate; +} DDMCBUFFERINFO, *LPDDMCBUFFERINFO; + +typedef struct _DDHAL_GETDRIVERSTATEDATA { + DWORD dwFlags; + __GNU_EXTENSION union { + ULONG_PTR dwhContext; + }; + LPDWORD lpdwStates; + DWORD dwLength; + HRESULT ddRVal; +} DDHAL_GETDRIVERSTATEDATA; + +typedef struct _DDHAL_ADDATTACHEDSURFACEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + LPDDRAWI_DDRAWSURFACE_LCL lpSurfAttached; + HRESULT ddRVal; + LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; +} DDHAL_ADDATTACHEDSURFACEDATA; + +typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; + LPDDRAWI_DDRAWSURFACE_LCL lpDestSurface; + DWORD dwInputDataSize; + LPVOID lpInputData; + DWORD dwOutputDataSize; + LPVOID lpOutputData; + HRESULT ddRVal; + LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame; +} DDHAL_BEGINMOCOMPFRAMEDATA; + +typedef struct _DDHAL_COLORCONTROLDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + LPDDCOLORCONTROL lpColorData; + DWORD dwFlags; + HRESULT ddRVal; + LPDDHALCOLORCB_COLORCONTROL ColorControl; +} DDHAL_COLORCONTROLDATA; + +typedef struct _DDHAL_CREATEMOCOMPDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; + LPGUID lpGuid; + DWORD dwUncompWidth; + DWORD dwUncompHeight; + DDPIXELFORMAT ddUncompPixelFormat; + LPVOID lpData; + DWORD dwDataSize; + HRESULT ddRVal; + LPDDHALMOCOMPCB_CREATE CreateMoComp; +} DDHAL_CREATEMOCOMPDATA; + +typedef struct _DDHAL_DESTROYMOCOMPDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; + HRESULT ddRVal; + LPDDHALMOCOMPCB_DESTROY DestroyMoComp; +} DDHAL_DESTROYMOCOMPDATA; + +typedef struct _DDHAL_ENDMOCOMPFRAMEDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; + LPVOID lpInputData; + DWORD dwInputDataSize; + HRESULT ddRVal; + LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame; +} DDHAL_ENDMOCOMPFRAMEDATA; + +typedef struct _DDHAL_FLIPTOGDISURFACEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwToGDI; + DWORD dwReserved; + HRESULT ddRVal; + LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; +} DDHAL_FLIPTOGDISURFACEDATA; + +typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DDSCAPS DDSCaps; + DWORD dwTotal; + DWORD dwFree; + HRESULT ddRVal; + LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; + DDSCAPSEX ddsCapsEx; +} DDHAL_GETAVAILDRIVERMEMORYDATA; + +typedef struct _DDHAL_GETBLTSTATUSDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + DWORD dwFlags; + HRESULT ddRVal; + LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; +} DDHAL_GETBLTSTATUSDATA; + +typedef struct _DDHAL_GETFLIPSTATUSDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + DWORD dwFlags; + HRESULT ddRVal; + LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; +} DDHAL_GETFLIPSTATUSDATA; + +typedef struct _DDHAL_GETINTERNALMOCOMPDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPGUID lpGuid; + DWORD dwWidth; + DWORD dwHeight; + DDPIXELFORMAT ddPixelFormat; + DWORD dwScratchMemAlloc; + HRESULT ddRVal; + LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; +} DDHAL_GETINTERNALMOCOMPDATA; + +typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPGUID lpGuid; + DWORD dwWidth; + DWORD dwHeight; + DDPIXELFORMAT ddPixelFormat; + DWORD dwNumTypesCompBuffs; + LPDDMCCOMPBUFFERINFO lpCompBuffInfo; + HRESULT ddRVal; + LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; +} DDHAL_GETMOCOMPCOMPBUFFDATA; + +typedef struct _DDHAL_GETMOCOMPGUIDSDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + DWORD dwNumGuids; + LPGUID lpGuids; + HRESULT ddRVal; + LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids; +} DDHAL_GETMOCOMPGUIDSDATA; + +typedef struct _DDHAL_GETMOCOMPFORMATSDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPGUID lpGuid; + DWORD dwNumFormats; + LPDDPIXELFORMAT lpFormats; + HRESULT ddRVal; + LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats; +} DDHAL_GETMOCOMPFORMATSDATA; + +typedef struct _DDHAL_GETSCANLINEDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwScanLine; + HRESULT ddRVal; + LPDDHAL_GETSCANLINE GetScanLine; +} DDHAL_GETSCANLINEDATA; + +typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; + LPDDRAWI_DDRAWSURFACE_LCL lpSurface; + DWORD dwFlags; + HRESULT ddRVal; + LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus; +} DDHAL_QUERYMOCOMPSTATUSDATA; + +typedef struct _DDHAL_RENDERMOCOMPDATA { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; + DWORD dwNumBuffers; + LPDDMCBUFFERINFO lpBufferInfo; + DWORD dwFunction; + LPVOID lpInputData; + DWORD dwInputDataSize; + LPVOID lpOutputData; + DWORD dwOutputDataSize; + HRESULT ddRVal; + LPDDHALMOCOMPCB_RENDER RenderMoComp; +} DDHAL_RENDERMOCOMPDATA; + +typedef struct _DDHAL_SETCOLORKEYDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + DWORD dwFlags; + DDCOLORKEY ckNew; + HRESULT ddRVal; + LPDDHALSURFCB_SETCOLORKEY SetColorKey; +} DDHAL_SETCOLORKEYDATA; + +typedef struct _DDHAL_SETOVERLAYPOSITIONDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; + LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; + LONG lXPos; + LONG lYPos; + HRESULT ddRVal; + LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; +} DDHAL_SETOVERLAYPOSITIONDATA; + +typedef struct _DDHAL_UPDATEOVERLAYDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; + RECTL rDest; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; + RECTL rSrc; + DWORD dwFlags; + DDOVERLAYFX overlayFX; + HRESULT ddRVal; + LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; +} DDHAL_UPDATEOVERLAYDATA; + +typedef struct _DDHAL_WAITFORVERTICALBLANKDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwFlags; + DWORD bIsInVB; + ULONG_PTR hEvent; + HRESULT ddRVal; + LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; +} DDHAL_WAITFORVERTICALBLANKDATA; + +typedef struct _DDHAL_DRVSETCOLORKEYDATA { + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + DWORD dwFlags; + DDCOLORKEY ckNew; + HRESULT ddRVal; + LPDDHAL_SETCOLORKEY SetColorKey; +} DDHAL_DRVSETCOLORKEYDATA; + +typedef struct _DDMONITORINFO { + WORD Manufacturer; + WORD Product; + DWORD SerialNumber; + GUID DeviceIdentifier; + int Mode640x480; + int Mode800x600; + int Mode1024x768; + int Mode1280x1024; + int Mode1600x1200; + int ModeReserved1; + int ModeReserved2; + int ModeReserved3; +} DDMONITORINFO, FAR *LPDDMONITORINFO; + +typedef struct _DDRAWI_DDRAWCLIPPER_INT { + LPVOID lpVtbl; + LPDDRAWI_DDRAWCLIPPER_LCL lpLcl; + LPDDRAWI_DDRAWCLIPPER_INT lpLink; + DWORD dwIntRefCnt; +} DDRAWI_DDRAWCLIPPER_INT; + +typedef struct _DDHAL_UPDATENONLOCALHEAPDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwHeap; + FLATPTR fpGARTLin; + FLATPTR fpGARTDev; + ULONG_PTR ulPolicyMaxBytes; + HRESULT ddRVal; + LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; +} DDHAL_UPDATENONLOCALHEAPDATA; + +typedef struct _DDHAL_SETCLIPLISTDATA { + LPDDRAWI_DIRECTDRAW_GBL lpDD; + LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; + HRESULT ddRVal; + LPDDHALSURFCB_SETCLIPLIST SetClipList; +} DDHAL_SETCLIPLISTDATA; + +typedef struct _DDRAWI_DDMOTIONCOMP_LCL { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + GUID guid; + DWORD dwUncompWidth; + DWORD dwUncompHeight; + DDPIXELFORMAT ddUncompPixelFormat; + DWORD dwInternalFlags; + DWORD dwRefCnt; + DWORD dwProcessId; + HANDLE hMoComp; + DWORD dwDriverReserved1; + DWORD dwDriverReserved2; + DWORD dwDriverReserved3; + LPVOID lpDriverReserved1; + LPVOID lpDriverReserved2; + LPVOID lpDriverReserved3; +} DDRAWI_DDMOTIONCOMP_LCL; + +typedef struct _DDRAWI_DDMOTIONCOMP_INT { + LPVOID lpVtbl; + LPDDRAWI_DDMOTIONCOMP_LCL lpLcl; + LPDDRAWI_DDMOTIONCOMP_INT lpLink; + DWORD dwIntRefCnt; +} DDRAWI_DDMOTIONCOMP_INT; + +typedef struct _DDRAWI_DDVIDEOPORT_LCL { + LPDDRAWI_DIRECTDRAW_LCL lpDD; + DDVIDEOPORTDESC ddvpDesc; + DDVIDEOPORTINFO ddvpInfo; + LPDDRAWI_DDRAWSURFACE_INT lpSurface; + LPDDRAWI_DDRAWSURFACE_INT lpVBISurface; + LPDDRAWI_DDRAWSURFACE_INT *lpFlipInts; + DWORD dwNumAutoflip; + DWORD dwProcessID; + DWORD dwStateFlags; + DWORD dwFlags; + DWORD dwRefCnt; + FLATPTR fpLastFlip; + ULONG_PTR dwReserved1; + ULONG_PTR dwReserved2; + HANDLE hDDVideoPort; + DWORD dwNumVBIAutoflip; + LPDDVIDEOPORTDESC lpVBIDesc; + LPDDVIDEOPORTDESC lpVideoDesc; + LPDDVIDEOPORTINFO lpVBIInfo; + LPDDVIDEOPORTINFO lpVideoInfo; + DWORD dwVBIProcessID; + LPDDRAWI_DDVIDEOPORT_INT lpVPNotify; +} DDRAWI_DDVIDEOPORT_LCL; + +typedef struct _DDRAWI_DDVIDEOPORT_INT { + LPVOID lpVtbl; + LPDDRAWI_DDVIDEOPORT_LCL lpLcl; + LPDDRAWI_DDVIDEOPORT_INT lpLink; + DWORD dwIntRefCnt; + DWORD dwFlags; +} DDRAWI_DDVIDEOPORT_INT; + +typedef struct _DDRAWI_DDRAWCLIPPER_LCL { + DWORD lpClipMore; + LPDDRAWI_DDRAWCLIPPER_GBL lpGbl; + LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; + DWORD dwLocalRefCnt; +#ifndef _NO_COM + IUnknown *pUnkOuter; +#else + PVOID *pUnkOuter; +#endif + LPDDRAWI_DIRECTDRAW_INT lpDD_int; + ULONG_PTR dwReserved1; +#ifndef _NO_COM + IUnknown *pAddrefedThisOwner; +#else + PVOID pAddrefedThisOwner; +#endif +} DDRAWI_DDRAWCLIPPER_LCL; + +typedef struct _DDRAWI_DDRAWCLIPPER_GBL { + DWORD dwRefCnt; + DWORD dwFlags; + LPDDRAWI_DIRECTDRAW_GBL lpDD; + DWORD dwProcessId; + ULONG_PTR dwReserved1; + ULONG_PTR hWnd; + LPRGNDATA lpStaticClipList; +} DDRAWI_DDRAWCLIPPER_GBL; + +typedef BOOL (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,BOOL); + +extern HRESULT DDAPI +LateAllocateSurfaceMem( + LPDIRECTDRAWSURFACE lpSurface, + DWORD dwPleaseAllocType, + DWORD dwWidthInBytesOrSize, + DWORD dwHeight); + +LPDIRECTDRAWSURFACE GetNextMipMap( + LPDIRECTDRAWSURFACE lpLevel); + +typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS; +typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS; +typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS; +typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS; +typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS; +typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS; +typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS; +typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS; +typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS; +typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS; +typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS; +typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS; +typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS; +typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS; +typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS; + +typedef DIRECTDRAWCLIPPERCALLBACKS *LPDIRECTDRAWCLIPPERCALLBACKS; +typedef DIRECTDRAWPALETTECALLBACKS *LPDIRECTDRAWPALETTECALLBACKS; +typedef DIRECTDRAWSURFACECALLBACKS *LPDIRECTDRAWSURFACECALLBACKS; +typedef DIRECTDRAWCALLBACKS *LPDIRECTDRAWCALLBACKS; + +HRESULT CALLBACK +D3DParseUnknownCommand ( + LPVOID lpvCommands, + LPVOID *lplpvReturnedCommand); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __DDRAWI_INCLUDED__ */ diff --git a/reactos/include/psdk/ddrawint.h b/reactos/include/psdk/ddrawint.h new file mode 100644 index 00000000000..8c2ee61cce5 --- /dev/null +++ b/reactos/include/psdk/ddrawint.h @@ -0,0 +1,1320 @@ +/* + * DirectDraw NT driver interface + */ + +#ifndef __DD_INCLUDED__ +#define __DD_INCLUDED__ + +DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); +DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A); +DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); +DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); +DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e); +DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); +DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02); +DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29); +DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02); +DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a); +DEFINE_GUID( GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e); +DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37); +DEFINE_GUID( GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); +DEFINE_GUID( GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); +DEFINE_GUID( GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae); +DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b); +DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); +DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba); +DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5); +DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); +DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); +DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c); +DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); +DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8); + + +#ifndef GUID_DEFS_ONLY + +#ifndef _NO_DDRAWINT_NO_COM +#ifndef _NO_COM +#define _NO_COM +#include +#include +#undef _NO_COM +#else +#include +#include +#endif +#else +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here +#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) +#endif + +#ifndef FLATPTR_DEFINED +typedef ULONG_PTR FLATPTR; +#define FLATPTR_DEFINED +#endif + +typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL; + +/************************************************************************/ +/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */ + /************************************************************************/ +struct _DD_GETHEAPALIGNMENTDATA; +#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED +typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA; +#define DD_GETHEAPALIGNMENTDATA_DECLARED +#endif + +/************************************************************************/ +/* Video memory info structures */ +/************************************************************************/ + +typedef struct _VIDEOMEMORY { + DWORD dwFlags; + FLATPTR fpStart; + __GNU_EXTENSION union { + FLATPTR fpEnd; + DWORD dwWidth; + }; + DDSCAPS ddsCaps; + DDSCAPS ddsCapsAlt; + __GNU_EXTENSION union { + struct _VMEMHEAP *lpHeap; + DWORD dwHeight; + }; +} VIDEOMEMORY, *PVIDEOMEMORY; + +typedef struct _VIDEOMEMORYINFO { + FLATPTR fpPrimary; + DWORD dwFlags; + DWORD dwDisplayWidth; + DWORD dwDisplayHeight; + LONG lDisplayPitch; + DDPIXELFORMAT ddpfDisplay; + DWORD dwOffscreenAlign; + DWORD dwOverlayAlign; + DWORD dwTextureAlign; + DWORD dwZBufferAlign; + DWORD dwAlphaAlign; + PVOID pvPrimary; +} VIDEOMEMORYINFO, *LPVIDEOMEMORYINFO; + +typedef struct _DD_DIRECTDRAW_GLOBAL { + PVOID dhpdev; + ULONG_PTR dwReserved1; + ULONG_PTR dwReserved2; + LPDDVIDEOPORTCAPS lpDDVideoPortCaps; +} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL; + +typedef struct _DD_DIRECTDRAW_LOCAL { + PDD_DIRECTDRAW_GLOBAL lpGbl; +} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL; + +typedef struct _DD_SURFACE_GLOBAL { + __GNU_EXTENSION union { + DWORD dwBlockSizeY; + LONG lSlicePitch; + }; + __GNU_EXTENSION union { + PVIDEOMEMORY lpVidMemHeap; + DWORD dwBlockSizeX; + DWORD dwUserMemSize; + }; + FLATPTR fpVidMem; + __GNU_EXTENSION union { + LONG lPitch; + DWORD dwLinearSize; + }; + LONG yHint; + LONG xHint; + DWORD wHeight; + DWORD wWidth; + ULONG_PTR dwReserved1; + DDPIXELFORMAT ddpfSurface; + FLATPTR fpHeapOffset; + HANDLE hCreatorProcess; +} DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL; + +typedef struct _DD_SURFACE_MORE { + DWORD dwMipMapCount; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwOverlayFlags; + DDSCAPSEX ddsCapsEx; + DWORD dwSurfaceHandle; +} DD_SURFACE_MORE, *PDD_SURFACE_MORE; + +typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST; + +typedef struct _DD_SURFACE_LOCAL { + PDD_SURFACE_GLOBAL lpGbl; + DWORD dwFlags; + DDSCAPS ddsCaps; + ULONG_PTR dwReserved1; + __GNU_EXTENSION union { + DDCOLORKEY ddckCKSrcOverlay; + DDCOLORKEY ddckCKSrcBlt; + }; + __GNU_EXTENSION union { + DDCOLORKEY ddckCKDestOverlay; + DDCOLORKEY ddckCKDestBlt; + }; + PDD_SURFACE_MORE lpSurfMore; + PDD_ATTACHLIST lpAttachList; + PDD_ATTACHLIST lpAttachListFrom; + RECT rcOverlaySrc; +} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL; + +typedef struct _DD_ATTACHLIST { + PDD_ATTACHLIST lpLink; + PDD_SURFACE_LOCAL lpAttached; +} DD_ATTACHLIST; + +typedef struct _DD_SURFACE_INT { + PDD_SURFACE_LOCAL lpLcl; +} DD_SURFACE_INT, *PDD_SURFACE_INT; + +/************************************************************************/ +/* DDI representation of the DirectDrawPalette object */ +/************************************************************************/ + +typedef struct _DD_PALETTE_GLOBAL { + ULONG_PTR Reserved1; +} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL; + +/************************************************************************/ +/* DDI representation of the DirectDrawVideo object */ +/************************************************************************/ + +typedef struct { + PDD_DIRECTDRAW_LOCAL lpDD; + GUID guid; + DWORD dwUncompWidth; + DWORD dwUncompHeight; + DDPIXELFORMAT ddUncompPixelFormat; + DWORD dwDriverReserved1; + DWORD dwDriverReserved2; + DWORD dwDriverReserved3; + LPVOID lpDriverReserved1; + LPVOID lpDriverReserved2; + LPVOID lpDriverReserved3; +} DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL; + +typedef struct _DD_VIDEOPORT_LOCAL { + PDD_DIRECTDRAW_LOCAL lpDD; + DDVIDEOPORTDESC ddvpDesc; + DDVIDEOPORTINFO ddvpInfo; + PDD_SURFACE_INT lpSurface; + PDD_SURFACE_INT lpVBISurface; + DWORD dwNumAutoflip; + DWORD dwNumVBIAutoflip; + ULONG_PTR dwReserved1; + ULONG_PTR dwReserved2; + ULONG_PTR dwReserved3; +} DD_VIDEOPORT_LOCAL; + +/************************************************************************/ +/* IDirectDrawSurface callbacks */ +/************************************************************************/ + +typedef struct _DD_LOCKDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + DWORD bHasRect; + RECTL rArea; + LPVOID lpSurfData; + HRESULT ddRVal; + PVOID Lock; + DWORD dwFlags; + FLATPTR fpProcess; +} DD_LOCKDATA, *PDD_LOCKDATA; +typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA); + +typedef struct _DD_UNLOCKDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + HRESULT ddRVal; + PVOID Unlock; +} DD_UNLOCKDATA, *PDD_UNLOCKDATA; +typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA); + +#define DDABLT_SRCOVERDEST 0x00000001 +#define DDBLT_AFLAGS 0x80000000 + +typedef struct _DD_BLTDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDDestSurface; + RECTL rDest; + PDD_SURFACE_LOCAL lpDDSrcSurface; + RECTL rSrc; + DWORD dwFlags; + DWORD dwROPFlags; + DDBLTFX bltFX; + HRESULT ddRVal; + PVOID Blt; + BOOL IsClipped; + RECTL rOrigDest; + RECTL rOrigSrc; + DWORD dwRectCnt; + LPRECT prDestRects; + DWORD dwAFlags; + DDARGB ddargbScaleFactors; +} DD_BLTDATA, *PDD_BLTDATA; +typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA); + +typedef struct _DD_UPDATEOVERLAYDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDDestSurface; + RECTL rDest; + PDD_SURFACE_LOCAL lpDDSrcSurface; + RECTL rSrc; + DWORD dwFlags; + DDOVERLAYFX overlayFX; + HRESULT ddRVal; + PVOID UpdateOverlay; +} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA; +typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA); + +typedef struct _DD_SETOVERLAYPOSITIONDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSrcSurface; + PDD_SURFACE_LOCAL lpDDDestSurface; + LONG lXPos; + LONG lYPos; + HRESULT ddRVal; + PVOID SetOverlayPosition; +} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA; +typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA); + +typedef struct _DD_SETPALETTEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + PDD_PALETTE_GLOBAL lpDDPalette; + HRESULT ddRVal; + PVOID SetPalette; + BOOL Attach; +} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA; +typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA); + +typedef struct _DD_FLIPDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpSurfCurr; + PDD_SURFACE_LOCAL lpSurfTarg; + DWORD dwFlags; + HRESULT ddRVal; + PVOID Flip; + PDD_SURFACE_LOCAL lpSurfCurrLeft; + PDD_SURFACE_LOCAL lpSurfTargLeft; +} DD_FLIPDATA, *PDD_FLIPDATA; +typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA); + +typedef struct _DD_DESTROYSURFACEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + HRESULT ddRVal; + PVOID DestroySurface; +} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA; +typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA); + +typedef struct _DD_SETCLIPLISTDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + HRESULT ddRVal; + PVOID SetClipList; +} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA; +typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA); + +typedef struct _DD_ADDATTACHEDSURFACEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + PDD_SURFACE_LOCAL lpSurfAttached; + HRESULT ddRVal; + PVOID AddAttachedSurface; +} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA; +typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA); + +typedef struct _DD_SETCOLORKEYDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + DWORD dwFlags; + DDCOLORKEY ckNew; + HRESULT ddRVal; + PVOID SetColorKey; +} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA; +typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA); + +typedef struct _DD_GETBLTSTATUSDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + DWORD dwFlags; + HRESULT ddRVal; + PVOID GetBltStatus; +} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA; +typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA); + +typedef struct _DD_GETFLIPSTATUSDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + DWORD dwFlags; + HRESULT ddRVal; + PVOID GetFlipStatus; +} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA; +typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA); + +typedef struct DD_SURFACECALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_SURFCB_DESTROYSURFACE DestroySurface; + PDD_SURFCB_FLIP Flip; + PDD_SURFCB_SETCLIPLIST SetClipList; + PDD_SURFCB_LOCK Lock; + PDD_SURFCB_UNLOCK Unlock; + PDD_SURFCB_BLT Blt; + PDD_SURFCB_SETCOLORKEY SetColorKey; + PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface; + PDD_SURFCB_GETBLTSTATUS GetBltStatus; + PDD_SURFCB_GETFLIPSTATUS GetFlipStatus; + PDD_SURFCB_UPDATEOVERLAY UpdateOverlay; + PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition; + PVOID reserved4; + PDD_SURFCB_SETPALETTE SetPalette; +} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS; + +#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001 +#define DDHAL_SURFCB32_FLIP 0x00000002 +#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004 +#define DDHAL_SURFCB32_LOCK 0x00000008 +#define DDHAL_SURFCB32_UNLOCK 0x00000010 +#define DDHAL_SURFCB32_BLT 0x00000020 +#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040 +#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080 +#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100 +#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200 +#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400 +#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800 +#define DDHAL_SURFCB32_RESERVED4 0x00001000 +#define DDHAL_SURFCB32_SETPALETTE 0x00002000 + +/************************************************************************/ +/* IDirectDraw callbacks */ +/************************************************************************/ + +typedef struct _DD_CREATESURFACEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DDSURFACEDESC *lpDDSurfaceDesc; + PDD_SURFACE_LOCAL *lplpSList; + DWORD dwSCnt; + HRESULT ddRVal; + PVOID CreateSurface; +} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA; +typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA); + +typedef struct _DD_DRVSETCOLORKEYDATA { + PDD_SURFACE_LOCAL lpDDSurface; + DWORD dwFlags; + DDCOLORKEY ckNew; + HRESULT ddRVal; + PVOID SetColorKey; +} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA; +typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA); + +#define DDWAITVB_I_TESTVB 0x80000006 + +typedef struct _DD_WAITFORVERTICALBLANKDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DWORD dwFlags; + DWORD bIsInVB; + DWORD hEvent; + HRESULT ddRVal; + PVOID WaitForVerticalBlank; +} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA; +typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA); + +typedef struct _DD_CANCREATESURFACEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DDSURFACEDESC *lpDDSurfaceDesc; + DWORD bIsDifferentPixelFormat; + HRESULT ddRVal; + PVOID CanCreateSurface; +} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA; +typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA); + +typedef struct _DD_CREATEPALETTEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_PALETTE_GLOBAL lpDDPalette; + LPPALETTEENTRY lpColorTable; + HRESULT ddRVal; + PVOID CreatePalette; + BOOL is_excl; +} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA; +typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA); + +typedef struct _DD_GETSCANLINEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DWORD dwScanLine; + HRESULT ddRVal; + PVOID GetScanLine; +} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA; +typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA); + +typedef struct _DD_MAPMEMORYDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + BOOL bMap; + HANDLE hProcess; + FLATPTR fpProcess; + HRESULT ddRVal; +} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA; +typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA); + +typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA; +typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA; + +typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA); +typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA); + +typedef struct DD_CALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_DESTROYDRIVER DestroyDriver; + PDD_CREATESURFACE CreateSurface; + PDD_SETCOLORKEY SetColorKey; + PDD_SETMODE SetMode; + PDD_WAITFORVERTICALBLANK WaitForVerticalBlank; + PDD_CANCREATESURFACE CanCreateSurface; + PDD_CREATEPALETTE CreatePalette; + PDD_GETSCANLINE GetScanLine; + PDD_MAPMEMORY MapMemory; +} DD_CALLBACKS, *PDD_CALLBACKS; + +#define DDHAL_CB32_DESTROYDRIVER 0x00000001l +#define DDHAL_CB32_CREATESURFACE 0x00000002l +#define DDHAL_CB32_SETCOLORKEY 0x00000004l +#define DDHAL_CB32_SETMODE 0x00000008l +#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l +#define DDHAL_CB32_CANCREATESURFACE 0x00000020l +#define DDHAL_CB32_CREATEPALETTE 0x00000040l +#define DDHAL_CB32_GETSCANLINE 0x00000080l +#define DDHAL_CB32_MAPMEMORY 0x80000000l + +typedef struct _DD_GETAVAILDRIVERMEMORYDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DDSCAPS DDSCaps; + DWORD dwTotal; + DWORD dwFree; + HRESULT ddRVal; + PVOID GetAvailDriverMemory; +} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA; +typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA); + +typedef struct _DD_MISCELLANEOUSCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory; +} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS; + +#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001 + +typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA); + +typedef struct _DD_CREATESURFACEEXDATA { + DWORD dwFlags; + PDD_DIRECTDRAW_LOCAL lpDDLcl; + PDD_SURFACE_LOCAL lpDDSLcl; + HRESULT ddRVal; +} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA; +typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA); + +typedef struct _DD_GETDRIVERSTATEDATA { + DWORD dwFlags; + __GNU_EXTENSION union { + PDD_DIRECTDRAW_GLOBAL lpDD; + DWORD_PTR dwhContext; + }; + LPDWORD lpdwStates; + DWORD dwLength; + HRESULT ddRVal; +} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA; +typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA); + +typedef struct _DD_DESTROYDDLOCALDATA { + DWORD dwFlags; + PDD_DIRECTDRAW_LOCAL pDDLcl; + HRESULT ddRVal; +} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA; +typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA); + +typedef struct _DD_MISCELLANEOUS2CALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_ALPHABLT AlphaBlt; + PDD_CREATESURFACEEX CreateSurfaceEx; + PDD_GETDRIVERSTATE GetDriverState; + PDD_DESTROYDDLOCAL DestroyDDLocal; +} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS; + +#define DDHAL_MISC2CB32_ALPHABLT 0x00000001 +#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002 +#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004 +#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008 + +typedef struct _DD_FREEDRIVERMEMORYDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + HRESULT ddRVal; + PVOID FreeDriverMemory; +} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA; +typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA); + +typedef struct _DD_SETEXCLUSIVEMODEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DWORD dwEnterExcl; + DWORD dwReserved; + HRESULT ddRVal; + PVOID SetExclusiveMode; +} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA; +typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA); + +typedef struct _DD_FLIPTOGDISURFACEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DWORD dwToGDI; + DWORD dwReserved; + HRESULT ddRVal; + PVOID FlipToGDISurface; +} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA; +typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA); + +typedef struct _DD_NTCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_FREEDRIVERMEMORY FreeDriverMemory; + PDD_SETEXCLUSIVEMODE SetExclusiveMode; + PDD_FLIPTOGDISURFACE FlipToGDISurface; +} DD_NTCALLBACKS, *PDD_NTCALLBACKS; + +#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001 +#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002 +#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004 + +/************************************************************************/ +/* IDirectDrawPalette callbacks */ +/************************************************************************/ + +typedef struct _DD_DESTROYPALETTEDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_PALETTE_GLOBAL lpDDPalette; + HRESULT ddRVal; + PVOID DestroyPalette; +} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA; +typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA); + +typedef struct _DD_SETENTRIESDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_PALETTE_GLOBAL lpDDPalette; + DWORD dwBase; + DWORD dwNumEntries; + LPPALETTEENTRY lpEntries; + HRESULT ddRVal; + PVOID SetEntries; +} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA; +typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA); + +typedef struct DD_PALETTECALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_PALCB_DESTROYPALETTE DestroyPalette; + PDD_PALCB_SETENTRIES SetEntries; +} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS; + +#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l +#define DDHAL_PALCB32_SETENTRIES 0x00000002l + +/************************************************************************/ +/* IDirectDrawVideoport callbacks */ +/************************************************************************/ + +typedef struct _DD_CANCREATEVPORTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + LPDDVIDEOPORTDESC lpDDVideoPortDesc; + HRESULT ddRVal; + PVOID CanCreateVideoPort; +} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA); + +typedef struct _DD_CREATEVPORTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + LPDDVIDEOPORTDESC lpDDVideoPortDesc; + PDD_VIDEOPORT_LOCAL lpVideoPort; + HRESULT ddRVal; + PVOID CreateVideoPort; +} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA); + +typedef struct _DD_FLIPVPORTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + PDD_SURFACE_LOCAL lpSurfCurr; + PDD_SURFACE_LOCAL lpSurfTarg; + HRESULT ddRVal; + PVOID FlipVideoPort; +} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA); + +typedef struct _DD_GETVPORTBANDWIDTHDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + LPDDPIXELFORMAT lpddpfFormat; + DWORD dwWidth; + DWORD dwHeight; + DWORD dwFlags; + LPDDVIDEOPORTBANDWIDTH lpBandwidth; + HRESULT ddRVal; + PVOID GetVideoPortBandwidth; +} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA); + +typedef struct _DD_GETVPORTINPUTFORMATDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwFlags; + LPDDPIXELFORMAT lpddpfFormat; + DWORD dwNumFormats; + HRESULT ddRVal; + PVOID GetVideoPortInputFormats; +} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA); + +typedef struct _DD_GETVPORTOUTPUTFORMATDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwFlags; + LPDDPIXELFORMAT lpddpfInputFormat; + LPDDPIXELFORMAT lpddpfOutputFormats; + DWORD dwNumFormats; + HRESULT ddRVal; + PVOID GetVideoPortInputFormats; +} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA); + +typedef struct _DD_GETVPORTFIELDDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + BOOL bField; + HRESULT ddRVal; + PVOID GetVideoPortField; +} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA); + +typedef struct _DD_GETVPORTLINEDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwLine; + HRESULT ddRVal; + PVOID GetVideoPortLine; +} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA); + +typedef struct _DD_GETVPORTCONNECTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + DWORD dwPortId; + LPDDVIDEOPORTCONNECT lpConnect; + DWORD dwNumEntries; + HRESULT ddRVal; + PVOID GetVideoPortConnectInfo; +} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA); + +typedef struct _DD_DESTROYVPORTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + HRESULT ddRVal; + PVOID DestroyVideoPort; +} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA); + +typedef struct _DD_GETVPORTFLIPSTATUSDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + FLATPTR fpSurface; + HRESULT ddRVal; + PVOID GetVideoPortFlipStatus; +} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA); + +typedef struct _DD_UPDATEVPORTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + PDD_SURFACE_INT *lplpDDSurface; + PDD_SURFACE_INT *lplpDDVBISurface; + LPDDVIDEOPORTINFO lpVideoInfo; + DWORD dwFlags; + DWORD dwNumAutoflip; + DWORD dwNumVBIAutoflip; + HRESULT ddRVal; + PVOID UpdateVideoPort; +} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA); + +typedef struct _DD_WAITFORVPORTSYNCDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwFlags; + DWORD dwLine; + DWORD dwTimeOut; + HRESULT ddRVal; + PVOID UpdateVideoPort; +} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA); + +typedef struct _DD_GETVPORTSIGNALDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwStatus; + HRESULT ddRVal; + PVOID GetVideoSignalStatus; +} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA); + +typedef struct _DD_VPORTCOLORDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwFlags; + LPDDCOLORCONTROL lpColorData; + HRESULT ddRVal; + PVOID ColorControl; +} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA; +typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA); + +typedef struct DD_VIDEOPORTCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; + PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort; + PDD_VPORTCB_FLIP FlipVideoPort; + PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth; + PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; + PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; + PVOID lpReserved1; + PDD_VPORTCB_GETFIELD GetVideoPortField; + PDD_VPORTCB_GETLINE GetVideoPortLine; + PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; + PDD_VPORTCB_DESTROYVPORT DestroyVideoPort; + PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; + PDD_VPORTCB_UPDATE UpdateVideoPort; + PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync; + PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; + PDD_VPORTCB_COLORCONTROL ColorControl; +} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS; + +#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001 +#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002 +#define DDHAL_VPORT32_FLIP 0x00000004 +#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008 +#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010 +#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020 +#define DDHAL_VPORT32_GETFIELD 0x00000080 +#define DDHAL_VPORT32_GETLINE 0x00000100 +#define DDHAL_VPORT32_GETCONNECT 0x00000200 +#define DDHAL_VPORT32_DESTROY 0x00000400 +#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800 +#define DDHAL_VPORT32_UPDATE 0x00001000 +#define DDHAL_VPORT32_WAITFORSYNC 0x00002000 +#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000 +#define DDHAL_VPORT32_COLORCONTROL 0x00008000 + + +/************************************************************************/ +/* IDirectDrawColorControl callbacks */ +/************************************************************************/ + +#define DDRAWI_GETCOLOR 0x0001 +#define DDRAWI_SETCOLOR 0x0002 + +typedef struct _DD_COLORCONTROLDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + LPDDCOLORCONTROL lpColorData; + DWORD dwFlags; + HRESULT ddRVal; + PVOID ColorControl; +} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA; +typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA); + +typedef struct _DD_COLORCONTROLCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_COLORCB_COLORCONTROL ColorControl; +} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS; + +#define DDHAL_COLOR_COLORCONTROL 0x00000001 + +/************************************************************************/ +/* IDirectDrawVideo callbacks */ +/************************************************************************/ + +typedef struct _DD_GETMOCOMPGUIDSDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + DWORD dwNumGuids; + GUID *lpGuids; + HRESULT ddRVal; +} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA); + +typedef struct _DD_GETMOCOMPFORMATSDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + GUID *lpGuid; + DWORD dwNumFormats; + LPDDPIXELFORMAT lpFormats; + HRESULT ddRVal; +} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA); + +typedef struct _DD_CREATEMOCOMPDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_MOTIONCOMP_LOCAL lpMoComp; + GUID *lpGuid; + DWORD dwUncompWidth; + DWORD dwUncompHeight; + DDPIXELFORMAT ddUncompPixelFormat; + LPVOID lpData; + DWORD dwDataSize; + HRESULT ddRVal; +} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA); + +typedef struct _DDCOMPBUFFERINFO { + DWORD dwSize; + DWORD dwNumCompBuffers; + DWORD dwWidthToCreate; + DWORD dwHeightToCreate; + DWORD dwBytesToAllocate; + DDSCAPS2 ddCompCaps; + DDPIXELFORMAT ddPixelFormat; +} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO; + +typedef struct _DD_GETMOCOMPCOMPBUFFDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + GUID *lpGuid; + DWORD dwWidth; + DWORD dwHeight; + DDPIXELFORMAT ddPixelFormat; + DWORD dwNumTypesCompBuffs; + LPDDCOMPBUFFERINFO lpCompBuffInfo; + HRESULT ddRVal; +} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA); + +typedef struct _DD_GETINTERNALMOCOMPDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + GUID *lpGuid; + DWORD dwWidth; + DWORD dwHeight; + DDPIXELFORMAT ddPixelFormat; + DWORD dwScratchMemAlloc; + HRESULT ddRVal; +} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA); + +typedef struct _DD_BEGINMOCOMPFRAMEDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_MOTIONCOMP_LOCAL lpMoComp; + PDD_SURFACE_LOCAL lpDestSurface; + DWORD dwInputDataSize; + LPVOID lpInputData; + DWORD dwOutputDataSize; + LPVOID lpOutputData; + HRESULT ddRVal; +} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA); + +typedef struct _DD_ENDMOCOMPFRAMEDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_MOTIONCOMP_LOCAL lpMoComp; + LPVOID lpInputData; + DWORD dwInputDataSize; + HRESULT ddRVal; +} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA); + +typedef struct _DDMOCOMPBUFFERINFO { + DWORD dwSize; + PDD_SURFACE_LOCAL lpCompSurface; + DWORD dwDataOffset; + DWORD dwDataSize; + LPVOID lpPrivate; +} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO; + +typedef struct _DD_RENDERMOCOMPDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_MOTIONCOMP_LOCAL lpMoComp; + DWORD dwNumBuffers; + LPDDMOCOMPBUFFERINFO lpBufferInfo; + DWORD dwFunction; + LPVOID lpInputData; + DWORD dwInputDataSize; + LPVOID lpOutputData; + DWORD dwOutputDataSize; + HRESULT ddRVal; +} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA); + +#define DDMCQUERY_READ 0x00000001 + +typedef struct _DD_QUERYMOCOMPSTATUSDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_MOTIONCOMP_LOCAL lpMoComp; + PDD_SURFACE_LOCAL lpSurface; + DWORD dwFlags; + HRESULT ddRVal; +} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA); + +typedef struct _DD_DESTROYMOCOMPDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_MOTIONCOMP_LOCAL lpMoComp; + HRESULT ddRVal; +} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA; +typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA); + +typedef struct DD_MOTIONCOMPCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_MOCOMPCB_GETGUIDS GetMoCompGuids; + PDD_MOCOMPCB_GETFORMATS GetMoCompFormats; + PDD_MOCOMPCB_CREATE CreateMoComp; + PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; + PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; + PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame; + PDD_MOCOMPCB_ENDFRAME EndMoCompFrame; + PDD_MOCOMPCB_RENDER RenderMoComp; + PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus; + PDD_MOCOMPCB_DESTROY DestroyMoComp; +} DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS; + +#define DDHAL_MOCOMP32_GETGUIDS 0x00000001 +#define DDHAL_MOCOMP32_GETFORMATS 0x00000002 +#define DDHAL_MOCOMP32_CREATE 0x00000004 +#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008 +#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010 +#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020 +#define DDHAL_MOCOMP32_ENDFRAME 0x00000040 +#define DDHAL_MOCOMP32_RENDER 0x00000080 +#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100 +#define DDHAL_MOCOMP32_DESTROY 0x00000200 + +/************************************************************************/ +/* D3D buffer callbacks */ +/************************************************************************/ + +typedef struct _DD_D3DBUFCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_CANCREATESURFACE CanCreateD3DBuffer; + PDD_CREATESURFACE CreateD3DBuffer; + PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer; + PDD_SURFCB_LOCK LockD3DBuffer; + PDD_SURFCB_UNLOCK UnlockD3DBuffer; +} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS; + +/************************************************************************/ +/* DdGetDriverInfo callback */ +/************************************************************************/ + +typedef struct _DD_GETDRIVERINFODATA { +// Input: + PVOID dhpdev; + DWORD dwSize; + DWORD dwFlags; + GUID guidInfo; + DWORD dwExpectedSize; + PVOID lpvData; +// Output: + DWORD dwActualSize; + HRESULT ddRVal; +} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA; +typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA); + +/************************************************************************/ +/* Driver info structures */ +/************************************************************************/ + +typedef struct _DDNTCORECAPS { + DWORD dwSize; + DWORD dwCaps; + DWORD dwCaps2; + DWORD dwCKeyCaps; + DWORD dwFXCaps; + DWORD dwFXAlphaCaps; + DWORD dwPalCaps; + DWORD dwSVCaps; + DWORD dwAlphaBltConstBitDepths; + DWORD dwAlphaBltPixelBitDepths; + DWORD dwAlphaBltSurfaceBitDepths; + DWORD dwAlphaOverlayConstBitDepths; + DWORD dwAlphaOverlayPixelBitDepths; + DWORD dwAlphaOverlaySurfaceBitDepths; + DWORD dwZBufferBitDepths; + DWORD dwVidMemTotal; + DWORD dwVidMemFree; + DWORD dwMaxVisibleOverlays; + DWORD dwCurrVisibleOverlays; + DWORD dwNumFourCCCodes; + DWORD dwAlignBoundarySrc; + DWORD dwAlignSizeSrc; + DWORD dwAlignBoundaryDest; + DWORD dwAlignSizeDest; + DWORD dwAlignStrideAlign; + DWORD dwRops[DD_ROP_SPACE]; + DDSCAPS ddsCaps; + DWORD dwMinOverlayStretch; + DWORD dwMaxOverlayStretch; + DWORD dwMinLiveVideoStretch; + DWORD dwMaxLiveVideoStretch; + DWORD dwMinHwCodecStretch; + DWORD dwMaxHwCodecStretch; + DWORD dwReserved1; + DWORD dwReserved2; + DWORD dwReserved3; + DWORD dwSVBCaps; + DWORD dwSVBCKeyCaps; + DWORD dwSVBFXCaps; + DWORD dwSVBRops[DD_ROP_SPACE]; + DWORD dwVSBCaps; + DWORD dwVSBCKeyCaps; + DWORD dwVSBFXCaps; + DWORD dwVSBRops[DD_ROP_SPACE]; + DWORD dwSSBCaps; + DWORD dwSSBCKeyCaps; + DWORD dwSSBFXCaps; + DWORD dwSSBRops[DD_ROP_SPACE]; + DWORD dwMaxVideoPorts; + DWORD dwCurrVideoPorts; + DWORD dwSVBCaps2; +} DDNTCORECAPS, *PDDNTCORECAPS; + +typedef struct _DD_HALINFO_V4 { + DWORD dwSize; + VIDEOMEMORYINFO vmiData; + DDNTCORECAPS ddCaps; + PDD_GETDRIVERINFO GetDriverInfo; + DWORD dwFlags; +} DD_HALINFO_V4, *PDD_HALINFO_V4; + +typedef struct _DD_HALINFO { + DWORD dwSize; + VIDEOMEMORYINFO vmiData; + DDNTCORECAPS ddCaps; + PDD_GETDRIVERINFO GetDriverInfo; + DWORD dwFlags; + PVOID lpD3DGlobalDriverData; + PVOID lpD3DHALCallbacks; + PDD_D3DBUFCALLBACKS lpD3DBufCallbacks; +} DD_HALINFO, *PDD_HALINFO; + +typedef struct _DD_NONLOCALVIDMEMCAPS { + DWORD dwSize; + DWORD dwNLVBCaps; + DWORD dwNLVBCaps2; + DWORD dwNLVBCKeyCaps; + DWORD dwNLVBFXCaps; + DWORD dwNLVBRops[DD_ROP_SPACE]; +} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS; + +typedef struct _DD_MORESURFACECAPS { + DWORD dwSize; + DDSCAPSEX ddsCapsMore; + struct tagNTExtendedHeapRestrictions { + DDSCAPSEX ddsCapsEx; + DDSCAPSEX ddsCapsExAlt; + } ddsExtendedHeapRestrictions[1]; +} DD_MORESURFACECAPS, *PDD_MORESURFACECAPS; + + +/*********************************************************/ +/* Kernel Callbacks */ +/*********************************************************/ +typedef struct _DD_SYNCSURFACEDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_SURFACE_LOCAL lpDDSurface; + DWORD dwSurfaceOffset; + ULONG_PTR fpLockPtr; + LONG lPitch; + DWORD dwOverlayOffset; + ULONG dwDriverReserved1; + ULONG dwDriverReserved2; + ULONG dwDriverReserved3; + ULONG dwDriverReserved4; + HRESULT ddRVal; +} DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA; +typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA); + +typedef struct _DD_SYNCVIDEOPORTDATA { + PDD_DIRECTDRAW_LOCAL lpDD; + PDD_VIDEOPORT_LOCAL lpVideoPort; + DWORD dwOriginOffset; + DWORD dwHeight; + DWORD dwVBIHeight; + ULONG dwDriverReserved1; + ULONG dwDriverReserved2; + ULONG dwDriverReserved3; + HRESULT ddRVal; +} DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA; +typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA); + +typedef struct DD_NTPRIVATEDRIVERCAPS { + DWORD dwSize; + DWORD dwPrivateCaps; +} DD_NTPRIVATEDRIVERCAPS; + +typedef struct _DD_UPDATENONLOCALHEAPDATA { + PDD_DIRECTDRAW_GLOBAL lpDD; + DWORD dwHeap; + FLATPTR fpGARTLin; + FLATPTR fpGARTDev; + ULONG_PTR ulPolicyMaxBytes; + HRESULT ddRVal; + VOID* UpdateNonLocalHeap; +} DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA; + +typedef struct _DD_STEREOMODE { + DWORD dwSize; + DWORD dwHeight; + DWORD dwWidth; + DWORD dwBpp; + DWORD dwRefreshRate; + BOOL bSupported; +} DD_STEREOMODE, *PDD_STEREOMODE; + +typedef struct _DD_MORECAPS { + DWORD dwSize; + DWORD dwAlphaCaps; + DWORD dwSVBAlphaCaps; + DWORD dwVSBAlphaCaps; + DWORD dwSSBAlphaCaps; + DWORD dwFilterCaps; + DWORD dwSVBFilterCaps; + DWORD dwVSBFilterCaps; + DWORD dwSSBFilterCaps; +} DD_MORECAPS, *PDD_MORECAPS; + +typedef struct _DD_CLIPPER_GLOBAL { + ULONG_PTR dwReserved1; +} DD_CLIPPER_GLOBAL; + +typedef struct _DD_CLIPPER_LOCAL { + ULONG_PTR dwReserved1; +} DD_CLIPPER_LOCAL; + +typedef struct _DD_PALETTE_LOCAL { + ULONG dwReserved0; + ULONG_PTR dwReserved1; +} DD_PALETTE_LOCAL; + +typedef struct DD_KERNELCALLBACKS { + DWORD dwSize; + DWORD dwFlags; + PDD_KERNELCB_SYNCSURFACE SyncSurfaceData; + PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData; +} DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS; + +#define MAX_AUTOFLIP_BUFFERS 10 +#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2 +#define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3 +#define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4 +#define DDPF_D3DFORMAT 0x00200000l +#define D3DFORMAT_OP_TEXTURE 0x00000001L +#define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L +#define D3DFORMAT_OP_CUBETEXTURE 0x00000004L +#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L +#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L +#define D3DFORMAT_OP_ZSTENCIL 0x00000040L +#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L +#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L +#define D3DFORMAT_OP_DISPLAYMODE 0x00000400L +#define D3DFORMAT_OP_3DACCELERATION 0x00000800L +#define D3DFORMAT_OP_PIXELSIZE 0x00001000L +#define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L +#define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L +#define D3DFORMAT_OP_SRGBREAD 0x00008000L +#define D3DFORMAT_OP_BUMPMAP 0x00010000L +#define D3DFORMAT_OP_DMAP 0x00020000L +#define D3DFORMAT_OP_NOFILTER 0x00040000L +#define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L +#define D3DFORMAT_OP_SRGBWRITE 0x00100000L +#define D3DFORMAT_OP_NOALPHABLEND 0x00200000L +#define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L +#define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L +#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L +#define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l +#define DDHAL_PLEASEALLOC_USERMEM 0x00000004l + +#define VIDMEM_ISLINEAR 0x00000001l +#define VIDMEM_ISRECTANGULAR 0x00000002l +#define VIDMEM_ISHEAP 0x00000004l +#define VIDMEM_ISNONLOCAL 0x00000008l +#define VIDMEM_ISWC 0x00000010l +#define VIDMEM_HEAPDISABLED 0x00000020l + +#define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l + +#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l +#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l + +#define DDHAL_DRIVER_NOTHANDLED 0x00000000l +#define DDHAL_DRIVER_HANDLED 0x00000001l +#define DDHAL_DRIVER_NOCKEYHW 0x00000002l + +#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L +#define DDRAWISURF_HASPIXELFORMAT 0x00002000L +#define DDRAWISURF_HASOVERLAYDATA 0x00004000L +#define DDRAWISURF_FRONTBUFFER 0x04000000L +#define DDRAWISURF_BACKBUFFER 0x08000000L +#define DDRAWISURF_INVALID 0x10000000L +#define DDRAWISURF_DRIVERMANAGED 0x40000000L + +#define ROP_HAS_SOURCE 0x00000001l +#define ROP_HAS_PATTERN 0x00000002l +#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN + +#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l +#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l +#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l +#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l +#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l + +#define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF +#define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF +#define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF +#define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF +#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF + +#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001 +#define DDHALINFO_MODEXILLEGAL 0x00000002 +#define DDHALINFO_GETDRIVERINFOSET 0x00000004 +#define DDHALINFO_GETDRIVERINFO2 0x00000008 + +#define DDRAWIVPORT_ON 0x00000001 +#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002 +#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004 + +#define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l +#define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l +#define DDHAL_PRIVATECAP_RESERVED1 0x00000004l + +#define DDRAWI_VPORTSTART 0x0001 +#define DDRAWI_VPORTSTOP 0x0002 +#define DDRAWI_VPORTUPDATE 0x0003 +#define DDRAWI_VPORTGETCOLOR 0x0001 +#define DDRAWI_VPORTSETCOLOR 0x0002 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* GUID_DEFS_ONLY */ + +#endif /* __DD_INCLUDED__ */ diff --git a/reactos/include/psdk/dinput.h b/reactos/include/psdk/dinput.h index ec4e6ec37f1..6c1a08d844d 100644 --- a/reactos/include/psdk/dinput.h +++ b/reactos/include/psdk/dinput.h @@ -1975,7 +1975,7 @@ extern const DIDATAFORMAT c_dfDIKeyboard; extern const DIDATAFORMAT c_dfDIJoystick; extern const DIDATAFORMAT c_dfDIJoystick2; #ifdef __cplusplus -}; +} #endif /***************************************************************************** @@ -2285,7 +2285,7 @@ HRESULT WINAPI DirectInputCreateW(HINSTANCE,DWORD,LPDIRECTINPUTW *,LPUNKNOWN); HRESULT WINAPI DirectInputCreateEx(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN); #ifdef __cplusplus -}; +} #endif #endif /* __WINE_DINPUT_H */ diff --git a/reactos/include/ddk/diskguid.h b/reactos/include/psdk/diskguid.h similarity index 100% rename from reactos/include/ddk/diskguid.h rename to reactos/include/psdk/diskguid.h diff --git a/reactos/include/ddk/dmemmgr.h b/reactos/include/psdk/dmemmgr.h similarity index 99% rename from reactos/include/ddk/dmemmgr.h rename to reactos/include/psdk/dmemmgr.h index 3d11f0b559c..5a637f73de7 100644 --- a/reactos/include/ddk/dmemmgr.h +++ b/reactos/include/psdk/dmemmgr.h @@ -166,7 +166,7 @@ extern FLATPTR WINAPI #ifdef __cplusplus -}; +} #endif #endif diff --git a/reactos/include/ddk/ntddtape.h b/reactos/include/psdk/ntddtape.h similarity index 100% rename from reactos/include/ddk/ntddtape.h rename to reactos/include/psdk/ntddtape.h diff --git a/reactos/include/ddk/ntddtdi.h b/reactos/include/psdk/ntddtdi.h similarity index 100% rename from reactos/include/ddk/ntddtdi.h rename to reactos/include/psdk/ntddtdi.h diff --git a/reactos/include/ddk/ntddvdeo.h b/reactos/include/psdk/ntddvdeo.h similarity index 100% rename from reactos/include/ddk/ntddvdeo.h rename to reactos/include/psdk/ntddvdeo.h diff --git a/reactos/include/ddk/ntddvol.h b/reactos/include/psdk/ntddvol.h similarity index 100% rename from reactos/include/ddk/ntddvol.h rename to reactos/include/psdk/ntddvol.h diff --git a/reactos/include/ddk/objerror.h b/reactos/include/psdk/objerror.h similarity index 100% rename from reactos/include/ddk/objerror.h rename to reactos/include/psdk/objerror.h diff --git a/reactos/include/ddk/polarity.h b/reactos/include/psdk/polarity.h similarity index 100% rename from reactos/include/ddk/polarity.h rename to reactos/include/psdk/polarity.h diff --git a/reactos/include/ddk/prntfont.h b/reactos/include/psdk/prntfont.h similarity index 100% rename from reactos/include/ddk/prntfont.h rename to reactos/include/psdk/prntfont.h diff --git a/reactos/include/psdk/sti.h b/reactos/include/psdk/sti.h index 204492d9a2f..fd6c0a5033f 100644 --- a/reactos/include/psdk/sti.h +++ b/reactos/include/psdk/sti.h @@ -173,7 +173,7 @@ DECLARE_INTERFACE_(IStillImageW, IUnknown) #endif #ifdef __cplusplus -}; +} #endif #include diff --git a/reactos/include/ddk/stierr.h b/reactos/include/psdk/stierr.h similarity index 100% rename from reactos/include/ddk/stierr.h rename to reactos/include/psdk/stierr.h diff --git a/reactos/include/ddk/stireg.h b/reactos/include/psdk/stireg.h similarity index 100% rename from reactos/include/ddk/stireg.h rename to reactos/include/psdk/stireg.h diff --git a/reactos/include/ddk/tdi.h b/reactos/include/psdk/tdi.h similarity index 100% rename from reactos/include/ddk/tdi.h rename to reactos/include/psdk/tdi.h diff --git a/reactos/include/ddk/tdiinfo.h b/reactos/include/psdk/tdiinfo.h similarity index 100% rename from reactos/include/ddk/tdiinfo.h rename to reactos/include/psdk/tdiinfo.h diff --git a/reactos/include/ddk/unknown.h b/reactos/include/psdk/unknown.h similarity index 100% rename from reactos/include/ddk/unknown.h rename to reactos/include/psdk/unknown.h