I don’t really know where to start with this one so I’m afraid it will be a bit vague.
I’m working with VAOs in OpenGL and the following code gives me an exception access violation:
public void draw() {
editable = false;
for (int i = 0; i < rawVertexDataList.size(); i++) {
FloatBuffer fb = BufferUtils.createFloatBuffer(rawVertexDataList.get(i).size());
for (int u = 0; u < fb.capacity(); u++) {
fb.put(rawVertexDataList.get(i).get(u));
}
fb.flip();
vertexBuffer.add(fb);
fb = BufferUtils.createFloatBuffer(rawTextureDataList.get(i).size());
for (int u = 0; u < fb.capacity(); u++) {
fb.put(rawTextureDataList.get(i).get(u));
}
fb.flip();
textureBuffer.add(fb);
}
for (int i = 0; i < textureBuffer.size(); i++) {
if (useTexture)
GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
if(GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D) != i + 1)
GL11.glBindTexture(GL11.GL_TEXTURE_2D, i + 1);
GL11.glVertexPointer(2, 0, vertexBuffer.get(i));
if(useTexture)
GL11.glTexCoordPointer(2, 0, textureBuffer.get(i));
GL11.glDrawArrays(GL11.GL_QUADS, 0, vertexCount);
GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
if (useTexture)
GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
}
vertexBuffer.clear();
textureBuffer.clear();
}
Error it gives me:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006917d930, pid=4616, tid=9100
#
# JRE version: 7.0_01-b08
# Java VM: Java HotSpot(TM) 64-Bit Server VM (21.1-b02 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [atio6axx.dll+0x24d930]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\dev\java\Triad\hs_err_pid4616.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
I understand from looking around a bit, that if the glDrawArrays call fails, it can throw this exception. If this is the case, what is making it fail?
Thanks in advance