winex11: Implement X11DRV_FLUSH_GDI_DISPLAY ExtEscape command

Sebastian Lackner sebastian at fds-team.de
Mon Dec 30 21:37:01 CST 2013


This patch implements an additional ExtEscape command
X11DRV_FLUSH_GDI_DISPLAY, which can be used by external applications in
order to flush all drawing operations to the Xserver.

This patch is necessary for a new feature of Pipelight: In NPAPI
windowlessmode the browser provides an X11 drawable, and expects the
plugin (= the wine application) to draw on it. The current
implementation uses CreateDCA() to create a new hDC and then
X11DRV_SET_DRAWABLE to draw on an arbitrary X11 drawable. The additional
command implemented in this patch is required to ensure that the drawing
is finished before the PAINT event returns. Normally an XSync would be
even better, but a lot of testing shows that XFlush is also sufficient
(and faster), thats why we decided to use this approach.

[ Even though this patch is currently only useful for Pipelight users,
it would be nice to get this upstream, since we would like to get rid of
our own patched version once we have all the necessary stuff upstream. ]

---
 dlls/winex11.drv/init.c   |    3 +++
 dlls/winex11.drv/x11drv.h |    3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-winex11-Implement-X11DRV_FLUSH_GDI_DISPLAY-ExtEscape-c.patch
Type: text/x-patch
Size: 1519 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20131231/8cd3a820/attachment.bin>


More information about the wine-patches mailing list