Add a ValidateAttachmentTarget helper method.
This helper returns the appropriate error with the user specifies
an attachment that is invalid or out-of-range (for indexed color
attachments).
BUG=angle:571
Change-Id: I80ed347e3540579110e40e742fbacb0467cb85fd
Reviewed-on: https://chromium-review.googlesource.com/205604
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/validationES2.cpp b/src/libGLESv2/validationES2.cpp
index 76d4802..a11ca9c 100644
--- a/src/libGLESv2/validationES2.cpp
+++ b/src/libGLESv2/validationES2.cpp
@@ -849,24 +849,9 @@
return gl::error(GL_INVALID_ENUM, false);
}
- if (attachment >= GL_COLOR_ATTACHMENT0 && attachment <= GL_COLOR_ATTACHMENT15)
+ if (!ValidateAttachmentTarget(context, attachment))
{
- const unsigned int colorAttachment = (attachment - GL_COLOR_ATTACHMENT0);
- if (colorAttachment >= context->getMaximumRenderTargets())
- {
- return gl::error(GL_INVALID_VALUE, false);
- }
- }
- else
- {
- switch (attachment)
- {
- case GL_DEPTH_ATTACHMENT:
- case GL_STENCIL_ATTACHMENT:
- break;
- default:
- return gl::error(GL_INVALID_ENUM, false);
- }
+ return false;
}
if (texture != 0)