xref: /reactos/win32ss/gdi/diblib/MaskCopy.c (revision c2c66aff)
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
Dib_MaskCopy(PBLTDATA pBltData)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 
36