展开描述
包含与 DXGI Desktop Duplication API 相关的类型和函数。 DXGI Desktop Duplication API 封装层。
本模块提供 [DxgiDuplicationApi],用于使用 Windows DXGI Desktop Duplication API
捕获显示器。它与 crate::monitor::Monitor 集成以选择目标输出,
并通过 crate::frame::FrameBuffer 暴露 CPU 可读的帧。
§示例
use windows_capture::dxgi_duplication_api::DxgiDuplicationApi;
use windows_capture::encoder::ImageFormat;
use windows_capture::monitor::Monitor;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// 选择主显示器
let monitor = Monitor::primary()?;
// 为该显示器创建 duplication 会话
let mut dup = DxgiDuplicationApi::new(monitor)?;
// 尝试在约 33 毫秒内(约 30 FPS 预算)抓取一帧
let mut frame = dup.acquire_next_frame(33)?;
// 将 GPU 图像映射到 CPU 内存并保存为 PNG
let mut buffer = frame.buffer()?;
buffer.save_as_image("dup.png", ImageFormat::Png)?;
Ok(())
}结构体§
- Dxgi
Duplication Api - 用于捕获显示器的 DXGI Desktop Duplication API 的最小化、符合人体工程学的封装。
- Dxgi
Duplication Frame - 表示当前帧的预组装完整桌面图像,由内部 GPU 纹理支持。
调用
DxgiDuplicationFrame::buffer以获取 CPU 可读的crate::frame::FrameBuffer。 - Dxgi
Duplication Frame Buffer - 表示包含像素数据的帧缓冲区。
枚举§
- Dxgi
Duplication Format - duplication 支持的 DXGI 格式。
- Error
- 使用 DXGI Desktop Duplication API 封装时可能发生的错误。