Commit 25686848 by Jonah Ryan-Davis Committed by Commit Bot

Refactor ANGLE's extensions struct to more easily represent multiple

vendor extension Some extensions are available from multiple vendors with the same name, while minimizing the amount of duplicated code and validation errors. The anonymous struct allows individual vendor checks as well as an "*Any()" check to check for any version of the extension. Bug: angleproject:3104 Change-Id: Ib8b65cde850462d3746d9663496a595321817514 Reviewed-on: https://chromium-review.googlesource.com/c/1456619 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent c1c9fb1b
......@@ -285,9 +285,10 @@ struct Extensions
// GL_ANGLE_instanced_arrays
bool instancedArraysANGLE;
// GL_EXT_instanced_arrays
bool instancedArraysEXT;
// Any version of the instanced arrays extension
bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); }
// GL_ANGLE_pack_reverse_row_order
bool packReverseRowOrder;
......
......@@ -5262,8 +5262,7 @@ bool ValidateGetVertexAttribBase(Context *context,
GL_VERTEX_ATTRIB_ARRAY_DIVISOR == GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE,
"ANGLE extension enums not equal to GL enums.");
if (context->getClientMajorVersion() < 3 &&
!context->getExtensions().instancedArraysANGLE &&
!context->getExtensions().instancedArraysEXT)
!context->getExtensions().instancedArraysAny())
{
context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false;
......
......@@ -3100,8 +3100,7 @@ bool ValidateMultiDrawArraysInstancedANGLE(Context *context,
}
if (context->getClientMajorVersion() < 3)
{
if (!context->getExtensions().instancedArraysANGLE &&
!context->getExtensions().instancedArraysEXT)
if (!context->getExtensions().instancedArraysAny())
{
context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false;
......@@ -3137,8 +3136,7 @@ bool ValidateMultiDrawElementsInstancedANGLE(Context *context,
}
if (context->getClientMajorVersion() < 3)
{
if (!context->getExtensions().instancedArraysANGLE &&
!context->getExtensions().instancedArraysEXT)
if (!context->getExtensions().instancedArraysAny())
{
context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false;
......
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