static bool validateColorBufferFormat(GLenum textureFormat, GLenum colorbufferFormat)
{
- GLenum validationError = ValidateCompressedFormat(textureFormat, egl::getClientVersion(), false);
- if(validationError != GL_NONE)
+ if(IsCompressed(textureFormat, egl::getClientVersion()))
{
- return error(validationError, false);
+ return error(GL_INVALID_OPERATION, false);
}
// [OpenGL ES 2.0.24] table 3.9
return error(GL_INVALID_VALUE);
}
- switch(internalformat)
+ if(!IsCompressed(internalformat, egl::getClientVersion()))
{
- case GL_DEPTH_COMPONENT:
- case GL_DEPTH_COMPONENT16:
- case GL_DEPTH_COMPONENT32_OES:
- case GL_DEPTH_STENCIL_OES:
- case GL_DEPTH24_STENCIL8_OES:
- return error(GL_INVALID_OPERATION);
- default:
- {
- GLenum validationError = ValidateCompressedFormat(internalformat, egl::getClientVersion(), true);
- if(validationError != GL_NONE)
- {
- return error(validationError);
- }
- }
- break;
+ return error(GL_INVALID_ENUM);
}
if(border != 0)
}
}
- GLenum validationError = ValidateCompressedFormat(format, clientVersion, false);
- if(validationError != GL_NONE)
- {
- return error(validationError);
- }
-
- validationError = ValidateTextureFormatType(format, type, internalformat, context->getClientVersion());
+ GLenum validationError = ValidateTextureFormatType(format, type, internalformat, context->getClientVersion());
if(validationError != GL_NONE)
{
return error(validationError);
return error(GL_INVALID_VALUE);
}
- switch(internalformat)
+ if(!IsCompressed(internalformat, egl::getClientVersion()))
{
- case GL_DEPTH_COMPONENT:
- case GL_DEPTH_COMPONENT16:
- case GL_DEPTH_COMPONENT32_OES:
- case GL_DEPTH_STENCIL_OES:
- case GL_DEPTH24_STENCIL8_OES:
- return error(GL_INVALID_OPERATION);
- default:
- {
- GLenum validationError = ValidateCompressedFormat(internalformat, egl::getClientVersion(), true);
- if(validationError != GL_NONE)
- {
- return error(validationError);
- }
- }
+ return error(GL_INVALID_ENUM);
}
if(imageSize != egl::ComputeCompressedSize(width, height, internalformat) * depth)
return error(GL_INVALID_VALUE);
}
- GLenum validationError = ValidateCompressedFormat(format, egl::getClientVersion(), true);
- if(validationError != GL_NONE)
+ if(!IsCompressed(format, egl::getClientVersion()))
{
- return error(validationError);
+ return error(GL_INVALID_ENUM);
}
if(imageSize != egl::ComputeCompressedSize(width, height, format) * depth)
static bool validateColorBufferFormat(GLenum textureFormat, GLenum colorbufferFormat)
{
- GLenum validationError = ValidateCompressedFormat(textureFormat, egl::getClientVersion(), false);
- if(validationError != GL_NONE)
+ if(IsCompressed(textureFormat, egl::getClientVersion()))
{
- return error(validationError, false);
+ return error(GL_INVALID_OPERATION, false);
}
switch(textureFormat)
return error(GL_INVALID_VALUE);
}
- switch(internalformat)
+ if(!IsCompressed(internalformat, egl::getClientVersion()))
{
- case GL_DEPTH_COMPONENT:
- case GL_DEPTH_COMPONENT16:
- case GL_DEPTH_COMPONENT32_OES:
- case GL_DEPTH_STENCIL:
- case GL_DEPTH24_STENCIL8:
- return error(GL_INVALID_OPERATION);
- default:
- {
- GLenum validationError = ValidateCompressedFormat(internalformat, egl::getClientVersion(), true);
- if(validationError != GL_NONE)
- {
- return error(validationError);
- }
- }
+ return error(GL_INVALID_ENUM);
}
if(imageSize != egl::ComputeCompressedSize(width, height, internalformat) * depth)
return error(GL_INVALID_VALUE);
}
- GLenum validationError = ValidateCompressedFormat(format, egl::getClientVersion(), true);
- if(validationError != GL_NONE)
+ if(!IsCompressed(format, egl::getClientVersion()))
{
- return error(validationError);
+ return error(GL_INVALID_ENUM);
}
if(imageSize != egl::ComputeCompressedSize(width, height, format) * depth)
bool IsCompressed(GLenum format, GLint clientVersion)
{
- return ValidateCompressedFormat(format, clientVersion, true) == GL_NONE;
- }
-
- GLenum ValidateCompressedFormat(GLenum format, GLint clientVersion, bool expectCompressedFormats)
- {
switch(format)
{
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
- return expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION;
case GL_ETC1_RGB8_OES:
- return expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION;
+ return true;
case GL_COMPRESSED_R11_EAC:
case GL_COMPRESSED_SIGNED_R11_EAC:
case GL_COMPRESSED_RG11_EAC:
case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
case GL_COMPRESSED_RGBA8_ETC2_EAC:
case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
- return (clientVersion >= 3) ? (expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION) : GL_INVALID_ENUM;
+ return (clientVersion >= 3);
case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
- #if(ASTC_SUPPORT)
- return ((clientVersion >= 3) && ()) ? (expectCompressedFormats ? GL_NONE : GL_INVALID_OPERATION) : GL_INVALID_ENUM;
- #else
- return GL_INVALID_ENUM;
- #endif
+ return ASTC_SUPPORT && (clientVersion >= 3);
default:
- return expectCompressedFormats ? GL_INVALID_ENUM : GL_NONE; // Not compressed format
+ return false;
}
}
bool IsCompressed(GLenum format, GLint clientVersion);
GLint GetSizedInternalFormat(GLint internalFormat, GLenum type);
- GLenum ValidateCompressedFormat(GLenum format, GLint clientVersion, bool expectCompressedFormats);
GLenum ValidateSubImageParams(bool compressed, bool copy, GLenum target, GLint level, GLint xoffset, GLint yoffset,
GLsizei width, GLsizei height, GLenum format, GLenum type, Texture *texture, GLint clientVersion);
GLenum ValidateSubImageParams(bool compressed, bool copy, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,