在OpenGL中更改焦点时Windows闪烁
Posted
技术标签:
【中文标题】在OpenGL中更改焦点时Windows闪烁【英文标题】:WIndows Flickering when changing focus in OpenGL 【发布时间】:2018-04-05 19:47:41 【问题描述】:我正在做一个项目,该项目需要我在两个窗口之间切换,一个使用 OpenCV,一个使用 OpenGL,都是全屏的。
GLFW 键事件可以正常打开 OpenCV 窗口,但关闭 OpenCV 窗口并尝试将焦点返回到 OpenGL 窗口会导致窗口闪烁并反复尝试提供焦点。这是我在 while 循环内将焦点返回到 OpenGL 窗口的代码。
编辑:我发现它只发生在 OpenGL 窗口全屏时,这是该程序的要求。写入控制台显示代码被多次调用
if(!glfwGetWindowAttrib(window, GLFW_FOCUSED))
glfwFocusWindow(window);
while(!glfwGetWindowAttrib(window, GLFW_FOCUSED))
【问题讨论】:
【参考方案1】:我设法通过在我的 openGL 窗口上将 GLFW 标志 GLFW_AUTO_ICONIFY 设置为 false 来解决我的问题。
【讨论】:
【参考方案2】:您发布的方式不是设置焦点的正确方式。
使用glfwSetWindowCloseCallback
设置关闭回调。
在该回调中,您可以将焦点设置到另一个窗口。
【讨论】:
感谢您的意见,尽管正在关闭的窗口是一个 OpenCV 窗口并且无权访问 GLFW 回调,除非我误解了您的回复。以上是关于在OpenGL中更改焦点时Windows闪烁的主要内容,如果未能解决你的问题,请参考以下文章