Pre-release
v3.0.0-alpha.1
10/5/2025
下载
如果打开文件时显示“应用已损坏”,请右键点击dmg文件,然后选择“打开”
这次更新是一次彻底的底层重构,旨在用一个成熟的渲染库(Pixi.js)替换掉旧的自定义实现,以期获得更好的性能和可维护性。因此,几乎所有与渲染、用户交互、舞台对象管理相关的旧代码和 API 都已失效或被替换。任何基于旧版本进行开发的功能都需要根据新的架构进行完全重写。
[!WARNING]
此版本用于体验新渲染引擎,功能非常不完善,且不能加载旧版本的项目文件。请谨慎使用。
💥 破坏性变更 (部分)
从 Canvas 2D 迁移到 Pixi.js 渲染引擎
这是最核心的破坏性变更。整个项目已经从一个基于原生 Canvas 2D API 的自定义渲染引擎迁移到了使用 Pixi.js 库。
- 大量代码删除: 整个
app/src/core/render/
目录被删除,包括Renderer
,Canvas
等服务。 - 引入新依赖: 引入了
pixi.js
及其生态,如@pixi/viewport
,@pixi/layout
等。
任何依赖于旧渲染器的代码都将完全失效。
Project
类接口变更
- 不允许动态加载服务:
Project
实例将不允许在运行时动态加载服务,所有服务必须在调用project.init()
时一次性传入。 - 移除主循环控制方法:
project.loop()
,project.pause()
,project.tick()
等方法被移除,主循环现在由 Pixi.js 管理。
舞台对象继承体系重构
得益于 Pixi.js 强大的 Scene Objects 体系,StageObject
现在直接继承自 @pixi/layout
中的 LayoutContainer
类,由 Pixi.js 负责布局、渲染、交互等。
- 舞台对象选中时的边框高亮效果现在由
StageObject
统一渲染。 - 实体的移动逻辑现在由
Entity
统一实现。
设置项变更
移除的设置项:
ID | 原因 |
---|---|
cacheTextAsBitmap | Pixi.js 的文本是位图渲染,且自带缓存逻辑 |
textCacheSize | 同上 |
textScalingBehavior | 同上 |
antialiasing | 对性能影响不大,且 Pixi.js 默认开启抗锯齿 |
compatibilityMode | Pixi.js 强制使用 requestAnimationFrame 循环 |
新增的设置项:
ID | 说明 |
---|---|
powerPerference | 性能偏好设置,影响 WebGL 上下文的创建 |
textResolution | 文本渲染质量,越大越清晰,但性能越差 |
maxFps | 最大帧率 |
minFps | 最小帧率,注意此功能并非超频 |
以下为详细更新日志
新功能
- 初步支持使用Pixi.js进行渲染,带来更流畅的视觉体验。
- 支持渲染文本节点,让您可以在画布上添加和编辑文本。
- 添加文本节点交互,可以更方便地与文本进行互动。
- 支持双击画布创建新节点,操作更加便捷。
- 添加FPS(帧率)设置,您可以根据需要调整画面流畅度。
- 在光标位置显示世界坐标,方便您进行精确的定位。
- 添加性能测试工具,帮助您了解软件的运行状况。
- 支持编辑文本节点,可以随时修改文本内容。
- 支持框选功能,让您可以通过框选的方式选择多个节点。
- 添加了LatexNode,支持Latex公式。
- 添加了右键菜单,可以更方便地进行操作。
- 支持将文本节点转换为Latex节点。
- LatexNode支持改色,可以自定义Latex公式的颜色。
- 支持编辑SVG节点和Latex节点,可以对SVG和Latex节点进行修改。
- 支持缩放SvgNode,可以调整SVG节点的大小。
- 支持节点间的连线,可以连接不同的节点。
问题修复
- 修复了框选时不会取消选择没有框选到的节点的问题。
- 修复了移动文本节点会触发框选的问题。
文档和内容更新
- 修改了文档首页,使其更加清晰易懂。
- 完善了文档首页的功能对比表格,方便您了解软件的功能。
改进和优化
- 将移动节点逻辑移动到Entity类,提高代码的组织性和可维护性。
- 提取出TextureNode,方便后续扩展和维护。