This is a small patch to prepare things for future work (to be shipped in a few minutes:)) Fundamentally, the main purpose of a USER driver is to deal with windowing, and as such, it needs to be able to compute invalidated areas. It thus makes sense to for it to export functions that let you query this information. The start/end interface used by x11drv makes sense, and it looks sane enough to be exported. ChangeLog Export {Start,End}GraphicsExposures from x11drv. Index: dlls/x11drv/x11drv.spec =================================================================== RCS file: /var/cvs/wine/dlls/x11drv/x11drv.spec,v retrieving revision 1.39 diff -u -r1.39 x11drv.spec --- dlls/x11drv/x11drv.spec 27 Aug 2002 19:19:49 -0000 1.39 +++ dlls/x11drv/x11drv.spec 21 Sep 2002 05:59:48 -0000 @@ -99,3 +97,5 @@ @ cdecl GetClipboardFormatName(long str long) X11DRV_GetClipboardFormatName @ cdecl IsSelectionOwner() X11DRV_IsSelectionOwner @ cdecl ResetSelectionOwner(ptr long) X11DRV_ResetSelectionOwner +@ cdecl StartGraphicsExposures(long) X11DRV_StartGraphicsExposures +@ cdecl EndGraphicsExposures(long long) X11DRV_EndGraphicsExposures Index: dlls/user/user_main.c =================================================================== RCS file: /var/cvs/wine/dlls/user/user_main.c,v retrieving revision 1.43 diff -u -r1.43 user_main.c --- dlls/user/user_main.c 28 Aug 2002 22:35:23 -0000 1.43 +++ dlls/user/user_main.c 21 Sep 2002 05:21:55 -0000 @@ -114,6 +114,8 @@ GET_USER_FUNC(SetWindowText); GET_USER_FUNC(ShowWindow); GET_USER_FUNC(SysCommandSizeMove); + GET_USER_FUNC(StartGraphicsExposures); + GET_USER_FUNC(EndGraphicsExposures); return TRUE; } Index: include/user.h =================================================================== RCS file: /var/cvs/wine/include/user.h,v retrieving revision 1.41 diff -u -r1.41 user.h --- include/user.h 28 Aug 2002 00:39:39 -0000 1.41 +++ include/user.h 21 Sep 2002 05:28:28 -0000 @@ -108,6 +108,8 @@ BOOL (*pSetWindowText)(HWND,LPCWSTR); BOOL (*pShowWindow)(HWND,INT); void (*pSysCommandSizeMove)(HWND,WPARAM); + void (*pStartGraphicsExposures)(HDC); + void (*pEndGraphicsExposures)(HDC,HRGN); } USER_DRIVER; extern USER_DRIVER USER_Driver;