鉴于glMatrixMode已被弃用,如何在opengl中编写resize函数?

鉴于glMatrixMode已被弃用,如何在opengl中编写resize函数?,opengl,glsl,Opengl,Glsl,鉴于glMatrixMode已被弃用,如何在opengl中编写resize函数 在我以前的resize函数中,我使用glMatrixMode(GL_投影)和glMatrixMode(GL_模型视图),但是 既然固定管道已被替换,我不确定resize函数应该是什么样子 在旧的调整大小函数中,我使用glMatrixMode(GL_投影)和glMatrixMode(GL_模型视图) 你一开始就不应该这么做 既然固定管道已被替换,我不确定resize函数应该是什么样子 就像固定函数管道一样:设置一些反映

鉴于glMatrixMode已被弃用,如何在opengl中编写resize函数

在我以前的resize函数中,我使用glMatrixMode(GL_投影)和glMatrixMode(GL_模型视图),但是 既然固定管道已被替换,我不确定resize函数应该是什么样子

在旧的调整大小函数中,我使用glMatrixMode(GL_投影)和glMatrixMode(GL_模型视图)

你一开始就不应该这么做

既然固定管道已被替换,我不确定resize函数应该是什么样子

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


在“显示”功能中,给定窗口的大小,可以确定视口的范围,并从中导出投影矩阵。固定函数OpenGL为您提供了函数glOrtho和glFrustum(GLU在其上构建了gluOrtho2D和gluPerspective)。现在,您可以在自己管理的矩阵变量中构建所需的矩阵,而不必处理矩阵状态(并且您可以保留,而无需在每次新的显示迭代中从头开始重新构建)。通过glUniformMatrix传递给OpenGL的矩阵变量。

是的,这只是一种设置两个矩阵的方法,但我仍然没有信心复制它,我可能会错过一些东西。