Add a ValidationContext class helper.
This class is a wrapper around gl::Data, aka the metadata describing
a gl::Context. We can use it for unit-testing validation functions
by passing that through the validation methods instead of a Context,
and using mocks to expect certain errors.
BUG=angleproject:747
BUG=angleproject:597
Change-Id: I7bd85c7662860ba9a3a13406579a088d447e5631
Reviewed-on: https://chromium-review.googlesource.com/309637
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index fc90330..fc45cc8 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -29,7 +29,7 @@
{
namespace
{
-bool ValidateDrawAttribs(gl::Context *context, GLint primcount, GLint maxVertex)
+bool ValidateDrawAttribs(ValidationContext *context, GLint primcount, GLint maxVertex)
{
const gl::State &state = context->getState();
const gl::Program *program = state.getProgram();
@@ -1466,7 +1466,10 @@
return true;
}
-static bool ValidateDrawBase(Context *context, GLenum mode, GLsizei count, GLsizei primcount)
+static bool ValidateDrawBase(ValidationContext *context,
+ GLenum mode,
+ GLsizei count,
+ GLsizei primcount)
{
switch (mode)
{
@@ -1657,7 +1660,7 @@
return ValidateDrawArraysInstanced(context, mode, first, count, primcount);
}
-bool ValidateDrawElements(Context *context,
+bool ValidateDrawElements(ValidationContext *context,
GLenum mode,
GLsizei count,
GLenum type,