Remove X_DC_INFO from DC and make it behave like any other PDEVICE.
diff --git a/graphics/wing.c b/graphics/wing.c
index 3654cad..52c9288 100644
--- a/graphics/wing.c
+++ b/graphics/wing.c
@@ -17,6 +17,7 @@
#include "dc.h"
#include "gdi.h"
#include "xmalloc.h"
+#include "x11drv.h"
#include "debug.h"
typedef enum WING_DITHER_TYPE
@@ -262,9 +263,12 @@
/* destDC is a display DC, srcDC is a memory DC */
DC *dcDst, *dcSrc;
+ X11DRV_PDEVICE *physDevDst, *physDevSrc;
if (!(dcDst = (DC *)GDI_GetObjPtr( destDC, DC_MAGIC ))) return FALSE;
if (!(dcSrc = (DC *) GDI_GetObjPtr( srcDC, DC_MAGIC ))) return FALSE;
+ physDevDst = (X11DRV_PDEVICE *)dcDst->physDev;
+ physDevSrc = (X11DRV_PDEVICE *)dcSrc->physDev;
if (dcDst->w.flags & DC_DIRTY) CLIPPING_UpdateGCRegion( dcDst );
@@ -275,10 +279,10 @@
widDest = widDest * dcDst->vportExtX / dcDst->wndExtX;
heiDest = heiDest * dcDst->vportExtY / dcDst->wndExtY;
- TSXSetFunction( display, dcDst->u.x.gc, GXcopy );
- TSXCopyArea( display, dcSrc->u.x.drawable,
- dcDst->u.x.drawable, dcDst->u.x.gc,
- xSrc, ySrc, widDest, heiDest, xDest, yDest );
+ TSXSetFunction( display, physDevDst->gc, GXcopy );
+ TSXCopyArea( display, physDevSrc->drawable,
+ physDevDst->drawable, physDevDst->gc,
+ xSrc, ySrc, widDest, heiDest, xDest, yDest );
return TRUE;
}