From 3a358c6dd39aa78319549658adf1028cea61f643 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 16 Jul 2024 23:37:56 +0200 Subject: defenitely pixels now. --- light-client/src/render/mod.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'light-client/src/render/mod.rs') diff --git a/light-client/src/render/mod.rs b/light-client/src/render/mod.rs index a410da6f..a2aea365 100644 --- a/light-client/src/render/mod.rs +++ b/light-client/src/render/mod.rs @@ -31,6 +31,7 @@ use std::collections::HashMap; pub struct SpriteRenderer<'a> { metadata: AtlasLayout, + pub size: Vec2, texture: Texture<'a>, view_scale: Vec2, @@ -103,13 +104,22 @@ impl<'a> SpriteRenderer<'a> { Self { texture, + size: Vec2::ONE, metadata, sprites: vec![], view_offset: Vec2::ZERO, - view_scale: Vec2::splat(3.), + view_scale: Vec2::ZERO, } } + pub fn set_view(&mut self, offset: Vec2, scale: f32) { + self.view_offset = offset; + self.view_scale = Vec2::new(32., 24.) * scale; + } + pub fn get_scale(&self) -> Vec2 { + self.view_scale + } + #[inline] pub fn atlas_layout(&self) -> &HashMap { &self.metadata @@ -129,10 +139,10 @@ impl<'a> SpriteRenderer<'a> { z_order: sprite.z_order, src: sprite.src, dst: FRect::new( - ((sprite.dst.x + self.view_offset.x) * 32.).round() * self.view_scale.x, - ((sprite.dst.y + self.view_offset.y) * 24.).round() * self.view_scale.y, - (sprite.dst.w * 32.).round() * self.view_scale.x, - (sprite.dst.h * 24.).round() * self.view_scale.y, + ((sprite.dst.x + self.view_offset.x) * self.view_scale.x).round(), + ((sprite.dst.y + self.view_offset.y) * self.view_scale.y).round(), + (sprite.dst.w * self.view_scale.x).round(), + (sprite.dst.h * self.view_scale.y).round(), ), }) } -- cgit v1.2.3-70-g09d2