Another project
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 1.5 kB View raw
1use bone_render::{ 2 Camera2, PixelsPerMm, PreviewArc, SketchPreview, SketchRenderer, SketchScene, Style, 3 ViewportExtent, 4}; 5use bone_types::{Angle, Length, Point2}; 6use uom::si::angle::radian; 7use uom::si::length::millimeter; 8 9mod common; 10 11fn extent() -> ViewportExtent { 12 common::extent_square(256) 13} 14 15#[test] 16fn preview_arc_paints_pixels_outside_background() { 17 let ctx = common::make_context(extent()); 18 let mut renderer = SketchRenderer::new(ctx.gpu(), ctx.color_format()); 19 let scene = SketchScene::empty(); 20 let preview = SketchPreview { 21 arcs: vec![PreviewArc { 22 center: Point2::from_mm(0.0, 0.0), 23 radius: Length::new::<millimeter>(1.0), 24 start_angle: Angle::new::<radian>(0.0), 25 sweep_angle: Angle::new::<radian>(std::f64::consts::FRAC_PI_2), 26 }], 27 ..SketchPreview::empty() 28 }; 29 let camera = Camera2::new(extent()).with_zoom(PixelsPerMm::new(64.0)); 30 let style = Style::default(); 31 let Ok(frame) = renderer.render_with_preview(&ctx, &scene, &preview, camera, &style) else { 32 panic!("render_with_preview failed"); 33 }; 34 let bg = style.background().to_rgba8(); 35 let pixels = frame.rgba(); 36 let painted = pixels 37 .chunks_exact(4) 38 .filter(|p| p[0] != bg[0] || p[1] != bg[1] || p[2] != bg[2]) 39 .count(); 40 assert!( 41 painted > 0, 42 "preview arc should paint pixels distinct from the {bg:?} background", 43 ); 44}