@pch, post #1
@pch, post #4
/* Odczyt */
PLANEPTR ReadColorMask(UBYTE color)
{
PLANEPTR mask = AllocRaster(width, height);
struct BitMap aux;
InitBitMap(&aux, depth, width, height);
WORD i;
BltClear(mask, RASSIZE(width, height), 0x04 | (0xffff << 16));
for (i = 0; i < depth; i++)
{
aux.Planes[i] = mask;
}
for (i = 0; i < depth; i++)
{
UBYTE minterm;
if (color & (1 << i))
{
minterm = ABC;
}
else
{
minterm = ANBC;
}
BltBitMap(bm, 0, 0, &aux, 0, 0, width, height, minterm, 1 << i, NULL);
}
return(mask);
}
/* Zapis */
VOID WriteColorMask(PLANEPTR mask, UBYTE color)
{
struct BitMap aux;
InitBitMap(&aux, depth, width, height);
WORD i;
for (i = 0; i < depth; i++)
{
aux.Planes[i] = mask;
}
for (i = 0; i < depth; i++)
{
UBYTE minterm;
if (color & (1 << i))
{
minterm = ABC|ABNC|ANBC;
}
else
{
minterm = ANBC;
}
BltBitMap(&aux, 0, 0, bm, 0, 0, width, height, minterm, 1 << i, NULL);
}
} @pch, post #6
PLANEPTR mask2 = ReadColorMask(2); PLANEPTR mask10 = ReadColorMask(10); WriteColorMask(mask10, 2); WriteColorMask(mask2, 10);