Changed the GDI driver interface to pass an opaque PHYSDEV pointer
instead of a DC structure.
Removed some direct accesses to the DC structure from the drivers.
Got rid the bitmap driver.

diff --git a/graphics/bitblt.c b/graphics/bitblt.c
index a6ac8f0..a20613c 100644
--- a/graphics/bitblt.c
+++ b/graphics/bitblt.c
@@ -48,7 +48,7 @@
     if (dc->funcs->pPatBlt)
     {
         TRACE("%04x %d,%d %dx%d %06lx\n", hdc, left, top, width, height, rop );
-        bRet = dc->funcs->pPatBlt( dc, left, top, width, height, rop );
+        bRet = dc->funcs->pPatBlt( dc->physDev, left, top, width, height, rop );
     }
     GDI_ReleaseObj( hdc );
     return bRet;
@@ -84,8 +84,8 @@
               hdcSrc, xSrc, ySrc, dcSrc ? dcSrc->bitsPerPixel : 0,
               hdcDst, xDst, yDst, width, height, dcDst->bitsPerPixel, rop);
         if (dcDst->funcs->pBitBlt)
-            ret = dcDst->funcs->pBitBlt( dcDst, xDst, yDst, width, height,
-                                         dcSrc, xSrc, ySrc, rop );
+            ret = dcDst->funcs->pBitBlt( dcDst->physDev, xDst, yDst, width, height,
+                                         dcSrc->physDev, xSrc, ySrc, rop );
         if (dcSrc) GDI_ReleaseObj( hdcSrc );
         GDI_ReleaseObj( hdcDst );
     }
@@ -131,8 +131,9 @@
 
 	if (dcSrc) {
 	    if (dcDst->funcs->pStretchBlt)
-		ret = dcDst->funcs->pStretchBlt( dcDst, xDst, yDst, widthDst, heightDst,
-						 dcSrc, xSrc, ySrc, widthSrc, heightSrc, rop );
+		ret = dcDst->funcs->pStretchBlt( dcDst->physDev, xDst, yDst, widthDst, heightDst,
+                                                 dcSrc->physDev, xSrc, ySrc, widthSrc, heightSrc,
+                                                 rop );
 	    GDI_ReleaseObj( hdcSrc );
 	}
         GDI_ReleaseObj( hdcDst );