// // Created by william on 16/05/24. // #include #include #include #include "canvas.h" Canvas canvas_init(int width, int height) { assert(width > 0); assert(height > 0); Canvas canvas; canvas.width = width; canvas.height = height; int size = width * height; canvas.pixels = malloc(sizeof(Pixel) * size); return canvas; } void canvas_uninit(Canvas *canvas) { assert(canvas != NULL); assert(canvas->pixels != NULL); free(canvas->pixels); } void canvas_draw(Canvas *canvas, Pixel pixel, int x, int y) { assert(x >= 0); assert(x < canvas->width); assert(y >= 0); assert(y < canvas->height); int pixel_index = x + y * canvas->width; canvas->pixels[pixel_index] = pixel; } void canvas_reset(Canvas *canvas) { memset(canvas->pixels, 0, sizeof(Pixel) * (canvas->width * canvas->height)); }