Original Post
Hi! Please someone help me solve this mystery because it's driving me crazy! The same code compiles on my computer, while on another computer, it throws an access violation. The code is: float verts[5*3]; GLubyte idx[10]; verts[0]=0; verts[1]=-10; verts[2]=0; verts[3]=-10; verts[4]=0; verts[5]=-10; verts[6]=10; verts[7]=0; verts[8]=-10; verts[9]=0; verts[10]=0; verts[11]=10; verts[12]=0; verts[13]=10; verts[14]=0; idx[0]=0; idx[1]=1; idx[2]=2; idx[3]=3; idx[4]=1; idx[5]=4; idx[6]=2; idx[7]=1; idx[8]=3; idx[9]=2; glGenBuffersARB(1,&vbuff); glBindBufferARB(GL_ARRAY_BUFFER_ARB,vbuff); glBufferDataARB(GL_ARRAY_BUFFER_ARB,15*sizeof(float),verts,GL_STATIC_DRAW_ARB); glGenBuffersARB(1,&ibuff); glBindBufferARB(GL_ARRAY_BUFFER_ARB,ibuff); glBufferDataARB(GL_ARRAY_BUFFER_ARB,10*sizeof(GLubyte),idx,GL_STATIC_DRAW_ARB); drawlist=glGenLists(1); glNewList(drawlist,GL_COMPILE); glEnableClientState(GL_VERTEX_ARRAY); glBindBufferARB(GL_ARRAY_BUFFER,vbuff); glVertexPointer(3,GL_FLOAT,sizeof(float)*3,NULL); glEnableClientState(GL_INDEX_ARRAY); glBindBufferARB(GL_ARRAY_BUFFER,ibuff); glIndexPointer(GL_UNSIGNED_BYTE,sizeof(GLubyte),NULL); glDrawElements(GL_TRIANGLE_FAN,5,GL_UNSIGNED_BYTE,&idx[0]); glDrawElements(GL_TRIANGLE_FAN,5,GL_UNSIGNED_BYTE,&idx[5]); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_INDEX_ARRAY); glEndList(); The problem is with the glDrawElements() calls, it throws an access violation. If I use glDrawArrays() instead, it works fine on both computers.