From 09bc4d93261238ab7d993a5d5649a54d67539753 Mon Sep 17 00:00:00 2001 From: Amy Retzerau Date: Sat, 20 Dec 2025 21:08:01 +0100 Subject: [PATCH] fix: reduced ram usage --- main.cpp | 2 +- rendertarget.hpp | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/main.cpp b/main.cpp index bd20f35..a1892b4 100644 --- a/main.cpp +++ b/main.cpp @@ -98,7 +98,7 @@ int main(int argc, char *argv[]) { std::function addTo = [&target](int start, uint32_t *arr) { for (int c = 0; c < 3; c++) { - arr[c] += target.pixels[start + c].i >> SHIFT_AMOUNT; + arr[c] += target.pixels[start + c]; } }; diff --git a/rendertarget.hpp b/rendertarget.hpp index 195ffed..9139eb7 100644 --- a/rendertarget.hpp +++ b/rendertarget.hpp @@ -10,22 +10,20 @@ class Rendertarget { const int height; Rendertarget(int width, int height) : width(width), height(height) { - pixels = new decimal[width * height * 3]; + pixels = new uint8_t[width * height * 3]; depth = new decimal[width * height]; + for (int i = 0; i < width * height * 3; i++) { + pixels[i] = 0; + } } void set(int x, int y, vec3 val) { int start = (width * y + x) * 3; for (int i = 0; i < 3; i++) { - pixels[start + i] = val[i]; - } - } - void get(int x, int y, vec3 *val) { - int start = (width * y + x) * 3; - for (int i = 0; i < 3; i++) { - (*val)[i] = pixels[start + i]; + pixels[start + i] = (uint8_t)(val[i].i >> SHIFT_AMOUNT); } } + decimal getDepth(int x, int y) { return depth[width * y + x]; } void setDepth(int x, int y, decimal val) { depth[width * y + x] = val; } @@ -35,7 +33,7 @@ class Rendertarget { } } - decimal *pixels; + uint8_t *pixels; decimal *depth; };