1c1a17dfda0720d8abd7d89b1d4af87cc88af28e
1 #ifndef _WIN32K_INTENG_H
2 #define _WIN32K_INTENG_H
6 #define ENUM_RECT_LIMIT 50
8 typedef struct _RECT_ENUM
11 RECTL arcl
[ENUM_RECT_LIMIT
];
14 typedef struct tagSPAN
21 #define R3_OPINDEX_SRCCOPY 0xcc
22 #define R3_OPINDEX_NOOP 0xaa
23 #define R4_NOOP ((R3_OPINDEX_NOOP << 8) | R3_OPINDEX_NOOP)
24 #define R4_MASK ((R3_OPINDEX_NOOP << 8) | R3_OPINDEX_SRCCOPY)
26 #define ROP2_TO_MIX(Rop2) (((Rop2) << 8) | (Rop2))
27 #define ROP3_USES_DEST(Rop3) ((((Rop3) & 0xAA0000) >> 1) != ((Rop3) & 0x550000))
28 #define ROP4_USES_DEST(Rop4) (((((Rop4) & 0xAA) >> 1) != ((Rop4) & 0x55)) || ((((Rop4) & 0xAA00) >> 1) != ((Rop4) & 0x5500)))
29 #define ROP3_USES_SOURCE(Rop3) ((((Rop3) & 0xCC0000) >> 2) != ((Rop3) & 0x330000))
30 #define ROP4_USES_SOURCE(Rop4) (((((Rop4) & 0xCC) >> 2) != ((Rop4) & 0x33)) || ((((Rop4) & 0xCC00) >> 2) != ((Rop4) & 0x3300)))
31 #define ROP3_USES_PATTERN(Rop3) ((((Rop3) & 0xF00000) >> 4) != ((Rop3) & 0x0F0000))
32 #define ROP4_USES_PATTERN(Rop4) (((((Rop4) & 0xF0) >> 4) != ((Rop4) & 0x0F)) || ((((Rop4) & 0xF000) >> 4) != ((Rop4) & 0x0F00)))
33 #define ROP3_TO_ROP4(Rop3) ((((Rop3) >> 8) & 0xff00) | (((Rop3) >> 16) & 0x00ff))
35 /* Definitions of IntEngXxx functions */
37 #define IntEngLockProcessDriverObjs(W32Process) \
38 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&(W32Process)->DriverObjListLock)
40 #define IntEngUnLockProcessDriverObjs(W32Process) \
41 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&(W32Process)->DriverObjListLock)
44 IntEngCleanupDriverObjs(struct _EPROCESS
*Process
,
45 PW32PROCESS Win32Process
);
48 IntEngLineTo(SURFOBJ
*Surface
,
59 IntEngBitBltEx(SURFOBJ
*DestObj
,
63 XLATEOBJ
*ColorTranslation
,
71 #define IntEngBitBlt(DestObj, SourceObj, Mask, ClipRegion, ColorTranslation, \
72 DestRect, SourcePoint, MaskOrigin, Brush, BrushOrigin, \
74 IntEngBitBltEx((DestObj), (SourceObj), (Mask), (ClipRegion), \
75 (ColorTranslation), (DestRect), (SourcePoint), \
76 (MaskOrigin), (Brush), (BrushOrigin), (Rop4), TRUE)
79 IntEngStretchBlt(SURFOBJ
*DestObj
,
83 XLATEOBJ
*ColorTranslation
,
92 IntEngGradientFill(SURFOBJ
*psoDest
,
100 POINTL
*pptlDitherOrg
,
104 IntEngCreateXlate(USHORT DestPalType
,
105 USHORT SourcePalType
,
106 HPALETTE PaletteDest
,
107 HPALETTE PaletteSource
);
110 IntEngCreateMonoXlate(USHORT SourcePalType
,
111 HPALETTE PaletteDest
,
112 HPALETTE PaletteSource
,
113 ULONG BackgroundColor
);
116 IntEngCreateSrcMonoXlate(HPALETTE PaletteDest
,
117 ULONG ForegroundColor
,
118 ULONG BackgroundColor
);
121 IntEngGetXlatePalette(XLATEOBJ
*XlateObj
,
125 IntEngPolyline(SURFOBJ
*DestSurf
,
133 IntEngCreateClipRegion(ULONG count
,
138 IntEngDeleteClipRegion(CLIPOBJ
*ClipObj
);
141 ClipobjToSpans(PSPAN
*Spans
,
147 IntEngTransparentBlt(SURFOBJ
*Dest
,
150 XLATEOBJ
*ColorTranslation
,
157 IntEngPaint(IN SURFOBJ
*Surface
,
158 IN CLIPOBJ
*ClipRegion
,
160 IN POINTL
*BrushOrigin
,
164 IntEngMovePointer(IN SURFOBJ
*pso
,
170 IntEngAlphaBlend(IN SURFOBJ
*Dest
,
172 IN CLIPOBJ
*ClipRegion
,
173 IN XLATEOBJ
*ColorTranslation
,
175 IN PRECTL SourceRect
,
176 IN BLENDOBJ
*BlendObj
);
179 #endif /* _WIN32K_INTENG_H */