summaryrefslogtreecommitdiff
path: root/clients
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-04-28 11:19:31 -0400
committerKristian Høgsberg <krh@bitplanet.net>2014-04-30 21:04:22 -0700
commitbd600774be3419d21b7fdbe440151476327c5b2f (patch)
tree285a1e788cddcb8dae30f6ccac1eced222b46092 /clients
parentf11ad43ed0356fc8660971ee771cf2943263c19b (diff)
downloadweston-bd600774be3419d21b7fdbe440151476327c5b2f.tar.gz
window: Clean up buffer type choosing
Extracting it to a function makes this cleaner and more understandable.
Diffstat (limited to 'clients')
-rw-r--r--clients/window.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/clients/window.c b/clients/window.c
index b7febed8..ce0130ce 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -4351,6 +4351,17 @@ surface_create(struct window *window)
return surface;
}
+static window_buffer_type
+get_preferred_buffer_type(struct display *display)
+{
+#ifdef HAVE_CAIRO_EGL
+ if (display->argb_device)
+ return WINDOW_BUFFER_TYPE_EGL_WINDOW;
+#endif
+
+ return WINDOW_BUFFER_TYPE_SHM;
+}
+
static struct window *
window_create_internal(struct display *display, int custom)
{
@@ -4369,14 +4380,7 @@ window_create_internal(struct display *display, int custom)
window->custom = custom;
window->preferred_format = WINDOW_PREFERRED_FORMAT_NONE;
- if (display->argb_device)
-#ifdef HAVE_CAIRO_EGL
- surface->buffer_type = WINDOW_BUFFER_TYPE_EGL_WINDOW;
-#else
- surface->buffer_type = WINDOW_BUFFER_TYPE_SHM;
-#endif
- else
- surface->buffer_type = WINDOW_BUFFER_TYPE_SHM;
+ surface->buffer_type = get_preferred_buffer_type(display);
wl_surface_set_user_data(surface->surface, window);
wl_list_insert(display->window_list.prev, &window->link);