1) Add weston_randr definition and randr_backend intreface.
2) Export functions used in compositor.c so that module wrandr
   could use them. For example, weston_output_transform_scale_init.
3) Support new_mode backend interface in output structure.

Signed-off-by: Quanxian Wang <quanxian.w...@intel.com>
---
 src/compositor.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/src/compositor.h b/src/compositor.h
index ace75da..008b0f2 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -172,6 +172,23 @@ enum weston_mode_switch_op {
        WESTON_MODE_SWITCH_RESTORE_NATIVE
 };
 
+enum weston_output_rel_motion {
+       MOVE_LEFTOF,
+       MOVE_RIGHTOF,
+       MOVE_ABOVE,
+       MOVE_BELOW
+};
+
+struct wrandr {
+       struct weston_compositor *compositor;
+       struct wl_global *global;
+       struct wl_resource *resource;
+       struct wl_listener destroy_listener;
+       struct {
+               struct wl_list request_list;
+       } pending;
+};
+
 struct weston_output {
        uint32_t id;
        char *name;
@@ -179,6 +196,9 @@ struct weston_output {
        void *renderer_state;
 
        struct wl_list link;
+       struct wl_list hlink; /* horizontal link */
+       struct wl_list vlink; /* vertical link */
+       struct wl_list clink; /* clone link */
        struct wl_list resource_list;
        struct wl_global *global;
        struct weston_compositor *compositor;
@@ -218,6 +238,33 @@ struct weston_output {
        void (*destroy)(struct weston_output *output);
        void (*assign_planes)(struct weston_output *output);
        int (*switch_mode)(struct weston_output *output, struct weston_mode 
*mode);
+       struct weston_mode * (*new_timing)(struct weston_output *output,
+                                          uint32_t clock,
+                                          int hdisplay,
+                                          int hsync_start,
+                                          int hsync_end,
+                                          int htotal,
+                                          int vdisplay,
+                                          int vsync_start,
+                                          int vsync_end,
+                                          int vtotal,
+                                          int vscan,
+                                          uint32_t flags);
+
+       int (*compare_timing)(struct weston_mode *mode,
+                             uint32_t clock,
+                             int hdisplay,
+                             int hsync_start,
+                             int hsync_end,
+                             int htotal,
+                             int vdisplay,
+                             int vsync_start,
+                             int vsync_end,
+                             int vtotal,
+                             int vscan,
+                             uint32_t flags);
+
+       struct weston_mode * (*new_mode)(int width, int height, int refresh);
 
        /* backlight values are on 0-255 range, where higher is brighter */
        int32_t backlight_current;
@@ -567,6 +614,7 @@ struct weston_compositor {
        struct wl_display *wl_display;
        struct weston_shell_interface shell_interface;
        struct weston_config *config;
+       struct weston_output *primary;
 
        /* surface signals */
        struct wl_signal activate_signal;
@@ -635,6 +683,7 @@ struct weston_compositor {
 
        /* Raw keyboard processing (no libxkbcommon initialization or handling) 
*/
        int use_xkbcommon;
+       struct wrandr *randr;
 };
 
 struct weston_buffer {
@@ -1359,6 +1408,10 @@ weston_surface_set_color(struct weston_surface *surface,
 void
 weston_surface_destroy(struct weston_surface *surface);
 
+void
+weston_output_transform_scale_init(struct weston_output *output,
+                                  uint32_t transform, uint32_t scale);
+
 int
 weston_output_switch_mode(struct weston_output *output, struct weston_mode 
*mode,
                        int32_t scale, enum weston_mode_switch_op op);
-- 
1.8.1.2

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to