summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2012-06-20 00:13:18 -0400
committerKristian Høgsberg <krh@bitplanet.net>2012-06-20 00:13:18 -0400
commite0f832b4f04d5c1d10be4f448460f5795efb6a40 (patch)
tree87873d707d4e984a9edaa231c4efa0bb17ecc374
parent70b8358aa024ec8736a7030693c9c94c97cd3c7a (diff)
compositor: Pass weston_output as the frame_signal argument
The frame time is in weston_output, so passing weston_output itself is more useful.
-rw-r--r--src/compositor-android.c2
-rw-r--r--src/compositor-drm.c2
-rw-r--r--src/compositor-wayland.c2
-rw-r--r--src/compositor-x11.c2
-rw-r--r--src/screenshooter.c14
5 files changed, 9 insertions, 13 deletions
diff --git a/src/compositor-android.c b/src/compositor-android.c
index 283518fd..02c52247 100644
--- a/src/compositor-android.c
+++ b/src/compositor-android.c
@@ -147,7 +147,7 @@ android_output_repaint(struct weston_output *base, pixman_region32_t *damage)
wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
weston_surface_draw(surface, &output->base, damage);
- wl_signal_emit(&output->frame_signal, &output->frame_time);
+ wl_signal_emit(&output->base.frame_signal, output);
ret = eglSwapBuffers(compositor->base.egl_display, output->egl_surface);
if (ret == EGL_FALSE && !errored) {
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 14b86006..90ed1fd0 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -305,7 +305,7 @@ drm_output_render(struct drm_output *output, pixman_region32_t *damage)
wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
weston_surface_draw(surface, &output->base, damage);
- wl_signal_emit(&output->frame_signal, &output->frame_time);
+ wl_signal_emit(&output->base.frame_signal, output);
eglSwapBuffers(compositor->base.egl_display, output->egl_surface);
bo = gbm_surface_lock_front_buffer(output->surface);
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index ecaee065..cde7658a 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -347,7 +347,7 @@ wayland_output_repaint(struct weston_output *output_base,
draw_border(output);
- wl_signal_emit(&output->frame_signal, &output->frame_time);
+ wl_signal_emit(&output->base.frame_signal, output);
eglSwapBuffers(compositor->base.egl_display, output->egl_surface);
callback = wl_surface_frame(output->parent.surface);
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index ba2b0066..a5c18684 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -270,7 +270,7 @@ x11_output_repaint(struct weston_output *output_base,
wl_list_for_each_reverse(surface, &compositor->base.surface_list, link)
weston_surface_draw(surface, &output->base, damage);
- wl_signal_emit(&output->frame_signal, &output->frame_time);
+ wl_signal_emit(&output->base.frame_signal, output);
eglSwapBuffers(compositor->base.egl_display, output->egl_surface);
diff --git a/src/screenshooter.c b/src/screenshooter.c
index 03067a34..2808f038 100644
--- a/src/screenshooter.c
+++ b/src/screenshooter.c
@@ -46,7 +46,6 @@ struct screenshooter_frame_listener {
struct wl_listener listener;
struct wl_buffer *buffer;
struct wl_resource *resource;
- struct weston_output *output;
};
static void
@@ -98,7 +97,7 @@ screenshooter_frame_notify(struct wl_listener *listener, void *data)
struct screenshooter_frame_listener *l =
container_of(listener,
struct screenshooter_frame_listener, listener);
- struct weston_output *output = l->output;
+ struct weston_output *output = data;
int32_t stride;
uint8_t *pixels, *d, *s;
@@ -163,7 +162,6 @@ screenshooter_shoot(struct wl_client *client,
l->buffer = buffer;
l->resource = resource;
- l->output = output;
l->listener.notify = screenshooter_frame_notify;
wl_signal_add(&output->frame_signal, &l->listener);
@@ -214,7 +212,6 @@ screenshooter_binding(struct wl_seat *seat, uint32_t time, uint32_t key,
}
struct weston_recorder {
- struct weston_output *output;
uint32_t *frame, *rect;
uint32_t total;
int fd;
@@ -258,8 +255,8 @@ weston_recorder_frame_notify(struct wl_listener *listener, void *data)
{
struct weston_recorder *recorder =
container_of(listener, struct weston_recorder, frame_listener);
- struct weston_output *output = recorder->output;
- uint32_t msecs = * (uint32_t *) data;
+ struct weston_output *output = data;
+ uint32_t msecs = output->frame_time;
pixman_box32_t *r;
pixman_region32_t damage;
int i, j, k, n, width, height, run, stride;
@@ -271,8 +268,8 @@ weston_recorder_frame_notify(struct wl_listener *listener, void *data)
struct iovec v[2];
pixman_region32_init(&damage);
- pixman_region32_intersect(&damage, &recorder->output->region,
- &recorder->output->previous_damage);
+ pixman_region32_intersect(&damage, &output->region,
+ &output->previous_damage);
r = pixman_region32_rectangles(&damage, &n);
if (n == 0)
@@ -342,7 +339,6 @@ weston_recorder_create(struct weston_output *output, const char *filename)
struct { uint32_t magic, format, width, height; } header;
recorder = malloc(sizeof *recorder);
- recorder->output = output;
stride = output->current->width;
size = stride * 4 * output->current->height;