summaryrefslogtreecommitdiff
path: root/graphics.c
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2026-03-28 22:36:57 +0200
committerSyndamia <kamen@syndamia.com>2026-03-28 22:36:57 +0200
commit40f33359c7b47d99c3386948bbeead8409a1a902 (patch)
tree6847f11c13b3eb87d0dadfab4fce68a2062fd09a /graphics.c
parentaf9f6ae727a15b965789717047a52e6857a3bd8d (diff)
downloadppm_graphics-40f33359c7b47d99c3386948bbeead8409a1a902.tar
ppm_graphics-40f33359c7b47d99c3386948bbeead8409a1a902.tar.gz
ppm_graphics-40f33359c7b47d99c3386948bbeead8409a1a902.zip
feat: Add rotation interpolation and add frame context reset on new frame
Diffstat (limited to 'graphics.c')
-rw-r--r--graphics.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/graphics.c b/graphics.c
index 0374957..8fceb1e 100644
--- a/graphics.c
+++ b/graphics.c
@@ -63,6 +63,8 @@ main() {
TransformCenter img1 = { .centerX = width / 8, .centerY = height * 3/5 },
img2 = { .centerX = height * 3/5, .centerY = width / 8 };
+
+ TransformRotate r1 = { .angle = M_PI / 8 }, r2 = { .angle = M_PI * 2 };
const FrameCallback* frameCallbacks[] = {
Draw_setup((Draw){
.callbacks = (const PixelCallback**)callbacks, .sizeCallbacks = sizeCallbacks,
@@ -75,6 +77,15 @@ main() {
.value = callbacks[10]->callback_self,
.interpolate = (f_interpolate)Interpolate_TransformCenter,
}),
+ NULL,
+ FrameRange_setup((FrameRange){
+ .startFrame = 0, .endFrame = 50,
+ }),
+ Interpolate_setup((Interpolate){
+ .startValue = &r1, .endValue = &r2,
+ .value = callbacks[4]->callback_self,
+ .interpolate = (f_interpolate)Interpolate_TransformRotate,
+ }),
};
u32 sizeFrameCallbacks = sizeof(frameCallbacks) / sizeof(*frameCallbacks);