Sync with trunk r58033.
[reactos.git] / win32ss / gdi / diblib / MaskCopy.c
1
2 #include "DibLib.h"
3
4 extern PFN_DIBFUNCTION gapfnBitBlt_SRCCOPY[7][7];
5 extern PFN_DIBFUNCTION gapfnBitBlt_SRCINVERT[7][7];
6
7 VOID
8 FASTCALL
9 Dib_MaskCopy(PBLTDATA pBltData)
10 {
11 pBltData->siSrc = pBltData->siMsk;
12
13 /* Create an XLATEOBJ */
14 pBltData->pxlo = 0;// FIXME: use 1bpp -> destbpp
15
16 /* 4 possibilities... */
17 if (pBltData->rop4 == MAKEROP4(BLACKNESS, WHITENESS))
18 {
19 gapfnBitBlt_SRCCOPY[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
20 }
21 else if (pBltData->rop4 == MAKEROP4(WHITENESS, BLACKNESS))
22 {
23 gapfnBitBlt_SRCINVERT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
24 }
25 else if (pBltData->rop4 == MAKEROP4(BLACKNESS, BLACKNESS))
26 {
27 Dib_BitBlt_BLACKNESS(pBltData);
28 }
29 else // if (pBltData->rop4 == MAKEROP4(WHITENESS, WHITENESS))
30 {
31 Dib_BitBlt_WHITENESS(pBltData);
32 }
33 }
34
35