Commit 1728178c by Alexis Hetu Committed by Alexis Hétu

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/9949Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent d51e2165
......@@ -4298,6 +4298,7 @@ const GLubyte *Context::getExtensions(GLuint index, GLuint *numExt) const
#endif
"GL_EXT_texture_filter_anisotropic",
"GL_EXT_texture_format_BGRA8888",
"GL_EXT_texture_rg",
"GL_ANGLE_framebuffer_blit",
"GL_ANGLE_framebuffer_multisample",
"GL_ANGLE_instanced_arrays",
......
......@@ -797,10 +797,10 @@ namespace es2
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 @@ namespace es2
{
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 @@ namespace es2
{
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 @@ namespace es2
{
switch(internalformat)
{
case GL_RED_EXT:
case GL_RG_EXT:
case GL_RGB:
case GL_RGBA:
return isTexture;
......@@ -1060,14 +1064,15 @@ namespace es2
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 @@ namespace es2
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 @@ namespace es2
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:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment