- Move several headers to PSDK where they belong.
- Add _ANONYMOUS_UNION.
- De-duplicate __GNU_EXTENSION definition from several headers.
- Remove semicolons after the closing bracket of extern "C"
- Add a missing one in ioaccess.h
- Apply a consistent formatting.
[PSDK]
- De-duplicate __GNU_EXTENSION definition from several headers.
- Add missing extern "C" opening bracket in ddkernel.h and remove the semicolon from the closing one.
- Add __GNU_EXTENSION definition to ddraw.h and remove the semicolon after the closing bracket of extern "C"
- Add missing extern "C" closing bracket in ddrawi.h
- Remove semicolons after the closing brackets of extern "C" in dinput.h, dmemmgr.h and sti.h
- Apply a consistent formatting.
[DXSDK]
- Move ddraw.h to PSDK.
svn path=/trunk/; revision=48497
typedef struct _ACPI_EVAL_INPUT_BUFFER {
ULONG Signature;
- union {
+ _ANONYMOUS_UNION union {
UCHAR MethodName[4];
ULONG MethodNameAsUlong;
} DUMMYUNIONNAME;
typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_INTEGER {
ULONG Signature;
- union {
+ _ANONYMOUS_UNION union {
UCHAR MethodName[4];
ULONG MethodNameAsUlong;
} DUMMYUNIONNAME;
typedef struct _ACPI_EVAL_INPUT_BUFFER_SIMPLE_STRING {
ULONG Signature;
- union {
+ _ANONYMOUS_UNION union {
UCHAR MethodName[4];
ULONG MethodNameAsUlong;
} DUMMYUNIONNAME;
typedef struct _ACPI_METHOD_ARGUMENT {
USHORT Type;
USHORT DataLength;
- union {
+ _ANONYMOUS_UNION union {
ULONG Argument;
UCHAR Data[ANYSIZE_ARRAY];
} DUMMYUNIONNAME;
typedef struct _ACPI_EVAL_INPUT_BUFFER_COMPLEX {
ULONG Signature;
- union {
+ _ANONYMOUS_UNION union {
UCHAR MethodName[4];
ULONG MethodNameAsUlong;
} DUMMYUNIONNAME;
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
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_
#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
* 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
#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
#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
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,
/* 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;
typedef struct _D3DHAL_DP2UPDATEPALETTE {
DWORD dwPaletteHandle;
- WORD wStartIndex;
- WORD wNumEntries;
+ WORD wStartIndex;
+ WORD wNumEntries;
} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
typedef struct _D3DHAL_DP2ZRANGE {
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 {
} 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;
} 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 {
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;
/**
* 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
#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;
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) */
-
#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 */
+++ /dev/null
-/*
- * Direct3D NT driver interface
- */
-
-#ifndef __DDK_D3DNTHAL_H
-#define __DDK_D3DNTHAL_H
-
-#include <ddrawint.h>
-#include <d3dtypes.h>
-#include <d3dcaps.h>
-
-/* Helper macro to enable gcc's extension. */
-#ifndef __GNU_EXTENSION
-#ifdef __GNUC__
-#define __GNU_EXTENSION __extension__
-#else
-#define __GNU_EXTENSION
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-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 */
+++ /dev/null
-/* $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
-
-
-
-
+++ /dev/null
-/*
- * 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 <ddraw.h>
-#include <dvp.h>
-#include <ddkernel.h>
-#include <dmemmgr.h>
-
-#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__ */
+++ /dev/null
-/*
- * 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 <ddraw.h>
-#include <dvp.h>
-#undef _NO_COM
-#else
-#include <ddraw.h>
-#include <dvp.h>
-#endif
-#else
-#include <ddraw.h>
-#include <dvp.h>
-#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__ */
#endif
#ifdef __cplusplus
-};
+}
#endif
#endif
#endif
#endif
#define H2I(p) PtrToUshort(p)
-
+
#ifndef NO_PORT_MACROS
#if defined(_X86_) || defined(_M_AMD64)
#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_)
#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 */
--- /dev/null
+/*
+ * Direct3D NT driver interface
+ */
+
+#ifndef __DDK_D3DNTHAL_H
+#define __DDK_D3DNTHAL_H
+
+#include <ddrawint.h>
+#include <d3dtypes.h>
+#include <d3dcaps.h>
+
+#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 */
--- /dev/null
+/* $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
+
#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
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 _DDADDVPCAPTUREBUFF
-{
- HANDLE hCapture;
- DWORD dwFlags;
- PMDL pMDL;
- PKEVENT pKEvent;
- LPDDCAPBUFFINFO lpBuffInfo;
-} DDADDVPCAPTUREBUFF, * LPDDADDVPCAPTUREBUFF;
-
-typedef struct _DDCLOSEHANDLE
-{
- HANDLE hHandle;
+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 _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 _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 _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 _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;
OUT DWORD cbOutBuffer);
-
#endif /* __DDKMAPI_INCLUDED__ */
+
-
#ifndef __DDRAW_INCLUDED__
#define __DDRAW_INCLUDED__
#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
#undef INTERFACE
#ifdef __cplusplus
-};
+}
#endif
#ifdef ENABLE_NAMELESS_UNION_PRAGMA
#endif
#endif
-
-
-
--- /dev/null
+/*
+ * 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 <ddraw.h>
+#include <dvp.h>
+#include <ddkernel.h>
+#include <dmemmgr.h>
+
+#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__ */
--- /dev/null
+/*
+ * 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 <ddraw.h>
+#include <dvp.h>
+#undef _NO_COM
+#else
+#include <ddraw.h>
+#include <dvp.h>
+#endif
+#else
+#include <ddraw.h>
+#include <dvp.h>
+#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__ */
extern const DIDATAFORMAT c_dfDIJoystick;
extern const DIDATAFORMAT c_dfDIJoystick2;
#ifdef __cplusplus
-};
+}
#endif
/*****************************************************************************
HRESULT WINAPI DirectInputCreateEx(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN);
#ifdef __cplusplus
-};
+}
#endif
#endif /* __WINE_DINPUT_H */
#ifdef __cplusplus
-};
+}
#endif
#endif
#endif
#ifdef __cplusplus
-};
+}
#endif
#include <poppack.h>