mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-07 03:29:37 +00:00
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);
|
pixman_format_code_t qemu_default_pixman_format(int bpp, bool native_endian);
|
||||||
int qemu_pixman_get_type(int rshift, int gshift, int bshift);
|
int qemu_pixman_get_type(int rshift, int gshift, int bshift);
|
||||||
pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf);
|
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,
|
pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
|
||||||
int width);
|
int width);
|
||||||
|
|
|
@ -125,6 +125,33 @@ pixman_format_code_t qemu_pixman_get_format(PixelFormat *pf)
|
||||||
return format;
|
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,
|
pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format,
|
||||||
int width)
|
int width)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue