Skip to content

Commit

Permalink
ui/sdl2: Support shared surface for more pixman formats
Browse files Browse the repository at this point in the history
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
  • Loading branch information
kraxel committed Jan 19, 2015
1 parent 7dd9329 commit 877417d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 6 deletions.
2 changes: 2 additions & 0 deletions include/ui/sdl2.h
Expand Up @@ -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 changes: 13 additions & 0 deletions ui/sdl2-2d.c
Expand Up @@ -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 changes: 7 additions & 6 deletions ui/sdl2.c
Expand Up @@ -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)
Expand Down

0 comments on commit 877417d

Please sign in to comment.