2 releases

0.2.9 Jun 2, 2022
0.2.8 Jan 5, 2022

#482 in Graphics APIs


Used in 3 crates (via ux-dx)

MIT/Apache

7.5MB
6K SLoC

ux-vg

API Docs Crates.io Code coverage Tests MPL-2.0 licensed Gitter chat loc

This is fork of femtovg v0.2.8 library

This fork was created so that you can implement your own renders and to integrate with the AngularRust framework.

Antialiased 2D vector drawing library written in Rust. Ported from https://github.com/memononen/nanovg

Most of the implementation is the same as the original C code with some bug fixes, some features added and several parts have been made more Rust-y. Rendering is done via one OpenGl (ES) 3.0+ backend.

Features

  • Anti-aliasing
  • Bézier paths filling and stroking
  • Solid color and image pattern fills and strokes
  • Gradients - box, linear and radial
  • Stroke width and miterlimit
  • Stroke caps: butt, round and square
  • Stroke joins: miter, round and bevel
  • Fill rules - EvenOdd/NonZero
  • Rectangle scissoring
  • Composition modes (SourceOver, SourceIn, SourceOut, Atop, etc..)
  • Global alpha
  • Text filling and stroking
  • Text shaping
  • Text alignment: (left center right), (top, middle, alphabetic, bottom)
  • Nearest font matching
  • Path hit testing
  • OpenGl ES2 backend

In progress

Not supported

  • Stroke dashing
  • Path scissoring
  • Custom shaders
  • 3D transforms
  • Color fonts

License

Licensed under either of

Fonts used in examples:

Dependencies

~5–10MB
~168K SLoC