Module: wine Branch: master Commit: 5f5c7020f398b2017a6f0d964f8151741787971d URL: http://source.winehq.org/git/wine.git/?a=commit;h=5f5c7020f398b2017a6f0d964f...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Mar 8 19:25:09 2011 +0100
gdi32: Add a common header to the physdev structure.
---
dlls/gdi32/dc.c | 4 ++++ dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 + dlls/gdi32/enhmfdrv/init.c | 2 ++ dlls/gdi32/gdi_private.h | 6 +++++- dlls/gdi32/mfdrv/init.c | 2 ++ dlls/gdi32/mfdrv/metafiledrv.h | 1 + dlls/wineps.drv/psdrv.h | 4 +++- dlls/winex11.drv/x11drv.h | 1 + 8 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 04f02be..4388deb 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -667,6 +667,8 @@ HDC WINAPI CreateDCW( LPCWSTR driver, LPCWSTR device, LPCWSTR output, goto error; }
+ dc->physDev->funcs = funcs; + dc->physDev->hdc = hdc; dc->vis_rect.left = 0; dc->vis_rect.top = 0; dc->vis_rect.right = GetDeviceCaps( hdc, DESKTOPHORZRES ); @@ -791,6 +793,8 @@ HDC WINAPI CreateCompatibleDC( HDC hdc ) goto error; }
+ dc->physDev->funcs = funcs; + dc->physDev->hdc = hdc; DC_InitDC( dc ); release_dc_ptr( dc ); return ret; diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h index 9a0f556..7a33237 100644 --- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h +++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h @@ -32,6 +32,7 @@
typedef struct { + struct gdi_physdev dev; HDC hdc; ENHMETAHEADER *emh; /* Pointer to enhanced metafile header */ UINT handles_size, cur_handles; diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c index db04f50..efa91ee 100644 --- a/dlls/gdi32/enhmfdrv/init.c +++ b/dlls/gdi32/enhmfdrv/init.c @@ -320,6 +320,8 @@ HDC WINAPI CreateEnhMetaFileW( return 0; } dc->physDev = (PHYSDEV)physDev; + physDev->dev.funcs = &EMFDRV_Funcs; + physDev->dev.hdc = dc->hSelf; physDev->hdc = dc->hSelf;
if(description) { /* App name\0Title\0\0 */ diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h index 015660f..5b241cd 100644 --- a/dlls/gdi32/gdi_private.h +++ b/dlls/gdi32/gdi_private.h @@ -72,7 +72,11 @@ typedef struct tagGDIOBJHDR
/* Device functions for the Wine driver interface */
-typedef struct { int opaque; } *PHYSDEV; /* PHYSDEV is an opaque pointer */ +typedef struct gdi_physdev +{ + const struct tagDC_FUNCS *funcs; + HDC hdc; +} *PHYSDEV;
typedef struct tagDC_FUNCS { diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c index 436d8ec..4659e73 100644 --- a/dlls/gdi32/mfdrv/init.c +++ b/dlls/gdi32/mfdrv/init.c @@ -172,6 +172,8 @@ static DC *MFDRV_AllocMetaFile(void) return NULL; } dc->physDev = (PHYSDEV)physDev; + physDev->dev.funcs = &MFDRV_Funcs; + physDev->dev.hdc = dc->hSelf; physDev->hdc = dc->hSelf;
if (!(physDev->mh = HeapAlloc( GetProcessHeap(), 0, sizeof(*physDev->mh) ))) diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h index b15864c..326192d 100644 --- a/dlls/gdi32/mfdrv/metafiledrv.h +++ b/dlls/gdi32/mfdrv/metafiledrv.h @@ -32,6 +32,7 @@
typedef struct { + struct gdi_physdev dev; HDC hdc; METAHEADER *mh; /* Pointer to metafile header */ UINT handles_size, cur_handles; diff --git a/dlls/wineps.drv/psdrv.h b/dlls/wineps.drv/psdrv.h index 4ca6e70..62f9ccc 100644 --- a/dlls/wineps.drv/psdrv.h +++ b/dlls/wineps.drv/psdrv.h @@ -351,7 +351,9 @@ typedef struct { BOOL had_passthrough_rect; /* See the comment in PSDRV_Rectangle */ } JOB;
-typedef struct { +typedef struct +{ + void *reserved[2]; /* reserved for gdi */ HDC hdc; PSFONT font; /* Current PS font */ DOWNLOAD *downloaded_fonts; diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index c973675..da59d7e 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -144,6 +144,7 @@ struct xrender_info; /* X physical device */ typedef struct { + void *reserved[2]; /* reserved for gdi */ HDC hdc; GC gc; /* X Window GC */ Drawable drawable;