diff options
| author | Syndamia <kamen@syndamia.com> | 2026-03-16 20:59:04 +0200 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2026-03-16 20:59:04 +0200 |
| commit | 3e9c46f82430d7bb609cebb57be17c26cba4acb5 (patch) | |
| tree | 5b03be91eb637b2ce7fb37ac2c67319d0978dbf8 /Animation.c | |
| parent | e6842e44159d7cc9b1c32dd2baae4df164fa81d2 (diff) | |
| download | ppm_graphics-3e9c46f82430d7bb609cebb57be17c26cba4acb5.tar ppm_graphics-3e9c46f82430d7bb609cebb57be17c26cba4acb5.tar.gz ppm_graphics-3e9c46f82430d7bb609cebb57be17c26cba4acb5.zip | |
chore: Rework renderer functions to use a struct instead of different arguments
Diffstat (limited to 'Animation.c')
| -rw-r--r-- | Animation.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Animation.c b/Animation.c index a67c22e..2dc6380 100644 --- a/Animation.c +++ b/Animation.c @@ -75,13 +75,22 @@ Animation_pushEvent(Animation* anim, u32 startFrame, u32 endFrame, PixelRenderer void Animation_render(Animation* anim) { - for (int currFrame = 0; currFrame < anim->frameCount; ++currFrame) { + for (u32 currFrame = 0; currFrame < anim->frameCount; ++currFrame) { if (anim->events != NULL) for (i32 r = 0; r < anim->frameBuffer.width; ++r) for (i32 c = 0; c < anim->frameBuffer.height; ++c) { for (AnimationEventNode* aen = anim->events; aen != NULL && aen->startFrame <= currFrame; aen = aen->next) { ARGB* pixel = RGBImage_at(anim->frameBuffer, r, c); - ARGB newPixel = aen->renderCallback(anim, currFrame, *pixel, r, c, aen->privateData); + ARGB newPixel = aen->renderCallback(anim, (PixelRendererParams){ + .frame = { + .current = currFrame, + .start = aen->startFrame, + .end = aen->endFrame, + }, + .pixel = *pixel, + .row = r, .col = c, + .priv = aen->privateData, + }); ARGB_merge(pixel, newPixel); } |
