diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-28 11:19:31 -0400 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2014-04-30 21:04:22 -0700 |
commit | bd600774be3419d21b7fdbe440151476327c5b2f (patch) | |
tree | 285a1e788cddcb8dae30f6ccac1eced222b46092 /clients | |
parent | f11ad43ed0356fc8660971ee771cf2943263c19b (diff) | |
download | weston-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.c | 20 |
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); |