禁止在OpenGL C ++中调整窗口大小

5

在使用C++创建OpenGL时,是否可能禁用窗口调整大小?我寻找这个功能是因为我正在尝试绘制一个图形,当调整窗口大小后,比例尺(或标题)中的字母位置会发生改变。


3
你好 tiggares - 你提出的问题在当前状态下无法回答。首先,请问你使用的是哪个Windows系统?你是在Windows上使用MFC,还是在Mac上使用NSWindow,或者你使用了像GLUT这样的库?窗口编程与OpenGL无关,因为OpenGL只是一个图形API。这实际上是一个关于Windows/Form的问题。请告诉我你正在使用哪个窗口系统。 - Freddy
我正在使用GLUT。很可能我已经通过glutFullScreen解决了我的问题。 - tiggares
很高兴听到这个消息。还有另一种选择,就是在窗口大小改变时使用glut中的回调函数。如果您不想强制用户进入全屏模式,您可以始终将该回调函数注册到glut中,并使其重置所需的窗口大小。祝好! - Freddy
1
不,这是不可能的。尽管听起来很奇怪,但OpenGL甚至不知道窗口是什么。它被特意设计成这样一种方式,以便OpenGL本身最接近“窗口”的东西就是与窗口相关联的帧缓冲区。您需要使用特定于平台的窗口API(例如WGL、GLX、CGL)来弥合差距。由于许多平台都有自己专有的窗口系统,因此创建了诸如GLUT和glfw之类的框架,完全隐藏了细节。 - Andon M. Coleman
可能是重复的问题:是否可以创建一个固定大小的glut窗口? - Ciro Santilli OurBigBook.com
1个回答

5

如果没有窗口API,OpenGL无法完成这项任务。使用GLUT,在重塑回调函数中可以调用glutReshapeWindow以在用户试图更改大小时重置大小。或者,如果您不需要窗口化,请通过glutFullScreen全屏显示以防止用户重新调整窗口大小。

据我所知,这是唯一可行的便携式方式。

希望这可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接