combining Render's Composite + SHM's PutImage

Nigel Tao nigel.tao.gnome at
Wed Apr 8 18:01:47 PDT 2015

I'm possibly Doing It Wrong, but...

I'm playing around with an X client, I have some shared memory full of
pixels, and I want to paint them on a window, with alpha-blending. I
also want to know when the paint is complete, so I can re-use that
shared memory buffer for different pixels.

IIUC, Render gives me the alpha-blending, but not the SHM completion
event. SHM gives me the opposite.

Is there a good way that I can have my cake and eat it too?

I suppose that I could call SHM's GetImage to a temporary shared
buffer, do the alpha-blending on the client, and call SHM's PutImage.
Or, I could call SHM's PutImage to a temporary server-side buffer, and
call Render's Composite. But neither approach seems ideal, as it
involves creating and cleaning up a temporary buffer.

If it matters, I'm speaking X protocol directly instead of using Xlib.
I'm actually using the Go programming language and its equivalent of

More information about the xorg mailing list