diff --git a/libweston/pixel-formats.c b/libweston/pixel-formats.c index 58f491d12..8ac17b505 100644 --- a/libweston/pixel-formats.c +++ b/libweston/pixel-formats.c @@ -67,6 +67,7 @@ #define SWIZZLES_R1BG { GL_RED, GL_ONE, GL_BLUE, GL_GREEN } #define SWIZZLES_RABG { GL_RED, GL_ALPHA, GL_BLUE, GL_GREEN } #define SWIZZLES_RG01 { GL_RED, GL_GREEN, GL_ZERO, GL_ONE } +#define SWIZZLES_GR01 { GL_GREEN, GL_RED, GL_ZERO, GL_ONE } #define SWIZZLES_RGB1 { GL_RED, GL_GREEN, GL_BLUE, GL_ONE } #define SWIZZLES_RGBA { GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA } @@ -128,6 +129,13 @@ static const struct pixel_format_info pixel_format_table[] = { GL_FORMAT(GL_R8_EXT), GL_TYPE(GL_UNSIGNED_BYTE), }, + { + DRM_FORMAT(R16), + BITS_RGBA_FIXED(16, 0, 0, 0), + .bpp = 16, + .hide_from_clients = true, + GL_FORMAT_INFO(GL_R16_EXT, GL_RED, GL_UNSIGNED_SHORT, R001), + }, { DRM_FORMAT(GR88), BITS_RGBA_FIXED(8, 8, 0, 0), @@ -137,6 +145,27 @@ static const struct pixel_format_info pixel_format_table[] = { GL_FORMAT(GL_RG8_EXT), GL_TYPE(GL_UNSIGNED_BYTE), }, + { + DRM_FORMAT(RG88), + BITS_RGBA_FIXED(8, 8, 0, 0), + .bpp = 16, + .hide_from_clients = true, + GL_FORMAT_INFO(GL_RG8, GL_RG, GL_UNSIGNED_BYTE, GR01), + }, + { + DRM_FORMAT(GR1616), + BITS_RGBA_FIXED(16, 16, 0, 0), + .bpp = 32, + .hide_from_clients = true, + GL_FORMAT_INFO(GL_RG16_EXT, GL_RG, GL_UNSIGNED_SHORT, RG01), + }, + { + DRM_FORMAT(RG1616), + BITS_RGBA_FIXED(16, 16, 0, 0), + .bpp = 32, + .hide_from_clients = true, + GL_FORMAT_INFO(GL_RG16_EXT, GL_RG, GL_UNSIGNED_SHORT, GR01), + }, { DRM_FORMAT(XRGB4444), BITS_RGBA_FIXED(4, 4, 4, 0), @@ -522,6 +551,19 @@ static const struct pixel_format_info pixel_format_table[] = { GL_TYPE(GL_UNSIGNED_SHORT), #endif }, + { + DRM_FORMAT(XRGB16161616), + BITS_RGBA_FIXED(16, 16, 16, 0), + .bpp = 64, + GL_FORMAT_INFO(GL_RGBA16_EXT, GL_RGBA, GL_UNSIGNED_SHORT, BGR1), + }, + { + DRM_FORMAT(ARGB16161616), + BITS_RGBA_FIXED(16, 16, 16, 16), + .bpp = 64, + .opaque_substitute = DRM_FORMAT_XRGB16161616, + GL_FORMAT_INFO(GL_RGBA16_EXT, GL_RGBA, GL_UNSIGNED_SHORT, BGRA), + }, { DRM_FORMAT(XBGR16161616F), BITS_RGBA_FLOAT(16, 16, 16, 0),