Implement GetMultismaplefvANGLE and SampleMaskiANGLE of texture multisample extension
This patch adds GetMultismaplefvANGLE and SampleMaskiANGLE api.
TEST=TextureMultisampleTest.CheckSamplePositions*
TEST=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: Ib1e8b856059229bbe88328a28cf2a892f4673214
Reviewed-on: https://chromium-review.googlesource.com/c/1319252
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index b5dc8d8..3561600 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -6741,4 +6741,35 @@
}
return true;
}
+
+bool ValidateGetMultisamplefvBase(Context *context, GLenum pname, GLuint index, GLfloat *val)
+{
+ if (pname != GL_SAMPLE_POSITION)
+ {
+ context->validationError(GL_INVALID_ENUM, kInvalidPname);
+ return false;
+ }
+
+ Framebuffer *framebuffer = context->getGLState().getDrawFramebuffer();
+ GLint samples = framebuffer->getSamples(context);
+
+ if (index >= static_cast<GLuint>(samples))
+ {
+ context->validationError(GL_INVALID_VALUE, kIndexExceedsSamples);
+ return false;
+ }
+
+ return true;
+}
+
+bool ValidateSampleMaskiBase(Context *context, GLuint maskNumber, GLbitfield mask)
+{
+ if (maskNumber >= context->getCaps().maxSampleMaskWords)
+ {
+ context->validationError(GL_INVALID_VALUE, kInvalidSampleMaskNumber);
+ return false;
+ }
+
+ return true;
+}
} // namespace gl