Re: A couple of questions about the new order
Robert O'Callahan <[email protected]>
| Newsgroups | gmane.comp.freedesktop.xserver |
|---|---|
| Message-ID | <[email protected]> |
Keith Packard wrote: >Around 19 o'clock on Nov 25, "Robert O'Callahan" wrote: > > > >>Here's the thing that I didn't manage to get across, so I'll try again: >>most of our child windows (except for plugins) don't have their own >>contents to draw. >> >> > >So they are effectively "input only"? > Actually they don't really take input either. They effectively pass all input up to their parent. They only exist to make scrolling and clipping to inner rectangles work in the presence of plugins. (And because of certain legacy and crossplatform code issues --- fixable on our side with some effort.) It sounds like InputOnly windows should solve our problem pretty well as long as they can have regular InputOutput children. Thanks for the tip! >>Also, can we now scroll by just copying pixels within Composite's >>backing pixmap for a window? >> >> > >You could always do that using CopyArea in IncludeInferiors mode, the >trick was that the child window position wouldn't get set correctly. Now, >with Composite, you can avoid having child window updates have any affect >on the parent. > Good. There is still a double-buffering issue; we don't want the XCopyArea to be visible until we've also painted the newly exposed area (currently we have huge hacks to mitigate this). That reduces to the issue of how do we tell Composite that we're done rendering a frame. >>So when a timeout fires, it just looks ugly? I guess that's OK. >> >> >That's likely; given suitably long timeouts, they "shouldn't" ever occur >if applications are keeping up. In the normal course of events, I'd >expect updates to be triggered when all affected windows are ready. Note >that none of this has seen any more exposition than you've read here. > > No matter what OpenGL-based hardware-accelerated-up-the-wazoo X server you build, some author will build a Web page sufficiently complex that we can't keep up :-). "When all affected windows are ready" might have problems. Suppose you have N apps blended into the same screen area and they repeatedly draw frames in such a way that at any given time, at least one app is not ready. Anyway, thanks for the tips. It gives us some idea of what we should be aiming for. We still have to figure out how to fit it into a cross-platform story but that's our problem :-). Rob -- Robert O'Callahan <[email protected]> "Here is a trustworthy saying that deserves full acceptance: Christ Jesus came into the world to save sinners-of whom I am the worst. (1 Timothy 1:14-16)