# rust-demo **Repository Path**: redfalsh/rust-demo ## Basic Information - **Project Name**: rust-demo - **Description**: No description available - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-16 - **Last Updated**: 2026-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # egui-demo 基于 Bevy 引擎 + egui 的 Rust GUI 演示程序,展示百万级矩形的实时渲染与多类型着色器填充效果。 ## 功能特性 - **百万矩形渲染** — 并行生成 100 万个随机位置、随机大小的矩形(20 批次 × 每批 5 万),通过 `rayon` 并行构建 mesh - **6 种填充样式** — 通过自定义 WGSL 着色器实现:纯色填充、透明、点阵、45° 斜线、135° 斜线、交叉斜线网格 - **实时切换** — 鼠标滚轮随机切换填充类型,触发生成新布局 - **egui GUI 界面** — 菜单栏(File/Edit/View/Help)、工具栏、侧边文件列表面板、搜索过滤、关于对话框 - **中文支持** — 自动检测并加载系统中文字体(Linux/Windows),确保中文界面正常显示 - **结构化日志** — 基于 `tracing` + `tracing-subscriber`,带时间戳和源码位置 ## 技术栈 | 组件 | 版本 | 用途 | |------|------|------| | Rust | edition 2024 | 语言 | | Bevy | 0.18 | 游戏引擎 / ECS 框架 | | bevy_egui | 0.39 | egui 集成,即时模式 GUI | | rayon | 1.10 | 并行数据处理 | | rand | 0.8 | 随机数生成 | | tracing | 0.1 | 结构化日志 | ## 项目结构 ``` rust-demo/ ├── src/ │ ├── main.rs # 应用入口、UI 系统、矩形生成与重生成 │ ├── hatch_material.rs # 自定义 HatchMaterial 插件(6 种填充类型) │ └── hatch.wgsl # WGSL 着色器(填充图案渲染) ├── data/ │ └── geo/ # SPIR-V 着色器文件(多种几何体渲染管线) ├── docs/ # 文档 ├── Cargo.toml # 项目配置与依赖 ├── AGENTS.md # AI Agent 协作指南 ├── LICENSE # MIT 许可证 └── README.md # 本文件 ``` ## 快速开始 ### 环境要求 - Rust 稳定版工具链(推荐通过 [rustup](https://rustup.rs/) 安装) - 系统中文字体(可选,用于正确显示中文界面) ### 构建与运行 ```bash # 克隆仓库 git clone cd rust-demo # 编译(Debug 模式) cargo build # 运行 cargo run # 或直接以 Release 模式编译运行(性能更佳) cargo run --release ``` ### 代码检查 ```bash # 格式化 cargo fmt # Clippy 静态检查 cargo clippy -- -D warnings ``` ## 使用说明 1. 启动后,窗口中央区域显示随机生成的矩形填充图案 2. **鼠标滚轮** — 随机切换填充类型,自动重新生成所有矩形 3. 左侧「文件列表」面板展示模拟的项目文件结构,支持搜索过滤 4. 顶部菜单栏提供 File / Edit / View / Help 菜单 5. 菜单栏下方的工具栏提供搜索框和快捷按钮 ### 填充类型一览 | 类型 | 说明 | |------|------| | 纯色填充 (Solid) | 使用线条颜色完全填充矩形 | | 无填充 (None) | 完全透明 | | 点阵 (DotGrid) | 规则点阵图案 | | 左斜线 (Line45) | 45° 方向斜线 | | 右斜线 (Line135) | 135° 方向斜线 | | 交叉斜线 (CrossHatch) | 45° + 135° 交叉网格 | ## 许可证 本项目采用 [MIT License](LICENSE)。