diff options
| author | Syndamia <kamen@syndamia.com> | 2026-03-28 22:52:45 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2026-03-28 22:52:45 +0200 |
| commit | fec9d432c13f72af24d78841779d73df18e86a73 (patch) | |
| tree | a7d16a627d102bf339336dba0379c237deaac935 /graphics.c | |
| parent | 066c47c63f10df07fb31487e8cae325aec3ffa8e (diff) | |
| download | ppm_graphics-fec9d432c13f72af24d78841779d73df18e86a73.tar ppm_graphics-fec9d432c13f72af24d78841779d73df18e86a73.tar.gz ppm_graphics-fec9d432c13f72af24d78841779d73df18e86a73.zip | |
feat: Add object interpolations, stabilize interpolation
Diffstat (limited to 'graphics.c')
| -rw-r--r-- | graphics.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -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); |
