summaryrefslogtreecommitdiff
path: root/graphics.c
diff options
context:
space:
mode:
Diffstat (limited to 'graphics.c')
-rw-r--r--graphics.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/graphics.c b/graphics.c
index d42e104..d7e5ebd 100644
--- a/graphics.c
+++ b/graphics.c
@@ -6,6 +6,7 @@
#include "AnimationRender/F_Draw.h"
#include "AnimationRender/F_FrameRange.h"
#include "AnimationRender/F_Interpolate.h"
+#include "AnimationRender/FrameCallback.h"
#include "FrameRender/FrameRender.h"
#include "FrameRender/P_Checker.h"
#include "FrameRender/P_Circle.h"
@@ -24,7 +25,9 @@ main() {
u32 width = 512;
u32 height = 512;
- RGBImage bclc = ppm_read(fopen("bclc.ppm", "rb"));
+ FILE* fbclc = fopen("bclc.ppm", "rb");
+ RGBImage bclc = ppm_read(fbclc);
+ fclose(fbclc);
PixelCallback* callbacks[] = {
Checker_setup((Checker){
@@ -68,7 +71,7 @@ main() {
Circle c1 = { .radius = 50, .color = 0x00FFFFFF, }, c2 = { .radius = 50, .color = 0xFFFFFFFF, };
- const FrameCallback* frameCallbacks[] = {
+ FrameCallback* frameCallbacks[] = {
Interpolate_setup((Interpolate){
.startValue = &c1, .endValue = &c2,
.value = callbacks[8]->callback_self,
@@ -98,7 +101,7 @@ main() {
};
u32 sizeFrameCallbacks = sizeof(frameCallbacks) / sizeof(*frameCallbacks);
- RenderAnimation(width, height, 150, frameCallbacks, sizeFrameCallbacks);
+ RenderAnimation(width, height, 150, (const FrameCallback**)frameCallbacks, sizeFrameCallbacks);
RGBImage_delete(&bclc);
for (u32 i = 0; i < sizeCallbacks; ++i) {
@@ -106,6 +109,11 @@ main() {
free(callbacks[i]->callback_self);
free(callbacks[i]);
}
+ for (u32 i = 0; i < sizeFrameCallbacks; ++i) {
+ if (frameCallbacks[i] == NULL) continue;
+ free(frameCallbacks[i]->callback_self);
+ free(frameCallbacks[i]);
+ }
return 0;
}