我正在创建一个这样的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窗口?
答案 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_TRUE
和GLFW_FALSE
始终只是1
和0
。