From 511d3873f5f567c97eecd69d186bb4f93f927d58 Mon Sep 17 00:00:00 2001 From: Micha White Date: Sun, 2 Oct 2022 13:49:47 -0400 Subject: Hacked in textures --- examples/bmp.rs | 40 ++++++++++++++++++++++++++++++++++++++++ examples/res/sample.bmp | Bin 0 -> 1000138 bytes examples/res/square.ico | Bin 0 -> 270398 bytes examples/square.rs | 19 +++++++++++++++++-- 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 examples/bmp.rs create mode 100644 examples/res/sample.bmp create mode 100644 examples/res/square.ico (limited to 'examples') diff --git a/examples/bmp.rs b/examples/bmp.rs new file mode 100644 index 0000000..b1c2117 --- /dev/null +++ b/examples/bmp.rs @@ -0,0 +1,40 @@ +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +use std::num::NonZeroU32; + +use alligator_render::{config::WindowMode, ImageFormat, Instance, RenderWindowConfig, Renderer}; +use winit::event_loop::EventLoop; + +fn main() { + // configure the render window + let config = RenderWindowConfig { + title: "Bumper Sticker", + instance_capacity: 1, + default_width: NonZeroU32::new(1280).unwrap(), + default_height: NonZeroU32::new(720).unwrap(), + mode: WindowMode::BorderlessFullscreen, + vsync: false, + ..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 + .texture_from_mem(texture, ImageFormat::Bmp) + .unwrap(); + let width = renderer.texture_width(texture).unwrap(); + let height = renderer.texture_height(texture).unwrap(); + let x = renderer.texture_x(texture).unwrap(); + let y = renderer.texture_y(texture).unwrap(); + + renderer.push_instance(Instance { + texture_size: [width, height], + texture_coordinates: [x, y], + ..Default::default() + }); + + renderer.run(event_loop); +} diff --git a/examples/res/sample.bmp b/examples/res/sample.bmp new file mode 100644 index 0000000..b31b58e Binary files /dev/null and b/examples/res/sample.bmp differ diff --git a/examples/res/square.ico b/examples/res/square.ico new file mode 100644 index 0000000..43d5a8c Binary files /dev/null and b/examples/res/square.ico differ diff --git a/examples/square.rs b/examples/square.rs index d03a4a9..f95bd00 100644 --- a/examples/square.rs +++ b/examples/square.rs @@ -1,6 +1,6 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] -use alligator_render::{Instance, RenderWindowConfig, Renderer}; +use alligator_render::{ImageFormat, Instance, RenderWindowConfig, Renderer}; use winit::event_loop::EventLoop; fn main() { @@ -11,9 +11,24 @@ fn main() { ..Default::default() }; + let texture = include_bytes!("res/square.ico"); + let event_loop = EventLoop::new(); let mut renderer = Renderer::new(&config, &event_loop).unwrap(); - renderer.push_instance(Instance::default()); + + let texture = renderer + .texture_from_mem(texture, ImageFormat::Ico) + .unwrap(); + let width = renderer.texture_width(texture).unwrap(); + let height = renderer.texture_height(texture).unwrap(); + let x = renderer.texture_x(texture).unwrap(); + let y = renderer.texture_y(texture).unwrap(); + + renderer.push_instance(Instance { + texture_size: [width, height], + texture_coordinates: [x, y], + ..Default::default() + }); renderer.run(event_loop); } -- cgit v1.2.3