A couple of questions about the new order

"Robert O'Callahan" <[email protected]>
Newsgroups gmane.comp.freedesktop.xserver
Message-ID <[email protected]>
I maintain the rendering manager for Mozilla. I've a couple of questions 
about how things could work in the new world.

Will we be able to use XDamage, XComposite etc (maybe XTest?) to fully 
encapsulate legacy plugins that manage their own X windows? We need to 
be able to stop them from rendering directly to the screen and directly 
receiving input, capture their rendering into our own arbitrary 
offscreen buffer, and poke them with input events when we feel like it.

We have a single logical canvas that for annoying reasons has to be 
projected on top of a whole stack of GTK windows. We want to be able to 
combine updates to this whole tree of X windows, geometry changes to 
those windows, and scrolling, all into one visually atomic operation. 
How can this be done and how would it interact with XComposite? Here's a 
sort of plan:
1) Create an offscreen buffer for our logical canvas
2) Copy some of our old pixels into this buffer from XComposite's 
backing store (when scrolling is happening)
3) Draw new pixels into the buffer
4) Change geometry of X child windows
5) Atomically update and validate most (but maybe not all, e.g., 
non-encapsulated plugins) child X windows with appropriate regions of 
this buffer
Will we be able to do this? Would the result be optimal?

I don't see any way to avoid having separate application and XComposite 
backing buffers while the application is rendering. If you have just one 
buffer then you have a problem if XComposite wants to recompose the 
screen while the app is in the middle of rendering.

Thanks,
Rob
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.