焦点丢失时,全屏GLFW窗口消失

时间:2017-06-24 19:01:06

标签: c++ windows opengl glfw

我正在创建一个这样的OpenGL窗口:

auto mode = glfwGetVideoMode(monitor);
mWindowWidth = mode->width;
mWindowHeight = mode->height;

glfwWindowHint(GLFW_RED_BITS, mode->redBits);
glfwWindowHint(GLFW_GREEN_BITS, mode->greenBits);
glfwWindowHint(GLFW_BLUE_BITS, mode->blueBits);
glfwWindowHint(GLFW_REFRESH_RATE, mode->refreshRate);

mWindow = glfwCreateWindow(mWindowWidth, mWindowHeight, "Test", monitor, NULL);

除了一个主要缺陷外,这个工作正常: 当我关注另一个窗口时(即使它在另一个监视器上!)GLFW窗口在后台消失。

如何创建一个始终位于指定显示器顶部的(全屏)GLFW窗口?

2 个答案:

答案 0 :(得分:5)

似乎焦距损失的自动最小化由GLFW_AUTO_ICONIFY提示控制,默认情况下启用。

  

GLFW_AUTO_ICONIFY指定全屏窗口是否会在输入焦点丢失时自动图标化并恢复上一个视频模式。
  窗口模式窗口会忽略此提示。

可以通过以下方式禁用它:

glfwWindowHint(GLFW_AUTO_ICONIFY, 0);

答案 1 :(得分:5)

GLFW的文档可在此处http://www.glfw.org/docs/latest/window_guide.html#window_windowed_full_screen

获取

从上面的链接

部分:与窗口相关的提示

GLFW_AUTO_ICONIFY指定全屏窗口是否会在输入焦点丢失时自动图标化并恢复上一个视频模式。窗口模式窗口会忽略此提示。

默认值

GLFW_TRUE

接受的值

GLFW_TRUE or GLFW_FALSE

将其设为GLFW_FALSE

那是

glfwWindowHint(GLFW_AUTO_ICONFIY, GLFW_FALSE);

请注意,GLFW_TRUEGLFW_FALSE始终只是10