diff options
Diffstat (limited to 'gfx.c')
-rw-r--r-- | gfx.c | 51 |
1 files changed, 51 insertions, 0 deletions
@@ -0,0 +1,51 @@ +#include <endian.h> +#include <fcntl.h> +#include <sys/types.h> + +#include <libdrm/drm_fourcc.h> + +#include "gfx.h" + +gfxfmt fmt_list[] = { + { +#if __BYTE_ORDER == __LITTLE_ENDIAN + .fourcc = DRM_FORMAT_XRGB8888, +#else + .fourcc = DRM_FORMAT_BGRX8888, +#endif + .cairo = CAIRO_FORMAT_RGB24, + .pixman = PIXMAN_x8r8g8b8, + .depth = 24, + .bpp = 32, + }, + { +#if __BYTE_ORDER == __LITTLE_ENDIAN + .fourcc = DRM_FORMAT_ARGB8888, +#else + .fourcc = DRM_FORMAT_BGRA8888, +#endif + .cairo = CAIRO_FORMAT_ARGB32, + .pixman = PIXMAN_a8r8g8b8, + .depth = 24, + .bpp = 32, + }, +#if __BYTE_ORDER == __LITTLE_ENDIAN + { + .fourcc = DRM_FORMAT_RGB565, + .cairo = CAIRO_FORMAT_RGB16_565, + .pixman = PIXMAN_r5g6b5, + .depth = 16, + .bpp = 16, + + }, + { + .fourcc = DRM_FORMAT_XRGB2101010, + .cairo = CAIRO_FORMAT_RGB30, + .pixman = PIXMAN_x2r10g10b10, + .depth = 30, + .bpp = 32, + }, +#endif +}; + +uint32_t fmt_count = ARRAY_SIZE(fmt_list); |