qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v8 3/9] ui/pixman: add qemu_drm_format_to_pixman


From: Kirti Wankhede
Subject: Re: [Qemu-devel] [PATCH v8 3/9] ui/pixman: add qemu_drm_format_to_pixman()
Date: Fri, 9 Mar 2018 11:38:49 +0530

Looks good.

Reviewed by: Kirti Wankhede <address@hidden>

Thanks,
Kirti

On 3/6/2018 5:04 PM, Gerd Hoffmann wrote:
> Map drm fourcc codes to pixman formats.
> 
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
>  include/ui/qemu-pixman.h |  5 +++++
>  ui/qemu-pixman.c         | 22 ++++++++++++++++++++++
>  2 files changed, 27 insertions(+)
> 
> diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h
> index 4a67e01232..b7c82d17fc 100644
> --- a/include/ui/qemu-pixman.h
> +++ b/include/ui/qemu-pixman.h
> @@ -33,6 +33,8 @@
>  # define PIXMAN_BE_r8g8b8a8   PIXMAN_r8g8b8a8
>  # define PIXMAN_BE_x8b8g8r8   PIXMAN_x8b8g8r8
>  # define PIXMAN_BE_a8b8g8r8   PIXMAN_a8b8g8r8
> +# define PIXMAN_LE_r8g8b8     PIXMAN_b8g8r8
> +# define PIXMAN_LE_a8r8g8b8   PIXMAN_b8g8r8a8
>  # define PIXMAN_LE_x8r8g8b8   PIXMAN_b8g8r8x8
>  #else
>  # define PIXMAN_BE_r8g8b8     PIXMAN_b8g8r8
> @@ -44,6 +46,8 @@
>  # define PIXMAN_BE_r8g8b8a8   PIXMAN_a8b8g8r8
>  # define PIXMAN_BE_x8b8g8r8   PIXMAN_r8g8b8x8
>  # define PIXMAN_BE_a8b8g8r8   PIXMAN_r8g8b8a8
> +# define PIXMAN_LE_r8g8b8     PIXMAN_r8g8b8
> +# define PIXMAN_LE_a8r8g8b8   PIXMAN_a8r8g8b8
>  # define PIXMAN_LE_x8r8g8b8   PIXMAN_x8r8g8b8
>  #endif
>  
> @@ -51,6 +55,7 @@
>  
>  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_drm_format_to_pixman(uint32_t drm_format);
>  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,
> diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c
> index 6e591ab821..3e52abd92d 100644
> --- a/ui/qemu-pixman.c
> +++ b/ui/qemu-pixman.c
> @@ -6,6 +6,7 @@
>  #include "qemu/osdep.h"
>  #include "qemu-common.h"
>  #include "ui/console.h"
> +#include "standard-headers/drm/drm_fourcc.h"
>  
>  PixelFormat qemu_pixelformat_from_pixman(pixman_format_code_t format)
>  {
> @@ -88,6 +89,27 @@ pixman_format_code_t qemu_default_pixman_format(int bpp, 
> bool native_endian)
>      return 0;
>  }
>  
> +/* Note: drm is little endian, pixman is native endian */
> +pixman_format_code_t qemu_drm_format_to_pixman(uint32_t drm_format)
> +{
> +    static const struct {
> +        uint32_t drm_format;
> +        pixman_format_code_t pixman;
> +    } map[] = {
> +        { DRM_FORMAT_RGB888,   PIXMAN_LE_r8g8b8   },
> +        { DRM_FORMAT_ARGB8888, PIXMAN_LE_a8r8g8b8 },
> +        { DRM_FORMAT_XRGB8888, PIXMAN_LE_x8r8g8b8 }
> +    };
> +    int i;
> +
> +    for (i = 0; i < ARRAY_SIZE(map); i++) {
> +        if (drm_format == map[i].drm_format) {
> +            return map[i].pixman;
> +        }
> +    }
> +    return 0;
> +}
> +
>  int qemu_pixman_get_type(int rshift, int gshift, int bshift)
>  {
>      int type = PIXMAN_TYPE_OTHER;
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]