femtovg
GPU 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.
Screenshots
Demo
Run with cargo run --example demo
Breakout
Run with cargo run --example breakout
SVG
Run with cargo run --example svg
Text
Run with cargo run --example text
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
Color fonts
Not supported
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: