IDXGIOutputDuplication 接口 (dxgi1_2.h)
IDXGIOutputDuplication 接口访问和操作重复的桌面映像。
继承
IDXGIOutputDuplication 接口继承自 IDXGIObject。 IDXGIOutputDuplication 还具有以下类型的成员:
方法
IDXGIOutputDuplication 接口包含以下方法。
IDXGIOutputDuplication::AcquireNextFrame 指示应用程序已准备好处理下一个桌面映像。 |
IDXGIOutputDuplication::GetDesc 检索重复输出的说明。 此说明指定包含桌面图像的图面的尺寸。 |
IDXGIOutputDuplication::GetFrameDirtyRects 获取有关当前桌面框架脏矩形的信息。 |
IDXGIOutputDuplication::GetFrameMoveRects 获取有关当前桌面框架的移动矩形的信息。 |
IDXGIOutputDuplication::GetFramePointerShape 获取有关当前桌面框架的新指针形状的信息。 |
IDXGIOutputDuplication::MapDesktopSurface 如果桌面映像已在系统内存中,则为 CPU 提供对桌面映像的有效访问。 |
IDXGIOutputDuplication::ReleaseFrame 指示应用程序已完成处理帧。 |
IDXGIOutputDuplication::UnMapDesktopSurface 使指向使用 IDXGIOutputDuplication::MapDesktopSurface 检索到的桌面图像的指针失效。 |
备注
协作应用程序可以使用 IDXGIOutputDuplication 访问桌面映像。 在非 8bpp DirectX 全屏模式和非 8bpp OpenGL 全屏模式下,桌面窗口管理器 (DWM) 支持 IDXGIOutputDuplication。 不支持 16 位或 32 位 GDI 非 DWM 桌面模式。
应用程序可以在单独的线程上使用 IDXGIOutputDuplication 来接收桌面映像并将它们馈送到其特定的图像处理管道中。 应用程序使用 IDXGIOutputDuplication 执行以下操作:
- 获取下一个桌面映像。
- 检索描述图像的信息。
- 对映像执行操作。 此操作可以像将图像复制到暂存缓冲区一样简单,以便应用程序可以读取图像上的像素数据。 应用程序在调用 IDXGISurface::Map 后读取像素数据。 或者,此操作可能更复杂。 例如,应用程序可以在图像的更新区域上运行一些像素着色器,以便对这些区域进行编码,以便传输到客户端。
- 应用程序处理完每个桌面映像后,会释放映像,循环到步骤 1,然后重复这些步骤。 应用程序将重复这些步骤,直到完成桌面图像的处理。
- 通过组合桌面映像的 DWM
- 全屏 DirectX 或 OpenGL 应用程序
- 通过切换到单独的桌面的应用程序,例如用于显示登录屏幕的安全桌面
IDXGIOutputDuplication 变为无效的情况的示例包括:
- 桌面交换机
- 模式更改
- 从 DWM 打开、DWM 关闭或其他全屏应用程序切换
当应用程序处理每个桌面映像时,操作系统会将所有桌面映像更新累积到单个更新中。 有关桌面更新的详细信息,请参阅 更新桌面映像数据。
桌面映像始终采用 DXGI_FORMAT_B8G8R8A8_UNORM 格式。
对于 Windows 应用商店应用, IDXGIOutputDuplication 接口不存在。
要求
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | dxgi1_2.h |