通过软件(不是硬件或驱动程序)在Windows中克隆监视器

时间:2014-04-18 18:02:44

标签: .net directx multiple-monitors

我有一个应用程序,我希望有3个监视器,其中两个有独立的视频流,第三个是另外两个的可切换克隆。基本上,"扩展桌面"在监视器1和2上,然后是一个"条件克隆"在显示器3上。

我的问题是,虽然AMD和NVidia分别支持Eyefinity和Mosaic,但我的应用程序需要在Intel Integrated Graphics上运行,而Intel Integrated Graphics对我所描述的内容没有驱动程序或硬件级支持。

那么,是否有一些内置于DirectX或其他Windows绘图库中的功能,可以让我捕获一个屏幕,然后在另一台显示器上显示该屏幕?到目前为止,尝试直接复制后端缓冲区已被证明非常慢(延迟数秒,刷新速度极慢)。

1 个答案:

答案 0 :(得分:0)

对于Windows 7/8,有desktop duplication API,它具有DuplicateOutput功能。

MSDN描述了桌面复制API,如下所示:

  

Windows 8禁用标准Windows 2000显示驱动程序模型(XDDM)   镜像驱动程序,而是提供桌面复制API。该   桌面复制API提供对桌面映像的远程访问   协作方案。应用可以使用桌面复制API   访问桌面的逐帧更新。因为应用程序收到   在DXGI表面更新桌面图像,应用程序可以使用   GPU的全部功能来处理图像更新。

有一个示例实现on MSDN here