[PATCH weston v3 04/11] make the backends compositor-neutral
Pekka Paalanen
ppaalanen at gmail.com
Fri Jul 10 05:27:39 PDT 2015
On Sat, 27 Jun 2015 14:07:44 +0300
Giulio Camuffo <giuliocamuffo at gmail.com> wrote:
> The backends used to have lots of code dealing with weston specific configs.
> To allow them to be used by other compositors with their own configurations
> remove all the usage of weston_config from the backends code and move it
> in weston.c. The backends are now initialized with the new
> weston_compositor_init_backend() function which takes a pointer to a
> weston_backend_config struct. Each backend now installs one header where
> a subclass of weston_backend_config is defined, and the compositor creates
> an instance of the backend-specific config struct and passes it to
> weston_compositor_init_backend().
> This means that the compositor now needs to know about all the backends
> to be able to instantiate them, but no backend specific API such as xcb
> or libdrm leaks through, so there are no new dependencies for the compositor.
>
> A backend may now set a vfunc pointer to create a new compositor. Not all do
"Compositor" should probably be "output".
> though, and use instead a callback function to configure a new output
> that comes from below the compositor, instead of above it.
I wrote some comments to an earlier thread here:
http://lists.freedesktop.org/archives/wayland-devel/2015-July/023301.html
That is my basis for evaluating this patch.
> ---
> Makefile.am | 21 ++
> src/compositor-drm.c | 163 +++++--------
> src/compositor-drm.h | 77 ++++++
> src/compositor-fbdev.c | 66 ++---
> src/compositor-fbdev.h | 58 +++++
> src/compositor-headless.c | 81 +++----
> src/compositor-headless.h | 47 ++++
> src/compositor-rdp.c | 57 +----
> src/compositor-rdp.h | 54 +++++
> src/compositor-rpi.c | 50 ++--
> src/compositor-rpi.h | 51 ++++
> src/compositor-wayland.c | 222 ++++-------------
> src/compositor-wayland.h | 58 +++++
> src/compositor-x11.c | 166 ++++---------
> src/compositor-x11.h | 55 +++++
> src/compositor.c | 40 +++-
> src/compositor.h | 20 +-
> src/main.c | 599 ++++++++++++++++++++++++++++++++++++++++++++--
> 18 files changed, 1283 insertions(+), 602 deletions(-)
> create mode 100644 src/compositor-drm.h
> create mode 100644 src/compositor-fbdev.h
> create mode 100644 src/compositor-headless.h
> create mode 100644 src/compositor-rdp.h
> create mode 100644 src/compositor-rpi.h
> create mode 100644 src/compositor-wayland.h
> create mode 100644 src/compositor-x11.h
This and the following patch "compositor: remove the weston_config
field from weston_compositor" are doing a lot of things at once. I feel
it is hard to see what is going on.
I'll have a look if we could do the following patch series instead:
- add config infra, but stubbed; everything still relies on
weston_compositor::config
- convert each backend at a time
- convert each other config user at a time
- remove weston_compositor::config as unused
This way we can convert only the drm-backend at first and see how it
looks like.
Thanks,
pq
More information about the wayland-devel
mailing list