MCPcopy Create free account
hub / github.com/DioxusLabs/anyrender / main

Function main

examples/serialize/src/main.rs:25–60  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

23const OUTPUT_DIR: &str = "examples/serialize/_output";
24
25fn main() {
26 let original_scene = create_demo_scene();
27
28 // Render original prior to serialization/deserialization roundtrip
29 let pixels = render_scene_to_buffer(&original_scene);
30 let img: RgbaImage = ImageBuffer::from_raw(WIDTH, HEIGHT, pixels.to_vec()).unwrap();
31 img.save(Path::new(OUTPUT_DIR).join("original.png"))
32 .unwrap();
33
34 // Serialize
35 let archive_path = Path::new(OUTPUT_DIR).join("demo_scene.anyrender.zip");
36 let file = File::create(&archive_path).unwrap();
37 let writer = BufWriter::new(file);
38 let config = SerializeConfig::new()
39 .with_subset_fonts(true)
40 .with_woff2_fonts(true);
41 SceneArchive::from_scene(&original_scene, &config)
42 .unwrap()
43 .serialize(writer)
44 .unwrap();
45
46 // Deserialize
47 let file = File::open(&archive_path).unwrap();
48 let deserialized_scene = SceneArchive::deserialize(file).unwrap().to_scene().unwrap();
49
50 // Render deserialized scene to verify against original
51 let pixels = render_scene_to_buffer(&deserialized_scene);
52 let img: RgbaImage = ImageBuffer::from_raw(WIDTH, HEIGHT, pixels.to_vec()).unwrap();
53 img.save(Path::new(OUTPUT_DIR).join("roundtrip.png"))
54 .unwrap();
55
56 // Assert that `original.png` and `roundtrip.png` are the same
57 let original_img = image::open(Path::new(OUTPUT_DIR).join("original.png")).unwrap();
58 let roundtrip_img = image::open(Path::new(OUTPUT_DIR).join("roundtrip.png")).unwrap();
59 assert_eq!(original_img.to_rgba8(), roundtrip_img.to_rgba8());
60}
61
62fn create_demo_scene() -> Scene {
63 let mut scene = Scene::new();

Callers

nothing calls this directly

Calls 7

create_demo_sceneFunction · 0.85
render_scene_to_bufferFunction · 0.85
deserializeFunction · 0.85
with_woff2_fontsMethod · 0.80
with_subset_fontsMethod · 0.80
serializeMethod · 0.80
to_sceneMethod · 0.80

Tested by

no test coverage detected