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)
7.5MB
6K
SLoC
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
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Fonts used in examples:
- Roboto licensed under Apache license
- Entypo licensed under CC BY-SA 4.0.
- Amiri licensed under SIL Open Font License, Version 1.1
Dependencies
~5–10MB
~168K SLoC