Web lists-archives.com

Re: RFC: GtkPreview library

On Sat, Jan 24, 2015 at 4:33 AM, Carlos Garcia Campos <carlosgc@xxxxxxxxx> wrote:
I'm assuming the providers will render the contents into surfaces that
the previewer will compose, not providers directly drawing into the
previewer. We can share the bitmaps between processes without using
anything like CORBA, simply using shared memory and sending the file
descriptor with dbus. Note that providers might not be asynchronous, or
thread safe.

I can see a few problems with this approach:
- data is not always a static bitmap. You can preview arbitrary complex things like webpages, videos, presentations, etc. In the future even possibly complex CAD drawings or whatnot, if a module gets written for them.
- the problem with doing this generically is that there needs a system that notifies what has been invalidated in order to redraw, something that forwards input events, etc.
- ideally we don't want to copy every frame while doing that

Bastien's suggestion to use (wayland) sub-surfaces sounds like a much better fit, as they're designed specifically to address some of these problems. My understanding is that it requires writing a small wayland compositor in the widget itself; not sure yet what'd be involved with this. There's also a question about what to do on backends (like X11) that don't really support such a thing. I guess we could use XEmbed on X11, but I can see it turning messy pretty quickly.

That's why my proposal doesn't enforce this specific design; I'm definitely open to think more about how a multi-process design looks like, but I wouldn't want to block until that is figured out.

gtk-devel-list mailing list