summaryrefslogtreecommitdiff
path: root/racer-tracer/src/image.rs
diff options
context:
space:
mode:
authorSakarias Johansson <sakarias.johansson@goodbyekansas.com>2023-02-17 17:48:41 +0100
committerSakarias Johansson <sakariasjohansson@hotmail.com>2023-02-17 18:05:16 +0100
commit971372cf6350533e36db0404afedb1a36817037c (patch)
tree207dac0f9eda28b58d23761e0e384f4bd4d7f137 /racer-tracer/src/image.rs
parent9959f90ea4b7ebd933387e6b33647fc661785d84 (diff)
downloadracer-tracer-971372cf6350533e36db0404afedb1a36817037c.tar.gz
racer-tracer-971372cf6350533e36db0404afedb1a36817037c.tar.xz
racer-tracer-971372cf6350533e36db0404afedb1a36817037c.zip
🧹 Refactor rendering & Cleanup
Refactored how the threading worked. Before it just keept up splitting the screen recursively for x number of times. Felt like using recursion was unnecessary. It's now just done in a loop instead. The user can control the behaviour by setting `num_threads_width` and `num_threads_height` which will split the image x number of times and run a thread for each. Split up the rendering function for one that does scaling and one that doesn't. I just don't want to deal with any kind of scaling when actually rendering the image. The code shouldn't change much so maintaining is going to be ok. - Fixed scaling issues where black bars would appear if the subimage size wasn't divisible by the scale. - Cleaned up a bunch of arcs and other things that wasn't neccesary any more.
Diffstat (limited to 'racer-tracer/src/image.rs')
-rw-r--r--racer-tracer/src/image.rs65
1 files changed, 1 insertions, 64 deletions
diff --git a/racer-tracer/src/image.rs b/racer-tracer/src/image.rs
index 1df4cc5..094b1f8 100644
--- a/racer-tracer/src/image.rs
+++ b/racer-tracer/src/image.rs
@@ -1,3 +1,4 @@
+#[derive(Clone)]
pub struct Image {
pub aspect_ratio: f64,
pub width: usize,
@@ -14,20 +15,6 @@ impl Image {
}
}
-// TODO: SubImage and Image can probably be the same struct
-impl From<&Image> for SubImage {
- fn from(image: &Image) -> Self {
- SubImage {
- x: 0,
- y: 0,
- width: image.width,
- height: image.height,
- screen_width: image.width,
- screen_height: image.height,
- }
- }
-}
-
pub struct SubImage {
pub x: usize,
pub y: usize,
@@ -36,53 +23,3 @@ pub struct SubImage {
pub width: usize,
pub height: usize,
}
-
-pub trait QuadSplit {
- fn quad_split(&self) -> [SubImage; 4];
-}
-
-impl QuadSplit for SubImage {
- fn quad_split(&self) -> [SubImage; 4] {
- let half_w = self.width / 2;
- let half_h = self.height / 2;
-
- [
- // Top Left
- SubImage {
- x: self.x,
- y: self.y,
- width: half_w,
- height: half_h,
- screen_width: self.screen_width,
- screen_height: self.screen_height,
- },
- // Top Right
- SubImage {
- x: self.x + half_w,
- y: self.y,
- width: half_w,
- height: half_h,
- screen_width: self.screen_width,
- screen_height: self.screen_height,
- },
- // Bottom Left
- SubImage {
- x: self.x,
- y: self.y + half_h,
- width: half_w,
- height: half_h,
- screen_width: self.screen_width,
- screen_height: self.screen_height,
- },
- // Bottom Right
- SubImage {
- x: self.x + half_w,
- y: self.y + half_h,
- width: half_w,
- height: half_h,
- screen_width: self.screen_width,
- screen_height: self.screen_height,
- },
- ]
- }
-}