15 个版本
0.3.3 | 2023 年 8 月 11 日 |
---|---|
0.3.2 | 2023 年 6 月 30 日 |
0.2.3 | 2022 年 12 月 17 日 |
0.2.2 | 2022 年 11 月 26 日 |
0.1.1 | 2022 年 4 月 17 日 |
#1083 在 解析器实现 中
26 每月下载
在 3 个 crate 中使用 (通过 acrylic)
52KB
1K SLoC
Railway
Railway 是矢量动画图片的二进制文件格式。这是一个用于解析、计算和渲染此类图片的库。
Railway 文件结构
在整个格式中,我们使用“配对”一词,表示一对浮点数。有关文件格式的更详尽描述,请参阅格式规范。
虚拟机程序
在绘制之前,railway 文件有一个程序需要计算以产生结果。然后,这些结果被用作绘制阶段的坐标。使用堆栈来存储这些结果。
参数(参数)
值可以改变的配对。其中一些有名称,这意味着它们可以更改。没有名称的被视为程序的常量值。参数对应于堆栈的初始内容。
指令
具有一个输出和最多 3 个输入的数学运算。输入使用堆栈索引/偏移量指定。每条指令都会产生一个配对,并将其推入堆栈。
输出
一些结果可能对客户端代码很有用,例如,用于精确地在渲染的图片上覆盖某些内容。这些在文件的本节中指定,为名称和堆栈索引/偏移量。
绘制操作
一旦每条指令都已计算,绘制阶段就可以开始。它将使用堆栈中存在的配对,通过堆栈索引/偏移量引用。
一个 railway 文件包含多个“层”:背景三角形和蒙版的组合。
三角形
背景三角形指定每个点的 x/y 坐标和 RGBA 颜色。
蒙版
蒙版是由弧线和贝塞尔曲线(三次/二次/线性)构成的多边形。贝塞尔曲线使用 2、3 或 4 个点指定。弧线使用中心、两个绝对角度和两个半径指定。
剪辑
剪辑指定一个蒙版和一个背景三角形。在蒙版和三角形中同时存在的每个像素都将被绘制。
描边
笔画是使用指定颜色和图案绘制蒙版轮廓的过程。
依赖项
~1.5MB
~25K SLoC