diff options
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); } |
