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