Remove X_DC_INFO from DC and make it behave like any other PDEVICE.

diff --git a/include/bitmap.h b/include/bitmap.h
index 64765ef..e24e621 100644
--- a/include/bitmap.h
+++ b/include/bitmap.h
@@ -8,6 +8,8 @@
 #define __WINE_BITMAP_H
 
 #include "gdi.h"
+#include "ts_xlib.h"
+#include "ts_xutil.h"
 
   /* Additional info for DIB section objects */
 typedef struct
diff --git a/include/color.h b/include/color.h
index 949c180..e699e82 100644
--- a/include/color.h
+++ b/include/color.h
@@ -3,6 +3,7 @@
 
 #include "palette.h"
 #include "gdi.h"
+#include "x11drv.h"
 
 #define COLOR_FIXED     0x0001          /* read-only colormap - have to use XAllocColor (if not virtual)*/
 #define COLOR_VIRTUAL   0x0002          /* no mapping needed - pixel == pixel color */
diff --git a/include/gdi.h b/include/gdi.h
index 066fd4e..e7717a5 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -10,7 +10,6 @@
 #include "windows.h"
 #include "ldt.h"
 #include "local.h"
-#include "x11drv.h"
 #include "path.h"
 #include <math.h>
 
@@ -139,8 +138,6 @@
     BOOL32        vport2WorldValid;  /* Is xformVport2World valid? */
 } WIN_DC_INFO;
 
-typedef X11DRV_PDEVICE X_DC_INFO;  /* Temporary */
-
 typedef struct tagDC
 {
     GDIOBJHDR      header;
@@ -161,14 +158,12 @@
     INT32          vportExtY;
 
     WIN_DC_INFO w;
-    union
-    {
-	X_DC_INFO x;
-	/* other devices (e.g. printer) */
-    } u;
 } DC;
 
 /* Device functions for the Wine driver interface */
+
+typedef INT32 (*DEVICEFONTENUMPROC)(LPENUMLOGFONT16,LPNEWTEXTMETRIC16,UINT16,LPARAM);
+
 typedef struct tagDC_FUNCS
 {
     BOOL32     (*pArc)(DC*,INT32,INT32,INT32,INT32,INT32,INT32,INT32,INT32);
@@ -432,11 +427,4 @@
 extern const DC_FUNCTIONS *DRIVER_FindDriver( LPCSTR name );
 extern BOOL32 DRIVER_UnregisterDriver( LPCSTR name );
 
-extern BOOL32 DIB_Init(void);
-
-extern Display * display;
-extern Screen * screen;
-extern Window rootWindow;
-extern int screenWidth, screenHeight, screenDepth;
-
 #endif  /* __WINE_GDI_H */
diff --git a/include/x11drv.h b/include/x11drv.h
index 1f7aef2..186227c 100644
--- a/include/x11drv.h
+++ b/include/x11drv.h
@@ -9,6 +9,7 @@
 #include "ts_xutil.h"
 #include "winbase.h"
 #include "windows.h"
+#include "gdi.h"
 #include "xmalloc.h" /* for XCREATEIMAGE macro */
 
   /* X physical pen */
@@ -59,7 +60,6 @@
 #define BITMAP_GC(bmp) \
   (((bmp)->bitmap.bmBitsPixel == 1) ? BITMAP_monoGC : BITMAP_colorGC)
 
-typedef INT32 (*DEVICEFONTENUMPROC)(LPENUMLOGFONT16,LPNEWTEXTMETRIC16,UINT16,LPARAM);
 
 /* Wine driver X11 functions */
 
@@ -158,6 +158,12 @@
 
 extern const int X11DRV_XROPfunction[];
 
+extern Display * display;
+extern Screen * screen;
+extern Window rootWindow;
+extern int screenWidth, screenHeight, screenDepth;
+
+
 /* Xlib critical section */
 
 extern CRITICAL_SECTION X11DRV_CritSection;
diff --git a/include/x11font.h b/include/x11font.h
index 268fe1a..df63728 100644
--- a/include/x11font.h
+++ b/include/x11font.h
@@ -8,7 +8,7 @@
 #define __WINE_X11FONT_H
 
 #include "gdi.h"
-
+#include "x11drv.h"
 #pragma pack(1)
 
 /* this is a part of the font resource header, should