From 4416b53c3f01b5d1002b3240db7da283d9ca8cc3 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 14 Jan 2021 01:04:43 -0500 Subject: [PATCH] experiment with types... --- src/color.rs | 35 +++++++++++++++++++++++++++++++++++ src/point.rs | 48 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 67 insertions(+), 16 deletions(-) diff --git a/src/color.rs b/src/color.rs index eaf1cd8..c26e1f0 100644 --- a/src/color.rs +++ b/src/color.rs @@ -41,4 +41,39 @@ impl Color { Color::Custom {r, g, b} => *b, } } + + + pub fn get_u32_r(&self) -> u32 { + match &self { + Color::Black => 0, + Color::White => 255, + Color::Red => 255, + Color::Green => 0, + Color::Blue => 0, + Color::Custom {r, g, b} => *r as u32, + } + } + + pub fn get_u32_g(&self) -> u32 { + match &self { + Color::Black => 0, + Color::White => 255, + Color::Red => 0, + Color::Green => 255, + Color::Blue => 0, + Color::Custom {r, g, b} => *g as u32, + } + } + + pub fn get_u32_b(&self) -> u32 { + match &self { + Color::Black => 0, + Color::White => 255, + Color::Red => 0, + Color::Green => 0, + Color::Blue => 255, + Color::Custom {r, g, b} => *b as u32, + } + } + } diff --git a/src/point.rs b/src/point.rs index 5f44604..fc92203 100644 --- a/src/point.rs +++ b/src/point.rs @@ -9,10 +9,14 @@ pub struct Point { pub y: f32, pub z: f32, _unused: f32, - pub r: f32, - pub g: f32, - pub b: f32, - pub a: f32, + //pub r: f32, + //pub g: f32, + //pub b: f32, + //pub a: f32, + pub r: u32, + pub g: u32, + pub b: u32, + pub a: u32, } impl Point { @@ -23,10 +27,14 @@ impl Point { y, z, _unused: 0.0f32, - r: color.get_f32_r(), - g: color.get_f32_g(), - b: color.get_f32_b(), - a: 1.0f32, + //r: color.get_f32_r(), + //g: color.get_f32_g(), + //b: color.get_f32_b(), + //a: 1.0f32, + r: color.get_u32_r(), + g: color.get_u32_g(), + b: color.get_u32_b(), + a: 1, } } @@ -43,10 +51,14 @@ impl Point { y, z, _unused: 0.0f32, - r: color.get_f32_r(), - g: color.get_f32_g(), - b: color.get_f32_b(), - a: 1.0f32, + //r: color.get_f32_r(), + //g: color.get_f32_g(), + //b: color.get_f32_b(), + //a: 1.0f32, + r: color.get_u32_r(), + g: color.get_u32_g(), + b: color.get_u32_b(), + a: 1, } } @@ -57,10 +69,14 @@ impl Point { buf.put_f32(self.y); buf.put_f32(self.z); buf.put_f32(0.0f32); // Unused - buf.put_f32(self.r); - buf.put_f32(self.g); - buf.put_f32(self.b); - buf.put_f32(self.a); + //buf.put_f32(self.r); + //buf.put_f32(self.g); + //buf.put_f32(self.b); + //buf.put_f32(self.a); + buf.put_u32(self.r); + buf.put_u32(self.g); + buf.put_u32(self.b); + buf.put_u32(self.a); buf.to_vec() }