mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-02 08:28:00 +02:00
gl-renderer: Add EXT_texture_sRGB_RG8 support to utilities
EXT_texture_sRGB_RG8 allows OpenGL ES 3 implementations to support GL_SRG8_EXT texture format. Signed-off-by: Loïc Molinari <loic.molinari@collabora.com>
This commit is contained in:
parent
b2d737f1f0
commit
e505bbe017
3 changed files with 15 additions and 0 deletions
|
|
@ -131,6 +131,7 @@ enum gl_extension_flag {
|
|||
EXTENSION_EXT_TEXTURE_NORM16 = 1ull << 12,
|
||||
EXTENSION_EXT_TEXTURE_RG = 1ull << 13,
|
||||
EXTENSION_EXT_TEXTURE_SRGB_R8 = 1ull << 14,
|
||||
EXTENSION_EXT_TEXTURE_SRGB_RG8 = 1ull << 15,
|
||||
EXTENSION_EXT_TEXTURE_STORAGE = 1ull << 16,
|
||||
EXTENSION_EXT_TEXTURE_TYPE_2_10_10_10_REV = 1ull << 17,
|
||||
EXTENSION_EXT_UNPACK_SUBIMAGE = 1ull << 18,
|
||||
|
|
|
|||
|
|
@ -289,6 +289,7 @@ static const struct gl_extension_table extension_table[] = {
|
|||
EXT("GL_EXT_texture_norm16", EXTENSION_EXT_TEXTURE_NORM16),
|
||||
EXT("GL_EXT_texture_rg", EXTENSION_EXT_TEXTURE_RG),
|
||||
EXT("GL_EXT_texture_sRGB_R8", EXTENSION_EXT_TEXTURE_SRGB_R8),
|
||||
EXT("GL_EXT_texture_sRGB_RG8", EXTENSION_EXT_TEXTURE_SRGB_RG8),
|
||||
EXT("GL_EXT_texture_storage", EXTENSION_EXT_TEXTURE_STORAGE),
|
||||
EXT("GL_EXT_texture_type_2_10_10_10_REV", EXTENSION_EXT_TEXTURE_TYPE_2_10_10_10_REV),
|
||||
EXT("GL_EXT_unpack_subimage", EXTENSION_EXT_UNPACK_SUBIMAGE),
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
* │ GL_R32UI │ 3.0 │ │ 3.0 │ GL_RED_INTEGER │ GL_UNSIGNED_INT │
|
||||
* │ GL_R32I │ 3.0 │ │ 3.0 │ GL_RED_INTEGER │ GL_INT │
|
||||
* │ GL_RG8 │ 3.0 │ 3.0 │ 3.0 │ GL_RG │ GL_UNSIGNED_BYTE │
|
||||
* │ GL_SRG8_EXT │ E⁶ │ │ │ GL_RG │ GL_UNSIGNED_BYTE │
|
||||
* │ GL_RG8_SNORM │ 3.0 │ 3.0 │ │ GL_RG │ GL_BYTE │
|
||||
* │ GL_RG16F │ 3.0 │ 3.0 │ 3.2 │ GL_RG │ GL_HALF_FLOAT, │
|
||||
* │ │ │ │ │ │ GL_FLOAT │
|
||||
|
|
@ -154,6 +155,10 @@ is_valid_format_es3(struct gl_renderer *gr,
|
|||
case GL_RG32F:
|
||||
return external_format == GL_RG;
|
||||
|
||||
case GL_SRG8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_RG8) &&
|
||||
external_format == GL_RG;
|
||||
|
||||
case GL_RGB8I:
|
||||
case GL_RGB8UI:
|
||||
case GL_RGB16I:
|
||||
|
|
@ -223,6 +228,10 @@ is_valid_type_es3(struct gl_renderer *gr,
|
|||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_R8) &&
|
||||
type == GL_UNSIGNED_BYTE;
|
||||
|
||||
case GL_SRG8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_RG8) &&
|
||||
type == GL_UNSIGNED_BYTE;
|
||||
|
||||
case GL_R8I:
|
||||
case GL_R8_SNORM:
|
||||
case GL_RG8I:
|
||||
|
|
@ -505,6 +514,9 @@ gl_texture_is_format_supported(struct gl_renderer *gr,
|
|||
case GL_SR8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_R8);
|
||||
|
||||
case GL_SRG8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_RG8);
|
||||
|
||||
case GL_R16F:
|
||||
case GL_RG16F:
|
||||
case GL_RGB16F:
|
||||
|
|
@ -922,6 +934,7 @@ gl_fbo_is_format_supported(struct gl_renderer *gr,
|
|||
case GL_R8_SNORM:
|
||||
case GL_SR8_EXT:
|
||||
case GL_RG8_SNORM:
|
||||
case GL_SRG8_EXT:
|
||||
case GL_SRGB8:
|
||||
case GL_RGB9_E5:
|
||||
case GL_RGB32F:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue