Mirai's Miscellaneous Misadventures

M42 / engines / check.c

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