diff --git a/src/render/bitmap.c b/src/render/bitmap.c index 0d0904e..049dbc4 100644 --- a/src/render/bitmap.c +++ b/src/render/bitmap.c @@ -13,7 +13,23 @@ bitmap_rich* bitmap_new_rich(uint32_t size_px_x, uint32_t size_px_y, uint32_t* c bmp->copy_dynamic = copy_color; bmp->layout_dynamic = copy_layout; + uint32_t size_octets = size_px_y * size_o_y * sizeof(uint32_t); + if (copy_color) + { + bmp->color=malloc(size_octets); + memcpy(bmp->color, color, size_octets); + } + else + bmp->color = color; + + if (copy_layout && layout) + { + bmp->layout=malloc(size_octets); + memcpy(bmp->layout, layout, size_octets); + } + else + bmp->layout = layout; } inline uint8_t bitmap_get_pixel_r(const bitmap_rich * bmp, uint32_t x, uint32_t y)