mirror of
https://github.com/reactos/reactos.git
synced 2024-11-11 01:04:11 +00:00
36 lines
887 B
C
36 lines
887 B
C
|
|
||
|
#include "DibLib.h"
|
||
|
|
||
|
extern PFN_DIBFUNCTION gapfnBitBlt_SRCCOPY[7][7];
|
||
|
extern PFN_DIBFUNCTION gapfnBitBlt_SRCINVERT[7][7];
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
Dib_MaskCopy(PBLTDATA pBltData)
|
||
|
{
|
||
|
pBltData->siSrc = pBltData->siMsk;
|
||
|
|
||
|
/* Create an XLATEOBJ */
|
||
|
pBltData->pxlo = 0;// FIXME: use 1bpp -> destbpp
|
||
|
|
||
|
/* 4 possibilities... */
|
||
|
if (pBltData->rop4 == MAKEROP4(BLACKNESS, WHITENESS))
|
||
|
{
|
||
|
gapfnBitBlt_SRCCOPY[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
|
||
|
}
|
||
|
else if (pBltData->rop4 == MAKEROP4(WHITENESS, BLACKNESS))
|
||
|
{
|
||
|
gapfnBitBlt_SRCINVERT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
|
||
|
}
|
||
|
else if (pBltData->rop4 == MAKEROP4(BLACKNESS, BLACKNESS))
|
||
|
{
|
||
|
Dib_BitBlt_BLACKNESS(pBltData);
|
||
|
}
|
||
|
else // if (pBltData->rop4 == MAKEROP4(WHITENESS, WHITENESS))
|
||
|
{
|
||
|
Dib_BitBlt_WHITENESS(pBltData);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|