5 #define ENUM_RECT_LIMIT 32
7 typedef struct _RECT_ENUM
10 RECTL arcl
[ENUM_RECT_LIMIT
];
13 typedef struct tagSPAN
22 R3_OPINDEX_NOOP
= 0xAA,
23 R3_OPINDEX_BLACKNESS
= 0x00,
24 R3_OPINDEX_NOTSRCERASE
= 0x11,
25 R3_OPINDEX_NOTSRCCOPY
= 0x33,
26 R3_OPINDEX_SRCERASE
= 0x44,
27 R3_OPINDEX_DSTINVERT
= 0x55,
28 R3_OPINDEX_PATINVERT
= 0x5A,
29 R3_OPINDEX_SRCINVERT
= 0x66,
30 R3_OPINDEX_SRCAND
= 0x88,
31 R3_OPINDEX_MERGEPAINT
= 0xBB,
32 R3_OPINDEX_MERGECOPY
= 0xC0,
33 R3_OPINDEX_SRCCOPY
= 0xCC,
34 R3_OPINDEX_SRCPAINT
= 0xEE,
35 R3_OPINDEX_PATCOPY
= 0xF0,
36 R3_OPINDEX_PATPAINT
= 0xFB,
37 R3_OPINDEX_WHITENESS
= 0xFF
40 #define ROP2_TO_MIX(Rop2) (((Rop2) << 8) | (Rop2))
42 #define ROP4_FROM_INDEX(index) ((index) | ((index) << 8))
44 #define ROP4_USES_DEST(Rop4) ((((Rop4) & 0xAAAA) >> 1) != ((Rop4) & 0x5555))
45 #define ROP4_USES_SOURCE(Rop4) ((((Rop4) & 0xCCCC) >> 2) != ((Rop4) & 0x3333))
46 #define ROP4_USES_PATTERN(Rop4) ((((Rop4) & 0xF0F0) >> 4) != ((Rop4) & 0x0F0F))
47 #define ROP4_USES_MASK(Rop4) ((((Rop4) & 0xFF00) >> 8) != ((Rop4) & 0x00ff))
49 #define IS_VALID_ROP4(rop) (((rop) & 0xFFFF0000) == 0)
51 #define ROP4_FGND(Rop4) ((Rop4) & 0x00FF)
52 #define ROP4_BKGND(Rop4) (((Rop4) & 0xFF00) >> 8)
54 #define ROP4_NOOP (R3_OPINDEX_NOOP | (R3_OPINDEX_NOOP << 8))
55 #define ROP4_MASK (R3_OPINDEX_SRCCOPY | (R3_OPINDEX_NOOP << 8))
56 #define ROP4_MASKPAINT (R3_OPINDEX_PATCOPY | (R3_OPINDEX_NOOP << 8))
58 /* Definitions of IntEngXxx functions */
61 IntEngLineTo(SURFOBJ
*Surface
,
72 IntEngBitBlt(SURFOBJ
*DestObj
,
76 XLATEOBJ
*ColorTranslation
,
85 IntEngStretchBlt(SURFOBJ
*DestObj
,
89 XLATEOBJ
*ColorTranslation
,
99 IntEngGradientFill(SURFOBJ
*psoDest
,
107 POINTL
*pptlDitherOrg
,
111 IntEngPolyline(SURFOBJ
*DestSurf
,
119 IntEngUpdateClipRegion(XCLIPOBJ
* Clip
,
122 const RECTL
* rcBounds
);
125 IntEngInitClipObj(XCLIPOBJ
*Clip
);
128 IntEngFreeClipResources(XCLIPOBJ
*Clip
);
132 IntEngTransparentBlt(SURFOBJ
*Dest
,
135 XLATEOBJ
*ColorTranslation
,
142 IntEngPaint(IN SURFOBJ
*Surface
,
143 IN CLIPOBJ
*ClipRegion
,
145 IN POINTL
*BrushOrigin
,
149 IntEngSetPointerShape(
152 IN SURFOBJ
*psoColor
,
164 _Inout_ SURFOBJ
*psoDest
,
165 _In_ SURFOBJ
*psoSource
,
166 _In_opt_ CLIPOBJ
*pco
,
167 _In_opt_ XLATEOBJ
*pxlo
,
168 _In_ RECTL
*prclDest
,
170 _In_ BLENDOBJ
*pBlendObj
);
173 IntEngCopyBits(SURFOBJ
*psoDest
,