PezMax One

拼图满绩 · 高性能试卷资源管理桌面客户端
Rust + egui 构建的 Metro Design 原生应用,适配桌面端三平台。
pdfium 工业级 PDF 渲染 · Sokuou Engine 平滑动画 · 原生性能
Rust egui pdfium Sokuou Windows macOS Linux MIT

核心功能

PDF 预览

基于 pdfium 的工业级 PDF 渲染引擎,网格/连续滚动双模式,缩放平滑过渡。

资源浏览

多级文件树 + 搜索,支持按学科/学校/年级筛选。

书签与收藏

自定义书签分组,支持封面图上传;试卷收藏与分类管理。

下载管理

下载记录追踪,静默下载模式。

用户系统

注册/登录、密码找回、个人资料、头像上传。

社区功能

用户排行榜、试卷贡献、举报系统、通知推送、统计看板。

技术亮点

Sokuou Engine 动画

自研动画引擎——SpringAnim(弹簧物理)、Progress(缓动插值)、MetroAnim(UWP 风格)。所有 UI 过渡均由 Sokuou 驱动,动画不是播放,而是空间状态的连续解析。

Metro Design 主题系统

5 套强调色预设,亮/暗主题切换带平滑过渡动画,支持运行时动态切换。

异步数据加载

AsyncData 模式封装 tokio oneshot 通道,页面骨架屏 + 加载态 + 错误态覆盖所有数据流。

PDF 渲染管线

后台 tokio 任务渲染,RGBA 纹理磁盘缓存,最多 3 并发渲染,缩放自适应。

// SpringAnim — 弹性物理动画(侧边栏 48↔200px)
pub sidebar_anim: SpringAnim,  // 0.0=折叠 / 1.0=展开
self.sidebar_anim.set_target(1.0);

// 每帧更新
let dt = ctx.input(|i| i.stable_dt) as f64;
self.sidebar_anim.update(dt);
if !self.sidebar_anim.is_steady() { ctx.request_repaint(); }

// 渲染时只读
let width = map_range(self.sidebar_anim.value(), 54.0, 200.0);

项目渊源

基于 PezMax-Desktop 的原理自发制作,两者并非替代或迭代关系,而是各具特色的共存方案。

原版采用现代毛玻璃风格;PezMax One 选用 Metro Design 平面设计语言,追求原生性能的同时,也是 Sokuou Engine 早期型的试验程序之一。