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 ...@@ -285,9 +285,10 @@ struct Extensions
// GL_ANGLE_instanced_arrays // GL_ANGLE_instanced_arrays
bool instancedArraysANGLE; bool instancedArraysANGLE;
// GL_EXT_instanced_arrays // GL_EXT_instanced_arrays
bool instancedArraysEXT; bool instancedArraysEXT;
// Any version of the instanced arrays extension
bool instancedArraysAny() const { return (instancedArraysANGLE || instancedArraysEXT); }
// GL_ANGLE_pack_reverse_row_order // GL_ANGLE_pack_reverse_row_order
bool packReverseRowOrder; bool packReverseRowOrder;
......
...@@ -5262,8 +5262,7 @@ bool ValidateGetVertexAttribBase(Context *context, ...@@ -5262,8 +5262,7 @@ bool ValidateGetVertexAttribBase(Context *context,
GL_VERTEX_ATTRIB_ARRAY_DIVISOR == GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE, GL_VERTEX_ATTRIB_ARRAY_DIVISOR == GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE,
"ANGLE extension enums not equal to GL enums."); "ANGLE extension enums not equal to GL enums.");
if (context->getClientMajorVersion() < 3 && if (context->getClientMajorVersion() < 3 &&
!context->getExtensions().instancedArraysANGLE && !context->getExtensions().instancedArraysAny())
!context->getExtensions().instancedArraysEXT)
{ {
context->validationError(GL_INVALID_ENUM, kEnumNotSupported); context->validationError(GL_INVALID_ENUM, kEnumNotSupported);
return false; return false;
......
...@@ -3100,8 +3100,7 @@ bool ValidateMultiDrawArraysInstancedANGLE(Context *context, ...@@ -3100,8 +3100,7 @@ bool ValidateMultiDrawArraysInstancedANGLE(Context *context,
} }
if (context->getClientMajorVersion() < 3) if (context->getClientMajorVersion() < 3)
{ {
if (!context->getExtensions().instancedArraysANGLE && if (!context->getExtensions().instancedArraysAny())
!context->getExtensions().instancedArraysEXT)
{ {
context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false; return false;
...@@ -3137,8 +3136,7 @@ bool ValidateMultiDrawElementsInstancedANGLE(Context *context, ...@@ -3137,8 +3136,7 @@ bool ValidateMultiDrawElementsInstancedANGLE(Context *context,
} }
if (context->getClientMajorVersion() < 3) if (context->getClientMajorVersion() < 3)
{ {
if (!context->getExtensions().instancedArraysANGLE && if (!context->getExtensions().instancedArraysAny())
!context->getExtensions().instancedArraysEXT)
{ {
context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled); context->validationError(GL_INVALID_OPERATION, kExtensionNotEnabled);
return false; 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