# Lyon A path tessellation library written in rust for GPU-based 2D graphics rendering.

Project logo

crates.io Build Status documentation Gitter Chat

## Example ```rust extern crate lyon; use lyon::math::point; use lyon::path::Path; use lyon::tessellation::*; fn main() { // Build a Path. let mut builder = Path::builder(); builder.begin(point(0.0, 0.0)); builder.line_to(point(1.0, 0.0)); builder.quadratic_bezier_to(point(2.0, 0.0), point(2.0, 1.0)); builder.cubic_bezier_to(point(1.0, 1.0), point(0.0, 1.0), point(0.0, 0.0)); builder.end(true); let path = builder.build(); // Let's use our own custom vertex type instead of the default one. #[derive(Copy, Clone, Debug)] struct MyVertex { position: [f32; 2] }; // Will contain the result of the tessellation. let mut geometry: VertexBuffers = VertexBuffers::new(); let mut tessellator = FillTessellator::new(); { // Compute the tessellation. tessellator.tessellate_path( &path, &FillOptions::default(), &mut BuffersBuilder::new(&mut geometry, |vertex: FillVertex| { MyVertex { position: vertex.position().to_array(), } }), ).unwrap(); } // The tessellated geometry is ready to be uploaded to the GPU. println!(" -- {} vertices {} indices", geometry.vertices.len(), geometry.indices.len() ); } ```