From d6531261de0c8b44e84f413a152477ae5d709f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Fri, 12 Dec 2008 11:06:18 -0500 Subject: [PATCH] Add option parsing using GOption. --- egl-compositor.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/egl-compositor.c b/egl-compositor.c index 50c0d590..731396a6 100644 --- a/egl-compositor.c +++ b/egl-compositor.c @@ -1047,12 +1047,18 @@ pick_config(struct egl_compositor *ec) static const char gem_device[] = "/dev/dri/card0"; +static const char *background_image = "background.jpg"; + +static GOptionEntry option_entries[] = { + { "background", 'b', 0, G_OPTION_ARG_STRING, &background_image, "Background image" }, + { NULL } +}; + static struct egl_compositor * egl_compositor_create(struct wl_display *display) { EGLint major, minor; struct egl_compositor *ec; - const char *filename; struct screenshooter *shooter; uint32_t fb_name; int stride; @@ -1110,10 +1116,8 @@ egl_compositor_create(struct wl_display *display) create_input_devices(ec); wl_list_init(&ec->surface_list); - filename = getenv("WAYLAND_BACKGROUND"); - if (filename == NULL) - filename = "background.jpg"; - ec->background = background_create(filename, ec->width, ec->height); + ec->background = background_create(background_image, + ec->width, ec->height); ec->overlay = overlay_create(0, ec->height, ec->width, 200); ec->overlay_y = ec->height; ec->overlay_target = ec->height; @@ -1148,6 +1152,15 @@ int main(int argc, char *argv[]) { struct wl_display *display; struct egl_compositor *ec; + GError *error = NULL; + GOptionContext *context; + + context = g_option_context_new(NULL); + g_option_context_add_main_entries(context, option_entries, "Wayland"); + if (!g_option_context_parse(context, &argc, &argv, &error)) { + fprintf(stderr, "option parsing failed: %s\n", error->message); + exit(EXIT_FAILURE); + } display = wl_display_create();