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_SOURCE(Rop4) (((((Rop4) & 0xCC00) >> 2) != ((Rop4) & 0x3300)) || ((((Rop4) & 0xCC) >> 2) != ((Rop4) & 0x33)))
45 #define ROP4_USES_MASK(Rop4) (((Rop4) & 0xFF00) != (((Rop4) & 0xff) << 8))
46 #define ROP4_USES_DEST(Rop4) (((((Rop4) & 0xAA) >> 1) != ((Rop4) & 0x55)) || ((((Rop4) & 0xAA00) >> 1) != ((Rop4) & 0x5500)))
47 #define ROP4_USES_PATTERN(Rop4) (((((Rop4) & 0xF0) >> 4) != ((Rop4) & 0x0F)) || ((((Rop4) & 0xF000) >> 4) != ((Rop4) & 0x0F00)))
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))
57 /* Definitions of IntEngXxx functions */
60 IntEngLineTo(SURFOBJ
*Surface
,
71 IntEngBitBlt(SURFOBJ
*DestObj
,
75 XLATEOBJ
*ColorTranslation
,
84 IntEngStretchBlt(SURFOBJ
*DestObj
,
88 XLATEOBJ
*ColorTranslation
,
98 IntEngGradientFill(SURFOBJ
*psoDest
,
106 POINTL
*pptlDitherOrg
,
110 IntEngPolyline(SURFOBJ
*DestSurf
,
118 IntEngCreateClipRegion(ULONG count
,
123 IntEngDeleteClipRegion(CLIPOBJ
*ClipObj
);
127 IntEngTransparentBlt(SURFOBJ
*Dest
,
130 XLATEOBJ
*ColorTranslation
,
137 IntEngPaint(IN SURFOBJ
*Surface
,
138 IN CLIPOBJ
*ClipRegion
,
140 IN POINTL
*BrushOrigin
,
144 IntEngSetPointerShape(
147 IN SURFOBJ
*psoColor
,
159 _Inout_ SURFOBJ
*psoDest
,
160 _In_ SURFOBJ
*psoSource
,
161 _In_opt_ CLIPOBJ
*pco
,
162 _In_opt_ XLATEOBJ
*pxlo
,
163 _In_ RECTL
*prclDest
,
165 _In_ BLENDOBJ
*pBlendObj
);
168 IntEngCopyBits(SURFOBJ
*psoDest
,