From c970da3f5830fae5b4d98dcdcc8d34d678ec0434 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 28 Dec 2017 01:22:03 +0100 Subject: Refactor canvas Signed-off-by: pacien --- src/blender/canvas.c | 23 ----------------------- src/painter/canvas.c | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 23 deletions(-) delete mode 100644 src/blender/canvas.c create mode 100644 src/painter/canvas.c (limited to 'src') diff --git a/src/blender/canvas.c b/src/blender/canvas.c deleted file mode 100644 index b7cd9dc..0000000 --- a/src/blender/canvas.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "blender/canvas.h" - -void canvas_init(Canvas *canvas, IntVector width, IntVector height) { - canvas->mlv = MLV_create_image(width, height); -} - -void canvas_free(Canvas *canvas) { - MLV_free_image(canvas->mlv); -} - -void canvas_set_pixel(Canvas *canvas, CartesianVector position, Color color) { - MLV_set_pixel_on_image(position.x, position.y, color.mlv, canvas->mlv); -} - -Color canvas_get_pixel(Canvas *canvas, CartesianVector position) { - int r, g, b, a; - MLV_get_pixel_on_image(canvas->mlv, position.x, position.y, &r, &g, &b, &a); - return (Color) {{r, g, b, a}}; -} - -CartesianVector canvas_get_dim(Canvas *canvas) { - return (CartesianVector) {MLV_get_image_width(canvas->mlv), MLV_get_image_height(canvas->mlv)}; -} diff --git a/src/painter/canvas.c b/src/painter/canvas.c new file mode 100644 index 0000000..53deeb9 --- /dev/null +++ b/src/painter/canvas.c @@ -0,0 +1,27 @@ +#include "painter/canvas.h" +#include "common/mem.h" + +Canvas *canvas_create(IntVector width, IntVector height) { + Canvas *c = malloc_or_die(sizeof(Canvas)); + c->mlv = MLV_create_image(width, height); + return c; +} + +void canvas_destroy(Canvas *c) { + MLV_free_image(c->mlv); + free(c); +} + +void canvas_set_pixel(Canvas *c, CartesianVector pos, Color color) { + MLV_set_pixel_on_image(pos.x, pos.y, color.mlv, c->mlv); +} + +Color canvas_get_pixel(Canvas *c, CartesianVector pos) { + int r, g, b, a; + MLV_get_pixel_on_image(c->mlv, pos.x, pos.y, &r, &g, &b, &a); + return (Color) {{a, b, g, r}}; +} + +CartesianVector canvas_get_dim(Canvas *c) { + return (CartesianVector) {MLV_get_image_width(c->mlv), MLV_get_image_height(c->mlv)}; +} -- cgit v1.2.3