33 个版本

0.9.2 2024 年 6 月 27 日
0.9.0 2024 年 2 月 27 日
0.8.1 2023 年 12 月 18 日
0.8.0 2023 年 11 月 2 日
0.1.0 2020 年 9 月 28 日

#18 in 图形 API

Download history 7795/week @ 2024-05-05 7270/week @ 2024-05-12 6940/week @ 2024-05-19 6573/week @ 2024-05-26 6532/week @ 2024-06-02 21713/week @ 2024-06-09 21698/week @ 2024-06-16 23945/week @ 2024-06-23 18207/week @ 2024-06-30 13436/week @ 2024-07-07 12784/week @ 2024-07-14 12973/week @ 2024-07-21 11846/week @ 2024-07-28 11700/week @ 2024-08-04 12638/week @ 2024-08-11 12596/week @ 2024-08-18

49,596 个月下载量
用于 34 个 Crates (17 直接)

MIT/Apache

315KB
7K SLoC

Crates.io API dependency status rust: 1.68 Discord

femtovg

使用 Rust 编写的 GPU 抗锯齿 2D 矢量绘图库。


移植自 https://github.com/memononen/nanovg

大部分实现与原始 C 代码相同,修复了一些错误,增加了一些功能,并使几个部分更符合 Rust 的风格。渲染通过一个 OpenGl (ES) 3.0+ 后端完成。

屏幕截图

演示

demo 使用 cargo run --example demo 运行

Breakout

breakout 使用 cargo run --example breakout 运行

SVG

svg 使用 cargo run --example svg 运行

文本

text 使用 cargo run --example text

特性

  • 抗锯齿
  • Bézier路径填充和描边
  • 实色和图像图案填充和描边
  • 渐变 - 矩形、线性和对齐渐变
  • 描边宽度和miterlimit
  • 描边端点:平头、圆角和方形
  • 描边连接:斜接、圆角和斜边
  • 填充规则 - EvenOdd/NonZero
  • 矩形裁剪
  • 合成模式(SourceOver, SourceIn, SourceOut, Atop等)
  • 全局透明度
  • 文本填充和描边
  • 文本形状
  • 文本对齐:(左、居中、右),(顶部、中部、字母顺序、底部)
  • 最近字体匹配
  • 路径击中测试
  • OpenGl ES2后端

进行中

不支持

  • 描边虚线
  • 路径裁剪
  • 自定义着色器
  • 3D变换
  • 彩色字体

许可证

根据您的选择,许可如下

示例中使用的字体

依赖项

~6–19MB
~221K SLoC