summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/wayland/weston/0003-MGS-1783-xwld-Add-clone-mode-support-for-multi-displ.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-graphics/wayland/weston/0003-MGS-1783-xwld-Add-clone-mode-support-for-multi-displ.patch')
-rw-r--r--recipes-graphics/wayland/weston/0003-MGS-1783-xwld-Add-clone-mode-support-for-multi-displ.patch104
1 files changed, 104 insertions, 0 deletions
diff --git a/recipes-graphics/wayland/weston/0003-MGS-1783-xwld-Add-clone-mode-support-for-multi-displ.patch b/recipes-graphics/wayland/weston/0003-MGS-1783-xwld-Add-clone-mode-support-for-multi-displ.patch
new file mode 100644
index 00000000..328213c4
--- /dev/null
+++ b/recipes-graphics/wayland/weston/0003-MGS-1783-xwld-Add-clone-mode-support-for-multi-displ.patch
@@ -0,0 +1,104 @@
1From d22509cd41f9d44d9e66522307e30ad4ae4bace0 Mon Sep 17 00:00:00 2001
2From: Meng Mingming <mingming.meng@nxp.com>
3Date: Mon, 16 Jan 2017 10:23:13 +0800
4Subject: [PATCH 3/5] MGS-1783: xwld: Add clone mode support for multi display
5
6Support more than two displays to show the same contents
7
8Upstream Status: Inappropriate [i.MX specific]
9
10Date: May 16, 2016
11Signed-off-by: Yong Gan <yong.gan@nxp.com>
12---
13 src/compositor-fbdev.c | 18 +++++++++++++++---
14 src/compositor-fbdev.h | 1 +
15 src/main.c | 1 +
16 3 files changed, 17 insertions(+), 3 deletions(-)
17
18diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c
19index cff9513..0a05e7d 100644
20--- a/src/compositor-fbdev.c
21+++ b/src/compositor-fbdev.c
22@@ -61,6 +61,8 @@ struct fbdev_backend {
23 struct udev_input input;
24 int use_pixman;
25 int use_g2d;
26+ int clone_mode;
27+ char *clone_device;
28 uint32_t output_transform;
29 struct wl_listener session_listener;
30 NativeDisplayType display;
31@@ -521,6 +523,8 @@ fbdev_output_create(struct fbdev_backend *backend,
32 goto out_hw_surface;
33 } else if(backend->use_g2d) {
34 const char *g2d_device = device;
35+ if (backend->clone_mode)
36+ g2d_device = backend->clone_device;
37
38 if (g2d_renderer->output_create(&output->base,
39 backend->compositor->wl_display, g2d_device) < 0) {
40@@ -797,6 +801,8 @@ fbdev_backend_create(struct weston_compositor *compositor, int *argc, char *argv
41 backend->prev_state = WESTON_COMPOSITOR_ACTIVE;
42 backend->use_pixman = !(param->use_gl || param->use_g2d);
43 backend->use_g2d = param->use_g2d;
44+ backend->clone_mode = param->clone_mode;
45+ backend->clone_device = param->device;
46 backend->output_transform = param->output_transform;
47
48 weston_setup_vt_switch_bindings(compositor);
49@@ -837,12 +843,17 @@ fbdev_backend_create(struct weston_compositor *compositor, int *argc, char *argv
50 displays[dispCount][k] = '\0';
51 dispCount++;
52
53- for(i= 0; i < dispCount; i++){
54- if (fbdev_output_create(backend, x, y, displays[i]) < 0)
55+ if(backend->clone_mode){
56+ if (fbdev_output_create(backend, x, y, displays[0]) < 0)
57 goto out_launcher;
58- x += container_of(backend->compositor->output_list.prev,
59+ } else {
60+ for(i= 0; i < dispCount; i++){
61+ if (fbdev_output_create(backend, x, y, displays[i]) < 0)
62+ goto out_launcher;
63+ x += container_of(backend->compositor->output_list.prev,
64 struct weston_output,
65 link)->width;
66+ }
67 }
68 } else {
69 gl_renderer = weston_load_module("gl-renderer.so",
70@@ -896,6 +907,7 @@ config_init_to_defaults(struct weston_fbdev_backend_config *config)
71 config->device = "/dev/fb0"; /* default frame buffer */
72 config->use_gl = 0;
73 config->use_g2d = 0;
74+ config->clone_mode = 0;
75 config->output_transform = WL_OUTPUT_TRANSFORM_NORMAL;
76 }
77
78diff --git a/src/compositor-fbdev.h b/src/compositor-fbdev.h
79index 32a8598..a28ef3b 100644
80--- a/src/compositor-fbdev.h
81+++ b/src/compositor-fbdev.h
82@@ -41,6 +41,7 @@ struct weston_fbdev_backend_config {
83 char *device;
84 int use_gl;
85 int use_g2d;
86+ int clone_mode;
87
88 uint32_t output_transform;
89 };
90diff --git a/src/main.c b/src/main.c
91index 5d0bdc4..18fe5e0 100644
92--- a/src/main.c
93+++ b/src/main.c
94@@ -871,6 +871,7 @@ load_fbdev_backend(struct weston_compositor *c, char const * backend,
95 { WESTON_OPTION_STRING, "device", 0, &config.device },
96 { WESTON_OPTION_INTEGER, "use-gl", 0, &config.use_gl },
97 { WESTON_OPTION_INTEGER, "use-g2d", 0, &config.use_g2d },
98+ { WESTON_OPTION_BOOLEAN, "clone-mode", 0, &config.clone_mode },
99 };
100
101 parse_options(fbdev_options, ARRAY_LENGTH(fbdev_options), argc, argv);
102--
1032.7.4
104