ReactOS  0.4.11-dev-201-g2a6aa77
inteng.h
Go to the documentation of this file.
1 #pragma once
2 
3 typedef ULONG HCLIP;
4 
5 #define ENUM_RECT_LIMIT 32
6 
7 typedef struct _RECT_ENUM
8 {
9  ULONG c;
11 } RECT_ENUM;
12 
13 typedef struct tagSPAN
14 {
18 } SPAN, *PSPAN;
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 
61 IntEngLineTo(SURFOBJ *Surface,
62  CLIPOBJ *Clip,
63  BRUSHOBJ *Brush,
64  LONG x1,
65  LONG y1,
66  LONG x2,
67  LONG y2,
68  RECTL *RectBounds,
69  MIX mix);
70 
72 IntEngBitBlt(SURFOBJ *DestObj,
73  SURFOBJ *SourceObj,
74  SURFOBJ *Mask,
75  CLIPOBJ *ClipRegion,
76  XLATEOBJ *ColorTranslation,
77  RECTL *DestRect,
78  POINTL *SourcePoint,
79  POINTL *MaskOrigin,
80  BRUSHOBJ *Brush,
81  POINTL *BrushOrigin,
82  ROP4 Rop4);
83 
85 IntEngStretchBlt(SURFOBJ *DestObj,
86  SURFOBJ *SourceObj,
87  SURFOBJ *Mask,
88  CLIPOBJ *ClipRegion,
89  XLATEOBJ *ColorTranslation,
91  RECTL *DestRect,
92  RECTL *SourceRect,
93  POINTL *pMaskOrigin,
94  BRUSHOBJ *Brush,
95  POINTL *BrushOrigin,
96  ULONG Mode);
97 
100  CLIPOBJ *pco,
101  XLATEOBJ *pxlo,
103  ULONG nVertex,
104  PVOID pMesh,
105  ULONG nMesh,
108  ULONG ulMode);
109 
111 IntEngPolyline(SURFOBJ *DestSurf,
112  CLIPOBJ *Clip,
113  BRUSHOBJ *Brush,
114  CONST LPPOINT pt,
115  LONG dCount,
116  MIX mix);
117 
120  ULONG count,
121  const RECTL* pRect,
122  const RECTL* rcBounds);
123 
126 
129 
130 
133  SURFOBJ *Source,
134  CLIPOBJ *Clip,
135  XLATEOBJ *ColorTranslation,
136  PRECTL DestRect,
137  PRECTL SourceRect,
139  ULONG Reserved);
140 
141 BOOL
142 APIENTRY
144  _In_ SURFOBJ *pso,
145  _In_ CLIPOBJ *pco,
146  _In_ BRUSHOBJ *pbo,
148  _In_ __in_data_source(USER_MODE) MIX mix);
149 
150 BOOL
151 APIENTRY
153  _Inout_ SURFOBJ *psoDest,
154  _In_ SURFOBJ *psoSource,
155  _In_opt_ CLIPOBJ *pco,
158  _In_ RECTL *prclSrc,
160 
162 IntEngCopyBits(SURFOBJ *psoDest,
163  SURFOBJ *psoSource,
164  CLIPOBJ *pco,
165  XLATEOBJ *pxlo,
166  RECTL *prclDest,
167  POINTL *ptlSource);
DWORD *typedef PVOID
Definition: winlogon.h:61
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
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
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG nMesh
Definition: winddi.h:3649
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID pMesh
Definition: winddi.h:3649
BOOL APIENTRY IntEngCopyBits(SURFOBJ *psoDest, SURFOBJ *psoSource, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclDest, POINTL *ptlSource)
Definition: bitblt_new.c:678
ULONG MIX
Definition: winddi.h:129
struct tagSPAN * PSPAN
_In_ ULONG Mode
Definition: hubbusif.h:303
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:604
BOOL FASTCALL IntEngTransparentBlt(SURFOBJ *Dest, SURFOBJ *Source, CLIPOBJ *Clip, XLATEOBJ *ColorTranslation, PRECTL DestRect, PRECTL SourceRect, ULONG iTransColor, ULONG Reserved)
Definition: transblt.c:207
VOID FASTCALL IntEngFreeClipResources(XCLIPOBJ *Clip)
Definition: clip.c:164
#define pt(x, y)
Definition: drawing.c:79
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
LONG Y
Definition: inteng.h:15
struct tagSPAN SPAN
ULONG ROP4
Definition: winddi.h:128
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ ULONG iTransColor
Definition: winddi.h:4190
#define FASTCALL
Definition: nt_native.h:50
ULONG c
Definition: vgaddi.h:78
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL * prclExtents
Definition: winddi.h:3649
#define _In_opt_
Definition: no_sal2.h:213
long LONG
Definition: pedump.c:60
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL * pptlBrushOrg
Definition: winddi.h:3591
ULONG Width
Definition: inteng.h:17
#define APIENTRY
Definition: nt_native.h:48
#define CONST
Definition: compiler.h:170
_Must_inspect_result_ _In_ __in_data_source(USER_MODE) SIZE_T Size
_In_ HANDLE _In_ SURFOBJ * pso
Definition: winddi.h:3664
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX * pVertex
Definition: winddi.h:3649
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL * prclSrc
Definition: winddi.h:3414
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)
unsigned int BOOL
Definition: ntddk_ex.h:94
_R3_ROPCODES
Definition: inteng.h:20
_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:3433
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define _Inout_
Definition: no_sal2.h:244
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL * prclDest
Definition: winddi.h:3414
ULONG PVOID Reserved
Definition: ntimage.h:533
LONG X
Definition: inteng.h:16
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:196
_In_ SURFOBJ _In_ CLIPOBJ * pco
Definition: winddi.h:3414
#define ENUM_RECT_LIMIT
Definition: inteng.h:5
BOOL APIENTRY IntEngPolyline(SURFOBJ *DestSurf, CLIPOBJ *Clip, BRUSHOBJ *Brush, CONST LPPOINT pt, LONG dCount, MIX mix)
Definition: lineto.c:703
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_opt_ COLORADJUSTMENT * pca
Definition: winddi.h:3775
RECTL arcl[ENUM_RECT_LIMIT]
Definition: vgaddi.h:79
#define _In_
Definition: no_sal2.h:204
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL _In_ ULONG ulMode
Definition: winddi.h:3649
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_ RECTL _In_ BLENDOBJ * pBlendObj
Definition: winddi.h:3414
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL _In_ MIX mix
Definition: winddi.h:3591
VOID FASTCALL IntEngInitClipObj(XCLIPOBJ *Clip)
Definition: clip.c:158
VOID FASTCALL IntEngUpdateClipRegion(XCLIPOBJ *Clip, ULONG count, const RECTL *pRect, const RECTL *rcBounds)
Definition: clip.c:173
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
unsigned int ULONG
Definition: retypes.h:1
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG nVertex
Definition: winddi.h:3649
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID _In_ ULONG _In_ RECTL _In_ POINTL * pptlDitherOrg
Definition: winddi.h:3649
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
struct _RECT_ENUM RECT_ENUM
BOOL APIENTRY IntEngGradientFill(SURFOBJ *psoDest, CLIPOBJ *pco, XLATEOBJ *pxlo, TRIVERTEX *pVertex, ULONG nVertex, PVOID pMesh, ULONG nMesh, RECTL *prclExtents, POINTL *pptlDitherOrg, ULONG ulMode)
ULONG HCLIP
Definition: inteng.h:3
Definition: inteng.h:13
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
Definition: winddi.h:3414