From fec9d432c13f72af24d78841779d73df18e86a73 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 28 Mar 2026 22:52:45 +0200 Subject: feat: Add object interpolations, stabilize interpolation --- graphics.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'graphics.c') diff --git a/graphics.c b/graphics.c index 72089fc..d42e104 100644 --- a/graphics.c +++ b/graphics.c @@ -62,12 +62,17 @@ main() { u32 sizeCallbacks = sizeof(callbacks) / sizeof(*callbacks); TransformCenter img1 = { .centerX = width / 8, .centerY = height * 3/5 }, - img2 = { .centerX = height * 3/5, .centerY = width / 8 }; + img2 = { .centerX = height / 8, .centerY = width / 8 }; TransformRotate r1 = { .angle = M_PI / 8 }, r2 = { .angle = M_PI * 2 }; + + Circle c1 = { .radius = 50, .color = 0x00FFFFFF, }, c2 = { .radius = 50, .color = 0xFFFFFFFF, }; + const FrameCallback* frameCallbacks[] = { - Draw_setup((Draw){ - .callbacks = (const PixelCallback**)callbacks, .sizeCallbacks = sizeCallbacks, + Interpolate_setup((Interpolate){ + .startValue = &c1, .endValue = &c2, + .value = callbacks[8]->callback_self, + .interpolate = (f_interpolate)Interpolate_Circle, }), FrameRange_setup((FrameRange){ .startFrame = 25, .endFrame = 125, @@ -86,6 +91,10 @@ main() { .value = callbacks[4]->callback_self, .interpolate = (f_interpolate)Interpolate_TransformRotate, }), + NULL, + Draw_setup((Draw){ + .callbacks = (const PixelCallback**)callbacks, .sizeCallbacks = sizeCallbacks, + }), }; u32 sizeFrameCallbacks = sizeof(frameCallbacks) / sizeof(*frameCallbacks); -- cgit v1.2.3