util: store number of colors for indexed formats
authorGeert Uytterhoeven <geert@linux-m68k.org>
Thu, 30 Jun 2022 13:21:57 +0000 (15:21 +0200)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Tue, 24 Oct 2023 07:44:21 +0000 (09:44 +0200)
Store the number of available colors for color-indexed frame
buffer formats in the format_info[] array.  This avoids the need of test
code for having to use switch statements all the time to obtain the
number of colors, or to check if a mode is color-indexed or not.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
v5:
  - Add Reviewed-by,

v4:
  - No changes,

v3:
  - Add Acked-by,

v2:
  - New.

tests/util/format.c
tests/util/format.h

index b3d2abd..b99cc9c 100644 (file)
 
 static const struct util_format_info format_info[] = {
        /* Indexed */
-       { DRM_FORMAT_C1, "C1" },
-       { DRM_FORMAT_C2, "C2" },
-       { DRM_FORMAT_C4, "C4" },
-       { DRM_FORMAT_C8, "C8" },
+       { DRM_FORMAT_C1, "C1", .ncolors = 2 },
+       { DRM_FORMAT_C2, "C2", .ncolors = 4 },
+       { DRM_FORMAT_C4, "C4", .ncolors = 16 },
+       { DRM_FORMAT_C8, "C8", .ncolors = 256 },
        /* YUV packed */
        { DRM_FORMAT_UYVY, "UYVY", MAKE_YUV_INFO(YUV_YCbCr | YUV_CY, 2, 2, 2) },
        { DRM_FORMAT_VYUY, "VYUY", MAKE_YUV_INFO(YUV_YCrCb | YUV_CY, 2, 2, 2) },
index 2ce1c02..b847c9f 100644 (file)
@@ -55,6 +55,7 @@ struct util_yuv_info {
 struct util_format_info {
        uint32_t format;
        const char *name;
+       unsigned int ncolors;
        const struct util_rgb_info rgb;
        const struct util_yuv_info yuv;
 };