summary refs log tree commit diff
path: root/src/GFX/Image/PPMParser.cpp
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2023-07-08 01:20:53 +0200
committerMel <einebeere@gmail.com>2023-07-08 01:20:53 +0200
commit41fbca10f6c6cdd9c1623f1347e7ecb40f5e7f59 (patch)
tree7a41651c7c1eeecfc422395cbdb4b26ac619eaf9 /src/GFX/Image/PPMParser.cpp
parentf8c0fb7e5d4cd0139b2b287980149eca688803bd (diff)
downloadmeowcraft-41fbca10f6c6cdd9c1623f1347e7ecb40f5e7f59.tar.zst
meowcraft-41fbca10f6c6cdd9c1623f1347e7ecb40f5e7f59.zip
Add crude texture transparency
Diffstat (limited to 'src/GFX/Image/PPMParser.cpp')
-rw-r--r--src/GFX/Image/PPMParser.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/GFX/Image/PPMParser.cpp b/src/GFX/Image/PPMParser.cpp
index f002db8..1f62871 100644
--- a/src/GFX/Image/PPMParser.cpp
+++ b/src/GFX/Image/PPMParser.cpp
@@ -68,12 +68,18 @@ RawImage::Pixel PPMParser::parse_pixel(uint8_t max_color) {
 
     auto map_to_range = [=](uint64_t s) -> uint8_t { return s * 255 / max_color; };
 
-    RawImage::Pixel pixel{};
-    pixel.r = map_to_range(r_sample);
-    pixel.g = map_to_range(g_sample);
-    pixel.b = map_to_range(b_sample);
+    RawImage::Pixel p{
+        map_to_range(r_sample),
+        map_to_range(g_sample),
+        map_to_range(b_sample),
+        255
+    };
+
+    if (p.r == alpha_color.r && p.g == alpha_color.g && p.b == alpha_color.b) {
+        p.a = 0;
+    }
 
-    return pixel;
+    return p;
 }
 
 uint64_t PPMParser::parse_sample() {