OSDN Git Service

Validation for glGetVertexAttribPointerv
authorLingfeng Yang <lfy@google.com>
Fri, 8 Apr 2016 19:46:42 +0000 (12:46 -0700)
committerLingfeng Yang <lfy@google.com>
Fri, 8 Apr 2016 19:46:42 +0000 (12:46 -0700)
dEQP-GLES2.functional.negative_api.state.get_vertex_attrib_pointerv
Fail -> Pass

Based on Intel's OpenGL validation for goldfish opengl,
introduced in nyc-dev

Change-Id: If67192368935f21de20c0f531036db027b867b37

system/GLESv2_enc/GL2Encoder.cpp

index e31aa1b..141619f 100755 (executable)
@@ -423,7 +423,10 @@ void GL2Encoder::s_glGetVertexAttribPointerv(void *self, GLuint index, GLenum pn
 {
     GL2Encoder *ctx = (GL2Encoder *)self;
     if (ctx->m_state == NULL) return;
-
+    GLint maxIndex;
+    ctx->glGetIntegerv(self, GL_MAX_VERTEX_ATTRIBS, &maxIndex);
+    SET_ERROR_IF(!(index < maxIndex), GL_INVALID_VALUE);
+    SET_ERROR_IF(pname != GL_VERTEX_ATTRIB_ARRAY_POINTER, GL_INVALID_ENUM);
     (void)pname;
 
     const GLClientState::VertexAttribState *va_state = ctx->m_state->getState(index);