Re: how to tell a window is completely redrawn?

Deron Johnson <Deron.Johnson-UdXhSnd/[email protected]> Tue, 08 Mar 2005 13:08:48 -0800
Newsgroups gmane.comp.freedesktop.xserver
Message-ID <[email protected]>
XGetImage ensures that all pending rendering has made it out to the
screen. So you shouldn't need to do anything extra if the XGetImage
is inside the program which is doing the drawing.

However, if the XGetImage is in another process from the one doing
the drawing, you'll have to establish your own interprocess
communication protocol for the app to tell your XGetImage process
when it has flushed its final drawing request to the X server.

In general, if you want to make sure that the rendering of an
arbitrary X request has been written to the frame buffer, you
simply need to do an XFlush followed by an XGetImage of one
pixel from the window. This is sufficient to ensure that the contents
of all rendering queues (including those in the DDX and the hardware
itself) have been flushed out to the frame buffer.

Irek Szczesniak wrote:
> Hello,
> 
> I need to wait for a window to be completely redrawn, and then take a
> picture of it with XGetImage.  This window is not mine, and the only
> thing I know about it is its ID.
> 
> How can I tell that the X server has compeletly redrawn the window?
> 
> I would appreciate your time and advice.
> 
> 
> Thank you,
> Irek
> 
> 
> _______________________________________________
> xserver mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/xserver