summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMurray Calavera <murray.calavera@gmail.com>2016-03-15 21:41:14 +0000
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>2016-03-16 11:16:52 +0200
commit1ddb8dd8f1d31d659ef59c14d5cd9f29ab8c56de (patch)
tree9bde518b49b86278d7769ec99df7ccecf1cdd84a
parentf72df1dfe13de94e4b16f30aa81291da15614202 (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.c9
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,
&registry_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);
}