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 <[email protected]>
---
 clients/simple-shm.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/clients/simple-shm.c b/clients/simple-shm.c
index 6d8f608..68b307f 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);
        }
-- 
2.7.2

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to