2010-06-09 61 views
6

Tôi đang viết chương trình OpenGL nơi tôi tính toán các ma trận của riêng mình và chuyển chúng vào trình đổ bóng. Tôi muốn sử dụng thư viện uBLAS của Boost cho ma trận, nhưng tôi có ít ý tưởng làm thế nào để có được ma trận uBLAS vào các chức năng đồng bộ của shader OpenGL.Vượt qua các ma trận tăng cường uBLAS tới trình đổ bóng OpenGL

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

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

Cố gắng truyền ma trận tới con trỏ GLfloat gây ra lỗi truyền không hợp lệ khi biên dịch.

Trả lời

7

Điều đó nên làm điều đó:

glUniformMatrix4fv(projectionU, 1, GL_FALSE, &projection.data()[0]); 
Các vấn đề liên quan