1 
2 #include "RopFunctions.h"
3 
4 typedef struct
5 {
6     ULONG iFormat;
7     PBYTE pvScan0;
8     PBYTE pjBase;
9     LONG lDelta;
10     LONG cjAdvanceY;
11     POINTL ptOrig;
12     BYTE jBpp;
13 } SURFINFO;
14 
15 typedef struct
16 {
17     SURFINFO siSrc;
18     SURFINFO siDst;
19     SURFINFO siPat;
20     SURFINFO siMsk;
21 
22     ULONG ulWidth;
23     ULONG ulHeight;
24     ULONG ulPatWidth;
25     ULONG ulPatHeight;
26     XLATEOBJ *pxlo;
27     PFN_XLATE pfnXlate;
28     ULONG rop4;
29     PFN_DOROP apfnDoRop[2];
30     ULONG ulSolidColor;
31     LONG dy;
32 } BLTDATA, *PBLTDATA;
33 
34 typedef
35 VOID
36 (FASTCALL
37 *PFN_DIBFUNCTION)(PBLTDATA pBltData);
38 
39 VOID FASTCALL Dib_BitBlt_NOOP(PBLTDATA pBltData);
40 VOID FASTCALL Dib_BitBlt_SOLIDFILL(PBLTDATA pBltData);
41 VOID FASTCALL Dib_BitBlt_BLACKNESS(PBLTDATA pBltData);
42 VOID FASTCALL Dib_BitBlt_WHITENESS(PBLTDATA pBltData);
43 VOID FASTCALL Dib_BitBlt_PATCOPY(PBLTDATA pBltData);
44 VOID FASTCALL Dib_BitBlt_NOTPATCOPY(PBLTDATA pBltData);
45 VOID FASTCALL Dib_BitBlt_DSTINVERT(PBLTDATA pBltData);
46 VOID FASTCALL Dib_BitBlt_SRCCOPY(PBLTDATA pBltData);
47 VOID FASTCALL Dib_BitBlt_NOTSRCCOPY(PBLTDATA pBltData);
48 VOID FASTCALL Dib_BitBlt_SRCERASE(PBLTDATA pBltData);
49 VOID FASTCALL Dib_BitBlt_NOTSRCERASE(PBLTDATA pBltData);
50 VOID FASTCALL Dib_BitBlt_PATINVERT(PBLTDATA pBltData);
51 VOID FASTCALL Dib_BitBlt_SRCINVERT(PBLTDATA pBltData);
52 VOID FASTCALL Dib_BitBlt_SRCAND(PBLTDATA pBltData);
53 VOID FASTCALL Dib_BitBlt_MERGEPAINT(PBLTDATA pBltData);
54 VOID FASTCALL Dib_BitBlt_MERGECOPY(PBLTDATA pBltData);
55 VOID FASTCALL Dib_BitBlt_SRCPAINT(PBLTDATA pBltData);
56 VOID FASTCALL Dib_BitBlt_PATPAINT(PBLTDATA pBltData);
57 VOID FASTCALL Dib_SrcPatBlt(PBLTDATA pBltData);
58 VOID FASTCALL Dib_PatPaint(PBLTDATA pBltData);
59 VOID FASTCALL Dib_SrcPaint(PBLTDATA pBltData);
60 VOID FASTCALL Dib_BitBlt(PBLTDATA pBltData);
61 
62 VOID FASTCALL Dib_MaskCopy(PBLTDATA pBltData);
63 VOID FASTCALL Dib_MaskPatBlt(PBLTDATA pBltData);
64 VOID FASTCALL Dib_MaskSrcBlt(PBLTDATA pBltData);
65 VOID FASTCALL Dib_MaskSrcPatBlt(PBLTDATA pBltData);
66 VOID FASTCALL Dib_MaskPaint(PBLTDATA pBltData);
67 VOID FASTCALL Dib_MaskPatPaint(PBLTDATA pBltData);
68 VOID FASTCALL Dib_MaskSrcPaint(PBLTDATA pBltData);
69 VOID FASTCALL Dib_MaskBlt(PBLTDATA pBltData);
70 
71 extern const UCHAR gajIndexPerRop[256];
72 extern const PFN_DIBFUNCTION gapfnDibFunction[];
73 extern const PFN_DIBFUNCTION gapfnMaskFunction[8];
74 
75 
76