aboutsummaryrefslogtreecommitdiffstats
path: root/flower.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2008-11-26 12:57:31 -0500
committerKristian Høgsberg <krh@redhat.com>2008-11-26 12:57:31 -0500
commit44f36e3585cf7bb1ba8e73febabb7facf5cd6151 (patch)
tree5a9de67f6de5443613b1d380dd9bd3d6fced2461 /flower.c
parentAdd .gitignore. (diff)
downloadwayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.tar
wayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.tar.gz
wayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.tar.bz2
wayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.tar.lz
wayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.tar.xz
wayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.tar.zst
wayland-44f36e3585cf7bb1ba8e73febabb7facf5cd6151.zip
Make ack event signal that the requests have been composited.
Diffstat (limited to 'flower.c')
-rw-r--r--flower.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/flower.c b/flower.c
index e6c2e27..3356fc4 100644
--- a/flower.c
+++ b/flower.c
@@ -82,23 +82,30 @@ draw_stuff(int width, int height)
}
struct flower {
+ struct wl_display *display;
struct wl_surface *surface;
int i;
int x, y, width, height;
};
-static gboolean
-move_flower(gpointer data)
+static void
+move_flower(struct flower *flower)
{
- struct flower *flower = data;
-
wl_surface_map(flower->surface,
flower->x + cos(flower->i / 31.0) * 400 - flower->width / 2,
flower->y + sin(flower->i / 27.0) * 300 - flower->height / 2,
flower->width, flower->height);
flower->i++;
+ wl_display_commit(flower->display, 0);
+}
- return TRUE;
+static void
+event_handler(struct wl_display *display,
+ uint32_t object, uint32_t opcode,
+ uint32_t size, uint32_t *p, void *data)
+{
+ if (object == 1)
+ move_flower(data);
}
int main(int argc, char *argv[])
@@ -129,6 +136,7 @@ int main(int argc, char *argv[])
source = wayland_source_new(display);
g_source_attach(source, NULL);
+ flower.display = display;
flower.x = 512;
flower.y = 384;
flower.width = 200;
@@ -144,8 +152,8 @@ int main(int argc, char *argv[])
wl_surface_attach(flower.surface, buffer->name, flower.width, flower.height,
buffer->stride);
-
- g_timeout_add(20, move_flower, &flower);
+ wl_display_set_event_handler(display, event_handler, &flower);
+ move_flower(&flower);
g_main_loop_run(loop);