如何在不同的监视器上同时显示四个窗口(全屏模式、OpenGL渲染)?
创建window1并渲染要共享到window2、window3、window4的纹理如何在不同的监视器上同时显示四个窗口(全屏模式、OpenGL渲染)?,opengl,glfw,Opengl,Glfw,创建window1并渲染要共享到window2、window3、window4的纹理 所有窗口都处于全屏模式 在不同的显示器上显示,如下图所示 需要同步(一个线程、四个opengl上下文、四个FBO、一个渲染纹理) 监视器1 监视器2 监视器3 监视器4 -------------- ------------ ----------- ----------- |窗口1| | 窗口2 | |窗口3 | |窗口4 | -------------- ------------
-------------- ------------ ----------- -----------
|窗口1| | 窗口2 | |窗口3 | |窗口4 |
-------------- ------------ ----------- -----------
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上显示一个窗口(窗口1)。如果我选择在监视器2上显示另一个窗口(窗口2),窗口1将隐藏。最简单的方法是在4个监视器上有一个窗口 然后,可以在单个上下文中使用4个视口在不同的监视器上渲染图像 这应该是有效的,除非您有多个图形适配器 这看起来像(未经测试):
最简单的方法是在4个监视器上设置一个窗口 然后,可以在单个上下文中使用4个视口在不同的监视器上渲染图像 这应该是有效的,除非您有多个图形适配器 这看起来像(未经测试):
我转而使用SDL<代码>m_window=SDL_CreateWindow(“window1”,0,0,3840,2160,SDL_window_OPENGL | SDL_window_无边框)代码>这将像我预期的那样工作。但我仍然不知道如何使用glfw。@我添加了一个未经测试的示例,最好您参考glfw全面的文档:它仍然只在一个监视器上呈现。我使用xrandr,就像它工作一样。很抱歉,我无法进一步帮您,因为我现在正在休假,如果您使用最新代码更新您的问题,并将其标记为未应答,有人可以从这里接收它?我转而使用SDL<代码>m_window=SDL_CreateWindow(“window1”,0,0,3840,2160,SDL_window_OPENGL | SDL_window_无边框)代码>这将像我预期的那样工作。但我仍然不知道如何使用glfw。@我添加了一个未经测试的示例,最好您参考glfw全面的文档:它仍然只在一个监视器上呈现。我使用xrandr,就像它工作一样。很抱歉,我无法进一步帮您,因为我现在正在休假,如果您使用最新代码更新您的问题,并将其标记为未答复,有人可以从这里接收吗?
glfwWindowHint(GLFW_DECORATED, 0);
GLFWwindow* w = glfwCreateWindow(3840, 2160, "window1", NULL, NULL);
glfwSetWindowPos(w, 0, 0);