2010-06-09 7 views
6

Ich schreibe ein OpenGL-Programm, wo ich meine eigenen Matrizen berechne und sie an Shader übergebe. Ich möchte Boosts uBLAS-Bibliothek für die Matrizen verwenden, aber ich habe wenig Ahnung, wie man eine uBLAS-Matrix in OpenGLs Shader-Uniform-Funktionen bringt.Übergeben von Boost-uBLAS-Matrizen an den OpenGL-Shader

matrix<GLfloat, column_major> projection(4, 4); 
// Fill matrix 
... 

GLuint projectionU = glGetUniformLocation(shaderProgram, "projection"); 
glUniformMatrix4fv(projectionU, 1, 0, (GLfloat *)... Um ...); 

Der Versuch, die Matrix auf einen GLfloat-Zeiger zu übertragen, verursacht beim Kompilieren einen ungültigen Umwandlungsfehler.

Antwort

7

Das sollte es tun:

glUniformMatrix4fv(projectionU, 1, GL_FALSE, &projection.data()[0]); 
Verwandte Themen