ui/pixman: add qemu_pixman_check_format
Convinience check_format function for UIs using pixman. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
49743df399
commit
8cd996f493
@ -37,6 +37,8 @@ PixelFormat qemu_pixelformat_from_pixman(pixman_format_code_t format);
|
||||
pixman_format_code_t qemu_default_pixman_format(int bpp, bool native_endian);
|
||||
int qemu_pixman_get_type(int rshift, int gshift, int bshift);
|
||||
pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf);
|
||||
bool qemu_pixman_check_format(DisplayChangeListener *dcl,
|
||||
pixman_format_code_t format);
|
||||
|
||||
pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
|
||||
int width);
|
||||
|
@ -125,6 +125,33 @@ pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf)
|
||||
return format;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return true for known-good pixman conversions.
|
||||
*
|
||||
* UIs using pixman for format conversion can hook this into
|
||||
* DisplayChangeListenerOps->dpy_gfx_check_format
|
||||
*/
|
||||
bool qemu_pixman_check_format(DisplayChangeListener *dcl,
|
||||
pixman_format_code_t format)
|
||||
{
|
||||
switch (format) {
|
||||
/* 32 bpp */
|
||||
case PIXMAN_x8r8g8b8:
|
||||
case PIXMAN_a8r8g8b8:
|
||||
case PIXMAN_b8g8r8x8:
|
||||
case PIXMAN_b8g8r8a8:
|
||||
/* 24 bpp */
|
||||
case PIXMAN_r8g8b8:
|
||||
case PIXMAN_b8g8r8:
|
||||
/* 16 bpp */
|
||||
case PIXMAN_x1r5g5b5:
|
||||
case PIXMAN_r5g6b5:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
|
||||
int width)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user