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 --- include/painter/rasterizer.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 include/painter/rasterizer.h (limited to 'include/painter') diff --git a/include/painter/rasterizer.h b/include/painter/rasterizer.h new file mode 100644 index 0000000..204d616 --- /dev/null +++ b/include/painter/rasterizer.h @@ -0,0 +1,41 @@ +#ifndef UPEM_MORPHING_RASTERIZER +#define UPEM_MORPHING_RASTERIZER + +/** + * File: rasterizer.h + */ + +#include "painter/canvas.h" +#include "morpher/morphing.h" + +/** + * Struct: RasterizationContext + */ +typedef struct { + Canvas *result, *source, *target; + TimeVector frame; +} RasterizationContext; + +/** + * Struct: TriangleContext + */ +typedef struct { + Triangle current, source, target; +} TriangleContext; + +/** + * Function: rasterize + * Rasterises a morphing from a source and a target image at the given time frame. + * + * Parameters: + * *source - source image canvas + * *target - target image canvas + * *m - reference morphing + * frame - time frame + * + * Returns: + * The drawn canvas, dynamically allocated + */ +Canvas *rasterize(Canvas *source, Canvas *target, Morphing *m, TimeVector frame); + +#endif -- cgit v1.2.3