summaryrefslogtreecommitdiff
path: root/alligator_render/examples
diff options
context:
space:
mode:
Diffstat (limited to 'alligator_render/examples')
-rw-r--r--alligator_render/examples/black.rs6
-rw-r--r--alligator_render/examples/bmp.rs47
-rw-r--r--alligator_render/examples/bunnymark.rs31
3 files changed, 41 insertions, 43 deletions
diff --git a/alligator_render/examples/black.rs b/alligator_render/examples/black.rs
index 198eef2..655cbde 100644
--- a/alligator_render/examples/black.rs
+++ b/alligator_render/examples/black.rs
@@ -1,5 +1,7 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
+use std::sync::Arc;
+
use alligator_render::{RenderWindowConfig, Renderer};
use alligator_resources::texture::{TextureManager, TextureManagerConfig};
@@ -19,11 +21,9 @@ fn main() {
let texture_config = TextureManagerConfig {
initial_capacity: 0,
max_size: 0,
- atlas_width: 1,
- atlas_height: 1,
};
- let texture_manager = TextureManager::new(&texture_config);
+ let texture_manager = Arc::new(TextureManager::new(&texture_config));
let renderer = Renderer::new(&render_config, texture_manager).unwrap();
println!("Startup time: {:?}", start.elapsed());
diff --git a/alligator_render/examples/bmp.rs b/alligator_render/examples/bmp.rs
index 0bad037..9d864d0 100644
--- a/alligator_render/examples/bmp.rs
+++ b/alligator_render/examples/bmp.rs
@@ -1,9 +1,9 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
-use std::num::NonZeroU32;
+use std::{num::NonZeroU32, sync::Arc};
-use alligator_render::{ImageFormat, Instance, RenderWindowConfig, Renderer};
-use alligator_resources::texture::{TextureManager, TextureManagerConfig};
+use alligator_render::{Instance, RenderWindowConfig, Renderer};
+use alligator_resources::texture::{ImageFormat, TextureManager, TextureManagerConfig};
#[profiling::function]
fn update(renderer: &mut Renderer) {
@@ -26,23 +26,21 @@ fn main() {
let texture_config = TextureManagerConfig {
initial_capacity: 3,
max_size: 3_000_000,
- atlas_height: 150,
- atlas_width: 150,
};
- let texture_manager = TextureManager::new(&texture_config);
- let mut renderer = Renderer::new(&render_config, texture_manager).unwrap();
+ let texture_manager = Arc::new(TextureManager::new(&texture_config));
+ let mut renderer = Renderer::new(&render_config, texture_manager.clone()).unwrap();
// render the alligator
let gator = include_bytes!("res/gator.ff");
- let gator_id = renderer
- .textures_mut()
+ let gator_id = texture_manager
.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.textures_mut().load_texture(gator_id).unwrap();
+ let gator_width = renderer.textures_mut().texture_width(gator_id).unwrap();
+ let gator_height = renderer.textures_mut().texture_height(gator_id).unwrap();
+ let gator_x = renderer.textures_mut().texture_x(gator_id).unwrap();
+ let gator_y = renderer.textures_mut().texture_y(gator_id).unwrap();
renderer.instances_mut().push_instance(Instance {
position: [-0.5, 0.5],
@@ -55,14 +53,14 @@ fn main() {
// render the ghost
let icon = include_bytes!("res/ghost.ico");
- let icon_id = renderer
- .textures_mut()
+ let icon_id = texture_manager
.load_from_memory(icon, ImageFormat::Ico)
.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();
+ renderer.textures_mut().load_texture(icon_id).unwrap();
+ let icon_width = renderer.textures_mut().texture_width(icon_id).unwrap();
+ let icon_height = renderer.textures_mut().texture_height(icon_id).unwrap();
+ let icon_x = renderer.textures_mut().texture_x(icon_id).unwrap();
+ let icon_y = renderer.textures_mut().texture_y(icon_id).unwrap();
renderer.instances_mut().push_instance(Instance {
position: [0.5, 0.5],
@@ -76,14 +74,13 @@ fn main() {
// render the bitmap alligator
let gator = include_bytes!("res/gator.bmp");
- let gator_id = renderer
- .textures_mut()
+ let gator_id = texture_manager
.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();
+ let gator_width = renderer.textures_mut().texture_width(gator_id).unwrap();
+ let gator_height = renderer.textures_mut().texture_height(gator_id).unwrap();
+ let gator_x = renderer.textures_mut().texture_x(gator_id).unwrap();
+ let gator_y = renderer.textures_mut().texture_y(gator_id).unwrap();
renderer.instances_mut().push_instance(Instance {
position: [0.0, -0.5],
diff --git a/alligator_render/examples/bunnymark.rs b/alligator_render/examples/bunnymark.rs
index ab38b5e..f9aed1a 100644
--- a/alligator_render/examples/bunnymark.rs
+++ b/alligator_render/examples/bunnymark.rs
@@ -1,9 +1,7 @@
-use std::{num::NonZeroU32, time::Instant};
+use std::{num::NonZeroU32, sync::Arc, time::Instant};
-use alligator_render::{
- ImageFormat, Instance, InstanceId, RenderWindowConfig, Renderer, TextureId,
-};
-use alligator_resources::texture::{TextureManager, TextureManagerConfig};
+use alligator_render::{Instance, InstanceId, RenderWindowConfig, Renderer};
+use alligator_resources::texture::{ImageFormat, TextureId, TextureManager, TextureManagerConfig};
fn xorshift_plus(seed: &mut [u64; 2]) -> u64 {
let mut t = seed[0];
@@ -88,10 +86,16 @@ impl State {
}
for _ in 0..=(fps as u64 * 50) {
- let texture_x = renderer.textures().texture_x(self.texture_id).unwrap();
- let texture_y = renderer.textures().texture_x(self.texture_id).unwrap();
- let texture_height = renderer.textures().texture_height(self.texture_id).unwrap();
- let texture_width = renderer.textures().texture_width(self.texture_id).unwrap();
+ let texture_x = renderer.textures_mut().texture_x(self.texture_id).unwrap();
+ let texture_y = renderer.textures_mut().texture_x(self.texture_id).unwrap();
+ let texture_height = renderer
+ .textures_mut()
+ .texture_height(self.texture_id)
+ .unwrap();
+ let texture_width = renderer
+ .textures_mut()
+ .texture_width(self.texture_id)
+ .unwrap();
let instance_id = renderer.instances_mut().push_instance(Instance {
texture_coordinates: [texture_x, texture_y],
texture_size: [texture_width, texture_height],
@@ -137,15 +141,12 @@ fn main() {
let texture_config = TextureManagerConfig {
initial_capacity: 1,
max_size: 10_000,
- atlas_width: 100,
- atlas_height: 100,
};
let bunny = include_bytes!("res/bunny.ff");
- let texture_manager = TextureManager::new(&texture_config);
- let mut renderer = Renderer::new(&render_config, texture_manager).unwrap();
- let texture_id = renderer
- .textures_mut()
+ let texture_manager = Arc::new(TextureManager::new(&texture_config));
+ let renderer = Renderer::new(&render_config, texture_manager.clone()).unwrap();
+ let texture_id = texture_manager
.load_from_memory(bunny, ImageFormat::Farbfeld)
.unwrap();