On 11/08/2016 17:34, Armin Krezović wrote:
- Removed weston_backend_output_config structure; Outputs
  should be configured from compositors using plugin-api.

- Merged weston_output_init() into weston_output_enable()

- Renamed weston_output_init_pending() to weston_output_init()

Signed-off-by: Armin Krezović <krezovic.ar...@gmail.com>

I love this one:
Reviewed-by: Quentin Glidic <sardemff7+...@sardemff7.net>

Cheers,


---
 libweston/compositor-drm.c      |   2 +-
 libweston/compositor-fbdev.c    |   2 +-
 libweston/compositor-headless.c |   2 +-
 libweston/compositor-rdp.c      |   2 +-
 libweston/compositor-wayland.c  |   4 +-
 libweston/compositor-x11.c      |   2 +-
 libweston/compositor.c          | 130 ++++++++++++++--------------------------
 libweston/compositor.h          |  22 +------
 8 files changed, 54 insertions(+), 112 deletions(-)

diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 76c1314..b3c63d6 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -2550,7 +2550,7 @@ create_output_for_connector(struct drm_backend *b,
        output->destroy_pending = 0;
        output->disable_pending = 0;

-       weston_output_init_pending(&output->base, b->compositor);
+       weston_output_init(&output->base, b->compositor);

        return 0;
 }
diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c
index afa1e7a..0dad030 100644
--- a/libweston/compositor-fbdev.c
+++ b/libweston/compositor-fbdev.c
@@ -498,7 +498,7 @@ fbdev_output_create(struct fbdev_backend *backend,
        output->base.disable = NULL;
        output->base.enable = fbdev_output_enable;

-       weston_output_init_pending(&output->base, backend->compositor);
+       weston_output_init(&output->base, backend->compositor);

        /* only one static mode in list */
        output->mode.flags =
diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c
index 793b8a9..31ae0e2 100644
--- a/libweston/compositor-headless.c
+++ b/libweston/compositor-headless.c
@@ -222,7 +222,7 @@ headless_output_create(struct weston_compositor *compositor,
        output->base.disable = headless_output_disable;
        output->base.enable = headless_output_enable;

-       weston_output_init_pending(&output->base, compositor);
+       weston_output_init(&output->base, compositor);

        return 0;
 }
diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c
index b217d7d..7058567 100644
--- a/libweston/compositor-rdp.c
+++ b/libweston/compositor-rdp.c
@@ -570,7 +570,7 @@ rdp_backend_create_output(struct weston_compositor 
*compositor)
        output->base.disable = rdp_output_disable;
        output->base.enable = rdp_output_enable;

-       weston_output_init_pending(&output->base, compositor);
+       weston_output_init(&output->base, compositor);

        return 0;
 }
diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c
index e67adf9..2e68674 100644
--- a/libweston/compositor-wayland.c
+++ b/libweston/compositor-wayland.c
@@ -1125,7 +1125,7 @@ wayland_output_create(struct weston_compositor 
*compositor, const char *name)

        output->base.name = name ? strdup(name) : NULL;

-       weston_output_init_pending(&output->base, compositor);
+       weston_output_init(&output->base, compositor);

        return 0;
 }
@@ -1224,7 +1224,7 @@ wayland_output_create_for_parent_output(struct 
wayland_backend *b,
        output->user_data = poutput;
        output->base.name = NULL;

-       weston_output_init_pending(&output->base, b->compositor);
+       weston_output_init(&output->base, b->compositor);

        return 0;
 }
diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
index 10bce65..0158d4f 100644
--- a/libweston/compositor-x11.c
+++ b/libweston/compositor-x11.c
@@ -1017,7 +1017,7 @@ x11_output_create(struct weston_compositor *compositor,
        output->base.disable = x11_output_disable;
        output->base.enable = x11_output_enable;

-       weston_output_init_pending(&output->base, compositor);
+       weston_output_init(&output->base, compositor);

        return 0;
 }
diff --git a/libweston/compositor.c b/libweston/compositor.c
index f60ebb8..84715ac 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -4220,80 +4220,6 @@ weston_output_move(struct weston_output *output, int x, 
int y)
        }
 }

-/** Initialize a weston_output object's parameters
- *
- * \param output     The weston_output object to initialize
- * \param c          The output's compositor
- * \param x          x coordinate for the output in global coordinate space
- * \param y          y coordinate for the output in global coordinate space
- * \param mm_width   Physical width of the output as reported by the backend
- * \param mm_height  Physical height of the output as reported by the backend
- * \param transform  Rotation of the output
- * \param scale      Native scaling factor for the output
- *
- * Sets up the transformation, zoom, and geometry of the output using
- * the input properties.
- *
- * Establishes a repaint timer for the output with the relevant display
- * object's event loop.  See output_repaint_timer_handler().
- *
- * The output is assigned an ID.  Weston can support up to 32 distinct
- * outputs, with IDs numbered from 0-31; the compositor's output_id_pool
- * is referred to and used to find the first available ID number, and
- * then this ID is marked as used in output_id_pool.
- *
- * The output is also assigned a Wayland global with the wl_output
- * external interface.
- */
-WL_EXPORT void
-weston_output_init(struct weston_output *output, struct weston_compositor *c,
-                  int x, int y, int mm_width, int mm_height, uint32_t 
transform,
-                  int32_t scale)
-{
-       struct wl_event_loop *loop;
-
-       /* Verify we haven't reached the limit of 32 available output IDs */
-       assert(ffs(~c->output_id_pool) > 0);
-
-       output->compositor = c;
-       output->x = x;
-       output->y = y;
-       output->mm_width = mm_width;
-       output->mm_height = mm_height;
-       output->dirty = 1;
-       output->original_scale = scale;
-
-       weston_output_transform_scale_init(output, transform, scale);
-       weston_output_init_zoom(output);
-
-       weston_output_init_geometry(output, x, y);
-       weston_output_damage(output);
-
-       wl_signal_init(&output->frame_signal);
-       wl_signal_init(&output->destroy_signal);
-       wl_list_init(&output->animation_list);
-       wl_list_init(&output->resource_list);
-       wl_list_init(&output->feedback_list);
-       wl_list_init(&output->link);
-
-       loop = wl_display_get_event_loop(c->wl_display);
-       output->repaint_timer = wl_event_loop_add_timer(loop,
-                                       output_repaint_timer_handler, output);
-
-       /* Invert the output id pool and look for the lowest numbered
-        * switch (the least significant bit).  Take that bit's position
-        * as our ID, and mark it used in the compositor's output_id_pool.
-        */
-       output->id = ffs(~output->compositor->output_id_pool) - 1;
-       output->compositor->output_id_pool |= 1u << output->id;
-
-       output->global =
-               wl_global_create(c->wl_display, &wl_output_interface, 3,
-                                output, bind_output);
-
-       output->initialized = true;
-}
-
 /** Adds an output to the compositor's output list and
  *  send the compositor's output_created signal.
  *
@@ -4419,8 +4345,8 @@ weston_output_set_transform(struct weston_output *output,
  * disable before it returns.
  */
 WL_EXPORT void
-weston_output_init_pending(struct weston_output *output,
-                          struct weston_compositor *compositor)
+weston_output_init(struct weston_output *output,
+                  struct weston_compositor *compositor)
 {
        output->compositor = compositor;
        output->destroying = 0;
@@ -4442,9 +4368,6 @@ weston_output_init_pending(struct weston_output *output,
        wl_signal_emit(&compositor->output_pending_signal, output);
 }

-/* NOTE: Some documentation is copy/pasted from weston_output_init(), as this
-   is intended to replace it. */
-
 /** Constructs a weston_output object that can be used by the compositor.
  *
  * \param output The weston_output object that needs to be enabled.
@@ -4480,15 +4403,17 @@ weston_output_init_pending(struct weston_output *output,
 WL_EXPORT int
 weston_output_enable(struct weston_output *output)
 {
+       struct weston_compositor *c = output->compositor;
        struct weston_output *iterator;
+       struct wl_event_loop *loop;
        int x = 0, y = 0;

        assert(output->enable);

-       iterator = container_of(output->compositor->output_list.prev,
+       iterator = container_of(c->output_list.prev,
                                struct weston_output, link);

-       if (!wl_list_empty(&output->compositor->output_list))
+       if (!wl_list_empty(&c->output_list))
                x = iterator->x + iterator->width;

        /* Make sure the width and height are configured */
@@ -4503,10 +4428,43 @@ weston_output_enable(struct weston_output *output)
        /* Remove it from pending/disabled output list */
        wl_list_remove(&output->link);

-       /* TODO: Merge weston_output_init here. */
-       weston_output_init(output, output->compositor, x, y,
-                          output->mm_width, output->mm_height,
-                          output->transform, output->scale);
+       /* Verify we haven't reached the limit of 32 available output IDs */
+       assert(ffs(~c->output_id_pool) > 0);
+
+       output->x = x;
+       output->y = y;
+       output->dirty = 1;
+       output->original_scale = output->scale;
+
+       weston_output_transform_scale_init(output, output->transform, 
output->scale);
+       weston_output_init_zoom(output);
+
+       weston_output_init_geometry(output, x, y);
+       weston_output_damage(output);
+
+       wl_signal_init(&output->frame_signal);
+       wl_signal_init(&output->destroy_signal);
+       wl_list_init(&output->animation_list);
+       wl_list_init(&output->resource_list);
+       wl_list_init(&output->feedback_list);
+       wl_list_init(&output->link);
+
+       loop = wl_display_get_event_loop(c->wl_display);
+       output->repaint_timer = wl_event_loop_add_timer(loop,
+                                       output_repaint_timer_handler, output);
+
+       /* Invert the output id pool and look for the lowest numbered
+        * switch (the least significant bit).  Take that bit's position
+        * as our ID, and mark it used in the compositor's output_id_pool.
+        */
+       output->id = ffs(~output->compositor->output_id_pool) - 1;
+       output->compositor->output_id_pool |= 1u << output->id;
+
+       output->global =
+               wl_global_create(c->wl_display, &wl_output_interface, 3,
+                                output, bind_output);
+
+       output->initialized = true;

        /* Enable the output (set up the crtc or create a
         * window representing the output, set up the
@@ -4530,7 +4488,7 @@ weston_output_enable(struct weston_output *output)
  *
  * \param output The weston_output object that needs to be disabled.
  *
- * See weston_output_init_pending() for more information on the
+ * See weston_output_init() for more information on the
  * state output is returned to.
  *
  * Calls a backend specific function to disable an output, in case
diff --git a/libweston/compositor.h b/libweston/compositor.h
index 0cb04ad..af790a7 100644
--- a/libweston/compositor.h
+++ b/libweston/compositor.h
@@ -683,20 +683,6 @@ enum weston_capability {
        WESTON_CAP_VIEW_CLIP_MASK               = 0x0010,
 };

-/* Configuration struct for an output.
- *
- * This struct is used to pass the configuration for an output
- * to the compositor backend when creating a new output.
- * The backend can subclass this struct to handle backend
- * specific data.
- */
-struct weston_backend_output_config {
-       uint32_t transform;
-       uint32_t width;
-       uint32_t height;
-       uint32_t scale;
-};
-
 /* Configuration struct for a backend.
  *
  * This struct carries the configuration for a backend, and it's
@@ -1591,9 +1577,7 @@ void
 weston_output_update_matrix(struct weston_output *output);
 void
 weston_output_move(struct weston_output *output, int x, int y);
-void
-weston_output_init(struct weston_output *output, struct weston_compositor *c,
-                  int x, int y, int width, int height, uint32_t transform, 
int32_t scale);
+
 void
 weston_compositor_add_output(struct weston_compositor *compositor,
                              struct weston_output *output);
@@ -1810,8 +1794,8 @@ weston_output_set_transform(struct weston_output *output,
                            uint32_t transform);

 void
-weston_output_init_pending(struct weston_output *output,
-                          struct weston_compositor *compositor);
+weston_output_init(struct weston_output *output,
+                  struct weston_compositor *compositor);

 int
 weston_output_enable(struct weston_output *output);



--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to