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 通用文件对话框
- 屏幕捕获:可选的屏幕录制和截图支持(通过
scapcrate) - 注册表访问:通过
windows-registry读取系统配置 - 原始窗口句柄:支持
raw-window-handle0.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 # 剪贴板实现
使用示例
use WindowsPlatform;
// 创建 Windows 平台实例
let platform = new;
// 平台会自动初始化 DirectX 渲染器和 DirectWrite 文本系统
// 并通过 Win32 API 管理窗口和输入事件
依赖关系
rgpui— RGPUI 核心框架windows/windows-core— Windows API 绑定windows-numerics— Windows 数值计算库raw-window-handle— 跨平台窗口句柄抽象etagere— 2D 矩形分配器(用于纹理图集管理)image— 图像处理scap(可选)— 屏幕捕获库