0

How to write resize function in opengl given that glMatrixMode is deprecated?

In my old resize function I use glMatrixMode(GL_PROJECTION) and glMatrixMode(GL_MODELVIEW), but now that the fixed pipeline is replaced, I am not sure how the resize function should look like?

4

1 回答 1

2

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

你一开始就不应该这样做。

现在固定管道已被替换,我不确定调整大小功能应该是什么样子?

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

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

于 2012-11-30T20:30:36.910 回答