# rgpui-windows

RGPUI 框架的 Windows 平台后端实现，使用 DirectX 渲染、DirectWrite 文本渲染和 Win32 API 进行窗口管理。

## 概述

`rgpui_windows` 为 RGPUI 提供 Windows 系统上的完整平台抽象层，包括窗口管理、输入处理、DirectX 硬件加速渲染、DirectWrite 字体渲染以及系统级集成（剪贴板、文件对话框等）。

## 功能特性

### DirectX 渲染

- 基于 DirectX 11 的硬件加速 2D 渲染
- 使用 Direct2D 进行图形绘制和合成
- 支持 GPU 加速的纹理上传和渲染
- 高效的帧缓冲管理和交换链配置

### DirectWrite 文本渲染

- 高质量的 ClearType 字体渲染
- 支持 OpenType 字体特性
- 字体回退（font fallback）机制
- 文本布局和排版支持

### Win32 API 集成

- 原生窗口创建和管理
- 完整的输入事件处理（鼠标、键盘、触控）
- DPI 感知和高 DPI 缩放支持
- 系统托盘和通知集成

### 其他功能

- **剪贴板**：支持文本和图像数据的复制粘贴
- **文件对话框**：使用 Windows 通用文件对话框
- **屏幕捕获**：可选的屏幕录制和截图支持（通过 `scap` crate）
- **注册表访问**：通过 `windows-registry` 读取系统配置
- **原始窗口句柄**：支持 `raw-window-handle` 0.6 协议

## 系统要求

### 编译依赖

- Rust 工具链（最新稳定版）
- MSVC 或 MinGW 工具链
- Windows SDK

### 运行时依赖

- Windows 10 或更高版本
- DirectX 11 兼容的 GPU 驱动

## 特性标志

| 特性 | 描述 |
|------|------|
| `screen-capture` | 启用屏幕捕获支持（依赖 `scap`） |
| `test-support` | 启用测试支持工具 |

## 架构

```
rgpui-windows/
├── src/
│   ├── rgpui_windows.rs      # 入口点
│   └── windows/
│       ├── platform.rs      # WindowsPlatform 实现
│       ├── window.rs        # 窗口管理
│       ├── renderer.rs      # DirectX 渲染器
│       ├── text_system.rs   # DirectWrite 文本系统
│       ├── input.rs         # 输入事件处理
│       └── clipboard.rs     # 剪贴板实现
```

## 使用示例

```rust
use rgpui_windows::WindowsPlatform;

// 创建 Windows 平台实例
let platform = WindowsPlatform::new();

// 平台会自动初始化 DirectX 渲染器和 DirectWrite 文本系统
// 并通过 Win32 API 管理窗口和输入事件
```

## 依赖关系

- `rgpui` — RGPUI 核心框架
- `windows` / `windows-core` — Windows API 绑定
- `windows-numerics` — Windows 数值计算库
- `raw-window-handle` — 跨平台窗口句柄抽象
- `etagere` — 2D 矩形分配器（用于纹理图集管理）
- `image` — 图像处理
- `scap`（可选）— 屏幕捕获库
