libweston: Extend RGB formats

Add new formats supported by OpenGL to the pixel formats table: R16,
RG88, GR1616, RG1616, XRGB16161616 and ARGB16161616.

Signed-off-by: Loïc Molinari <loic.molinari@collabora.com>
This commit is contained in:
Loïc Molinari 2024-11-11 15:52:11 +01:00 committed by Daniel Stone
parent 5e267afa6d
commit cf43e7da9f

View file

@ -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),