summaryrefslogtreecommitdiffstats
path: root/opengl/system
diff options
context:
space:
mode:
authorbohu <bohu@google.com>2014-10-13 11:45:06 -0700
committerbohu <bohu@google.com>2014-10-13 11:45:06 -0700
commit40a674e0d0acac87aa25eb9de720dc2fb07d9e4f (patch)
treebad25e95b839e110a6c135cc287dc9cdf70567a6 /opengl/system
parent7fa2b92de2058a3556e5f38a135de415bb3d5e45 (diff)
downloadandroid_device_generic_goldfish-40a674e0d0acac87aa25eb9de720dc2fb07d9e4f.tar.gz
android_device_generic_goldfish-40a674e0d0acac87aa25eb9de720dc2fb07d9e4f.tar.bz2
android_device_generic_goldfish-40a674e0d0acac87aa25eb9de720dc2fb07d9e4f.zip
Fix emulator crashes on glDrawElements command
The current implementation does not properly handle the case when glDrawElements is called without a buffer binded. This commit fixes this problem and fixes the crash. Change-Id: Ic7a5b2fb90c860dad878ed53a369349d479ba4e5
Diffstat (limited to 'opengl/system')
-rw-r--r--opengl/system/GLESv2_enc/GL2Encoder.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/opengl/system/GLESv2_enc/GL2Encoder.cpp b/opengl/system/GLESv2_enc/GL2Encoder.cpp
index 0f5abdd..305806e 100644
--- a/opengl/system/GLESv2_enc/GL2Encoder.cpp
+++ b/opengl/system/GLESv2_enc/GL2Encoder.cpp
@@ -424,15 +424,15 @@ void GL2Encoder::sendVertexAttributes(GLint first, GLsizei count)
int stride = state->stride == 0 ? state->elementSize : state->stride;
int firstIndex = stride * first;
+ this->m_glBindBuffer_enc(this, GL_ARRAY_BUFFER, state->bufferObject);
if (state->bufferObject == 0) {
this->glVertexAttribPointerData(this, i, state->size, state->type, state->normalized, state->stride,
(unsigned char *)state->data + firstIndex, datalen);
} else {
- this->m_glBindBuffer_enc(this, GL_ARRAY_BUFFER, state->bufferObject);
this->glVertexAttribPointerOffset(this, i, state->size, state->type, state->normalized, state->stride,
(uintptr_t) state->data + firstIndex);
- this->m_glBindBuffer_enc(this, GL_ARRAY_BUFFER, m_state->currentArrayVbo());
}
+ this->m_glBindBuffer_enc(this, GL_ARRAY_BUFFER, m_state->currentArrayVbo());
} else {
this->m_glDisableVertexAttribArray_enc(this, i);
}