summaryrefslogtreecommitdiff
path: root/FrameRender/P_Checker.c
blob: 74862f002f6f7e431827c776fdb4ca2f99535e1c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "P_Checker.h"
#include "PixelCallback.h"
#include <stdlib.h>
#include <string.h>

void Checker_callback(Checker* self, struct PixelContext* fc) {
	u32 x = fc->x / self->squareSize;
	u32 y = fc->y / self->squareSize;

	if ((x + y) % 2 == 0) {
		ARGB_merge(&fc->pixel, self->colorA);
	}
	else {
		ARGB_merge(&fc->pixel, self->colorB);
	}
}

PixelCallback* Checker_setup(Checker obj) {
	PixelCallback* pca = malloc(sizeof(struct PixelCallback));

	pca->callback = (PixelCallback_callback)Checker_callback;
	pca->callback_self = malloc(sizeof(obj));
	memcpy(pca->callback_self, &obj, sizeof(obj));

	return pca;
}