跳转到主要内容

Module dxgi_duplication_api

搜索

Module dxgi_duplication_api 

源码
展开描述

包含与 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(())
}

结构体§

DxgiDuplicationApi
用于捕获显示器的 DXGI Desktop Duplication API 的最小化、符合人体工程学的封装。
DxgiDuplicationFrame
表示当前帧的预组装完整桌面图像,由内部 GPU 纹理支持。 调用 DxgiDuplicationFrame::buffer 以获取 CPU 可读的 crate::frame::FrameBuffer
DxgiDuplicationFrameBuffer
表示包含像素数据的帧缓冲区。

枚举§

DxgiDuplicationFormat
duplication 支持的 DXGI 格式。
Error
使用 DXGI Desktop Duplication API 封装时可能发生的错误。