【问题标题】:When does DXGI Desktop Duplication API identify a region as a moved region?DXGI Desktop Duplication API 何时将区域识别为移动区域?
【发布时间】:2016-09-23 09:02:01
【问题描述】:

我有一个使用 DXGI Desktop Duplication API 捕获桌面屏幕的程序。

我使用IDXGIOutputDuplication::AcquireNextFrame 获得帧,并且能够逐帧捕获我的桌面。

为了继续前进,我尝试优化我的程序并尝试管理 dirtymoved 矩形。 API同时提供IDXGIOutputDuplication::GetFrameDirtyRectsIDXGIOutputDuplication::GetFrameMoveRects来获取这些信息。

但是,似乎从来没有任何矩形被识别为被移动。文档说移动的矩形是:

操作系统显示的桌面图像中像素的矩形 移动到同一张图片中的另一个位置

这究竟是什么意思? DXGI 可以识别屏幕的任意部分已被移动吗?或者这仅适用于被移动的桌面窗口?

【问题讨论】:

    标签: c++ directx dxgi


    【解决方案1】:

    在我的测试中,所有更改的区域在 Windows 10 上都被识别为脏矩形。 在 Windows Server 2012(如 Windows 8)上,可以正确识别移动的区域。

    【讨论】:

    • FWIW 我能够在 VMWare 中托管并使用 VMWare SVGA 3D 显示适配器的 Windows Server 2012 R2 数据中心上获得移动矩形
    【解决方案2】:

    我只能想象它取决于图形驱动程序、监视器和诸如此类的东西,因此可能很难提供完整的源操作列表。

    我玩了一个桌面复制 api 的示例应用程序,当我最大化资源管理器窗口时出现了一个移动的矩形事件(windows 10 周年纪念日,Surface pro 3,没有外部屏幕)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      相关资源
      最近更新 更多