libmonochrome/src/ML_pixel.c

41 lines
1.2 KiB
C

/* ************************************************************************** */
/* */
/* ML_pixel.c */
/* | Project : libmonochrome */
/* */
/* By: Pierre "PierrotLL" Le Gall <legallpierre89@gmail.com> */
/* Last updated: 2011/11/22 */
/* */
/* ************************************************************************** */
#include <monochrome/internals.h>
void ML_pixel(int x, int y, ML_Color color)
{
if (x & ~127 || y & ~63)
return;
char *vram = ML_vram_xy(x, y);
int bit = 128 >> (x & 7);
switch (color)
{
case ML_BLACK:
*vram |= bit;
break;
case ML_WHITE:
*vram &= ~bit;
break;
case ML_XOR:
*vram ^= bit;
break;
case ML_CHECKER:
if ((y & 1) ^ (x & 1))
*vram &= ~bit;
else
*vram |= bit;
break;
default:
break;
}
}