libmonochrome/src/ML_background.c

42 lines
1.2 KiB
C

/* ************************************************************************** */
/* _____ _ */
/* ML_background.c |_ _|__ _ _| |__ ___ _ _ */
/* | Project : CaphiOS | |/ _ \| | | | '_ \ / _ \ | | | */
/* | | (_) | |_| | | | | __/ |_| | */
/* By: thomas <thomas@touhey.fr> |_|\___/ \__,_|_| |_|\___|\__, |.fr */
/* Last updated: 2016/05/23 23:38:59 |___/ */
/* */
/* ************************************************************************** */
#include <monochrome/internals.h>
/*
** ML_background:
** Draws a sprite on the whole screen.
** @bmp: link to the bmp data (must be 128*16 bytes long)
*/
void ML_background(const void *bmp, ML_Mode mode)
{
unsigned int *v = ML_vram_adress();
const unsigned int *b = bmp;
int w = 0;
switch (mode) {
case ML_MAND:
for (; w < 256; w++)
*v++ &= *b++;
break;
case ML_MOR:
for (; w < 256; w++)
*v++ |= *b++;
break;
case ML_MXOR:
for (; w < 256; w++)
*v++ ^= *b++;
break;
}
}