5 #include <drm_fourcc.h>
6 #include <tbm_surface.h>
11 tbm_format tbm_format;
13 } tbm_drm_format_data;
15 static const tbm_drm_format_data formats[] = {
16 {TBM_FORMAT_C8, DRM_FORMAT_C8},
17 {TBM_FORMAT_RGB332, DRM_FORMAT_RGB332},
18 {TBM_FORMAT_BGR233, DRM_FORMAT_BGR233},
19 {TBM_FORMAT_XRGB4444, DRM_FORMAT_XRGB4444},
20 {TBM_FORMAT_XBGR4444, DRM_FORMAT_XBGR4444},
21 {TBM_FORMAT_RGBX4444, DRM_FORMAT_RGBX4444},
22 {TBM_FORMAT_BGRX4444, DRM_FORMAT_BGRX4444},
23 {TBM_FORMAT_ARGB4444, DRM_FORMAT_ARGB4444},
24 {TBM_FORMAT_ABGR4444, DRM_FORMAT_ABGR4444},
25 {TBM_FORMAT_RGBA4444, DRM_FORMAT_RGBA4444},
26 {TBM_FORMAT_BGRA4444, DRM_FORMAT_BGRA4444},
27 {TBM_FORMAT_XRGB1555, DRM_FORMAT_XRGB1555},
28 {TBM_FORMAT_XBGR1555, DRM_FORMAT_XBGR1555},
29 {TBM_FORMAT_RGBX5551, DRM_FORMAT_RGBX5551},
30 {TBM_FORMAT_BGRX5551, DRM_FORMAT_BGRX5551},
31 {TBM_FORMAT_ARGB1555, DRM_FORMAT_ARGB1555},
32 {TBM_FORMAT_ABGR1555, DRM_FORMAT_ABGR1555},
33 {TBM_FORMAT_RGBA5551, DRM_FORMAT_RGBA5551},
34 {TBM_FORMAT_BGRA5551, DRM_FORMAT_BGRA5551},
35 {TBM_FORMAT_RGB565, DRM_FORMAT_RGB565},
36 {TBM_FORMAT_BGR565, DRM_FORMAT_BGR565},
37 {TBM_FORMAT_RGB888, DRM_FORMAT_RGB888},
38 {TBM_FORMAT_BGR888, DRM_FORMAT_BGR888},
39 {TBM_FORMAT_XRGB8888, DRM_FORMAT_XRGB8888},
40 {TBM_FORMAT_XBGR8888, DRM_FORMAT_XBGR8888},
41 {TBM_FORMAT_RGBX8888, DRM_FORMAT_RGBX8888},
42 {TBM_FORMAT_BGRX8888, DRM_FORMAT_BGRX8888},
43 {TBM_FORMAT_ARGB8888, DRM_FORMAT_ARGB8888},
44 {TBM_FORMAT_ABGR8888, DRM_FORMAT_ABGR8888},
45 {TBM_FORMAT_RGBA8888, DRM_FORMAT_RGBA8888},
46 {TBM_FORMAT_BGRA8888, DRM_FORMAT_BGRA8888},
47 {TBM_FORMAT_XRGB2101010, DRM_FORMAT_XRGB2101010},
48 {TBM_FORMAT_XBGR2101010, DRM_FORMAT_XBGR2101010},
49 {TBM_FORMAT_RGBX1010102, DRM_FORMAT_RGBX1010102},
50 {TBM_FORMAT_BGRX1010102, DRM_FORMAT_BGRX1010102},
51 {TBM_FORMAT_ARGB2101010, DRM_FORMAT_ARGB2101010},
52 {TBM_FORMAT_ABGR2101010, DRM_FORMAT_ABGR2101010},
53 {TBM_FORMAT_RGBA1010102, DRM_FORMAT_RGBA1010102},
54 {TBM_FORMAT_BGRA1010102, DRM_FORMAT_BGRA1010102},
55 {TBM_FORMAT_YUYV, DRM_FORMAT_YUYV},
56 {TBM_FORMAT_YVYU, DRM_FORMAT_YVYU},
57 {TBM_FORMAT_UYVY, DRM_FORMAT_UYVY},
58 {TBM_FORMAT_VYUY, DRM_FORMAT_VYUY},
59 {TBM_FORMAT_AYUV, DRM_FORMAT_AYUV},
60 {TBM_FORMAT_NV12, DRM_FORMAT_NV12},
61 {TBM_FORMAT_NV21, DRM_FORMAT_NV21},
62 {TBM_FORMAT_NV16, DRM_FORMAT_NV16},
63 {TBM_FORMAT_NV61, DRM_FORMAT_NV61},
64 {TBM_FORMAT_YUV410, DRM_FORMAT_YUV410},
65 {TBM_FORMAT_YVU410, DRM_FORMAT_YVU410},
66 {TBM_FORMAT_YUV411, DRM_FORMAT_YUV411},
67 {TBM_FORMAT_YVU411, DRM_FORMAT_YVU411},
68 {TBM_FORMAT_YUV420, DRM_FORMAT_YUV420},
69 {TBM_FORMAT_YVU420, DRM_FORMAT_YVU420},
70 {TBM_FORMAT_YUV422, DRM_FORMAT_YUV422},
71 {TBM_FORMAT_YVU422, DRM_FORMAT_YVU422},
72 {TBM_FORMAT_YUV444, DRM_FORMAT_YUV444},
73 {TBM_FORMAT_YVU444, DRM_FORMAT_YVU444},
76 #define NUM_FORMATS (sizeof(formats) / sizeof(formats[0]))
79 tdm_drm_format_to_drm_format(tbm_format format)
83 for (i = 0; i < NUM_FORMATS; i++)
84 if (formats[i].tbm_format == format)
85 return formats[i].drm_format;
87 TDM_ERR("tbm format '%c%c%c%c' not found", FOURCC_STR(format));
93 tdm_drm_format_to_tbm_format(uint32_t format)
97 for (i = 0; i < NUM_FORMATS; i++)
98 if (formats[i].drm_format == format)
99 return formats[i].tbm_format;
101 TDM_ERR("drm format '%c%c%c%c' not found", FOURCC_STR(format));