Commit 39631dd1 by Nicolas Capens Committed by Nicolas Capens

Expose GL_APPLE_texture_format_BGRA8888.

GL_APPLE_texture_format_BGRA8888 is similar to GL_EXT_texture_format_BGRA8888 but explicitly mentions texture storage support for OpenGL ES 3.0. It adds the format as texture-only (i.e. non-renderable), but GL_EXT_texture_format_BGRA8888 makes it color- renderable. Also allow a sized internalformat of GL_BGRA8_EXT. Previously we were only allowing unsized internalformat GL_BGRA. Change-Id: Ieb3a4f85847035392445d0a924591f5531e424d9 Reviewed-on: https://swiftshader-review.googlesource.com/16069Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent adee7dd5
......@@ -4404,6 +4404,7 @@ const GLubyte *Context::getExtensions(GLuint index, GLuint *numExt) const
"GL_ANGLE_texture_compression_dxt3",
"GL_ANGLE_texture_compression_dxt5",
#endif
"GL_APPLE_texture_format_BGRA8888",
"GL_CHROMIUM_texture_filtering_hint",
"GL_NV_fence",
"GL_NV_framebuffer_blit",
......
......@@ -997,7 +997,7 @@ namespace es2
}
break;
case GL_BGRA_EXT:
if(type != GL_UNSIGNED_BYTE) // GL_APPLE_texture_format_BGRA8888
if(type != GL_UNSIGNED_BYTE) // GL_APPLE_texture_format_BGRA8888 / GL_EXT_texture_format_BGRA8888
{
return GL_INVALID_OPERATION;
}
......@@ -1136,9 +1136,8 @@ namespace es2
switch(type)
{
case GL_UNSIGNED_BYTE: VALIDATE_INTERNALFORMAT(GL_LUMINANCE8_ALPHA8_EXT)
case GL_HALF_FLOAT_OES:
case GL_FLOAT:
break;
case GL_HALF_FLOAT_OES: // Invalid, only exists as unsized.
case GL_FLOAT: // Invalid, only exists as unsized.
default:
return GL_INVALID_OPERATION;
}
......@@ -1147,9 +1146,8 @@ namespace es2
switch(type)
{
case GL_UNSIGNED_BYTE: VALIDATE_INTERNALFORMAT(GL_LUMINANCE8_EXT)
case GL_HALF_FLOAT_OES:
case GL_FLOAT:
break;
case GL_HALF_FLOAT_OES: // Invalid, only exists as unsized.
case GL_FLOAT: // Invalid, only exists as unsized.
default:
return GL_INVALID_OPERATION;
}
......@@ -1158,17 +1156,17 @@ namespace es2
switch(type)
{
case GL_UNSIGNED_BYTE: VALIDATE_INTERNALFORMAT(GL_ALPHA8_EXT)
case GL_HALF_FLOAT_OES:
case GL_FLOAT:
break;
case GL_HALF_FLOAT_OES: // Invalid, only exists as unsized.
case GL_FLOAT: // Invalid, only exists as unsized.
default:
return GL_INVALID_OPERATION;
}
break;
case GL_BGRA_EXT:
if(type != GL_UNSIGNED_BYTE)
case GL_BGRA_EXT: // GL_APPLE_texture_format_BGRA8888
switch(type)
{
return GL_INVALID_OPERATION;
case GL_UNSIGNED_BYTE: VALIDATE_INTERNALFORMAT(GL_BGRA8_EXT)
default: return GL_INVALID_OPERATION;
}
break;
default:
......@@ -1242,7 +1240,7 @@ namespace es2
case GL_RG32F:
case GL_RGB32F:
case GL_RGBA32F:
case GL_BGRA8_EXT:
case GL_BGRA8_EXT: // GL_EXT_texture_format_BGRA8888
return true;
case GL_R8UI:
case GL_R8I:
......
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