mirror of
https://github.com/reactos/reactos.git
synced 2024-11-09 08:08:38 +00:00
82ad88f1ab
- Get rid of IntEngBitBltEx, it's Exness isn't needed anymore svn path=/branches/reactos-yarotows/; revision=46940
184 lines
5.1 KiB
C
184 lines
5.1 KiB
C
#pragma once
|
|
|
|
typedef ULONG HCLIP;
|
|
|
|
#define ENUM_RECT_LIMIT 50
|
|
|
|
typedef struct _RECT_ENUM
|
|
{
|
|
ULONG c;
|
|
RECTL arcl[ENUM_RECT_LIMIT];
|
|
} RECT_ENUM;
|
|
|
|
typedef struct tagSPAN
|
|
{
|
|
LONG Y;
|
|
LONG X;
|
|
ULONG Width;
|
|
} SPAN, *PSPAN;
|
|
|
|
#define R3_OPINDEX_SRCCOPY 0xcc
|
|
#define R3_OPINDEX_NOOP 0xaa
|
|
#define R4_NOOP ((R3_OPINDEX_NOOP << 8) | R3_OPINDEX_NOOP)
|
|
#define R4_MASK ((R3_OPINDEX_NOOP << 8) | R3_OPINDEX_SRCCOPY)
|
|
|
|
#define ROP2_TO_MIX(Rop2) (((Rop2) << 8) | (Rop2))
|
|
#define ROP3_USES_DEST(Rop3) ((((Rop3) & 0xAA0000) >> 1) != ((Rop3) & 0x550000))
|
|
#define ROP4_USES_DEST(Rop4) (((((Rop4) & 0xAA) >> 1) != ((Rop4) & 0x55)) || ((((Rop4) & 0xAA00) >> 1) != ((Rop4) & 0x5500)))
|
|
#define ROP3_USES_SOURCE(Rop3) ((((Rop3) & 0xCC0000) >> 2) != ((Rop3) & 0x330000))
|
|
#define ROP4_USES_SOURCE(Rop4) (((((Rop4) & 0xCC) >> 2) != ((Rop4) & 0x33)) || ((((Rop4) & 0xCC00) >> 2) != ((Rop4) & 0x3300)))
|
|
#define ROP3_USES_PATTERN(Rop3) ((((Rop3) & 0xF00000) >> 4) != ((Rop3) & 0x0F0000))
|
|
#define ROP4_USES_PATTERN(Rop4) (((((Rop4) & 0xF0) >> 4) != ((Rop4) & 0x0F)) || ((((Rop4) & 0xF000) >> 4) != ((Rop4) & 0x0F00)))
|
|
#define ROP3_TO_ROP4(Rop3) ((((Rop3) >> 8) & 0xff00) | (((Rop3) >> 16) & 0x00ff))
|
|
|
|
/* Definitions of IntEngXxx functions */
|
|
|
|
BOOL APIENTRY
|
|
IntEngLineTo(SURFOBJ *Surface,
|
|
CLIPOBJ *Clip,
|
|
BRUSHOBJ *Brush,
|
|
LONG x1,
|
|
LONG y1,
|
|
LONG x2,
|
|
LONG y2,
|
|
RECTL *RectBounds,
|
|
MIX mix);
|
|
|
|
BOOL APIENTRY
|
|
IntEngBitBlt(SURFOBJ *DestObj,
|
|
SURFOBJ *SourceObj,
|
|
SURFOBJ *Mask,
|
|
CLIPOBJ *ClipRegion,
|
|
XLATEOBJ *ColorTranslation,
|
|
RECTL *DestRect,
|
|
POINTL *SourcePoint,
|
|
POINTL *MaskOrigin,
|
|
BRUSHOBJ *Brush,
|
|
POINTL *BrushOrigin,
|
|
ROP4 Rop4);
|
|
|
|
BOOL APIENTRY
|
|
IntEngStretchBlt(SURFOBJ *DestObj,
|
|
SURFOBJ *SourceObj,
|
|
SURFOBJ *Mask,
|
|
CLIPOBJ *ClipRegion,
|
|
XLATEOBJ *ColorTranslation,
|
|
RECTL *DestRect,
|
|
RECTL *SourceRect,
|
|
POINTL *pMaskOrigin,
|
|
BRUSHOBJ *Brush,
|
|
POINTL *BrushOrigin,
|
|
ULONG Mode);
|
|
|
|
BOOL APIENTRY
|
|
IntEngGradientFill(SURFOBJ *psoDest,
|
|
CLIPOBJ *pco,
|
|
XLATEOBJ *pxlo,
|
|
TRIVERTEX *pVertex,
|
|
ULONG nVertex,
|
|
PVOID pMesh,
|
|
ULONG nMesh,
|
|
RECTL *prclExtents,
|
|
POINTL *pptlDitherOrg,
|
|
ULONG ulMode);
|
|
|
|
VOID InitXlateImpl(VOID);
|
|
|
|
XLATEOBJ* FASTCALL
|
|
IntEngCreateXlate(USHORT DestPalType,
|
|
USHORT SourcePalType,
|
|
HPALETTE PaletteDest,
|
|
HPALETTE PaletteSource);
|
|
|
|
XLATEOBJ* FASTCALL
|
|
IntEngCreateMonoXlate(USHORT SourcePalType,
|
|
HPALETTE PaletteDest,
|
|
HPALETTE PaletteSource,
|
|
ULONG BackgroundColor);
|
|
|
|
XLATEOBJ* FASTCALL
|
|
IntEngCreateSrcMonoXlate(HPALETTE PaletteDest,
|
|
ULONG Color0,
|
|
ULONG Color1);
|
|
|
|
XLATEOBJ*
|
|
IntCreateBrushXlate(BRUSH *pbrush, SURFACE * psurf, COLORREF crBackgroundClr);
|
|
|
|
HPALETTE FASTCALL
|
|
IntEngGetXlatePalette(XLATEOBJ *XlateObj,
|
|
ULONG Palette);
|
|
|
|
BOOL APIENTRY
|
|
IntEngPolyline(SURFOBJ *DestSurf,
|
|
CLIPOBJ *Clip,
|
|
BRUSHOBJ *Brush,
|
|
CONST LPPOINT pt,
|
|
LONG dCount,
|
|
MIX mix);
|
|
|
|
CLIPOBJ* FASTCALL
|
|
IntEngCreateClipRegion(ULONG count,
|
|
PRECTL pRect,
|
|
PRECTL rcBounds);
|
|
|
|
VOID FASTCALL
|
|
IntEngDeleteClipRegion(CLIPOBJ *ClipObj);
|
|
|
|
BOOLEAN FASTCALL
|
|
ClipobjToSpans(PSPAN *Spans,
|
|
UINT *Count,
|
|
CLIPOBJ *ClipRegion,
|
|
PRECTL Boundary);
|
|
|
|
BOOL FASTCALL
|
|
IntEngTransparentBlt(SURFOBJ *Dest,
|
|
SURFOBJ *Source,
|
|
CLIPOBJ *Clip,
|
|
XLATEOBJ *ColorTranslation,
|
|
PRECTL DestRect,
|
|
PRECTL SourceRect,
|
|
ULONG iTransColor,
|
|
ULONG Reserved);
|
|
|
|
BOOL APIENTRY
|
|
IntEngPaint(IN SURFOBJ *Surface,
|
|
IN CLIPOBJ *ClipRegion,
|
|
IN BRUSHOBJ *Brush,
|
|
IN POINTL *BrushOrigin,
|
|
IN MIX Mix);
|
|
|
|
VOID APIENTRY
|
|
IntEngMovePointer(IN SURFOBJ *pso,
|
|
IN LONG x,
|
|
IN LONG y,
|
|
IN RECTL *prcl);
|
|
|
|
ULONG APIENTRY
|
|
IntEngSetPointerShape(
|
|
IN SURFOBJ *pso,
|
|
IN SURFOBJ *psoMask,
|
|
IN SURFOBJ *psoColor,
|
|
IN XLATEOBJ *pxlo,
|
|
IN LONG xHot,
|
|
IN LONG yHot,
|
|
IN LONG x,
|
|
IN LONG y,
|
|
IN RECTL *prcl,
|
|
IN FLONG fl);
|
|
|
|
BOOL APIENTRY
|
|
IntEngAlphaBlend(IN SURFOBJ *Dest,
|
|
IN SURFOBJ *Source,
|
|
IN CLIPOBJ *ClipRegion,
|
|
IN XLATEOBJ *ColorTranslation,
|
|
IN PRECTL DestRect,
|
|
IN PRECTL SourceRect,
|
|
IN BLENDOBJ *BlendObj);
|
|
|
|
BOOL APIENTRY
|
|
IntEngCopyBits(SURFOBJ *psoDest,
|
|
SURFOBJ *psoSource,
|
|
CLIPOBJ *pco,
|
|
XLATEOBJ *pxlo,
|
|
RECTL *prclDest,
|
|
POINTL *ptlSource);
|