【问题标题】:WIndows Flickering when changing focus in OpenGL在OpenGL中更改焦点时Windows闪烁
【发布时间】: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))
    {
    }
}

【问题讨论】:

    标签: c++ opencv ubuntu opengl glfw


    【解决方案1】:

    我设法通过在我的 openGL 窗口上将 GLFW 标志 GLFW_AUTO_ICONIFY 设置为 false 来解决我的问题。

    【讨论】:

      【解决方案2】:

      您发布的方式不是设置焦点的正确方式。

      使用glfwSetWindowCloseCallback 设置关闭回调。
      在该回调中,您可以将焦点设置到另一个窗口。

      【讨论】:

      • 感谢您的意见,尽管正在关闭的窗口是一个 OpenCV 窗口并且无权访问 GLFW 回调,除非我误解了您的回复。
      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多