ReactOS 0.4.15-dev-7953-g1f49173
inteng.h
Go to the documentation of this file.
1#pragma once
2
3typedef ULONG HCLIP;
4
5#define ENUM_RECT_LIMIT 32
6
7typedef struct _RECT_ENUM
8{
9 ULONG c;
12
13typedef struct tagSPAN
14{
19
21{
38};
39
40#define ROP2_TO_MIX(Rop2) (((Rop2) << 8) | (Rop2))
41
42#define ROP4_FROM_INDEX(index) ((index) | ((index) << 8))
43
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))
48
49#define IS_VALID_ROP4(rop) (((rop) & 0xFFFF0000) == 0)
50
51#define ROP4_FGND(Rop4) ((Rop4) & 0x00FF)
52#define ROP4_BKGND(Rop4) (((Rop4) & 0xFF00) >> 8)
53
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))
57
58/* Definitions of IntEngXxx functions */
59
61IntEngLineTo(SURFOBJ *Surface,
62 CLIPOBJ *Clip,
64 LONG x1,
65 LONG y1,
66 LONG x2,
67 LONG y2,
68 RECTL *RectBounds,
69 MIX mix);
70
72IntEngBitBlt(SURFOBJ *DestObj,
73 SURFOBJ *SourceObj,
75 CLIPOBJ *ClipRegion,
76 XLATEOBJ *ColorTranslation,
77 RECTL *DestRect,
78 POINTL *SourcePoint,
79 POINTL *MaskOrigin,
81 POINTL *BrushOrigin,
82 ROP4 Rop4);
83
86 SURFOBJ *SourceObj,
88 CLIPOBJ *ClipRegion,
89 XLATEOBJ *ColorTranslation,
91 RECTL *DestRect,
92 RECTL *SourceRect,
93 POINTL *pMaskOrigin,
95 POINTL *BrushOrigin,
96 ULONG Mode);
97
100 CLIPOBJ *pco,
101 XLATEOBJ *pxlo,
104 PVOID pMesh,
105 ULONG nMesh,
108 ULONG ulMode);
109
111IntEngPolyline(SURFOBJ *DestSurf,
112 CLIPOBJ *Clip,
115 LONG dCount,
116 MIX mix);
117
120 ULONG count,
121 const RECTL* pRect,
122 const RECTL* rcBounds);
123
126
129
130
134 CLIPOBJ *Clip,
135 XLATEOBJ *ColorTranslation,
136 PRECTL DestRect,
137 PRECTL SourceRect,
140
141BOOL
148 _In_ __in_data_source(USER_MODE) MIX mix);
149
150BOOL
153 _Inout_ SURFOBJ *psoDest,
154 _In_ SURFOBJ *psoSource,
160
162IntEngCopyBits(SURFOBJ *psoDest,
163 SURFOBJ *psoSource,
164 CLIPOBJ *pco,
165 XLATEOBJ *pxlo,
167 POINTL *ptlSource);
#define APIENTRY
Definition: api.h:79
#define pt(x, y)
Definition: drawing.c:79
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned int Mask
Definition: fpcontrol.c:82
GLuint GLuint GLsizei count
Definition: gl.h:1545
_In_ ULONG Mode
Definition: hubbusif.h:303
#define ENUM_RECT_LIMIT
Definition: inteng.h:5
struct _RECT_ENUM RECT_ENUM
BOOL APIENTRY IntEngCopyBits(SURFOBJ *psoDest, SURFOBJ *psoSource, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclDest, POINTL *ptlSource)
Definition: bitblt_new.c:678
struct tagSPAN SPAN
VOID FASTCALL IntEngUpdateClipRegion(XCLIPOBJ *Clip, ULONG count, const RECTL *pRect, const RECTL *rcBounds)
Definition: clip.c:173
BOOL FASTCALL IntEngTransparentBlt(SURFOBJ *Dest, SURFOBJ *Source, CLIPOBJ *Clip, XLATEOBJ *ColorTranslation, PRECTL DestRect, PRECTL SourceRect, ULONG iTransColor, ULONG Reserved)
Definition: transblt.c:207
BOOL APIENTRY IntEngPolyline(SURFOBJ *DestSurf, CLIPOBJ *Clip, BRUSHOBJ *Brush, CONST LPPOINT pt, LONG dCount, MIX mix)
Definition: lineto.c:703
BOOL APIENTRY IntEngGradientFill(SURFOBJ *psoDest, CLIPOBJ *pco, XLATEOBJ *pxlo, TRIVERTEX *pVertex, ULONG nVertex, PVOID pMesh, ULONG nMesh, RECTL *prclExtents, POINTL *pptlDitherOrg, ULONG ulMode)
VOID FASTCALL IntEngFreeClipResources(XCLIPOBJ *Clip)
Definition: clip.c:164
BOOL APIENTRY IntEngStretchBlt(SURFOBJ *DestObj, SURFOBJ *SourceObj, SURFOBJ *Mask, CLIPOBJ *ClipRegion, XLATEOBJ *ColorTranslation, COLORADJUSTMENT *pca, RECTL *DestRect, RECTL *SourceRect, POINTL *pMaskOrigin, BRUSHOBJ *Brush, POINTL *BrushOrigin, ULONG Mode)
ULONG HCLIP
Definition: inteng.h:3
_R3_ROPCODES
Definition: inteng.h:21
@ R3_OPINDEX_SRCCOPY
Definition: inteng.h:33
@ R3_OPINDEX_PATINVERT
Definition: inteng.h:28
@ R3_OPINDEX_MERGEPAINT
Definition: inteng.h:31
@ R3_OPINDEX_NOTSRCCOPY
Definition: inteng.h:25
@ R3_OPINDEX_WHITENESS
Definition: inteng.h:37
@ R3_OPINDEX_BLACKNESS
Definition: inteng.h:23
@ R3_OPINDEX_PATCOPY
Definition: inteng.h:35
@ R3_OPINDEX_SRCPAINT
Definition: inteng.h:34
@ R3_OPINDEX_DSTINVERT
Definition: inteng.h:27
@ R3_OPINDEX_SRCERASE
Definition: inteng.h:26
@ R3_OPINDEX_MERGECOPY
Definition: inteng.h:32
@ R3_OPINDEX_NOOP
Definition: inteng.h:22
@ R3_OPINDEX_SRCAND
Definition: inteng.h:30
@ R3_OPINDEX_NOTSRCERASE
Definition: inteng.h:24
@ R3_OPINDEX_SRCINVERT
Definition: inteng.h:29
@ R3_OPINDEX_PATPAINT
Definition: inteng.h:36
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)
Definition: bitblt.c:656
VOID FASTCALL IntEngInitClipObj(XCLIPOBJ *Clip)
Definition: clip.c:158
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)
Definition: alphablend.c:197
BOOL APIENTRY IntEngLineTo(SURFOBJ *Surface, CLIPOBJ *Clip, BRUSHOBJ *Brush, LONG x1, LONG y1, LONG x2, LONG y2, RECTL *RectBounds, MIX mix)
Definition: lineto.c:621
BOOL APIENTRY IntEngPaint(_In_ SURFOBJ *pso, _In_ CLIPOBJ *pco, _In_ BRUSHOBJ *pbo, _In_ POINTL *pptlBrushOrg, _In_ __in_data_source(USER_MODE) MIX mix)
Definition: paint.c:85
struct tagSPAN * PSPAN
#define _Inout_
Definition: ms_sal.h:378
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
#define FASTCALL
Definition: nt_native.h:50
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
#define __in_data_source(src_sym)
Definition: specstrings.h:348
ULONG c
Definition: vgaddi.h:78
RECTL arcl[ENUM_RECT_LIMIT]
Definition: vgaddi.h:79
Definition: inteng.h:14
LONG X
Definition: inteng.h:16
ULONG Width
Definition: inteng.h:17
LONG Y
Definition: inteng.h:15
uint32_t ULONG
Definition: typedefs.h:59
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG iTransColor
Definition: winddi.h:4195
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL _In_ MIX mix
Definition: winddi.h:3595
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ HANDLE _In_ SURFOBJ * pso
Definition: winddi.h:3665
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID pMesh
Definition: winddi.h:3653
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_opt_ COLORADJUSTMENT * pca
Definition: winddi.h:3779
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL * pptlDitherOrg
Definition: winddi.h:3656
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3711
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL * prclSrc
Definition: winddi.h:3418
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG nVertex
Definition: winddi.h:3652
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
Definition: winddi.h:3416
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ * pbo
Definition: winddi.h:3440
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL * prclExtents
Definition: winddi.h:3655
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL _In_ ULONG ulMode
Definition: winddi.h:3657
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL * pptlBrushOrg
Definition: winddi.h:3594
ULONG MIX
Definition: winddi.h:129
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX * pVertex
Definition: winddi.h:3651
ULONG ROP4
Definition: winddi.h:128
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ BLENDOBJ * pBlendObj
Definition: winddi.h:3419
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclDest
Definition: winddi.h:3417
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG nMesh
Definition: winddi.h:3654
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_In_ SURFOBJ _In_ CLIPOBJ * pco
Definition: winddi.h:3415