From 52d6a488137736630d35ebddb6cc5b8c118b2e07 Mon Sep 17 00:00:00 2001 From: pacien Date: Sat, 2 Dec 2017 15:20:34 +0100 Subject: Impl. color blending and unit test, minor API change Signed-off-by: pacien --- src/blender/blender.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/blender/blender.c (limited to 'src') diff --git a/src/blender/blender.c b/src/blender/blender.c new file mode 100644 index 0000000..0e0835d --- /dev/null +++ b/src/blender/blender.c @@ -0,0 +1,15 @@ +#include "blender/blender.h" +#include +#include + +static ColorComponent blend_components(ColorComponent origin, ColorComponent target, TimeVector frame) { + return (ColorComponent) sqrt((TIME_UNIT - frame) * pow(origin, 2) + frame * pow(target, 2)); +} + +Color blender_blend_colors(Color origin, Color target, TimeVector frame) { + assert(frame >= TIME_ORIGIN && frame <= TIME_UNIT); + 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)}}; +} -- cgit v1.2.3