summaryrefslogtreecommitdiff
path: root/AnimationRender/F_Draw.c
blob: fb9088375e830dcbe9806fa3dd4020c9e467dbf4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "F_Draw.h"
#include "../FrameRender/FrameRender.h"
#include <stdlib.h>
#include <string.h>

void Draw_callback(Draw* self, struct FrameContext* fc) {
	if (self->startFrame <= fc->frame && fc->frame <= self->endFrame) {
		RenderFrame(fc->frameBuffer, self->callbacks, self->sizeCallbacks);
		ppm6_write(stdout, fc->frameBuffer);
	}
}

FrameCallback* Draw_setup(Draw obj) {
	FrameCallback* fca = malloc(sizeof(struct FrameCallback));

	fca->callback = (FrameCallback_callback)Draw_callback;
	fca->callback_self = malloc(sizeof(obj));
	memcpy(fca->callback_self, &obj, sizeof(obj));

	return fca;
}