fix: reduced ram usage
This commit is contained in:
2
main.cpp
2
main.cpp
@@ -98,7 +98,7 @@ int main(int argc, char *argv[]) {
|
|||||||
std::function<void(int, uint32_t *)> addTo = [&target](int start,
|
std::function<void(int, uint32_t *)> addTo = [&target](int start,
|
||||||
uint32_t *arr) {
|
uint32_t *arr) {
|
||||||
for (int c = 0; c < 3; c++) {
|
for (int c = 0; c < 3; c++) {
|
||||||
arr[c] += target.pixels[start + c].i >> SHIFT_AMOUNT;
|
arr[c] += target.pixels[start + c];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -10,22 +10,20 @@ class Rendertarget {
|
|||||||
const int height;
|
const int height;
|
||||||
|
|
||||||
Rendertarget(int width, int height) : width(width), height(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];
|
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) {
|
void set(int x, int y, vec3 val) {
|
||||||
int start = (width * y + x) * 3;
|
int start = (width * y + x) * 3;
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
pixels[start + i] = val[i];
|
pixels[start + i] = (uint8_t)(val[i].i >> SHIFT_AMOUNT);
|
||||||
}
|
|
||||||
}
|
|
||||||
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];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
decimal getDepth(int x, int y) { return depth[width * y + x]; }
|
decimal getDepth(int x, int y) { return depth[width * y + x]; }
|
||||||
void setDepth(int x, int y, decimal val) { depth[width * y + x] = val; }
|
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;
|
decimal *depth;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user