summaryrefslogtreecommitdiffstats
path: root/compositor/compositor.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2010-10-26 11:26:44 -0400
committerKristian Høgsberg <krh@bitplanet.net>2010-10-27 11:21:29 -0400
commit61a8251360f36bcbc5ff6d21ab43ad288010c0a9 (patch)
tree4723d9dfd5974255fabd29c56d0a81b03abda8e6 /compositor/compositor.c
parentAdd small client for testing shm surfaces (diff)
downloadwayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.tar
wayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.tar.gz
wayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.tar.bz2
wayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.tar.lz
wayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.tar.xz
wayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.tar.zst
wayland-61a8251360f36bcbc5ff6d21ab43ad288010c0a9.zip
Add a geometry option for x11 compositor
Diffstat (limited to 'compositor/compositor.c')
-rw-r--r--compositor/compositor.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/compositor/compositor.c b/compositor/compositor.c
index 8dadd73..7daacea 100644
--- a/compositor/compositor.c
+++ b/compositor/compositor.c
@@ -32,14 +32,17 @@
#include "wayland-server-protocol.h"
#include "compositor.h"
-const char *option_background = "background.jpg";
-int option_connector = 0;
+static const char *option_background = "background.jpg";
+static const char *option_geometry = "1024x640";
+static int option_connector = 0;
static const GOptionEntry option_entries[] = {
{ "background", 'b', 0, G_OPTION_ARG_STRING,
&option_background, "Background image" },
{ "connector", 'c', 0, G_OPTION_ARG_INT,
&option_connector, "KMS connector" },
+ { "geometry", 'g', 0, G_OPTION_ARG_STRING,
+ &option_geometry, "Geometry" },
{ NULL }
};
@@ -1417,6 +1420,7 @@ int main(int argc, char *argv[])
struct wlsc_compositor *ec;
GError *error = NULL;
GOptionContext *context;
+ int width, height;
g_type_init(); /* GdkPixbuf needs this, it seems. */
@@ -1426,19 +1430,24 @@ int main(int argc, char *argv[])
fprintf(stderr, "option parsing failed: %s\n", error->message);
exit(EXIT_FAILURE);
}
+ if (sscanf(option_geometry, "%dx%d", &width, &height) != 2) {
+ fprintf(stderr, "invalid geometry option: %s \n",
+ option_geometry);
+ exit(EXIT_FAILURE);
+ }
display = wl_display_create();
if (getenv("DISPLAY"))
- ec = x11_compositor_create(display);
+ ec = x11_compositor_create(display, width, height);
else
- ec = drm_compositor_create(display);
+ ec = drm_compositor_create(display, option_connector);
if (ec == NULL) {
fprintf(stderr, "failed to create compositor\n");
exit(EXIT_FAILURE);
}
-
+
if (wl_display_add_socket(display, socket_name, sizeof socket_name)) {
fprintf(stderr, "failed to add socket: %m\n");
exit(EXIT_FAILURE);