diff options
author | Murray Calavera <murray.calavera@gmail.com> | 2016-03-15 21:41:14 +0000 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2016-03-16 11:16:52 +0200 |
commit | 1ddb8dd8f1d31d659ef59c14d5cd9f29ab8c56de (patch) | |
tree | 9bde518b49b86278d7769ec99df7ccecf1cdd84a | |
parent | f72df1dfe13de94e4b16f30aa81291da15614202 (diff) |
clients: fix incorrect format handling in simple-shm
the `shm_format` function seems to assume the `wl_shm_format`
enum has bit-exclusive enumerations which is not true.
Signed-off-by: Murray Calavera <murray.calavera@gmail.com>
[Pekka: fix whitespace with an 'if'.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | clients/simple-shm.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/clients/simple-shm.c b/clients/simple-shm.c index 6d8f6084..1aa26cef 100644 --- a/clients/simple-shm.c +++ b/clients/simple-shm.c @@ -50,7 +50,7 @@ struct display { struct xdg_shell *shell; struct zwp_fullscreen_shell_v1 *fshell; struct wl_shm *shm; - uint32_t formats; + bool has_xrgb; struct ivi_application *ivi_application; }; @@ -337,7 +337,8 @@ shm_format(void *data, struct wl_shm *wl_shm, uint32_t format) { struct display *d = data; - d->formats |= (1 << format); + if (format == WL_SHM_FORMAT_XRGB8888) + d->has_xrgb = true; } struct wl_shm_listener shm_listener = { @@ -414,7 +415,7 @@ create_display(void) display->display = wl_display_connect(NULL); assert(display->display); - display->formats = 0; + display->has_xrgb = false; display->registry = wl_display_get_registry(display->display); wl_registry_add_listener(display->registry, ®istry_listener, display); @@ -466,7 +467,7 @@ create_display(void) * technique. */ - if (!(display->formats & (1 << WL_SHM_FORMAT_XRGB8888))) { + if (!display->has_xrgb) { fprintf(stderr, "WL_SHM_FORMAT_XRGB32 not available\n"); exit(1); } |