56 releases (2 stable)

1.0.1 Nov 6, 2022
1.0.0 Jul 11, 2022
0.17.10 Oct 12, 2021
0.17.5 Jan 30, 2021
0.1.1 Jul 14, 2016

#299 in Graphics APIs

Download history 8648/week @ 2024-10-08 11818/week @ 2024-10-15 10784/week @ 2024-10-22 11925/week @ 2024-10-29 9855/week @ 2024-11-05 9465/week @ 2024-11-12 11104/week @ 2024-11-19 10831/week @ 2024-11-26 9715/week @ 2024-12-03 10786/week @ 2024-12-10 8691/week @ 2024-12-17 5733/week @ 2024-12-24 7485/week @ 2024-12-31 12344/week @ 2025-01-07 15817/week @ 2025-01-14 11249/week @ 2025-01-21

47,789 downloads per month
Used in 161 crates (45 directly)

MIT/Apache

1MB
33K SLoC

Lyon

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

Project logo

crates.io Build Status documentation Gitter Chat

Example

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<MyVertex, u16> = 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()
    );
}

Dependencies

~1.5MB
~40K SLoC

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy