增加扩展屏的框架

This commit is contained in:
huanglinhuan
2025-12-22 13:48:06 +08:00
parent 1bf30d3c4c
commit 065251f727
13 changed files with 834 additions and 28 deletions

View File

@@ -57,11 +57,6 @@ DisplayFlow 旨在实现高性能的 Windows 主机到 Android 客户端的低
### 3.2 扩展屏投射 (Extended Display)
**目标**: 将 Windows 扩展屏(而非主屏)投射到 Android或将 Android 作为 Windows 的无线副屏。
#### 场景 A: 投射物理扩展屏
* **原理**: 遍历 `IDXGIAdapter``IDXGIOutput`
* **实现**: 修改 `ScreenCapture` 初始化逻辑,允许用户选择捕获哪个 `Monitor ID`
* **复杂度**: 低。仅需增加枚举和选择逻辑。
#### 场景 B: 虚拟无线副屏 (Virtual Display)
* **目标**: Windows 未连接物理显示器时,创建一个虚拟屏幕投射给 Android。
* **原理**: 开发 **Indirect Display Driver (IDD)**
@@ -71,6 +66,19 @@ DisplayFlow 旨在实现高性能的 Windows 主机到 Android 客户端的低
* **复杂度**: 高。涉及驱动开发 (UMDF)、驱动签名 (WHQL/EV证书) 和安装包制作。
* **替代方案 (Demo阶段)**: 使用 HDMI 显卡诱骗器 (硬件) 模拟物理屏幕,配合场景 A 的软件逻辑。
#### 虚拟无线副屏 (Virtual Display) - [开发进度]
* **当前状态**: 软件框架已验证 (Software Simulation Verified)。
* **IPC 机制**: 使用共享内存 (`Local\DisplayFlowIddFrame`) 和事件 (`Local\DisplayFlowIddReady`) 在生产者(驱动)和消费者(发送端)之间传输帧。
* **模拟模式**: `WindowsSender` 实现了 `--idd-producer` 模式,通过捕获物理屏幕模拟驱动行为,验证了 IDD 管道的连通性。
* **运行模拟**:
```bash
# 启动发送端 (Consumer) 和 模拟生产者 (Producer)
WindowsSender.exe <IP> <Port> --source=idd --idd-producer
```
* **下一步**: 将 `IddProducer` 类移植到 Microsoft Indirect Display Driver (UMDF) 示例中,替换示例驱动的 SwapChain 处理逻辑,从而实现真正的无物理屏幕虚拟显示。
### 3.3 双向文件传输 (File Transfer)
**目标**: 实现 Windows 与 Android 之间的文件互传。