如果不推荐使用glMatrixMode,如何在opengl中编写resize函数?

时间:2012-11-30 20:14:41

标签: opengl glsl

如果不推荐使用glMatrixMode,如何在opengl中编写resize函数?

在我的旧调整大小函数中,我使用glMatrixMode(GL_PROJECTION)和glMatrixMode(GL_MODELVIEW),但是 既然已经更换了固定管道,我不确定调整大小函数应该是什么样的?

1 个答案:

答案 0 :(得分:2)

  

在我的旧调整大小功能中,我使用glMatrixMode(GL_PROJECTION)和glMatrixMode(GL_MODELVIEW)

你应该从来没有这样做过。

  

既然更换了固定管道,我不确定调整大小的功能应该是什么样的?

就像应该使用固定功能管道一样:设置一些反映新窗口大小的变量并触发重绘。 不要在事件处理程序中调用任何OpenGL函数!

在显示功能中,给定窗口的大小,您可以确定视口的范围,并从中导出投影矩阵。固定功能OpenGL为您提供了函数glOrtho和glFrustum(GLU在其上构建了gluOrtho2D和gluPerspective)。现在,您可以在矩阵变量管理(而不是在每次新的显示迭代中从头开始重建它),而不是弄乱矩阵状态。您使用glUniformMatrix传递给OpenGL的矩阵变量。