Added a bunch of stubs for ddraw suface routines. All stubs for
surface present now.
Commented out message pump calls. I don't see a reason for them being
there. Everything works fine with -desktop and -managed still has
problems. Disagreements?
diff --git a/graphics/ddraw.c b/graphics/ddraw.c
index 3677f4b..c8eea6d 100644
--- a/graphics/ddraw.c
+++ b/graphics/ddraw.c
@@ -351,7 +351,7 @@
static HRESULT WINAPI Xlib_IDirectDrawSurface3_Unlock(
LPDIRECTDRAWSURFACE3 this,LPVOID surface
) {
- Xlib_MessagePump(this->s.ddraw->e.xlib.window);
+ /* Xlib_MessagePump(this->s.ddraw->e.xlib.window); */
TRACE(ddraw,"(%p)->Unlock(%p)\n",this,surface);
@@ -414,7 +414,7 @@
LPDIRECTDRAWSURFACE3 this,LPDIRECTDRAWSURFACE3 flipto,DWORD dwFlags
) {
TRACE(ddraw,"(%p)->Flip(%p,%08lx)\n",this,flipto,dwFlags);
- Xlib_MessagePump(this->s.ddraw->e.xlib.window);
+ /* Xlib_MessagePump(this->s.ddraw->e.xlib.window); */
if (!this->s.ddraw->e.xlib.paintable)
return 0;
@@ -826,28 +826,176 @@
return DD_OK;
}
+static HRESULT WINAPI IDirectDrawSurface3_AddOverlayDirtyRect(
+ LPDIRECTDRAWSURFACE3 this,
+ LPRECT32 lpRect )
+{
+ FIXME(ddraw,"(%p)->(%p),stub!\n",this,lpRect);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_DeleteAttachedSurface(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags,
+ LPDIRECTDRAWSURFACE3 lpDDSAttachedSurface )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx,%p),stub!\n",this,dwFlags,lpDDSAttachedSurface);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_EnumOverlayZOrders(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags,
+ LPVOID lpContext,
+ LPDDENUMSURFACESCALLBACK lpfnCallback )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx,%p,%p),stub!\n", this,dwFlags,
+ lpContext, lpfnCallback );
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_GetClipper(
+ LPDIRECTDRAWSURFACE3 this,
+ LPDIRECTDRAWCLIPPER* lplpDDClipper )
+{
+ FIXME(ddraw,"(%p)->(%p),stub!\n", this, lplpDDClipper);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_GetColorKey(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags,
+ LPDDCOLORKEY lpDDColorKey )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx,%p),stub!\n", this, dwFlags, lpDDColorKey);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_GetFlipStatus(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx),stub!\n", this, dwFlags);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_GetPalette(
+ LPDIRECTDRAWSURFACE3 this,
+ LPDIRECTDRAWPALETTE* lplpDDPalette )
+{
+ FIXME(ddraw,"(%p)->(%p),stub!\n", this, lplpDDPalette);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_SetOverlayPosition(
+ LPDIRECTDRAWSURFACE3 this,
+ LONG lX,
+ LONG lY)
+{
+ FIXME(ddraw,"(%p)->(%ld,%ld),stub!\n", this, lX, lY);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_UpdateOverlay(
+ LPDIRECTDRAWSURFACE3 this,
+ LPRECT32 lpSrcRect,
+ LPDIRECTDRAWSURFACE3 lpDDDestSurface,
+ LPRECT32 lpDestRect,
+ DWORD dwFlags,
+ LPDDOVERLAYFX lpDDOverlayFx )
+{
+ FIXME(ddraw,"(%p)->(%p,%p,%p,0x%08lx,%p),stub!\n", this,
+ lpSrcRect, lpDDDestSurface, lpDestRect, dwFlags, lpDDOverlayFx );
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_UpdateOverlayDisplay(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx),stub!\n", this, dwFlags);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_UpdateOverlayZOrder(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags,
+ LPDIRECTDRAWSURFACE3 lpDDSReference )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx,%p),stub!\n", this, dwFlags, lpDDSReference);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_GetDDInterface(
+ LPDIRECTDRAWSURFACE3 this,
+ LPVOID* lplpDD )
+{
+ FIXME(ddraw,"(%p)->(%p),stub!\n", this, lplpDD);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_PageLock(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx),stub!\n", this, dwFlags);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_PageUnlock(
+ LPDIRECTDRAWSURFACE3 this,
+ DWORD dwFlags )
+{
+ FIXME(ddraw,"(%p)->(0x%08lx),stub!\n", this, dwFlags);
+
+ return DD_OK;
+}
+
+static HRESULT WINAPI IDirectDrawSurface3_SetSurfaceDesc(
+ LPDIRECTDRAWSURFACE3 this,
+ LPDDSURFACEDESC lpDDSD,
+ DWORD dwFlags )
+{
+ FIXME(ddraw,"(%p)->(%p,0x%08lx),stub!\n", this, lpDDSD, dwFlags);
+
+ return DD_OK;
+}
+
static struct IDirectDrawSurface3_VTable dga_dds3vt = {
IDirectDrawSurface3_QueryInterface,
IDirectDrawSurface3_AddRef,
DGA_IDirectDrawSurface3_Release,
IDirectDrawSurface3_AddAttachedSurface,
- (void*)5,
+ IDirectDrawSurface3_AddOverlayDirtyRect,
IDirectDrawSurface3_Blt,
IDirectDrawSurface3_BltBatch,
IDirectDrawSurface3_BltFast,
- (void*)9,
+ IDirectDrawSurface3_DeleteAttachedSurface,
IDirectDrawSurface3_EnumAttachedSurfaces,
- (void*)11,
+ IDirectDrawSurface3_EnumOverlayZOrders,
DGA_IDirectDrawSurface3_Flip,
IDirectDrawSurface3_GetAttachedSurface,
IDirectDrawSurface3_GetBltStatus,
IDirectDrawSurface3_GetCaps,
- (void*)16,
- (void*)17,
+ IDirectDrawSurface3_GetClipper,
+ IDirectDrawSurface3_GetColorKey,
IDirectDrawSurface3_GetDC,
- (void*)19,
+ IDirectDrawSurface3_GetFlipStatus,
IDirectDrawSurface3_GetOverlayPosition,
- (void*)21,
+ IDirectDrawSurface3_GetPalette,
IDirectDrawSurface3_GetPixelFormat,
IDirectDrawSurface3_GetSurfaceDesc,
IDirectDrawSurface3_Initialize,
@@ -857,16 +1005,16 @@
IDirectDrawSurface3_Restore,
IDirectDrawSurface3_SetClipper,
IDirectDrawSurface3_SetColorKey,
- (void*)31,
+ IDirectDrawSurface3_SetOverlayPosition,
DGA_IDirectDrawSurface3_SetPalette,
DGA_IDirectDrawSurface3_Unlock,
- (void*)34,
- (void*)35,
- (void*)36,
- (void*)37,
- (void*)38,
- (void*)39,
- (void*)40,
+ IDirectDrawSurface3_UpdateOverlay,
+ IDirectDrawSurface3_UpdateOverlayDisplay,
+ IDirectDrawSurface3_UpdateOverlayZOrder,
+ IDirectDrawSurface3_GetDDInterface,
+ IDirectDrawSurface3_PageLock,
+ IDirectDrawSurface3_PageUnlock,
+ IDirectDrawSurface3_SetSurfaceDesc,
};
static struct IDirectDrawSurface3_VTable xlib_dds3vt = {
@@ -874,23 +1022,23 @@
IDirectDrawSurface3_AddRef,
Xlib_IDirectDrawSurface3_Release,
IDirectDrawSurface3_AddAttachedSurface,
- (void*)5,
+ IDirectDrawSurface3_AddOverlayDirtyRect,
IDirectDrawSurface3_Blt,
IDirectDrawSurface3_BltBatch,
IDirectDrawSurface3_BltFast,
- (void*)9,
+ IDirectDrawSurface3_DeleteAttachedSurface,
IDirectDrawSurface3_EnumAttachedSurfaces,
- (void*)11,
+ IDirectDrawSurface3_EnumOverlayZOrders,
Xlib_IDirectDrawSurface3_Flip,
IDirectDrawSurface3_GetAttachedSurface,
IDirectDrawSurface3_GetBltStatus,
IDirectDrawSurface3_GetCaps,
- (void*)16,
- (void*)17,
+ IDirectDrawSurface3_GetClipper,
+ IDirectDrawSurface3_GetColorKey,
IDirectDrawSurface3_GetDC,
- (void*)19,
+ IDirectDrawSurface3_GetFlipStatus,
IDirectDrawSurface3_GetOverlayPosition,
- (void*)21,
+ IDirectDrawSurface3_GetPalette,
IDirectDrawSurface3_GetPixelFormat,
IDirectDrawSurface3_GetSurfaceDesc,
IDirectDrawSurface3_Initialize,
@@ -900,16 +1048,16 @@
IDirectDrawSurface3_Restore,
IDirectDrawSurface3_SetClipper,
IDirectDrawSurface3_SetColorKey,
- (void*)31,
+ IDirectDrawSurface3_SetOverlayPosition,
Xlib_IDirectDrawSurface3_SetPalette,
Xlib_IDirectDrawSurface3_Unlock,
- (void*)34,
- (void*)35,
- (void*)36,
- (void*)37,
- (void*)38,
- (void*)39,
- (void*)40,
+ IDirectDrawSurface3_UpdateOverlay,
+ IDirectDrawSurface3_UpdateOverlayDisplay,
+ IDirectDrawSurface3_UpdateOverlayZOrder,
+ IDirectDrawSurface3_GetDDInterface,
+ IDirectDrawSurface3_PageLock,
+ IDirectDrawSurface3_PageUnlock,
+ IDirectDrawSurface3_SetSurfaceDesc,
};
/******************************************************************************