diff options
| author | Jakob L. Kreuze <jakob@memeware.net> | 2018-06-11 22:28:09 -0400 |
|---|---|---|
| committer | Jakob L. Kreuze <jakob@memeware.net> | 2018-06-11 22:28:09 -0400 |
| commit | c1fcfc3a58fc0061fb9262c95d728063029e1c2f (patch) | |
| tree | 984f978e03cf9923b396add798f2631b5f3c6f82 /src | |
| parent | fe14bab96a780a2980cc6f51135ebd5dfa79667e (diff) | |
Working ART to bitmap conversion. Apparently I suck at bitwise math.
Diffstat (limited to 'src')
| -rw-r--r-- | src/bitmap.rs | 8 | ||||
| -rw-r--r-- | src/main.rs | 15 |
2 files changed, 4 insertions, 19 deletions
diff --git a/src/bitmap.rs b/src/bitmap.rs index afc78c5..8773a66 100644 --- a/src/bitmap.rs +++ b/src/bitmap.rs @@ -103,12 +103,12 @@ impl BitmapManager { // FIXME: As of right now it's RGB, not ARGB. for i in 0..256 { - let r = data[(i * 3)] as u32; - let g = data[(i * 3) + 1] as u32; - let b = data[(i * 3) + 2] as u32; + let r = data[(i * 3)] << 2; + let g = data[(i * 3) + 1] << 2; + let b = data[(i * 3) + 2] << 2; // FIXME: Also, I'm not a fan of this manual shifting shit. - palette.push(r << 4 | g << 2 | b << 0); + palette.push(((r as u32) << 16) | ((g as u32) << 8) | (b as u32)); } palette diff --git a/src/main.rs b/src/main.rs index 8880719..3a95beb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -40,19 +40,4 @@ fn main() { let bitmap_manager = bitmap::BitmapManager::new(&group_manager).unwrap(); let _tile = bitmap_manager.get_tile(277).unwrap(); - - // use std::fs::File; - // use std::io::Write; - // let mut file = File::create("/tmp/test.data").unwrap(); - // let mut data: Vec<u8> = Vec::new(); - // for pixel in tile.data.iter() { - // let r = pixel / 16; - // let g = pixel / 4; - // let b = pixel & 0xff; - // data.push(r as u8); - // data.push(g as u8); - // data.push(b as u8); - // } - // println!("{} x {}", tile.width, tile.height); - // file.write_all(&data); } |