@ -50,7 +50,7 @@ struct display {
struct xdg_shell * shell ;
struct xdg_shell * shell ;
struct zwp_fullscreen_shell_v1 * fshell ;
struct zwp_fullscreen_shell_v1 * fshell ;
struct wl_shm * shm ;
struct wl_shm * shm ;
uint32_t formats ;
bool has_xrgb ;
struct ivi_application * ivi_application ;
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 ;
struct display * d = data ;
d - > formats | = ( 1 < < format ) ;
if ( format = = WL_SHM_FORMAT_XRGB8888 )
d - > has_xrgb = true ;
}
}
struct wl_shm_listener shm_listener = {
struct wl_shm_listener shm_listener = {
@ -414,7 +415,7 @@ create_display(void)
display - > display = wl_display_connect ( NULL ) ;
display - > display = wl_display_connect ( NULL ) ;
assert ( display - > display ) ;
assert ( display - > display ) ;
display - > formats = 0 ;
display - > has_xrgb = false ;
display - > registry = wl_display_get_registry ( display - > display ) ;
display - > registry = wl_display_get_registry ( display - > display ) ;
wl_registry_add_listener ( display - > registry ,
wl_registry_add_listener ( display - > registry ,
& registry_listener , display ) ;
& registry_listener , display ) ;
@ -466,7 +467,7 @@ create_display(void)
* technique .
* technique .
*/
*/
if ( ! ( display - > formats & ( 1 < < WL_SHM_FORMAT_XRGB8888 ) ) ) {
if ( ! display - > has_xrgb ) {
fprintf ( stderr , " WL_SHM_FORMAT_XRGB32 not available \n " ) ;
fprintf ( stderr , " WL_SHM_FORMAT_XRGB32 not available \n " ) ;
exit ( 1 ) ;
exit ( 1 ) ;
}
}