On Sat, Jan 24, 2015 at 4:33 AM, Carlos Garcia Campos <carlo...@gnome.org>
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.

Cosimo
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to