mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-01 13:48:00 +02:00
gl-renderer: Add EXT_texture_sRGB_R8 support to utilities
EXT_texture_sRGB_R8 allows OpenGL ES 3 implementations to support GL_SR8_EXT texture format. Signed-off-by: Loïc Molinari <loic.molinari@collabora.com>
This commit is contained in:
parent
e72d7d963d
commit
b2d737f1f0
3 changed files with 15 additions and 0 deletions
|
|
@ -130,6 +130,7 @@ enum gl_extension_flag {
|
|||
EXTENSION_EXT_TEXTURE_FORMAT_BGRA8888 = 1ull << 11,
|
||||
EXTENSION_EXT_TEXTURE_NORM16 = 1ull << 12,
|
||||
EXTENSION_EXT_TEXTURE_RG = 1ull << 13,
|
||||
EXTENSION_EXT_TEXTURE_SRGB_R8 = 1ull << 14,
|
||||
EXTENSION_EXT_TEXTURE_STORAGE = 1ull << 16,
|
||||
EXTENSION_EXT_TEXTURE_TYPE_2_10_10_10_REV = 1ull << 17,
|
||||
EXTENSION_EXT_UNPACK_SUBIMAGE = 1ull << 18,
|
||||
|
|
|
|||
|
|
@ -288,6 +288,7 @@ static const struct gl_extension_table extension_table[] = {
|
|||
EXT("GL_EXT_texture_format_BGRA8888", EXTENSION_EXT_TEXTURE_FORMAT_BGRA8888),
|
||||
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_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),
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
* │ Internal fmt¹ │ T² │ F³ │ R⁴ │ External fmt⁵ │ External type(s)⁵ │
|
||||
* ╞═════════════════════╪═════╪═════╪═════╪═════════════════╪══════════════════════════════════╡
|
||||
* │ GL_R8 │ 3.0 │ 3.0 │ 3.0 │ GL_RED │ GL_UNSIGNED_BYTE │
|
||||
* │ GL_SR8_EXT │ E⁶ │ │ │ GL_RED │ GL_UNSIGNED_BYTE │
|
||||
* │ GL_R8_SNORM │ 3.0 │ 3.0 │ │ GL_RED │ GL_BYTE │
|
||||
* │ GL_R16F │ 3.0 │ 3.0 │ 3.2 │ GL_RED │ GL_HALF_FLOAT, │
|
||||
* │ │ │ │ │ │ GL_FLOAT │
|
||||
|
|
@ -135,6 +136,10 @@ is_valid_format_es3(struct gl_renderer *gr,
|
|||
case GL_R32F:
|
||||
return external_format == GL_RED;
|
||||
|
||||
case GL_SR8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_R8) &&
|
||||
external_format == GL_RED;
|
||||
|
||||
case GL_RG8I:
|
||||
case GL_RG8UI:
|
||||
case GL_RG16I:
|
||||
|
|
@ -214,6 +219,10 @@ is_valid_type_es3(struct gl_renderer *gr,
|
|||
case GL_SRGB8_ALPHA8:
|
||||
return type == GL_UNSIGNED_BYTE;
|
||||
|
||||
case GL_SR8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_R8) &&
|
||||
type == GL_UNSIGNED_BYTE;
|
||||
|
||||
case GL_R8I:
|
||||
case GL_R8_SNORM:
|
||||
case GL_RG8I:
|
||||
|
|
@ -493,6 +502,9 @@ gl_texture_is_format_supported(struct gl_renderer *gr,
|
|||
case GL_RGBA4:
|
||||
return true;
|
||||
|
||||
case GL_SR8_EXT:
|
||||
return gl_extensions_has(gr, EXTENSION_EXT_TEXTURE_SRGB_R8);
|
||||
|
||||
case GL_R16F:
|
||||
case GL_RG16F:
|
||||
case GL_RGB16F:
|
||||
|
|
@ -908,6 +920,7 @@ gl_fbo_is_format_supported(struct gl_renderer *gr,
|
|||
gl_extensions_has(gr, EXTENSION_EXT_COLOR_BUFFER_HALF_FLOAT));
|
||||
|
||||
case GL_R8_SNORM:
|
||||
case GL_SR8_EXT:
|
||||
case GL_RG8_SNORM:
|
||||
case GL_SRGB8:
|
||||
case GL_RGB9_E5:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue