gltrace: Fixup vertex attrib pointers only for GLES2

Change-Id: Ibf280c2a4372ce6e598e164eef0d72b7c0a6d1c2
This commit is contained in:
Siva Velusamy 2012-06-11 11:14:23 -07:00
parent af1cb83516
commit 3ef9e9671c
3 changed files with 22 additions and 3 deletions

View File

@ -119,7 +119,7 @@ GLTraceContext *GLTraceState::createTraceContext(int version, EGLContext eglCont
const size_t DEFAULT_BUFFER_SIZE = 8192;
BufferedOutputStream *stream = new BufferedOutputStream(mStream, DEFAULT_BUFFER_SIZE);
GLTraceContext *traceContext = new GLTraceContext(id, this, stream);
GLTraceContext *traceContext = new GLTraceContext(id, version, this, stream);
mPerContextState[eglContext] = traceContext;
return traceContext;
@ -129,8 +129,10 @@ GLTraceContext *GLTraceState::getTraceContext(EGLContext c) {
return mPerContextState[c];
}
GLTraceContext::GLTraceContext(int id, GLTraceState *state, BufferedOutputStream *stream) :
GLTraceContext::GLTraceContext(int id, int version, GLTraceState *state,
BufferedOutputStream *stream) :
mId(id),
mVersion(version),
mState(state),
mBufferedOutputStream(stream),
mElementArrayBuffers(DefaultKeyedVector<GLuint, ElementArrayBuffer*>(NULL))
@ -143,6 +145,10 @@ int GLTraceContext::getId() {
return mId;
}
int GLTraceContext::getVersion() {
return mVersion;
}
GLTraceState *GLTraceContext::getGlobalTraceState() {
return mState;
}

View File

@ -50,6 +50,7 @@ public:
/** GL Trace Context info associated with each EGLContext */
class GLTraceContext {
int mId; /* unique context id */
int mVersion; /* GL version, e.g: egl_connection_t::GLESv2_INDEX */
GLTraceState *mState; /* parent GL Trace state (for per process GL Trace State Info) */
void *fbcontents; /* memory area to read framebuffer contents */
@ -65,8 +66,9 @@ class GLTraceContext {
public:
gl_hooks_t *hooks;
GLTraceContext(int id, GLTraceState *state, BufferedOutputStream *stream);
GLTraceContext(int id, int version, GLTraceState *state, BufferedOutputStream *stream);
int getId();
int getVersion();
GLTraceState *getGlobalTraceState();
void getCompressedFB(void **fb, unsigned *fbsize,
unsigned *fbwidth, unsigned *fbheight,

View File

@ -15,6 +15,7 @@
*/
#include <cutils/log.h>
#include <EGL/egldefs.h>
#include <GLES/gl.h>
#include <GLES/glext.h>
#include <GLES2/gl2.h>
@ -592,6 +593,11 @@ void trace_VertexAttribPointerData(GLTraceContext *context,
}
void trace_VertexAttribPointerDataForGlDrawArrays(GLTraceContext *context, GLMessage *glmsg) {
if (context->getVersion() == egl_connection_t::GLESv1_INDEX) {
// only supported for GLES2 and above
return;
}
/* void glDrawArrays(GLenum mode, GLint first, GLsizei count) */
GLsizei count = glmsg->args(2).intvalue(0);
@ -604,6 +610,11 @@ void trace_VertexAttribPointerDataForGlDrawArrays(GLTraceContext *context, GLMes
void trace_VertexAttribPointerDataForGlDrawElements(GLTraceContext *context, GLMessage *glmsg,
GLvoid *indices) {
if (context->getVersion() == egl_connection_t::GLESv1_INDEX) {
// only supported for GLES2 and above
return;
}
/* void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) */
GLsizei count = glmsg->args(1).intvalue(0);
GLenum type = glmsg->args(2).intvalue(0);