ui/sdl2: Support shared surface for more pixman formats
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
7dd93291ca
commit
877417d9ae
@ -28,5 +28,7 @@ void sdl2_2d_switch(DisplayChangeListener *dcl,
|
||||
DisplaySurface *new_surface);
|
||||
void sdl2_2d_refresh(DisplayChangeListener *dcl);
|
||||
void sdl2_2d_redraw(struct sdl2_console *scon);
|
||||
bool sdl2_2d_check_format(DisplayChangeListener *dcl,
|
||||
pixman_format_code_t format);
|
||||
|
||||
#endif /* SDL2_H */
|
||||
|
13
ui/sdl2-2d.c
13
ui/sdl2-2d.c
@ -120,3 +120,16 @@ void sdl2_2d_redraw(struct sdl2_console *scon)
|
||||
surface_width(scon->surface),
|
||||
surface_height(scon->surface));
|
||||
}
|
||||
|
||||
bool sdl2_2d_check_format(DisplayChangeListener *dcl,
|
||||
pixman_format_code_t format)
|
||||
{
|
||||
/*
|
||||
* We let SDL convert for us a few more formats than,
|
||||
* the native ones. Thes are the ones I have tested.
|
||||
*/
|
||||
return (format == PIXMAN_x8r8g8b8 ||
|
||||
format == PIXMAN_b8g8r8x8 ||
|
||||
format == PIXMAN_x1r5g5b5 ||
|
||||
format == PIXMAN_r5g6b5);
|
||||
}
|
||||
|
13
ui/sdl2.c
13
ui/sdl2.c
@ -668,12 +668,13 @@ static void sdl_cleanup(void)
|
||||
}
|
||||
|
||||
static const DisplayChangeListenerOps dcl_2d_ops = {
|
||||
.dpy_name = "sdl2-2d",
|
||||
.dpy_gfx_update = sdl2_2d_update,
|
||||
.dpy_gfx_switch = sdl2_2d_switch,
|
||||
.dpy_refresh = sdl2_2d_refresh,
|
||||
.dpy_mouse_set = sdl_mouse_warp,
|
||||
.dpy_cursor_define = sdl_mouse_define,
|
||||
.dpy_name = "sdl2-2d",
|
||||
.dpy_gfx_update = sdl2_2d_update,
|
||||
.dpy_gfx_switch = sdl2_2d_switch,
|
||||
.dpy_gfx_check_format = sdl2_2d_check_format,
|
||||
.dpy_refresh = sdl2_2d_refresh,
|
||||
.dpy_mouse_set = sdl_mouse_warp,
|
||||
.dpy_cursor_define = sdl_mouse_define,
|
||||
};
|
||||
|
||||
void sdl_display_init(DisplayState *ds, int full_screen, int no_frame)
|
||||
|
Loading…
Reference in New Issue
Block a user