2008-09-22 39 views
10

Làm cách nào để nhận kích thước hiện tại của ngăn xếp ma trận (GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE) trong OpenGL?Làm cách nào để có kích thước hiện tại của ngăn xếp ma trận trong OpenGL?

Tôi muốn điều này để tôi có thể thực hiện một số kiểm tra lỗi để đảm bảo rằng trong một số phần nhất định của mã tôi có thể kiểm tra xem các ngăn xếp ma trận đã được để trong điều kiện gốc hay chưa.

Trả lời

14

Hãy thử:

GLint depth; 
    glGetIntegerv (GL_MODELVIEW_STACK_DEPTH, &depth); 

Các enums cho ngăn xếp khác là:

GL_MODELVIEW_STACK_DEPTH  
    GL_PROJECTION_STACK_DEPTH  
    GL_TEXTURE_STACK_DEPTH   

Nếu bạn sử dụng đa texturing, bạn có nhiều hơn một ma trận kết cấu ngăn xếp để truy vấn. Để làm như vậy, hãy đặt đơn vị kết cấu hiện tại qua glActiveTexture();.

Các vấn đề liên quan