Mirai's Miscellaneous Misadventures

M29 / engines / check.c

1#include <mimimi/engines.h>
2#include <mimimi/malloc.h>
3#include <mimimi/behaviors.h>
4#include <mimimi/chapters.h>
5#include <mimimi/geometry.h>
6
7static void *mimimi_check_texture(void *data, struct mimimi_image *image)
8{
9	(void) data;
10	return image;
11}
12
13static void mimimi_check_invalidate(void *data, void *texture)
14{
15	(void) data;
16	(void) texture;
17}
18
19static void mimimi_check_stamp(void *data, int x1, int y1, void *texture)
20{
21	(void) data;
22	(void) x1;
23	(void) y1;
24	(void) texture;
25}
26
27void mimimi_check(struct mimimi_chapter *(*start)(struct mimimi_engine *engine))
28{
29	static struct mimimi_size size = {512, 256};
30	struct mimimi_engine engine;
31	engine.texture = &mimimi_check_texture;
32	engine.invalidate = &mimimi_check_invalidate;
33	engine.stamp = &mimimi_check_stamp;
34	engine.size = &size;
35	engine.allocator = mimimi_malloc;
36	struct mimimi_chapter *chapter = (*start)(&engine);
37	struct mimimi_behavior *behavior = chapter->behavior;
38	(*behavior->finish)(behavior->data);
39}