Expose GL_EXT_texture_rg extension
The extension was already implemented for GLES3, but simply required
a few cases to be added for support in GLES2.
Note that this extension is required to process filters using masks
with GLES2 in skia.
Change-Id: I196901ca19a4fd40a5a1ebd87040519b0de6eb5f
Reviewed-on: https://swiftshader-review.googlesource.com/9949
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index d45702c..53c56e9 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -797,10 +797,10 @@
case GL_BGRA_EXT: // GL_EXT_texture_format_BGRA8888
case GL_DEPTH_STENCIL: // GL_OES_packed_depth_stencil (GL_DEPTH_STENCIL_OES)
case GL_DEPTH_COMPONENT: // GL_OES_depth_texture
+ case GL_RED_EXT: // GL_EXT_texture_rg
+ case GL_RG_EXT: // GL_EXT_texture_rg
break;
- case GL_RED:
case GL_RED_INTEGER:
- case GL_RG:
case GL_RG_INTEGER:
case GL_RGB_INTEGER:
case GL_RGBA_INTEGER:
@@ -948,6 +948,7 @@
{
case GL_UNSIGNED_BYTE: VALIDATE_INTERNALFORMAT(GL_RG8)
case GL_BYTE: VALIDATE_INTERNALFORMAT(GL_RG8_SNORM)
+ case GL_HALF_FLOAT_OES: break;
case GL_HALF_FLOAT: VALIDATE_INTERNALFORMAT(GL_RG16F)
case GL_FLOAT: VALIDATE_INTERNALFORMAT(GL_RG32F, GL_RG16F)
default: return error(GL_INVALID_OPERATION, false);
@@ -970,6 +971,7 @@
{
case GL_UNSIGNED_BYTE: VALIDATE_INTERNALFORMAT(GL_R8)
case GL_BYTE: VALIDATE_INTERNALFORMAT(GL_R8_SNORM)
+ case GL_HALF_FLOAT_OES: break;
case GL_HALF_FLOAT: VALIDATE_INTERNALFORMAT(GL_R16F)
case GL_FLOAT: VALIDATE_INTERNALFORMAT(GL_R32F, GL_R16F)
default: return error(GL_INVALID_OPERATION, false);
@@ -1042,6 +1044,8 @@
{
switch(internalformat)
{
+ case GL_RED_EXT:
+ case GL_RG_EXT:
case GL_RGB:
case GL_RGBA:
return isTexture;
@@ -1060,14 +1064,15 @@
case GL_RGBA32F:
case GL_BGRA8_EXT:
return true;
- case GL_R8:
+ case GL_R8_EXT:
+ case GL_RG8_EXT:
+ return isTexture || (clientVersion >= 3);
case GL_R8UI:
case GL_R8I:
case GL_R16UI:
case GL_R16I:
case GL_R32UI:
case GL_R32I:
- case GL_RG8:
case GL_RG8UI:
case GL_RG8I:
case GL_RG16UI:
@@ -1140,6 +1145,8 @@
case GL_RGB565:
case GL_RGB8_OES:
case GL_RGBA8_OES:
+ case GL_RED:
+ case GL_RG:
case GL_RGB:
case GL_RGBA:
case GL_R16F:
@@ -1196,6 +1203,8 @@
case GL_RGB565:
case GL_RGB8_OES:
case GL_RGBA8_OES:
+ case GL_RED:
+ case GL_RG:
case GL_RGB:
case GL_RGBA:
case GL_R16F: