On Fri, Aug 03, 2012 at 09:58:27AM +0800, Juan Zhao wrote: > Thanks for your reply, I will refine it, I still have some questions. :) > > On Thu, 2012-08-02 at 12:01 -0400, Kristian Høgsberg wrote: > > > @@ -1669,7 +1669,10 @@ update_outputs(struct drm_compositor *ec, > > struct udev_device *drm_device) > > > } > > > } > > > > > > - /* FIXME: handle zero outputs, without terminating */ > > > + ec->base.shell_interface.reconf_active_regions( > > > > > + ec->base.shell_interface.shell); > > > + > > > > Let's use a wl_signal for this. Outputs changing is an event > > generated by the core compositor, and there may many places that want > > to do something when that happens. Put a struct wl_signal > > outputs_signal in weston_compositor and emit it whenever the list of > > outputs, their resolution or position changes. Let's also add an > > output_region region in weston_compositor.h that we keep up to date > > with then union of all output->regions. Rebuild it before emitting > > the outputs_signal. > > > My first question is about how to grap "Output changing", currently, in > drm backend, we listen to udev events and grab the changing, how would > it work in X11, android backend, and generalize one interface in > compositor.c. > > Generate a new file, providing APIs and handling all the "Output > changing" issues?
We don't have any hotplug functionality in the other backends, so that's not a problem. We don't need any new files, just use wl_signal like described above. Look for wl_signal_emit and wl_signal_add for examples of how the mechanism work. Kristian > Thanks, > Juan > > > > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel