2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
2003-02-15 19:16:34 +00:00
|
|
|
|
2004-12-12 01:40:39 +00:00
|
|
|
typedef ULONG HCLIP;
|
|
|
|
|
2013-01-01 09:40:48 +00:00
|
|
|
#define ENUM_RECT_LIMIT 32
|
2004-12-12 01:40:39 +00:00
|
|
|
|
|
|
|
typedef struct _RECT_ENUM
|
|
|
|
{
|
|
|
|
ULONG c;
|
|
|
|
RECTL arcl[ENUM_RECT_LIMIT];
|
|
|
|
} RECT_ENUM;
|
|
|
|
|
|
|
|
typedef struct tagSPAN
|
|
|
|
{
|
|
|
|
LONG Y;
|
|
|
|
LONG X;
|
|
|
|
ULONG Width;
|
|
|
|
} SPAN, *PSPAN;
|
|
|
|
|
2012-07-29 11:20:05 +00:00
|
|
|
enum _R3_ROPCODES
|
|
|
|
{
|
|
|
|
R3_OPINDEX_NOOP = 0xAA,
|
|
|
|
R3_OPINDEX_BLACKNESS = 0x00,
|
|
|
|
R3_OPINDEX_NOTSRCERASE = 0x11,
|
|
|
|
R3_OPINDEX_NOTSRCCOPY = 0x33,
|
|
|
|
R3_OPINDEX_SRCERASE = 0x44,
|
|
|
|
R3_OPINDEX_DSTINVERT = 0x55,
|
|
|
|
R3_OPINDEX_PATINVERT = 0x5A,
|
|
|
|
R3_OPINDEX_SRCINVERT = 0x66,
|
|
|
|
R3_OPINDEX_SRCAND = 0x88,
|
|
|
|
R3_OPINDEX_MERGEPAINT = 0xBB,
|
|
|
|
R3_OPINDEX_MERGECOPY = 0xC0,
|
|
|
|
R3_OPINDEX_SRCCOPY = 0xCC,
|
|
|
|
R3_OPINDEX_SRCPAINT = 0xEE,
|
|
|
|
R3_OPINDEX_PATCOPY = 0xF0,
|
|
|
|
R3_OPINDEX_PATPAINT = 0xFB,
|
|
|
|
R3_OPINDEX_WHITENESS = 0xFF
|
|
|
|
};
|
2005-02-06 18:27:06 +00:00
|
|
|
|
|
|
|
#define ROP2_TO_MIX(Rop2) (((Rop2) << 8) | (Rop2))
|
2011-03-01 01:03:58 +00:00
|
|
|
|
|
|
|
#define ROP4_FROM_INDEX(index) ((index) | ((index) << 8))
|
|
|
|
|
2015-02-11 21:32:24 +00:00
|
|
|
#define ROP4_USES_DEST(Rop4) ((((Rop4) & 0xAAAA) >> 1) != ((Rop4) & 0x5555))
|
|
|
|
#define ROP4_USES_SOURCE(Rop4) ((((Rop4) & 0xCCCC) >> 2) != ((Rop4) & 0x3333))
|
|
|
|
#define ROP4_USES_PATTERN(Rop4) ((((Rop4) & 0xF0F0) >> 4) != ((Rop4) & 0x0F0F))
|
|
|
|
#define ROP4_USES_MASK(Rop4) ((((Rop4) & 0xFF00) >> 8) != ((Rop4) & 0x00ff))
|
2011-03-01 01:03:58 +00:00
|
|
|
|
|
|
|
#define IS_VALID_ROP4(rop) (((rop) & 0xFFFF0000) == 0)
|
|
|
|
|
|
|
|
#define ROP4_FGND(Rop4) ((Rop4) & 0x00FF)
|
|
|
|
#define ROP4_BKGND(Rop4) (((Rop4) & 0xFF00) >> 8)
|
|
|
|
|
|
|
|
#define ROP4_NOOP (R3_OPINDEX_NOOP | (R3_OPINDEX_NOOP << 8))
|
|
|
|
#define ROP4_MASK (R3_OPINDEX_SRCCOPY | (R3_OPINDEX_NOOP << 8))
|
2014-12-31 15:15:44 +00:00
|
|
|
#define ROP4_MASKPAINT (R3_OPINDEX_PATCOPY | (R3_OPINDEX_NOOP << 8))
|
2004-04-06 21:53:48 +00:00
|
|
|
|
2003-02-15 19:16:34 +00:00
|
|
|
/* Definitions of IntEngXxx functions */
|
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
BOOL APIENTRY
|
2005-06-20 08:31:48 +00:00
|
|
|
IntEngLineTo(SURFOBJ *Surface,
|
2004-07-03 13:55:37 +00:00
|
|
|
CLIPOBJ *Clip,
|
|
|
|
BRUSHOBJ *Brush,
|
|
|
|
LONG x1,
|
|
|
|
LONG y1,
|
|
|
|
LONG x2,
|
|
|
|
LONG y2,
|
|
|
|
RECTL *RectBounds,
|
|
|
|
MIX mix);
|
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
BOOL APIENTRY
|
2010-04-19 15:08:03 +00:00
|
|
|
IntEngBitBlt(SURFOBJ *DestObj,
|
2005-06-20 08:31:48 +00:00
|
|
|
SURFOBJ *SourceObj,
|
|
|
|
SURFOBJ *Mask,
|
|
|
|
CLIPOBJ *ClipRegion,
|
|
|
|
XLATEOBJ *ColorTranslation,
|
|
|
|
RECTL *DestRect,
|
|
|
|
POINTL *SourcePoint,
|
|
|
|
POINTL *MaskOrigin,
|
|
|
|
BRUSHOBJ *Brush,
|
|
|
|
POINTL *BrushOrigin,
|
2010-04-19 15:08:03 +00:00
|
|
|
ROP4 Rop4);
|
2004-07-03 13:55:37 +00:00
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
BOOL APIENTRY
|
2005-06-20 08:31:48 +00:00
|
|
|
IntEngStretchBlt(SURFOBJ *DestObj,
|
|
|
|
SURFOBJ *SourceObj,
|
|
|
|
SURFOBJ *Mask,
|
2003-12-08 11:08:27 +00:00
|
|
|
CLIPOBJ *ClipRegion,
|
|
|
|
XLATEOBJ *ColorTranslation,
|
2012-07-31 20:44:56 +00:00
|
|
|
COLORADJUSTMENT *pca,
|
2003-12-08 11:08:27 +00:00
|
|
|
RECTL *DestRect,
|
|
|
|
RECTL *SourceRect,
|
|
|
|
POINTL *pMaskOrigin,
|
|
|
|
BRUSHOBJ *Brush,
|
|
|
|
POINTL *BrushOrigin,
|
|
|
|
ULONG Mode);
|
2003-02-15 19:16:34 +00:00
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
BOOL APIENTRY
|
2005-06-20 08:31:48 +00:00
|
|
|
IntEngGradientFill(SURFOBJ *psoDest,
|
2004-07-03 13:55:37 +00:00
|
|
|
CLIPOBJ *pco,
|
|
|
|
XLATEOBJ *pxlo,
|
|
|
|
TRIVERTEX *pVertex,
|
|
|
|
ULONG nVertex,
|
|
|
|
PVOID pMesh,
|
|
|
|
ULONG nMesh,
|
|
|
|
RECTL *prclExtents,
|
|
|
|
POINTL *pptlDitherOrg,
|
|
|
|
ULONG ulMode);
|
2004-02-08 21:37:53 +00:00
|
|
|
|
2008-11-29 22:48:58 +00:00
|
|
|
BOOL APIENTRY
|
2005-06-20 08:31:48 +00:00
|
|
|
IntEngPolyline(SURFOBJ *DestSurf,
|
2004-07-03 13:55:37 +00:00
|
|
|
CLIPOBJ *Clip,
|
|
|
|
BRUSHOBJ *Brush,
|
|
|
|
CONST LPPOINT pt,
|
|
|
|
LONG dCount,
|
|
|
|
MIX mix);
|
|
|
|
|
2014-07-26 15:41:08 +00:00
|
|
|
VOID FASTCALL
|
|
|
|
IntEngUpdateClipRegion(XCLIPOBJ* Clip,
|
|
|
|
ULONG count,
|
|
|
|
const RECTL* pRect,
|
|
|
|
const RECTL* rcBounds);
|
|
|
|
|
|
|
|
VOID FASTCALL
|
|
|
|
IntEngInitClipObj(XCLIPOBJ *Clip);
|
2004-04-06 17:54:32 +00:00
|
|
|
|
2004-12-12 01:40:39 +00:00
|
|
|
VOID FASTCALL
|
2014-07-26 15:41:08 +00:00
|
|
|
IntEngFreeClipResources(XCLIPOBJ *Clip);
|
2004-12-12 01:40:39 +00:00
|
|
|
|
|
|
|
|
2004-04-06 17:54:32 +00:00
|
|
|
BOOL FASTCALL
|
2005-06-20 08:31:48 +00:00
|
|
|
IntEngTransparentBlt(SURFOBJ *Dest,
|
|
|
|
SURFOBJ *Source,
|
2004-04-09 20:03:21 +00:00
|
|
|
CLIPOBJ *Clip,
|
|
|
|
XLATEOBJ *ColorTranslation,
|
2004-04-06 17:54:32 +00:00
|
|
|
PRECTL DestRect,
|
|
|
|
PRECTL SourceRect,
|
|
|
|
ULONG iTransColor,
|
|
|
|
ULONG Reserved);
|
2004-07-03 13:55:37 +00:00
|
|
|
|
2015-03-10 00:11:29 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
IntEngPaint(
|
|
|
|
_In_ SURFOBJ *pso,
|
|
|
|
_In_ CLIPOBJ *pco,
|
|
|
|
_In_ BRUSHOBJ *pbo,
|
|
|
|
_In_ POINTL *pptlBrushOrg,
|
|
|
|
_In_ __in_data_source(USER_MODE) MIX mix);
|
2004-07-03 13:55:37 +00:00
|
|
|
|
2012-07-31 20:44:56 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
IntEngAlphaBlend(
|
|
|
|
_Inout_ SURFOBJ *psoDest,
|
|
|
|
_In_ SURFOBJ *psoSource,
|
|
|
|
_In_opt_ CLIPOBJ *pco,
|
|
|
|
_In_opt_ XLATEOBJ *pxlo,
|
|
|
|
_In_ RECTL *prclDest,
|
|
|
|
_In_ RECTL *prclSrc,
|
|
|
|
_In_ BLENDOBJ *pBlendObj);
|
2005-10-30 22:16:30 +00:00
|
|
|
|
2009-04-07 01:36:22 +00:00
|
|
|
BOOL APIENTRY
|
|
|
|
IntEngCopyBits(SURFOBJ *psoDest,
|
|
|
|
SURFOBJ *psoSource,
|
|
|
|
CLIPOBJ *pco,
|
|
|
|
XLATEOBJ *pxlo,
|
|
|
|
RECTL *prclDest,
|
|
|
|
POINTL *ptlSource);
|