2010-06-09 10 views
6

Sto scrivendo un programma OpenGL dove calcolo le mie matrici e le passo a shader. Voglio usare la libreria uBLAS di Boost per le matrici, ma non ho idea di come ottenere una matrice uBLAS nelle funzioni di ombreggiatura uniforme di OpenGL.Passaggio Boost matrici uBLAS a shader OpenGL

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

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

Cercando di lanciare la matrice a un puntatore GLfloat causa un errore getto invalido compilazione.

risposta

7

che dovrebbe farlo:

glUniformMatrix4fv(projectionU, 1, GL_FALSE, &projection.data()[0]); 
Problemi correlati