aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-add-output-type-to-weston_output.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-add-output-type-to-weston_output.patch')
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-add-output-type-to-weston_output.patch281
1 files changed, 0 insertions, 281 deletions
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-add-output-type-to-weston_output.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-add-output-type-to-weston_output.patch
deleted file mode 100644
index 4c46ec4ec..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-add-output-type-to-weston_output.patch
+++ /dev/null
@@ -1,281 +0,0 @@
-From 99fb36e62d3d0e3bda3d2984f280f534a629f70c Mon Sep 17 00:00:00 2001
-From: Wataru Mizuno <wmizuno@jp.adit-jv.com>
-Date: Thu, 12 Oct 2017 14:55:13 +0900
-Subject: [PATCH 1/5] compositor: add output type to weston_output
-
-This enables weston to use multiple types of backend
-Each backends have own output structure for each functions
-To avoid invalid member access, type identifier is needed
-
-Signed-off-by: Wataru Mizuno <wmizuno@jp.adit-jv.com>
----
- libweston/compositor-drm.c | 100 +++++++++++++++++++++++-----------------
- libweston/compositor-fbdev.c | 1 +
- libweston/compositor-headless.c | 1 +
- libweston/compositor-rdp.c | 1 +
- libweston/compositor-wayland.c | 1 +
- libweston/compositor-x11.c | 1 +
- libweston/compositor.h | 12 +++++
- 7 files changed, 74 insertions(+), 43 deletions(-)
-
-diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
-index 1d38f05..0b5b4c4 100644
---- a/libweston/compositor-drm.c
-+++ b/libweston/compositor-drm.c
-@@ -243,14 +243,16 @@ drm_output_find_by_crtc(struct drm_backend *b, uint32_t crtc_id)
- struct drm_output *output;
-
- wl_list_for_each(output, &b->compositor->output_list, base.link) {
-- if (output->crtc_id == crtc_id)
-- return output;
-+ if(output->base.output_type == OUTPUT_DRM)
-+ if (output->crtc_id == crtc_id)
-+ return output;
- }
-
- wl_list_for_each(output, &b->compositor->pending_output_list,
- base.link) {
-- if (output->crtc_id == crtc_id)
-- return output;
-+ if(output->base.output_type == OUTPUT_DRM)
-+ if (output->crtc_id == crtc_id)
-+ return output;
- }
-
- return NULL;
-@@ -262,14 +264,16 @@ drm_output_find_by_connector(struct drm_backend *b, uint32_t connector_id)
- struct drm_output *output;
-
- wl_list_for_each(output, &b->compositor->output_list, base.link) {
-- if (output->connector_id == connector_id)
-- return output;
-+ if(output->base.output_type == OUTPUT_DRM)
-+ if (output->connector_id == connector_id)
-+ return output;
- }
-
- wl_list_for_each(output, &b->compositor->pending_output_list,
- base.link) {
-- if (output->connector_id == connector_id)
-- return output;
-+ if(output->base.output_type == OUTPUT_DRM)
-+ if (output->connector_id == connector_id)
-+ return output;
- }
-
- return NULL;
-@@ -2433,6 +2437,7 @@ drm_output_enable(struct weston_output *base)
- struct weston_mode *m;
-
- output->dpms_prop = drm_get_prop(b->drm.fd, output->connector, "DPMS");
-+ output->base.output_type = OUTPUT_DRM;
-
- if (b->use_pixman) {
- if (drm_output_init_pixman(output, b) < 0) {
-@@ -2797,38 +2802,42 @@ update_outputs(struct drm_backend *b, struct udev_device *drm_device)
-
- wl_list_for_each_safe(output, next, &b->compositor->output_list,
- base.link) {
-- bool disconnected = true;
--
-- for (i = 0; i < resources->count_connectors; i++) {
-- if (connected[i] == output->connector_id) {
-- disconnected = false;
-- break;
-+ if (output->base.output_type == OUTPUT_DRM) {
-+ bool disconnected = true;
-+
-+ for (i = 0; i < resources->count_connectors; i++) {
-+ if (connected[i] == output->connector_id) {
-+ disconnected = false;
-+ break;
-+ }
- }
-- }
-
-- if (!disconnected)
-- continue;
-+ if (!disconnected)
-+ continue;
-
-- weston_log("connector %d disconnected\n", output->connector_id);
-- drm_output_destroy(&output->base);
-+ weston_log("connector %d disconnected\n", output->connector_id);
-+ drm_output_destroy(&output->base);
-+ }
- }
-
- wl_list_for_each_safe(output, next, &b->compositor->pending_output_list,
- base.link) {
-- bool disconnected = true;
--
-- for (i = 0; i < resources->count_connectors; i++) {
-- if (connected[i] == output->connector_id) {
-- disconnected = false;
-- break;
-+ if (output->base.output_type == OUTPUT_DRM) {
-+ bool disconnected = true;
-+
-+ for (i = 0; i < resources->count_connectors; i++) {
-+ if (connected[i] == output->connector_id) {
-+ disconnected = false;
-+ break;
-+ }
- }
-- }
-
-- if (!disconnected)
-- continue;
-+ if (!disconnected)
-+ continue;
-
-- weston_log("connector %d disconnected\n", output->connector_id);
-- drm_output_destroy(&output->base);
-+ weston_log("connector %d disconnected\n", output->connector_id);
-+ drm_output_destroy(&output->base);
-+ }
- }
-
- free(connected);
-@@ -2925,18 +2934,21 @@ session_notify(struct wl_listener *listener, void *data)
- * pending frame callbacks. */
-
- wl_list_for_each(output, &compositor->output_list, base.link) {
-- output->base.repaint_needed = 0;
-- drmModeSetCursor(b->drm.fd, output->crtc_id, 0, 0, 0);
-+ if(output->base.output_type == OUTPUT_DRM) {
-+ output->base.repaint_needed = 0;
-+ drmModeSetCursor(b->drm.fd, output->crtc_id, 0, 0, 0);
-+ }
-+ }
-+ if(output->base.output_type == OUTPUT_DRM) {
-+ output = container_of(compositor->output_list.next,
-+ struct drm_output, base.link);
-+
-+ wl_list_for_each(sprite, &b->sprite_list, link)
-+ drmModeSetPlane(b->drm.fd,
-+ sprite->plane_id,
-+ output->crtc_id, 0, 0,
-+ 0, 0, 0, 0, 0, 0, 0, 0);
- }
--
-- output = container_of(compositor->output_list.next,
-- struct drm_output, base.link);
--
-- wl_list_for_each(sprite, &b->sprite_list, link)
-- drmModeSetPlane(b->drm.fd,
-- sprite->plane_id,
-- output->crtc_id, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0);
- };
- }
-
-@@ -3148,7 +3160,8 @@ switch_to_gl_renderer(struct drm_backend *b)
- }
-
- wl_list_for_each(output, &b->compositor->output_list, base.link)
-- pixman_renderer_output_destroy(&output->base);
-+ if(output->base.output_type == OUTPUT_DRM)
-+ pixman_renderer_output_destroy(&output->base);
-
- b->compositor->renderer->destroy(b->compositor);
-
-@@ -3160,7 +3173,8 @@ switch_to_gl_renderer(struct drm_backend *b)
- }
-
- wl_list_for_each(output, &b->compositor->output_list, base.link)
-- drm_output_init_egl(output, b);
-+ if(output->base.output_type == OUTPUT_DRM)
-+ drm_output_init_egl(output, b);
-
- b->use_pixman = 0;
-
-diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c
-index 44f0cf5..9cb903e 100644
---- a/libweston/compositor-fbdev.c
-+++ b/libweston/compositor-fbdev.c
-@@ -433,6 +433,7 @@ fbdev_output_enable(struct weston_output *base)
- int fb_fd;
- struct wl_event_loop *loop;
-
-+ output->base.output_type = OUTPUT_FBDEV;
- /* Create the frame buffer. */
- fb_fd = fbdev_frame_buffer_open(output, output->device, &output->fb_info);
- if (fb_fd < 0) {
-diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c
-index a1aec6d..b0d5afb 100644
---- a/libweston/compositor-headless.c
-+++ b/libweston/compositor-headless.c
-@@ -148,6 +148,7 @@ headless_output_enable(struct weston_output *base)
- loop = wl_display_get_event_loop(b->compositor->wl_display);
- output->finish_frame_timer =
- wl_event_loop_add_timer(loop, finish_frame_handler, output);
-+ output->base.output_type = OUTPUT_HEADLESS;
-
- if (b->use_pixman) {
- output->image_buf = malloc(output->base.current_mode->width *
-diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c
-index d9668e8..d525982 100644
---- a/libweston/compositor-rdp.c
-+++ b/libweston/compositor-rdp.c
-@@ -519,6 +519,7 @@ rdp_output_enable(struct weston_output *base)
- struct rdp_backend *b = to_rdp_backend(base->compositor);
- struct wl_event_loop *loop;
-
-+ output->base.output_type = OUTPUT_RDP;
- output->shadow_surface = pixman_image_create_bits(PIXMAN_x8r8g8b8,
- output->base.current_mode->width,
- output->base.current_mode->height,
-diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c
-index 9d35ef7..66a0dbf 100644
---- a/libweston/compositor-wayland.c
-+++ b/libweston/compositor-wayland.c
-@@ -1164,6 +1164,7 @@ wayland_output_enable(struct weston_output *base)
- struct wayland_backend *b = to_wayland_backend(base->compositor);
- int ret = 0;
-
-+ output->base.output_type = OUTPUT_WAYLAND;
- weston_log("Creating %dx%d wayland output at (%d, %d)\n",
- output->base.current_mode->width,
- output->base.current_mode->height,
-diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
-index f9cb461..fcf39e1 100644
---- a/libweston/compositor-x11.c
-+++ b/libweston/compositor-x11.c
-@@ -825,6 +825,7 @@ x11_output_enable(struct weston_output *base)
- XCB_EVENT_MASK_STRUCTURE_NOTIFY,
- 0
- };
-+ output->base.output_type = OUTPUT_X11;
-
- if (!b->no_input)
- values[0] |=
-diff --git a/libweston/compositor.h b/libweston/compositor.h
-index 08e728a..51157d0 100644
---- a/libweston/compositor.h
-+++ b/libweston/compositor.h
-@@ -146,9 +146,21 @@ enum dpms_enum {
- WESTON_DPMS_OFF
- };
-
-+/* bit compatible with drm definitions. */
-+enum output_type {
-+ OUTPUT_DRM,
-+ OUTPUT_FBDEV,
-+ OUTPUT_HEADLESS,
-+ OUTPUT_RDP,
-+ OUTPUT_WAYLAND,
-+ OUTPUT_X11,
-+ OUTPUT_WALTHAM
-+};
-+
- struct weston_output {
- uint32_t id;
- char *name;
-+ enum output_type output_type;
-
- void *renderer_state;
-
---
-2.7.4
-