1 #ifndef __DDRAW_PRIVATE
2 #define __DDRAW_PRIVATE
4 /********* Includes *********/
9 #include <ddk/ddrawi.h>
10 #include <ddk/d3dhal.h>
13 /******** Main Object ********/
17 IDirectDraw7Vtbl
* lpVtbl
;
18 IDirectDraw4Vtbl
* lpVtbl_v4
;
19 IDirectDraw2Vtbl
* lpVtbl_v2
;
20 IDirectDrawVtbl
* lpVtbl_v1
;
22 DDRAWI_DIRECTDRAW_GBL DirectDrawGlobal
;
23 DDHAL_DDMISCELLANEOUSCALLBACKS Misc2Callback
;
27 DWORD cooperative_level
;
29 int Height
, Width
, Bpp
;
35 /******** Surface Object ********/
39 IDirectDrawSurface7Vtbl
* lpVtbl
;
40 IDirectDrawSurface3Vtbl
* lpVtbl_v3
;
42 IDirectDrawImpl
* owner
;
44 DDRAWI_DDRAWSURFACE_GBL Global
;
45 DDRAWI_DDRAWSURFACE_MORE More
;
46 DDRAWI_DDRAWSURFACE_LCL Local
;
48 } IDirectDrawSurfaceImpl
;
50 /******** Clipper Object ********/
54 IDirectDrawClipperVtbl
* lpVtbl
;
57 IDirectDrawImpl
* owner
;
59 } IDirectDrawClipperImpl
;
61 /******** Palette Object ********/
65 IDirectDrawPaletteVtbl
* lpVtbl
;
68 IDirectDrawImpl
* owner
;
70 } IDirectDrawPaletteImpl
;
72 /*********** VTables ************/
74 extern IDirectDraw7Vtbl DirectDraw7_Vtable
;
75 extern IDirectDrawVtbl DDRAW_IDirectDraw_VTable
;
76 extern IDirectDraw2Vtbl DDRAW_IDirectDraw2_VTable
;
77 extern IDirectDraw4Vtbl DDRAW_IDirectDraw4_VTable
;
79 extern IDirectDrawSurface7Vtbl DirectDrawSurface7_Vtable
;
80 extern IDirectDrawSurface3Vtbl DDRAW_IDDS3_Thunk_VTable
;
82 extern IDirectDrawPaletteVtbl DirectDrawPalette_Vtable
;
83 extern IDirectDrawClipperVtbl DirectDrawClipper_Vtable
;
84 extern IDirectDrawColorControlVtbl DirectDrawColorControl_Vtable
;
85 extern IDirectDrawGammaControlVtbl DirectDrawGammaControl_Vtable
;
87 /********* Prototypes **********/
89 HRESULT
Hal_DirectDraw_Initialize (LPDIRECTDRAW7
);
90 HRESULT
Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7
);
91 VOID
Hal_DirectDraw_Release (LPDIRECTDRAW7
);
92 HRESULT
Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7
, LPDDSCAPS2
, LPDWORD
, LPDWORD
);
93 HRESULT
Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7
, DWORD
, HANDLE
);
94 HRESULT
Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7
, LPDWORD
);
95 HRESULT
Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7
);
96 HRESULT
Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7
, DWORD
, DWORD
, DWORD
, DWORD
, DWORD
);
97 HRESULT
Hal_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7
, LPRECT
, LPDIRECTDRAWSURFACE7
, LPRECT
, DWORD
, LPDDBLTFX
);
100 HRESULT
Hel_DirectDraw_Initialize (LPDIRECTDRAW7
);
101 HRESULT
Hel_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7
);
102 VOID
Hel_DirectDraw_Release (LPDIRECTDRAW7
);
103 HRESULT
Hel_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7
, LPDDSCAPS2 ddsaps
, LPDWORD
, LPDWORD
);
104 HRESULT
Hel_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7
, DWORD
, HANDLE
);
105 HRESULT
Hel_DirectDraw_GetScanLine(LPDIRECTDRAW7
, LPDWORD
);
106 HRESULT
Hel_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7
);
107 HRESULT
Hel_DirectDraw_SetDisplayMode (LPDIRECTDRAW7
, DWORD
, DWORD
,DWORD
, DWORD
, DWORD
);
108 HRESULT
Hel_DDrawSurface_Blt(LPDIRECTDRAWSURFACE7
, LPRECT
, LPDIRECTDRAWSURFACE7
, LPRECT
, DWORD
, LPDDBLTFX
);
110 /*********** Macros ***********/
113 static BOOL firstcall = TRUE; \
117 sprintf ( buffer, "Function %s is not implemented yet (%s:%d)\n", __FUNCTION__,__FILE__,__LINE__ ); \
118 OutputDebugStringA(buffer); \
121 return DDERR_UNSUPPORTED;
123 #endif /* __DDRAW_PRIVATE */