From 5d5525ce9201d1a6388260285268baff6019be93 Mon Sep 17 00:00:00 2001 From: Micha White Date: Thu, 13 Oct 2022 09:39:05 -0400 Subject: Better example + bug fixes --- examples/bmp.rs | 61 ++++++++++++++++++++++++++++++++++++------------ examples/res/gator.bmp | Bin 0 -> 750054 bytes examples/res/gator.ff | Bin 0 -> 2000016 bytes examples/res/ghost.ico | Bin 0 -> 67646 bytes examples/res/sample.bmp | Bin 1000138 -> 0 bytes examples/res/square.ico | Bin 270398 -> 0 bytes examples/square.rs | 37 ----------------------------- 7 files changed, 46 insertions(+), 52 deletions(-) create mode 100644 examples/res/gator.bmp create mode 100644 examples/res/gator.ff create mode 100644 examples/res/ghost.ico delete mode 100644 examples/res/sample.bmp delete mode 100644 examples/res/square.ico delete mode 100644 examples/square.rs (limited to 'examples') diff --git a/examples/bmp.rs b/examples/bmp.rs index af425ff..f029efc 100644 --- a/examples/bmp.rs +++ b/examples/bmp.rs @@ -8,7 +8,7 @@ use winit::event_loop::EventLoop; fn main() { // configure the render window let config = RenderWindowConfig { - title: "Bumper Sticker", + title: "A Bumper Sticker and an Icon for Hire", instance_capacity: 2, default_width: NonZeroU32::new(1280).unwrap(), default_height: NonZeroU32::new(720).unwrap(), @@ -17,33 +17,64 @@ fn main() { ..Default::default() }; - let texture = include_bytes!("res/sample.bmp"); - let event_loop = EventLoop::new(); let mut renderer = Renderer::new(&config, &event_loop).unwrap(); - let texture = renderer + // render the alligator + let gator = include_bytes!("res/gator.ff"); + let gator_id = renderer + .textures_mut() + .load_from_memory(gator, ImageFormat::Farbfeld) + .unwrap(); + let gator_width = renderer.textures().texture_width(gator_id).unwrap(); + let gator_height = renderer.textures().texture_height(gator_id).unwrap(); + let gator_x = renderer.textures().texture_x(gator_id).unwrap(); + let gator_y = renderer.textures().texture_y(gator_id).unwrap(); + + renderer.instances_mut().push_instance(Instance { + position: [-0.5, 0.5], + size: [0.75; 2], + texture_size: [gator_width, gator_height], + texture_coordinates: [gator_x, gator_y], + ..Default::default() + }); + + // render the ghost + let icon = include_bytes!("res/ghost.ico"); + let icon_id = renderer .textures_mut() - .load_from_memory(texture, ImageFormat::Bmp) + .load_from_memory(icon, ImageFormat::Ico) .unwrap(); - let width = renderer.textures().texture_width(texture).unwrap(); - let height = renderer.textures().texture_height(texture).unwrap(); - let x = renderer.textures().texture_x(texture).unwrap(); - let y = renderer.textures().texture_y(texture).unwrap(); + let icon_width = renderer.textures().texture_width(icon_id).unwrap(); + let icon_height = renderer.textures().texture_height(icon_id).unwrap(); + let icon_x = renderer.textures().texture_x(icon_id).unwrap(); + let icon_y = renderer.textures().texture_y(icon_id).unwrap(); + // TODO we can make a helper function that makes a square to fit a texture renderer.instances_mut().push_instance(Instance { - position: [-0.5, 0.0], + position: [0.5, 0.5], size: [0.75; 2], - texture_size: [width, height], - texture_coordinates: [x, y], + texture_size: [icon_width, icon_height], + texture_coordinates: [icon_x, icon_y], ..Default::default() }); + // render the bitmap alligator + let gator = include_bytes!("res/gator.bmp"); + let gator_id = renderer + .textures_mut() + .load_from_memory(gator, ImageFormat::Bmp) + .unwrap(); + let gator_width = renderer.textures().texture_width(gator_id).unwrap(); + let gator_height = renderer.textures().texture_height(gator_id).unwrap(); + let gator_x = renderer.textures().texture_x(gator_id).unwrap(); + let gator_y = renderer.textures().texture_y(gator_id).unwrap(); + renderer.instances_mut().push_instance(Instance { - position: [0.5, 0.0], + position: [0.0, -0.5], size: [0.75; 2], - texture_size: [width, height], - texture_coordinates: [x, y], + texture_size: [gator_width, gator_height], + texture_coordinates: [gator_x, gator_y], ..Default::default() }); diff --git a/examples/res/gator.bmp b/examples/res/gator.bmp new file mode 100644 index 0000000..e752b56 Binary files /dev/null and b/examples/res/gator.bmp differ diff --git a/examples/res/gator.ff b/examples/res/gator.ff new file mode 100644 index 0000000..b4d867a Binary files /dev/null and b/examples/res/gator.ff differ diff --git a/examples/res/ghost.ico b/examples/res/ghost.ico new file mode 100644 index 0000000..102de00 Binary files /dev/null and b/examples/res/ghost.ico differ diff --git a/examples/res/sample.bmp b/examples/res/sample.bmp deleted file mode 100644 index b31b58e..0000000 Binary files a/examples/res/sample.bmp and /dev/null differ diff --git a/examples/res/square.ico b/examples/res/square.ico deleted file mode 100644 index 43d5a8c..0000000 Binary files a/examples/res/square.ico and /dev/null differ diff --git a/examples/square.rs b/examples/square.rs deleted file mode 100644 index ea8f9e9..0000000 --- a/examples/square.rs +++ /dev/null @@ -1,37 +0,0 @@ -#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] - -use alligator_render::{ImageFormat, Instance, RenderWindowConfig, Renderer}; -use winit::event_loop::EventLoop; - -fn main() { - // configure the render window - let config = RenderWindowConfig { - title: "Pokemon: Black and White (New Edition)", - instance_capacity: 1, - //vsync: false, - //mode: alligator_render::config::WindowMode::BorderlessFullscreen, - ..Default::default() - }; - - let texture = include_bytes!("res/square.ico"); - - let event_loop = EventLoop::new(); - let mut renderer = Renderer::new(&config, &event_loop).unwrap(); - - let texture = renderer - .textures_mut() - .load_from_memory(texture, ImageFormat::Ico) - .unwrap(); - let width = renderer.textures().texture_width(texture).unwrap(); - let height = renderer.textures().texture_height(texture).unwrap(); - let x = renderer.textures().texture_x(texture).unwrap(); - let y = renderer.textures().texture_y(texture).unwrap(); - - renderer.instances_mut().push_instance(Instance { - texture_size: [width, height], - texture_coordinates: [x, y], - ..Default::default() - }); - - renderer.run(event_loop); -} -- cgit v1.2.3