summaryrefslogtreecommitdiff
path: root/examples/bmp.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/bmp.rs')
-rw-r--r--examples/bmp.rs61
1 files changed, 46 insertions, 15 deletions
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()
});