我有一个应用程序,我希望有3个监视器,其中两个有独立的视频流,第三个是另外两个的可切换克隆。基本上,"扩展桌面"在监视器1和2上,然后是一个"条件克隆"在显示器3上。
我的问题是,虽然AMD和NVidia分别支持Eyefinity和Mosaic,但我的应用程序需要在Intel Integrated Graphics上运行,而Intel Integrated Graphics对我所描述的内容没有驱动程序或硬件级支持。
那么,是否有一些内置于DirectX或其他Windows绘图库中的功能,可以让我捕获一个屏幕,然后在另一台显示器上显示该屏幕?到目前为止,尝试直接复制后端缓冲区已被证明非常慢(延迟数秒,刷新速度极慢)。
答案 0 :(得分:0)
对于Windows 7/8,有desktop duplication API,它具有DuplicateOutput
功能。
MSDN描述了桌面复制API,如下所示:
Windows 8禁用标准Windows 2000显示驱动程序模型(XDDM) 镜像驱动程序,而是提供桌面复制API。该 桌面复制API提供对桌面映像的远程访问 协作方案。应用可以使用桌面复制API 访问桌面的逐帧更新。因为应用程序收到 在DXGI表面更新桌面图像,应用程序可以使用 GPU的全部功能来处理图像更新。
有一个示例实现on MSDN here。