34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ML_pixel.c */
|
|
/* | Project : monochromelib */
|
|
/* */
|
|
/* 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)
|
|
{
|
|
char* vram = ML_vram_adress();
|
|
if(x&~127 || y&~63) return;
|
|
switch(color)
|
|
{
|
|
case ML_BLACK:
|
|
vram[(y<<4)+(x>>3)] |= 128>>(x&7);
|
|
break;
|
|
case ML_WHITE:
|
|
vram[(y<<4)+(x>>3)] &= ~(128>>(x&7));
|
|
break;
|
|
case ML_XOR:
|
|
vram[(y<<4)+(x>>3)] ^= 128>>(x&7);
|
|
break;
|
|
case ML_CHECKER:
|
|
if(y&1^x&1) vram[(y<<4)+(x>>3)] &= ~(128>>(x&7));
|
|
else vram[(y<<4)+(x>>3)] |= 128>>(x&7);
|
|
break;
|
|
}
|
|
}
|