Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGl中的分辨率管理_Opengl_Screen Resolution - Fatal编程技术网

OpenGl中的分辨率管理

OpenGl中的分辨率管理,opengl,screen-resolution,Opengl,Screen Resolution,我使用OpenGl。我想创建一个菜单控件,但为此我需要一个恒定分辨率控件。我的意思是,我可以通过给出坐标来设置按钮的位置,坐标为1024x768。但是如果我的窗户不在里面呢。在全屏模式下,我还没有找到改变分辨率的方法,但是我可以得到它。因此,我得到了屏幕宽度/高度、窗口宽度/高度以及1024x768中矩形的4个坐标。我该怎么办?首先,OpenGL不控制屏幕的分辨率。您必须使用WGL、GLX、CGL、EGL等工具来处理特定于平台的细节。大多数人不需要直接与这些API接口,而是使用GLUT、GLFW

我使用OpenGl。我想创建一个菜单控件,但为此我需要一个恒定分辨率控件。我的意思是,我可以通过给出坐标来设置按钮的位置,坐标为1024x768。但是如果我的窗户不在里面呢。在全屏模式下,我还没有找到改变分辨率的方法,但是我可以得到它。因此,我得到了屏幕宽度/高度、窗口宽度/高度以及1024x768中矩形的4个坐标。我该怎么办?

首先,OpenGL不控制屏幕的分辨率。您必须使用WGL、GLX、CGL、EGL等工具来处理特定于平台的细节。大多数人不需要直接与这些API接口,而是使用GLUT、GLFW、SDL等工具来提高代码的可移植性。至于余下的问题,您可能希望对象空间坐标和窗口空间坐标与此相匹配,因此您应该考虑与窗口和身份模型视图矩阵具有相同维度的视口和正投影矩阵。我的Oraco <代码> GLOTHOO(0,SCRW,SCRH,0,-100, 100);代码>和我的透视图<代码>透视图(40,scrw/scrh,0.12000)矩阵,其中scrw是
GlutGet(GLUT\u屏幕\u宽度)
和类似的scrh。正如它所揭示的那样,我注意到我使用了过量。你只需要这两个调用中的一个。它们相乘并存储当前矩阵,因此如果你同时调用这两个矩阵,你将生成一个完全没有意义的投影矩阵。我还需要在2D和3D中渲染。菜单为2D,背景为3D。