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 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 src/blender/canvas.c (limited to 'src/blender') 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)}; -} -- cgit v1.2.3 From 190449ee18bec69b2e385dccd9bd42ddc83dd418 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 28 Dec 2017 01:22:41 +0100 Subject: Refactor and test color Signed-off-by: pacien --- src/blender/color.c | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 src/blender/color.c (limited to 'src/blender') diff --git a/src/blender/color.c b/src/blender/color.c deleted file mode 100644 index f92fba9..0000000 --- a/src/blender/color.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "blender/color.h" - -bool color_equals(Color c1, Color c2) { - return c1.rgba.r == c2.rgba.r && - c1.rgba.g == c2.rgba.g && - c1.rgba.b == c2.rgba.b && - c1.rgba.a == c2.rgba.a; -} -- cgit v1.2.3 From 330fd85db8c89c178621d978929d911bbe93fec7 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 28 Dec 2017 01:23:08 +0100 Subject: Refactor canvas blender into rasterizer Signed-off-by: pacien --- src/blender/blender.c | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 src/blender/blender.c (limited to 'src/blender') diff --git a/src/blender/blender.c b/src/blender/blender.c deleted file mode 100644 index 08cafa4..0000000 --- a/src/blender/blender.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "blender/blender.h" -#include -#include - -static inline ColorComponent blend_components(ColorComponent origin, ColorComponent target, TimeVector frame) { - // https://www.youtube.com/watch?v=LKnqECcg6Gw - return (ColorComponent) sqrt((TIME_UNIT - frame) * pow(origin, 2) + frame * pow(target, 2)); -} - -static inline Color blend_colors(Color origin, Color target, TimeVector frame) { - return (Color) {{blend_components(origin.rgba.r, target.rgba.r, frame), - blend_components(origin.rgba.g, target.rgba.g, frame), - blend_components(origin.rgba.b, target.rgba.b, frame), - blend_components(origin.rgba.a, target.rgba.a, frame)}}; -} - -void blender_blend_canvas(Canvas *canvas, Canvas *source, Canvas *target, Morphing *morphing, TimeVector frame) { - IntVector flat_dim; - CartesianVector dim, point; - CartesianMapping mapping; - Color pixel; - - dim = morphing->dim; - - assert(dim.x > 0 && dim.y > 0); - assert(vector_equals(dim, canvas_get_dim(canvas))); - assert(vector_equals(dim, canvas_get_dim(source))); - assert(vector_equals(dim, canvas_get_dim(target))); - assert(frame >= TIME_ORIGIN && frame <= TIME_UNIT); - - for (flat_dim = (dim.x - 1) * (dim.y - 1); flat_dim >= 0; --flat_dim) { - point.x = flat_dim % dim.y; - point.y = flat_dim / dim.y; - - mapping = (CartesianMapping) {point, point}; - pixel = blend_colors(canvas_get_pixel(source, mapping.origin), canvas_get_pixel(target, mapping.target), frame); - canvas_set_pixel(canvas, point, pixel); - } -} -- cgit v1.2.3