Auto merge of #404 - leroycep:minimal-example-rerendering, r=pcwalton

Make `canvas_minimal` example rerender on refresh

I'm not sure if this actually works, because the `canvas_minimal` example doesn't run on my computer.
This commit is contained in:
bors-servo 2020-07-23 14:18:55 -04:00 committed by GitHub
commit 953a1dab60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 42 additions and 34 deletions

View File

@ -81,9 +81,23 @@ fn main() {
let resource_loader = EmbeddedResourceLoader::new();
let mut renderer = Renderer::new(pathfinder_device, &resource_loader, mode, options);
// Make a canvas. We're going to draw a house.
let font_context = CanvasFontContext::from_system_source();
let mut canvas = Canvas::new(framebuffer_size.to_f32()).get_context_2d(font_context);
let mut is_first_render = true;
// Wait for a keypress.
event_loop.run_forever(|event| {
let mut should_render = is_first_render;
match event {
Event::WindowEvent { event: WindowEvent::CloseRequested, .. } |
Event::WindowEvent { event: WindowEvent::KeyboardInput { .. }, .. } => return ControlFlow::Break,
Event::WindowEvent { event: WindowEvent::Refresh, .. } => {
should_render = true;
}
_ => {},
}
if should_render {
// Make a canvas. We're going to draw a house.
let mut canvas = Canvas::new(framebuffer_size.to_f32()).get_context_2d(font_context.clone());
// Set line width.
canvas.set_line_width(10.0);
@ -112,16 +126,10 @@ fn main() {
let mut surface = device.unbind_surface_from_context(&mut context).unwrap().unwrap();
device.present_surface(&mut context, &mut surface).unwrap();
device.bind_surface_to_context(&mut context, surface).unwrap();
}
// Wait for a keypress.
event_loop.run_forever(|event| {
match event {
Event::WindowEvent { event: WindowEvent::CloseRequested, .. } |
Event::WindowEvent { event: WindowEvent::KeyboardInput { .. }, .. } => {
ControlFlow::Break
}
_ => ControlFlow::Continue,
}
is_first_render = false;
ControlFlow::Continue
});
// Clean up.