窗口重叠后GLUT窗口不刷新

Posted

技术标签:

【中文标题】窗口重叠后GLUT窗口不刷新【英文标题】:GLUT Window not refreshing after window overlap 【发布时间】:2015-03-19 22:38:57 【问题描述】:

我正在用 C 语言开发一个带有 GLUT 的应用程序。 我有一个基本的 GLUT 画布,可以在其中绘制 OpenGL 的东西。

当其他 X11 窗口与 GLUT 画布重叠然后被删除时,我遇到了问题。 GLUT画布被重叠窗口的内容污染,没有刷新。

当透明窗口被移除时,我怎样才能设法刷新 GLUT 画布?我应该使用系统调用或类似的东西来检测这种情况,以便我可以触发 glutSwapBuffers()

【问题讨论】:

【参考方案1】:

注册一个显示回调并从那里进行所有绘图。每当窗口需要刷新时,GLUT 都会调用显示回调。实际上,除了显示回调之外,您不应该从其他任何地方进行绘制。

【讨论】:

感谢 datenwolf 的回答,我没有在显示回调中绘制东西,这就是我遇到这个问题的原因。

以上是关于窗口重叠后GLUT窗口不刷新的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 数据框中查找不重叠的窗口

OpenGL的GLUT注册回调函数[转]

计算重叠窗口的最小值

基于索引的非重叠滑动窗口

C++ Win32 窗口重叠事件

Qt/win:无框窗口上的 showMaximized() 重叠任务栏