41 lines
1.2 KiB
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;
|
|
}
|
|
}
|