diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 6aca10c3..dc907818 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -4025,6 +4025,8 @@ drm_backend_create(struct weston_compositor *compositor, b->use_pixman = config->use_pixman; b->pageflip_timeout = config->pageflip_timeout; + compositor->backend = &b->base; + if (parse_gbm_format(config->gbm_format, GBM_FORMAT_XRGB8888, &b->gbm_format) < 0) goto err_compositor; @@ -4141,8 +4143,6 @@ drm_backend_create(struct weston_compositor *compositor, "support failed.\n"); } - compositor->backend = &b->base; - ret = weston_plugin_api_register(compositor, WESTON_DRM_OUTPUT_API_NAME, &api, sizeof(api)); diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c index 1765fa8f..992eadb8 100644 --- a/libweston/compositor-fbdev.c +++ b/libweston/compositor-fbdev.c @@ -731,6 +731,7 @@ fbdev_backend_create(struct weston_compositor *compositor, return NULL; backend->compositor = compositor; + compositor->backend = &backend->base; if (weston_compositor_set_presentation_clock_software( compositor) < 0) goto out_compositor; @@ -769,7 +770,6 @@ fbdev_backend_create(struct weston_compositor *compositor, udev_input_init(&backend->input, compositor, backend->udev, seat_id, param->configure_device); - compositor->backend = &backend->base; return backend; out_launcher: diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c index 64fe6f3f..2f01b64a 100644 --- a/libweston/compositor-headless.c +++ b/libweston/compositor-headless.c @@ -277,6 +277,8 @@ headless_backend_create(struct weston_compositor *compositor, return NULL; b->compositor = compositor; + compositor->backend = &b->base; + if (weston_compositor_set_presentation_clock_software(compositor) < 0) goto err_free; @@ -291,8 +293,6 @@ headless_backend_create(struct weston_compositor *compositor, if (!b->use_pixman && noop_renderer_init(compositor) < 0) goto err_input; - compositor->backend = &b->base; - ret = weston_plugin_api_register(compositor, WESTON_WINDOWED_OUTPUT_API_NAME, &api, sizeof(api)); diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c index 393c1185..990ddc66 100644 --- a/libweston/compositor-rdp.c +++ b/libweston/compositor-rdp.c @@ -1299,6 +1299,8 @@ rdp_backend_create(struct weston_compositor *compositor, b->rdp_key = config->rdp_key ? strdup(config->rdp_key) : NULL; b->no_clients_resize = config->no_clients_resize; + compositor->backend = &b->base; + /* activate TLS only if certificate/key are available */ if (config->server_cert && config->server_key) { weston_log("TLS support activated\n"); @@ -1345,8 +1347,6 @@ rdp_backend_create(struct weston_compositor *compositor, goto err_output; } - compositor->backend = &b->base; - ret = weston_plugin_api_register(compositor, WESTON_RDP_OUTPUT_API_NAME, &api, sizeof(api)); diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c index 26cfdd59..fc929364 100644 --- a/libweston/compositor-wayland.c +++ b/libweston/compositor-wayland.c @@ -2487,6 +2487,8 @@ wayland_backend_create(struct weston_compositor *compositor, return NULL; b->compositor = compositor; + compositor->backend = &b->base; + if (weston_compositor_set_presentation_clock_software(compositor) < 0) goto err_compositor; @@ -2559,7 +2561,6 @@ wayland_backend_create(struct weston_compositor *compositor, "support failed.\n"); } - compositor->backend = &b->base; return b; err_display: wl_display_disconnect(b->parent.wl_display); diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c index 070f2875..60843ac1 100644 --- a/libweston/compositor-x11.c +++ b/libweston/compositor-x11.c @@ -1669,6 +1669,8 @@ x11_backend_create(struct weston_compositor *compositor, b->fullscreen = config->fullscreen; b->no_input = config->no_input; + compositor->backend = &b->base; + if (weston_compositor_set_presentation_clock_software(compositor) < 0) goto err_free; @@ -1728,8 +1730,6 @@ x11_backend_create(struct weston_compositor *compositor, "support failed.\n"); } - compositor->backend = &b->base; - ret = weston_plugin_api_register(compositor, WESTON_WINDOWED_OUTPUT_API_NAME, &api, sizeof(api));