summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpacien2017-12-28 01:22:03 +0100
committerpacien2017-12-28 01:22:03 +0100
commitc970da3f5830fae5b4d98dcdcc8d34d678ec0434 (patch)
tree3d1205342e104e89c802fa48c2d6df1f9fed32cc /src
parentc29e4ecb7de4cb10f48b2526bc1abae847c718e2 (diff)
downloadmorpher-c970da3f5830fae5b4d98dcdcc8d34d678ec0434.tar.gz
Refactor canvas
Signed-off-by: pacien <pacien.trangirard@pacien.net>
Diffstat (limited to 'src')
-rw-r--r--src/blender/canvas.c23
-rw-r--r--src/painter/canvas.c27
2 files changed, 27 insertions, 23 deletions
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 @@
1#include "blender/canvas.h"
2
3void canvas_init(Canvas *canvas, IntVector width, IntVector height) {
4 canvas->mlv = MLV_create_image(width, height);
5}
6
7void canvas_free(Canvas *canvas) {
8 MLV_free_image(canvas->mlv);
9}
10
11void canvas_set_pixel(Canvas *canvas, CartesianVector position, Color color) {
12 MLV_set_pixel_on_image(position.x, position.y, color.mlv, canvas->mlv);
13}
14
15Color canvas_get_pixel(Canvas *canvas, CartesianVector position) {
16 int r, g, b, a;
17 MLV_get_pixel_on_image(canvas->mlv, position.x, position.y, &r, &g, &b, &a);
18 return (Color) {{r, g, b, a}};
19}
20
21CartesianVector canvas_get_dim(Canvas *canvas) {
22 return (CartesianVector) {MLV_get_image_width(canvas->mlv), MLV_get_image_height(canvas->mlv)};
23}
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 @@
1#include "painter/canvas.h"
2#include "common/mem.h"
3
4Canvas *canvas_create(IntVector width, IntVector height) {
5 Canvas *c = malloc_or_die(sizeof(Canvas));
6 c->mlv = MLV_create_image(width, height);
7 return c;
8}
9
10void canvas_destroy(Canvas *c) {
11 MLV_free_image(c->mlv);
12 free(c);
13}
14
15void canvas_set_pixel(Canvas *c, CartesianVector pos, Color color) {
16 MLV_set_pixel_on_image(pos.x, pos.y, color.mlv, c->mlv);
17}
18
19Color canvas_get_pixel(Canvas *c, CartesianVector pos) {
20 int r, g, b, a;
21 MLV_get_pixel_on_image(c->mlv, pos.x, pos.y, &r, &g, &b, &a);
22 return (Color) {{a, b, g, r}};
23}
24
25CartesianVector canvas_get_dim(Canvas *c) {
26 return (CartesianVector) {MLV_get_image_width(c->mlv), MLV_get_image_height(c->mlv)};
27}