egl/wayland: Add format enums to visual map
authorDaniel Stone <daniels@collabora.com>
Tue, 6 Feb 2018 09:42:27 +0000 (09:42 +0000)
committerDaniel Stone <daniels@collabora.com>
Fri, 9 Feb 2018 16:17:15 +0000 (16:17 +0000)
Extend the visual map from only containing names and bitmasks, to also
carrying the three format enums we need. These are the DRIImage format
tokens for internal allocation, FourCC codes for wl_drm and dmabuf
protocol, and wl_shm codes for swrast drivers.

We will later use these formats to eliminate a bunch of open-coded
conversions.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/egl/drivers/dri2/platform_wayland.c

index 1384cddd6b0dee36d6783af2039a6d116bbd8a68..b72b5f8b88430f9ec5f1f00aa1c446d811b1bf6e 100644 (file)
@@ -68,26 +68,39 @@ enum wl_drm_format_flags {
 static const struct {
    const char *format_name;
    enum wl_drm_format_flags has_format;
+   uint32_t wl_drm_format;
+   uint32_t wl_shm_format;
+   int dri_image_format;
    unsigned int rgba_masks[4];
 } dri2_wl_visuals[] = {
    {
      "XRGB2101010", HAS_XRGB2101010,
+     WL_DRM_FORMAT_XRGB2101010, WL_SHM_FORMAT_XRGB2101010,
+     __DRI_IMAGE_FORMAT_XRGB2101010,
      { 0x3ff00000, 0x000ffc00, 0x000003ff, 0x00000000 }
    },
    {
      "ARGB2101010", HAS_ARGB2101010,
+     WL_DRM_FORMAT_ARGB2101010, WL_SHM_FORMAT_ARGB2101010,
+     __DRI_IMAGE_FORMAT_ARGB2101010,
      { 0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000 }
    },
    {
      "XRGB8888", HAS_XRGB8888,
+     WL_DRM_FORMAT_XRGB8888, WL_SHM_FORMAT_XRGB8888,
+     __DRI_IMAGE_FORMAT_XRGB8888,
      { 0x00ff0000, 0x0000ff00, 0x000000ff, 0x00000000 }
    },
    {
      "ARGB8888", HAS_ARGB8888,
+     WL_DRM_FORMAT_ARGB8888, WL_SHM_FORMAT_ARGB8888,
+     __DRI_IMAGE_FORMAT_ARGB8888,
      { 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }
    },
    {
      "RGB565", HAS_RGB565,
+     WL_DRM_FORMAT_RGB565, WL_SHM_FORMAT_RGB565,
+     __DRI_IMAGE_FORMAT_RGB565,
      { 0xf800, 0x07e0, 0x001f, 0x0000 }
    },
 };