summaryrefslogtreecommitdiff
path: root/Animation.c
diff options
context:
space:
mode:
Diffstat (limited to 'Animation.c')
-rw-r--r--Animation.c13
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);
}