能否创建一个固定大小的glut窗口?

10

使用glut是否可以创建一个固定大小的窗口,以便窗口尺寸的任何更改都将被忽略。

对我来说,回到SDL或类似的东西已经有点太晚了。


1
“对我来说,现在回到SDL或类似的东西已经有点太晚了。” 我无法想象这会是一个重大问题。 GLUT用于窗口设置和管理;更换管理器只需要进行相当局部的更改。除非您依赖于GLUT特定的功能,例如sRGB帧缓冲区等。 - Nicol Bolas
2个回答

18

显然,合法方式无法实现,但你可以在glutReshapeFunc回调中使用glutReshapeWindow来在鼠标释放后立即调整窗口大小。这是相当有效的方法,并且据我所知是最好的解决方案。仅在freeglut中进行过测试:

glutReshapeFunc(resize);

void resize(int width, int height) {
    // we ignore the params and do:
    glutReshapeWindow( 800, 600);
}

哈哈,谢谢大家在我的 SO 上的第一篇也是唯一一篇帖子上投票支持。 - mouse

8
最终答案是否定的。当你检测到窗口大小发生变化时,最好可以调用glutReshapeWindow来强制设置其特定大小。但这也仅限于此。如果这样做,需要确保只有在新大小与所需大小不同时才调用glutReshapeWindow以防止无限循环。这不会阻止用户尝试调整大小,但可能会阻止他们成功地进行操作。
请记住:GLUT是为演示应用程序和简单测试床设计的。对于这样的应用程序,调整窗口大小的能力非常标准。

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