From ced3ffc22570048711fefba638782a31d0e06035 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 5 Sep 2019 07:23:03 +0200 Subject: Move `ggez` example to `tour` --- examples/tour/renderer.rs | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 examples/tour/renderer.rs (limited to 'examples/tour/renderer.rs') diff --git a/examples/tour/renderer.rs b/examples/tour/renderer.rs new file mode 100644 index 00000000..8746dd96 --- /dev/null +++ b/examples/tour/renderer.rs @@ -0,0 +1,63 @@ +mod button; +mod checkbox; +mod debugger; +mod image; +mod radio; +mod slider; +mod text; + +use ggez::graphics::{ + self, spritebatch::SpriteBatch, Font, Image, MeshBuilder, +}; +use ggez::Context; + +pub struct Renderer<'a> { + pub context: &'a mut Context, + pub sprites: SpriteBatch, + pub spritesheet: Image, + pub font: Font, + font_size: f32, + debug_mesh: Option, +} + +impl Renderer<'_> { + pub fn new( + context: &mut Context, + spritesheet: Image, + font: Font, + ) -> Renderer { + Renderer { + context, + sprites: SpriteBatch::new(spritesheet.clone()), + spritesheet, + font, + font_size: 20.0, + debug_mesh: None, + } + } + + pub fn flush(&mut self) { + graphics::draw( + self.context, + &self.sprites, + graphics::DrawParam::default(), + ) + .expect("Draw sprites"); + + graphics::draw_queued_text( + self.context, + graphics::DrawParam::default(), + Default::default(), + graphics::FilterMode::Linear, + ) + .expect("Draw text"); + + if let Some(debug_mesh) = self.debug_mesh.take() { + let mesh = + debug_mesh.build(self.context).expect("Build debug mesh"); + + graphics::draw(self.context, &mesh, graphics::DrawParam::default()) + .expect("Draw debug mesh"); + } + } +} -- cgit