Mirai's Miscellaneous Misadventures

M41 / engines / check.c

// copyright 2023 zamfofex
// license: AGPLv3 or later

#include <mimimi/engines.h>
#include <mimimi/malloc.h>
#include <mimimi/behaviors.h>
#include <mimimi/chapters.h>
#include <mimimi/geometry.h>

static void *mimimi_check_texture(void *data, struct mimimi_image *image)
{
	(void) data;
	return image;
}

static void mimimi_check_invalidate(void *data, void *texture)
{
	(void) data;
	(void) texture;
}

static void mimimi_check_stamp(void *data, int x1, int y1, void *texture)
{
	(void) data;
	(void) x1;
	(void) y1;
	(void) texture;
}

void mimimi_check(struct mimimi_chapter *(*start)(struct mimimi_engine *engine))
{
	static struct mimimi_size size = {512, 256};
	struct mimimi_engine engine;
	engine.texture = &mimimi_check_texture;
	engine.invalidate = &mimimi_check_invalidate;
	engine.stamp = &mimimi_check_stamp;
	engine.size = &size;
	engine.allocator = mimimi_malloc;
	struct mimimi_chapter *chapter = (*start)(&engine);
	struct mimimi_behavior *behavior = chapter->behavior;
	(*behavior->finish)(behavior->data);
}