QGLWidget: renderpixmap und vertex buffer objects

Alles rund um die Programmierung mit Qt
Antworten
bachi
Beiträge: 1
Registriert: 10. Juli 2009 17:00

QGLWidget: renderpixmap und vertex buffer objects

Beitrag von bachi »

Hallo,

habe folgendes Problem bei der Benutzung von renderpixmap unter Verwendung von vertex buffer objects.
Die Applikation stürzt beim rendern der pixmap beim aufruf von glDrawElements mit einer Zugriffsverletzung ab.
Das Zeichnen der Szene erfolgt mit folgendem code:

Code: Alles auswählen

glEnableClientState( GL_VERTEX_ARRAY );	
	glEnableClientState( GL_NORMAL_ARRAY);
	glEnableClientState( GL_COLOR_ARRAY );
	glBindBuffer(GL_ARRAY_BUFFER, m_VBO );
	// Specify the vertex and color attributes
	glVertexPointer( 3, GL_FLOAT, sizeof(Vertex3), (void*)NULL);
	glColorPointer( 3, GL_UNSIGNED_BYTE, sizeof(Vertex3), BUFFER_OFFSET( 5*sizeof(GLfloat) ));
glNormalPointer(GL_FLOAT,sizeof(Vertex3),BUFFER_OFFSET(5*sizeof(GLfloat)+4*sizeof(GLubyte)));
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_IBO);
	glDrawElements( GL_TRIANGLES, 3*m_numberOfTriangles, GL_UNSIGNED_INT, NULL);
	glDisableClientState( GL_COLOR_ARRAY );
	glDisableClientState( GL_NORMAL_ARRAY );
	glDisableClientState( GL_VERTEX_ARRAY );
Alle verwendeten arrays sind korrekt erstellt und haben die korrekte größe. Das Zeichnen funktioniert ja auch, wenn nicht in die pixmap gerendert wird.

Hat jemand eine Idee, was ich falsch mache?
Alle initialisierungen werden in initializeGL() gemacht, gelGetError() gibt bis zur Ausführung von glDrawElements stets GL_NO_ERROR zurück...

Gruß,
Daniel.
Antworten