Re: how to tell a window is completely redrawn?

Irek Szczesniak <[email protected]> Tue, 8 Mar 2005 16:34:00 -0700 (MST)
Newsgroups gmane.comp.freedesktop.xserver
Message-ID <[email protected]>
Thank you for your e-mail!  I appreciate your advice.

On Tue, 8 Mar 2005, Deron Johnson wrote:

> 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.

I have no way of establishing such a communication.  These
applications do not know that I want to take pictures of their
windows.  Modifying the applications and recompiling them is not
possible.

> 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.

Based on what you wrote, I tested this:

XMapRaised(dpy, window);
XFlush(dpy);

image = XGetImage (dpy, window, x, y, 1, 1, AllPlanes, format);
image = XGetImage (dpy, window, x, y, width, height, AllPlanes, format);

Unfortunately, it does not work as expected, i.e. I get a picture of
an uncompletely redrawn window.

Then I also tried this:

image = XGetImage (dpy, window, x, y, width, height, AllPlanes, format);
image = XGetImage (dpy, window, x, y, width, height, AllPlanes, format);

But also to no avail.

What am I doing wrong?


Thank you & best,
Irek

*******************************************************************

> 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