Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
29
third-party/vendor/tiny-skia/examples/clip_path.rs
vendored
Normal file
29
third-party/vendor/tiny-skia/examples/clip_path.rs
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
fn main() {
|
||||
let clip_path = {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.push_circle(250.0, 250.0, 200.0);
|
||||
pb.push_circle(250.0, 250.0, 100.0);
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let clip_path = clip_path
|
||||
.transform(Transform::from_row(1.0, -0.3, 0.0, 1.0, 0.0, 75.0))
|
||||
.unwrap();
|
||||
|
||||
let mut clip_mask = ClipMask::new();
|
||||
clip_mask.set_path(500, 500, &clip_path, FillRule::EvenOdd, true);
|
||||
|
||||
let mut paint = Paint::default();
|
||||
paint.set_color_rgba8(50, 127, 150, 200);
|
||||
|
||||
let mut pixmap = Pixmap::new(500, 500).unwrap();
|
||||
pixmap.fill_rect(
|
||||
Rect::from_xywh(0.0, 0.0, 500.0, 500.0).unwrap(),
|
||||
&paint,
|
||||
Transform::identity(),
|
||||
Some(&clip_mask),
|
||||
);
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
47
third-party/vendor/tiny-skia/examples/fill.rs
vendored
Normal file
47
third-party/vendor/tiny-skia/examples/fill.rs
vendored
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
fn main() {
|
||||
let mut paint1 = Paint::default();
|
||||
paint1.set_color_rgba8(50, 127, 150, 200);
|
||||
paint1.anti_alias = true;
|
||||
|
||||
let mut paint2 = Paint::default();
|
||||
paint2.set_color_rgba8(220, 140, 75, 180);
|
||||
|
||||
let path1 = {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(60.0, 60.0);
|
||||
pb.line_to(160.0, 940.0);
|
||||
pb.cubic_to(380.0, 840.0, 660.0, 800.0, 940.0, 800.0);
|
||||
pb.cubic_to(740.0, 460.0, 440.0, 160.0, 60.0, 60.0);
|
||||
pb.close();
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let path2 = {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(940.0, 60.0);
|
||||
pb.line_to(840.0, 940.0);
|
||||
pb.cubic_to(620.0, 840.0, 340.0, 800.0, 60.0, 800.0);
|
||||
pb.cubic_to(260.0, 460.0, 560.0, 160.0, 940.0, 60.0);
|
||||
pb.close();
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let mut pixmap = Pixmap::new(1000, 1000).unwrap();
|
||||
pixmap.fill_path(
|
||||
&path1,
|
||||
&paint1,
|
||||
FillRule::Winding,
|
||||
Transform::identity(),
|
||||
None,
|
||||
);
|
||||
pixmap.fill_path(
|
||||
&path2,
|
||||
&paint2,
|
||||
FillRule::Winding,
|
||||
Transform::identity(),
|
||||
None,
|
||||
);
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
25
third-party/vendor/tiny-skia/examples/hairline.rs
vendored
Normal file
25
third-party/vendor/tiny-skia/examples/hairline.rs
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
// This example demonstrates thin paths rendering.
|
||||
|
||||
fn main() {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(50.0, 100.0);
|
||||
pb.cubic_to(130.0, 20.0, 390.0, 120.0, 450.0, 30.0);
|
||||
let path = pb.finish().unwrap();
|
||||
|
||||
let mut paint = Paint::default();
|
||||
paint.set_color_rgba8(50, 127, 150, 200);
|
||||
paint.anti_alias = true;
|
||||
|
||||
let mut pixmap = Pixmap::new(500, 500).unwrap();
|
||||
let mut transform = Transform::identity();
|
||||
for i in 0..20 {
|
||||
let mut stroke = Stroke::default();
|
||||
stroke.width = 2.0 - (i as f32 / 10.0);
|
||||
pixmap.stroke_path(&path, &paint, &stroke, transform, None);
|
||||
transform = transform.pre_translate(0.0, 20.0);
|
||||
}
|
||||
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
59
third-party/vendor/tiny-skia/examples/image_on_image.rs
vendored
Normal file
59
third-party/vendor/tiny-skia/examples/image_on_image.rs
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
fn main() {
|
||||
let triangle = create_triangle();
|
||||
|
||||
let mut pixmap = Pixmap::new(400, 400).unwrap();
|
||||
|
||||
let now = std::time::Instant::now();
|
||||
|
||||
let mut paint = PixmapPaint::default();
|
||||
paint.quality = FilterQuality::Bicubic;
|
||||
|
||||
pixmap.draw_pixmap(
|
||||
20,
|
||||
20,
|
||||
triangle.as_ref(),
|
||||
&paint,
|
||||
Transform::from_row(1.2, 0.5, 0.5, 1.2, 0.0, 0.0),
|
||||
None,
|
||||
);
|
||||
|
||||
println!(
|
||||
"Rendered in {:.2}ms",
|
||||
now.elapsed().as_micros() as f64 / 1000.0
|
||||
);
|
||||
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
|
||||
fn create_triangle() -> Pixmap {
|
||||
let mut paint = Paint::default();
|
||||
paint.set_color_rgba8(50, 127, 150, 200);
|
||||
paint.anti_alias = true;
|
||||
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(0.0, 200.0);
|
||||
pb.line_to(200.0, 200.0);
|
||||
pb.line_to(100.0, 0.0);
|
||||
pb.close();
|
||||
let path = pb.finish().unwrap();
|
||||
|
||||
let mut pixmap = Pixmap::new(200, 200).unwrap();
|
||||
|
||||
pixmap.fill_path(
|
||||
&path,
|
||||
&paint,
|
||||
FillRule::Winding,
|
||||
Transform::identity(),
|
||||
None,
|
||||
);
|
||||
|
||||
let path = PathBuilder::from_rect(Rect::from_ltrb(0.0, 0.0, 200.0, 200.0).unwrap());
|
||||
let stroke = Stroke::default();
|
||||
paint.set_color_rgba8(200, 0, 0, 220);
|
||||
|
||||
pixmap.stroke_path(&path, &paint, &stroke, Transform::identity(), None); // TODO: stroke_rect
|
||||
|
||||
pixmap
|
||||
}
|
||||
73
third-party/vendor/tiny-skia/examples/large_image.rs
vendored
Normal file
73
third-party/vendor/tiny-skia/examples/large_image.rs
vendored
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
// This example will crate a 20_000x20_000px image, which can take a while in a debug mode.
|
||||
// This example is used mainly to tests that our tiling algorithm actually works and doesn't panic.
|
||||
|
||||
fn main() {
|
||||
let path1 = {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(1200.0, 1200.0);
|
||||
pb.line_to(3200.0, 18800.0);
|
||||
pb.cubic_to(7600.0, 16800.0, 13200.0, 16000.0, 18800.0, 16000.0);
|
||||
pb.cubic_to(14800.0, 9200.0, 8800.0, 3200.0, 1200.0, 1200.0);
|
||||
pb.close();
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let path2 = {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(18800.0, 1200.0);
|
||||
pb.line_to(16800.0, 18800.0);
|
||||
pb.cubic_to(12400.0, 16800.0, 6800.0, 16000.0, 1200.0, 16000.0);
|
||||
pb.cubic_to(5200.0, 9200.0, 11200.0, 3200.0, 18800.0, 1200.0);
|
||||
pb.close();
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let mut pixmap = Pixmap::new(20000, 20000).unwrap();
|
||||
|
||||
let clip_path = {
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.push_circle(10000.0, 10000.0, 7000.0);
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let mut clip = ClipMask::new();
|
||||
clip.set_path(20000, 20000, &clip_path, FillRule::Winding, true);
|
||||
|
||||
let mut paint = Paint::default();
|
||||
paint.set_color_rgba8(90, 175, 100, 150);
|
||||
paint.anti_alias = true;
|
||||
let large_rect = Rect::from_xywh(500.0, 500.0, 19000.0, 19000.0).unwrap();
|
||||
pixmap
|
||||
.fill_rect(large_rect, &paint, Transform::identity(), None)
|
||||
.unwrap();
|
||||
|
||||
paint.set_color_rgba8(50, 127, 150, 200);
|
||||
paint.anti_alias = true;
|
||||
pixmap.fill_path(
|
||||
&path1,
|
||||
&paint,
|
||||
FillRule::Winding,
|
||||
Transform::default(),
|
||||
Some(&clip),
|
||||
);
|
||||
|
||||
paint.set_color_rgba8(220, 140, 75, 180);
|
||||
paint.anti_alias = false;
|
||||
pixmap.fill_path(
|
||||
&path2,
|
||||
&paint,
|
||||
FillRule::Winding,
|
||||
Transform::default(),
|
||||
None,
|
||||
);
|
||||
|
||||
paint.set_color_rgba8(255, 10, 15, 180);
|
||||
paint.anti_alias = true;
|
||||
let mut stroke = Stroke::default();
|
||||
stroke.width = 0.8; // hairline
|
||||
pixmap.stroke_path(&path2, &paint, &stroke, Transform::default(), None);
|
||||
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
34
third-party/vendor/tiny-skia/examples/linear_gradient.rs
vendored
Normal file
34
third-party/vendor/tiny-skia/examples/linear_gradient.rs
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
fn main() {
|
||||
let mut paint = Paint::default();
|
||||
paint.shader = LinearGradient::new(
|
||||
Point::from_xy(100.0, 100.0),
|
||||
Point::from_xy(900.0, 900.0),
|
||||
vec![
|
||||
GradientStop::new(0.0, Color::from_rgba8(50, 127, 150, 200)),
|
||||
GradientStop::new(1.0, Color::from_rgba8(220, 140, 75, 180)),
|
||||
],
|
||||
SpreadMode::Pad,
|
||||
Transform::identity(),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(60.0, 60.0);
|
||||
pb.line_to(160.0, 940.0);
|
||||
pb.cubic_to(380.0, 840.0, 660.0, 800.0, 940.0, 800.0);
|
||||
pb.cubic_to(740.0, 460.0, 440.0, 160.0, 60.0, 60.0);
|
||||
pb.close();
|
||||
let path = pb.finish().unwrap();
|
||||
|
||||
let mut pixmap = Pixmap::new(1000, 1000).unwrap();
|
||||
pixmap.fill_path(
|
||||
&path,
|
||||
&paint,
|
||||
FillRule::Winding,
|
||||
Transform::identity(),
|
||||
None,
|
||||
);
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
50
third-party/vendor/tiny-skia/examples/pattern.rs
vendored
Normal file
50
third-party/vendor/tiny-skia/examples/pattern.rs
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
fn main() {
|
||||
let triangle = crate_triangle();
|
||||
|
||||
let mut paint = Paint::default();
|
||||
paint.anti_alias = true;
|
||||
paint.shader = Pattern::new(
|
||||
triangle.as_ref(),
|
||||
SpreadMode::Repeat,
|
||||
FilterQuality::Bicubic,
|
||||
1.0,
|
||||
Transform::from_row(1.5, -0.4, 0.0, -0.8, 5.0, 1.0),
|
||||
);
|
||||
|
||||
let path = PathBuilder::from_circle(200.0, 200.0, 180.0).unwrap();
|
||||
|
||||
let mut pixmap = Pixmap::new(400, 400).unwrap();
|
||||
pixmap.fill_path(
|
||||
&path,
|
||||
&paint,
|
||||
FillRule::Winding,
|
||||
Transform::identity(),
|
||||
None,
|
||||
);
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
|
||||
fn crate_triangle() -> Pixmap {
|
||||
let mut paint = Paint::default();
|
||||
paint.set_color_rgba8(50, 127, 150, 200);
|
||||
paint.anti_alias = true;
|
||||
|
||||
let mut pb = PathBuilder::new();
|
||||
pb.move_to(0.0, 20.0);
|
||||
pb.line_to(20.0, 20.0);
|
||||
pb.line_to(10.0, 0.0);
|
||||
pb.close();
|
||||
let path = pb.finish().unwrap();
|
||||
|
||||
let mut pixmap = Pixmap::new(20, 20).unwrap();
|
||||
pixmap.fill_path(
|
||||
&path,
|
||||
&paint,
|
||||
FillRule::Winding,
|
||||
Transform::identity(),
|
||||
None,
|
||||
);
|
||||
pixmap
|
||||
}
|
||||
30
third-party/vendor/tiny-skia/examples/stroke.rs
vendored
Normal file
30
third-party/vendor/tiny-skia/examples/stroke.rs
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
use tiny_skia::*;
|
||||
|
||||
// Based on https://fiddle.skia.org/c/@compose_path
|
||||
|
||||
fn main() {
|
||||
let mut paint = Paint::default();
|
||||
paint.set_color_rgba8(0, 127, 0, 200);
|
||||
paint.anti_alias = true;
|
||||
|
||||
let path = {
|
||||
let mut pb = PathBuilder::new();
|
||||
const RADIUS: f32 = 250.0;
|
||||
const CENTER: f32 = 250.0;
|
||||
pb.move_to(CENTER + RADIUS, CENTER);
|
||||
for i in 1..8 {
|
||||
let a = 2.6927937 * i as f32;
|
||||
pb.line_to(CENTER + RADIUS * a.cos(), CENTER + RADIUS * a.sin());
|
||||
}
|
||||
pb.finish().unwrap()
|
||||
};
|
||||
|
||||
let mut stroke = Stroke::default();
|
||||
stroke.width = 6.0;
|
||||
stroke.line_cap = LineCap::Round;
|
||||
stroke.dash = StrokeDash::new(vec![20.0, 40.0], 0.0);
|
||||
|
||||
let mut pixmap = Pixmap::new(500, 500).unwrap();
|
||||
pixmap.stroke_path(&path, &paint, &stroke, Transform::identity(), None);
|
||||
pixmap.save_png("image.png").unwrap();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue