具有多个设备(监视器)的 OpenGL 上下文
Posted
技术标签:
【中文标题】具有多个设备(监视器)的 OpenGL 上下文【英文标题】:OpenGL Context with Multiple Devices (Monitors) 【发布时间】:2017-08-18 23:55:33 【问题描述】:在 OpenGL 中,当我创建一个窗口时,我会隐式地创建一个带有 GLUT 之类的图形上下文。假设我将我的窗口拖到由不同显卡驱动的显示器中(例如,一个是英特尔嵌入式显卡,另一个是 NVidia)。 谁渲染了窗口?对于以下每种情况,哪个设备运行图形管道。
即使我将窗口完全拖入一个窗口或另一个窗口,glGetString(GL_RENDERER)
似乎总是返回主显示(创建 GLUT 窗口的位置)。 (我猜这一切都由初级完成......)有人可以帮我理解这个吗?
注意,使用 Windows 10、GLUT、OpenGL,但如果重要,我一般会问这些问题。
【问题讨论】:
您是在说 Nvidia 的 Optimus不 生效的一般情况吗? 相关here 【参考方案1】:GL 对窗口一无所知,只知道上下文。 GL 渲染到当前上下文中的帧缓冲区。
您可以编写一种向操作系统询问窗口在哪里的方法,并使用两个上下文,并根据操作系统的回答将正确的上下文设置为当前。
【讨论】:
是的,我假设每个窗口都有一个上下文或者有一个全局上下文(GLUT)。让我感到困惑的是,每个窗口可能有不同的分辨率等......所以任何图形上下文都必须能够在任何监视器(设备)上绘制。对吗? 您在显示设备上创建上下文。它的驱动程序在幕后管理演示。以上是关于具有多个设备(监视器)的 OpenGL 上下文的主要内容,如果未能解决你的问题,请参考以下文章
具有多个从设备上下文的 pymodbus Modbus 服务器实现 - 写入寄存器会覆盖所有从设备
使用 ubuntu 在不同的显示器上共享 opengl 上下文