xwayland: Look up 32 depth rgba render format as well
This commit is contained in:
parent
e6d8d2f62a
commit
e89cef37eb
@ -528,7 +528,7 @@ weston_wm_handle_map_request(struct weston_wm *wm, xcb_generic_event_t *event)
|
|||||||
cairo_xcb_surface_create_with_xrender_format(wm->conn,
|
cairo_xcb_surface_create_with_xrender_format(wm->conn,
|
||||||
wm->screen,
|
wm->screen,
|
||||||
window->frame_id,
|
window->frame_id,
|
||||||
&wm->render_format,
|
&wm->format_rgb,
|
||||||
width, height);
|
width, height);
|
||||||
|
|
||||||
hash_table_insert(wm->window_hash, window->frame_id, window);
|
hash_table_insert(wm->window_hash, window->frame_id, window);
|
||||||
@ -1065,10 +1065,19 @@ wxs_wm_get_resources(struct weston_wm *wm)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
formats = xcb_render_query_pict_formats_formats(formats_reply);
|
formats = xcb_render_query_pict_formats_formats(formats_reply);
|
||||||
for (i = 0; i < formats_reply->num_formats; i++)
|
for (i = 0; i < formats_reply->num_formats; i++) {
|
||||||
|
if (formats[i].direct.red_mask != 0xff &&
|
||||||
|
formats[i].direct.red_shift != 16)
|
||||||
|
continue;
|
||||||
if (formats[i].type == XCB_RENDER_PICT_TYPE_DIRECT &&
|
if (formats[i].type == XCB_RENDER_PICT_TYPE_DIRECT &&
|
||||||
formats[i].depth == 24)
|
formats[i].depth == 24)
|
||||||
wm->render_format = formats[i];
|
wm->format_rgb = formats[i];
|
||||||
|
if (formats[i].type == XCB_RENDER_PICT_TYPE_DIRECT &&
|
||||||
|
formats[i].depth == 32 &&
|
||||||
|
formats[i].direct.alpha_mask == 0xff &&
|
||||||
|
formats[i].direct.alpha_shift == 24)
|
||||||
|
wm->format_rgba = formats[i];
|
||||||
|
}
|
||||||
|
|
||||||
free(formats_reply);
|
free(formats_reply);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ struct weston_wm {
|
|||||||
xcb_window_t wm_window;
|
xcb_window_t wm_window;
|
||||||
struct weston_wm_window *focus_window;
|
struct weston_wm_window *focus_window;
|
||||||
struct theme *theme;
|
struct theme *theme;
|
||||||
xcb_render_pictforminfo_t render_format;
|
xcb_render_pictforminfo_t format_rgb, format_rgba;
|
||||||
struct wl_listener activate_listener;
|
struct wl_listener activate_listener;
|
||||||
|
|
||||||
xcb_window_t selection_window;
|
xcb_window_t selection_window;
|
||||||
|
Loading…
Reference in New Issue
Block a user