diff options
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.patch | 104 |
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 @@ | |||
1 | From d22509cd41f9d44d9e66522307e30ad4ae4bace0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Meng Mingming <mingming.meng@nxp.com> | ||
3 | Date: Mon, 16 Jan 2017 10:23:13 +0800 | ||
4 | Subject: [PATCH 3/5] MGS-1783: xwld: Add clone mode support for multi display | ||
5 | |||
6 | Support more than two displays to show the same contents | ||
7 | |||
8 | Upstream Status: Inappropriate [i.MX specific] | ||
9 | |||
10 | Date: May 16, 2016 | ||
11 | Signed-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 | |||
18 | diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c | ||
19 | index 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 | |||
78 | diff --git a/src/compositor-fbdev.h b/src/compositor-fbdev.h | ||
79 | index 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 | }; | ||
90 | diff --git a/src/main.c b/src/main.c | ||
91 | index 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 | -- | ||
103 | 2.7.4 | ||
104 | |||