#ifndef _ANIMATION #define _ANIMATION #include "RGBImage.h" struct AnimationEventNode; typedef struct AnimationEventNode AnimationEventNode; typedef struct Animation { u32 width; u32 height; u32 frameCount; u32 duplicateFrames; RGBImage frameBuffer; AnimationEventNode* events; } Animation; typedef ARGB (*PixelRenderer)(const Animation* anim, u32 currentFrame, ARGB pixel, i32 row, i32 col, void* priv); AnimationEventNode* AnimationEventNode_new(u32 startFrame, u32 endFrame, PixelRenderer renderCallback, void* privateData); Animation Animation_new(u32 width, u32 height, u32 frameCount); void Animation_free(Animation anim); void Animation_delete(Animation* anim); void Animation_pushEvent(Animation* anim, u32 startFrame, u32 endFrame, PixelRenderer renderer, void* privateData); void Animation_render(Animation* anim); #endif /* _ANIMATION */