如何在不同的显示器上同时显示四个窗口(全屏模式,OpenGL渲染)?

时间:2019-05-08 09:49:51

标签: opengl glfw

  1. 创建window1并渲染要共享给window2,window3,window4的纹理
  2. 所有窗口均处于全屏模式。
  3. 在不同的显示器上显示,如下图所示。
  4. 需要同步(一个线程,四个opengl上下文,四个FBO,一个渲染纹理)

    监视器1监视器2监视器3监视器4
    -------------- ------------ ----------- -----------
    | window1 | | window2 | | window3 | | window4 |
    -------------- ------------ ----------- -----------

我尝试使用glfw示例sharing.c并像这样创建window1

int count;
GLFWmonitor** monitors = glfwGetMonitors(&count);
printf("Monitor count: %d\n", count);           

// Open a window and create its OpenGL context
window1 = glfwCreateWindow( g_dispWidth, g_dispHeight, "circle mask", monitors[0], NULL);

这将在监视器[0]上显示全屏窗口,但是当我使用两个窗口时,我只能在监视器1上显示一个窗口(window1)。如果我选择在Monitor2上显示另一个窗口(window2),则window1将隐藏。

1 个答案:

答案 0 :(得分:0)

最简单的方法是在4个显示器上跨一个窗口。

然后可以在单个上下文中使用4个视口在不同的监视器上渲染图像。

除非您有多个图形适配器,否则这应该很有效。

相关问题