ReactOS 0.4.15-dev-8064-gdaf8068
painting.c File Reference
#include <precomp.h>
Include dependency graph for painting.c:

Go to the source code of this file.

Functions

BOOL WINAPI LineTo (_In_ HDC hdc, _In_ INT x, _In_ INT y)
 
BOOL WINAPI MoveToEx (_In_ HDC hdc, _In_ INT x, _In_ INT y, _Out_opt_ LPPOINT ppt)
 
BOOL WINAPI Ellipse (_In_ HDC hdc, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom)
 
BOOL WINAPI Rectangle (_In_ HDC hdc, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom)
 
BOOL WINAPI RoundRect (_In_ HDC hdc, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom, _In_ INT width, _In_ INT height)
 
COLORREF WINAPI GetPixel (_In_ HDC hdc, _In_ INT x, _In_ INT y)
 
COLORREF WINAPI SetPixel (_In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ COLORREF crColor)
 
BOOL WINAPI SetPixelV (_In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ COLORREF crColor)
 
BOOL WINAPI FillRgn (_In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr)
 
BOOL WINAPI FrameRgn (_In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr, _In_ INT nWidth, _In_ INT nHeight)
 
BOOL WINAPI InvertRgn (_In_ HDC hdc, _In_ HRGN hrgn)
 
BOOL WINAPI PaintRgn (_In_ HDC hdc, _In_ HRGN hrgn)
 
BOOL WINAPI PolyBezier (_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
 
BOOL WINAPI PolyBezierTo (_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
 
BOOL WINAPI PolyDraw (_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_reads_(cpt) const BYTE *aj, _In_ INT cpt)
 
BOOL WINAPI Polygon (_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ INT cpt)
 
BOOL WINAPI Polyline (_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ INT cpt)
 
BOOL WINAPI PolylineTo (_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
 
BOOL WINAPI PolyPolygon (_In_ HDC hdc, _In_ const POINT *apt, _In_reads_(csz) const INT *asz, _In_ INT csz)
 
BOOL WINAPI PolyPolyline (_In_ HDC hdc, _In_ CONST POINT *apt, _In_reads_(csz) CONST DWORD *asz, _In_ DWORD csz)
 
BOOL WINAPI ExtFloodFill (_In_ HDC hdc, _In_ INT xStart, _In_ INT yStart, _In_ COLORREF crFill, _In_ UINT fuFillType)
 
BOOL WINAPI FloodFill (_In_ HDC hdc, _In_ INT xStart, _In_ INT yStart, _In_ COLORREF crFill)
 
BOOL WINAPI BitBlt (_In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD dwRop)
 
BOOL WINAPI PatBlt (_In_ HDC hdc, _In_ INT nXLeft, _In_ INT nYLeft, _In_ INT nWidth, _In_ INT nHeight, _In_ DWORD dwRop)
 
BOOL WINAPI PolyPatBlt (_In_ HDC hdc, _In_ DWORD dwRop, _In_ PPOLYPATBLT pPoly, _In_ DWORD nCount, _In_ DWORD dwMode)
 
BOOL WINAPI StretchBlt (_In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cxDest, _In_ INT cyDest, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_ DWORD dwRop)
 
BOOL WINAPI MaskBlt (_In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cx, _In_ INT cy, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ HBITMAP hbmMask, _In_ INT xMask, _In_ INT yMask, _In_ DWORD dwRop)
 
BOOL WINAPI PlgBlt (_In_ HDC hdcDest, _In_reads_(3) const POINT *ppt, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cx, _In_ INT cy, _In_opt_ HBITMAP hbmMask, _In_ INT xMask, _In_ INT yMask)
 
BOOL WINAPI GdiAlphaBlend (_In_ HDC hdcDst, _In_ INT xDst, _In_ INT yDst, _In_ INT cxDst, _In_ INT cyDst, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_ BLENDFUNCTION blendfn)
 
BOOL WINAPI GdiTransparentBlt (_In_ HDC hdcDst, _In_ INT xDst, _In_ INT yDst, _In_ INT cxDst, _In_ INT cyDst, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_ UINT crTransparent)
 
BOOL WINAPI GdiGradientFill (_In_ HDC hdc, _In_reads_(nVertex) PTRIVERTEX pVertex, _In_ ULONG nVertex, _In_ PVOID pMesh, _In_ ULONG nCount, _In_ ULONG ulMode)
 

Function Documentation

◆ BitBlt()

BOOL WINAPI BitBlt ( _In_ HDC  hdcDest,
_In_ INT  xDest,
_In_ INT  yDest,
_In_ INT  cx,
_In_ INT  cy,
_In_opt_ HDC  hdcSrc,
_In_ INT  xSrc,
_In_ INT  ySrc,
_In_ DWORD  dwRop 
)

Definition at line 447 of file painting.c.

457{
458 /* Use PatBlt for no source blt, like windows does */
459 if (!ROP_USES_SOURCE(dwRop))
460 {
461 return PatBlt(hdcDest, xDest, yDest, cx, cy, dwRop);
462 }
463
464 /* For meta DCs we use StretchBlt via emfdc.c */
466 BitBlt,
467 FALSE,
468 hdcDest,
469 xDest,
470 yDest,
471 cx,
472 cy,
473 hdcSrc,
474 xSrc,
475 ySrc,
476 dwRop);
477
478 if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
479
480 return NtGdiBitBlt(hdcDest, xDest, yDest, cx, cy, hdcSrc, xSrc, ySrc, dwRop, 0, 0);
481}
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
HDC WINAPI GdiConvertAndCheckDC(HDC hdc)
Definition: dc.c:403
#define HANDLE_METADC(_RetType, _Func, dwError, hdc,...)
Definition: gdi32p.h:589
#define ROP_USES_SOURCE(Rop)
Definition: gdi32p.h:88
BOOL WINAPI PatBlt(_In_ HDC hdc, _In_ INT nXLeft, _In_ INT nYLeft, _In_ INT nWidth, _In_ INT nHeight, _In_ DWORD dwRop)
Definition: painting.c:485
BOOL WINAPI BitBlt(_In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD dwRop)
Definition: painting.c:447
__kernel_entry W32KAPI BOOL APIENTRY NtGdiBitBlt(_In_ HDC hdcDst, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD rop4, _In_ DWORD crBackColor, _In_ FLONG fl)
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
_Out_opt_ int * cx
Definition: commctrl.h:585
static HDC hdcSrc
Definition: xlate.c:32

Referenced by BitBlt().

◆ Ellipse()

BOOL WINAPI Ellipse ( _In_ HDC  hdc,
_In_ INT  left,
_In_ INT  top,
_In_ INT  right,
_In_ INT  bottom 
)

Definition at line 71 of file painting.c.

77{
79
80 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
81
82 return NtGdiEllipse(hdc, left, top, right, bottom);
83}
BOOL WINAPI Ellipse(_In_ HDC hdc, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom)
Definition: painting.c:71
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLdouble GLdouble right
Definition: glext.h:10859
GLint left
Definition: glext.h:7726
GLint GLint bottom
Definition: glext.h:7726
HDC hdc
Definition: main.c:9
__kernel_entry W32KAPI BOOL APIENTRY NtGdiEllipse(_In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)

Referenced by Ellipse().

◆ ExtFloodFill()

BOOL WINAPI ExtFloodFill ( _In_ HDC  hdc,
_In_ INT  xStart,
_In_ INT  yStart,
_In_ COLORREF  crFill,
_In_ UINT  fuFillType 
)

Definition at line 413 of file painting.c.

419{
420 HANDLE_METADC(BOOL, ExtFloodFill, FALSE, hdc, xStart, yStart, crFill, fuFillType);
421
422 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
423
424 return NtGdiExtFloodFill(hdc, xStart, yStart, crFill, fuFillType);
425}
BOOL WINAPI ExtFloodFill(_In_ HDC hdc, _In_ INT xStart, _In_ INT yStart, _In_ COLORREF crFill, _In_ UINT fuFillType)
Definition: painting.c:413
__kernel_entry W32KAPI BOOL APIENTRY NtGdiExtFloodFill(_In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ COLORREF crColor, _In_ UINT iFillType)

Referenced by ExtFloodFill(), and FloodFill().

◆ FillRgn()

BOOL WINAPI FillRgn ( _In_ HDC  hdc,
_In_ HRGN  hrgn,
_In_ HBRUSH  hbr 
)

Definition at line 183 of file painting.c.

187{
188
189 if ((hrgn == NULL) || (hbr == NULL))
190 return FALSE;
191
193
194 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
195
196 return NtGdiFillRgn(hdc, hrgn, hbr);
197}
static HRGN hrgn
BOOL WINAPI FillRgn(_In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr)
Definition: painting.c:183
__kernel_entry W32KAPI BOOL APIENTRY NtGdiFillRgn(_In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbrush)
Definition: bitblt.c:1295

Referenced by FillRgn(), HEADER_DrawItem(), CardWindow::PaintCardRgn(), CUIFBalloonWindow::PaintFrameProc(), PaintRgn(), PlayEnhMetaFileRecord(), PlayMetaFileRecord(), print_preview(), Test_FrameRgn(), and TOOLTIPS_Refresh().

◆ FloodFill()

BOOL WINAPI FloodFill ( _In_ HDC  hdc,
_In_ INT  xStart,
_In_ INT  yStart,
_In_ COLORREF  crFill 
)

Definition at line 433 of file painting.c.

438{
439 return ExtFloodFill(hdc, xStart, yStart, crFill, FLOODFILLBORDER);
440}
#define FLOODFILLBORDER
Definition: wingdi.h:644

◆ FrameRgn()

BOOL WINAPI FrameRgn ( _In_ HDC  hdc,
_In_ HRGN  hrgn,
_In_ HBRUSH  hbr,
_In_ INT  nWidth,
_In_ INT  nHeight 
)

Definition at line 205 of file painting.c.

211{
212
213 if ((hrgn == NULL) || (hbr == NULL))
214 return FALSE;
215
216 HANDLE_METADC(BOOL, FrameRgn, FALSE, hdc, hrgn, hbr, nWidth, nHeight);
217
218 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
219
220 return NtGdiFrameRgn(hdc, hrgn, hbr, nWidth, nHeight);
221}
BOOL WINAPI FrameRgn(_In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr, _In_ INT nWidth, _In_ INT nHeight)
Definition: painting.c:205
__kernel_entry W32KAPI BOOL APIENTRY NtGdiFrameRgn(_In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbrush, _In_ INT xWidth, _In_ INT yHeight)
Definition: bitblt.c:1352

Referenced by FrameRgn().

◆ GdiAlphaBlend()

BOOL WINAPI GdiAlphaBlend ( _In_ HDC  hdcDst,
_In_ INT  xDst,
_In_ INT  yDst,
_In_ INT  cxDst,
_In_ INT  cyDst,
_In_ HDC  hdcSrc,
_In_ INT  xSrc,
_In_ INT  ySrc,
_In_ INT  cxSrc,
_In_ INT  cySrc,
_In_ BLENDFUNCTION  blendfn 
)

Definition at line 769 of file painting.c.

781{
782 if (hdcSrc == NULL ) return FALSE;
783
785
788 FALSE,
789 hdcDst,
790 xDst,
791 yDst,
792 cxDst,
793 cyDst,
794 hdcSrc,
795 xSrc,
796 ySrc,
797 cxSrc,
798 cySrc,
799 blendfn);
800
801 if ( GdiConvertAndCheckDC(hdcDst) == NULL ) return FALSE;
802
803 return NtGdiAlphaBlend(hdcDst,
804 xDst,
805 yDst,
806 cxDst,
807 cyDst,
808 hdcSrc,
809 xSrc,
810 ySrc,
811 cxSrc,
812 cySrc,
813 blendfn,
814 0);
815}
#define HANDLE_EMETAFDC(_RetType, _Func, dwError, hdc,...)
Definition: gdi32p.h:644
#define GDI_HANDLE_GET_TYPE(h)
Definition: gdi.h:31
#define GDI_OBJECT_TYPE_METADC
Definition: gdi.h:57
__kernel_entry W32KAPI BOOL APIENTRY NtGdiAlphaBlend(_In_ HDC hdcDst, _In_ LONG DstX, _In_ LONG DstY, _In_ LONG DstCx, _In_ LONG DstCy, _In_ HDC hdcSrc, _In_ LONG SrcX, _In_ LONG SrcY, _In_ LONG SrcCx, _In_ LONG SrcCy, _In_ BLENDFUNCTION BlendFunction, _In_ HANDLE hcmXform)
#define AlphaBlend
Definition: misc.c:293
static HDC hdcDst
Definition: xlate.c:32

◆ GdiGradientFill()

BOOL WINAPI GdiGradientFill ( _In_ HDC  hdc,
_In_reads_(nVertex) PTRIVERTEX  pVertex,
_In_ ULONG  nVertex,
_In_ PVOID  pMesh,
_In_ ULONG  nCount,
_In_ ULONG  ulMode 
)

Definition at line 861 of file painting.c.

868{
870
871 HANDLE_EMETAFDC(BOOL, GradientFill, FALSE, hdc, pVertex, nVertex, pMesh, nCount, ulMode);
872
873 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
874
875 return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nCount, ulMode);
876}
#define TRUE
Definition: types.h:120
@ GDILoObjType_LO_METADC16_TYPE
Definition: gdi_private.h:49
__kernel_entry W32KAPI BOOL APIENTRY NtGdiGradientFill(_In_ HDC hdc, _In_ PTRIVERTEX pVertex, _In_ ULONG nVertex, _In_ PVOID pMesh, _In_ ULONG nMesh, _In_ ULONG ulMode)
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG _In_ PVOID pMesh
Definition: winddi.h:3653
_In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX _In_ ULONG nVertex
Definition: winddi.h:3652
_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_ CLIPOBJ _In_opt_ XLATEOBJ _In_ TRIVERTEX * pVertex
Definition: winddi.h:3651

◆ GdiTransparentBlt()

BOOL WINAPI GdiTransparentBlt ( _In_ HDC  hdcDst,
_In_ INT  xDst,
_In_ INT  yDst,
_In_ INT  cxDst,
_In_ INT  cyDst,
_In_ HDC  hdcSrc,
_In_ INT  xSrc,
_In_ INT  ySrc,
_In_ INT  cxSrc,
_In_ INT  cySrc,
_In_ UINT  crTransparent 
)

Definition at line 823 of file painting.c.

835{
838 FALSE,
839 hdcDst,
840 xDst,
841 yDst,
842 cxDst,
843 cyDst,
844 hdcSrc,
845 xSrc,
846 ySrc,
847 cxSrc,
848 cySrc,
849 crTransparent);
850
851 if ( GdiConvertAndCheckDC(hdcDst) == NULL ) return FALSE;
852
853 return NtGdiTransparentBlt(hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc, cxSrc, cySrc, crTransparent);
854}
__kernel_entry W32KAPI BOOL APIENTRY NtGdiTransparentBlt(_In_ HDC hdcDst, _In_ INT xDst, _In_ INT yDst, _In_ INT cxDst, _In_ INT cyDst, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_ COLORREF TransColor)
#define TransparentBlt
Definition: misc.c:292

◆ GetPixel()

COLORREF WINAPI GetPixel ( _In_ HDC  hdc,
_In_ INT  x,
_In_ INT  y 
)

Definition at line 133 of file painting.c.

137{
140 return NtGdiGetPixel(hdc, x, y);
141}
BOOL WINAPI GdiValidateHandle(HGDIOBJ)
Definition: misc.c:712
#define GDI_OBJECT_TYPE_DC
Definition: gdi.h:46
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
__kernel_entry W32KAPI DWORD APIENTRY NtGdiGetPixel(_In_ HDC hdc, _In_ INT x, _In_ INT y)
Definition: bitblt.c:1512
#define CLR_INVALID
Definition: wingdi.h:883

◆ InvertRgn()

BOOL WINAPI InvertRgn ( _In_ HDC  hdc,
_In_ HRGN  hrgn 
)

Definition at line 229 of file painting.c.

232{
233
234 if (hrgn == NULL)
235 return FALSE;
236
238
239 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
240
241 return NtGdiInvertRgn(hdc, hrgn);
242}
BOOL WINAPI InvertRgn(_In_ HDC hdc, _In_ HRGN hrgn)
Definition: painting.c:229
__kernel_entry W32KAPI BOOL APIENTRY NtGdiInvertRgn(_In_ HDC hdc, _In_ HRGN hrgn)
Definition: bitblt.c:1376

Referenced by InvertRgn(), PaintSelectionRect(), PlayEnhMetaFileRecord(), and PlayMetaFileRecord().

◆ LineTo()

BOOL WINAPI LineTo ( _In_ HDC  hdc,
_In_ INT  x,
_In_ INT  y 
)

Definition at line 9 of file painting.c.

13{
15
16 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
17
18 return NtGdiLineTo(hdc, x, y);
19}
BOOL WINAPI LineTo(_In_ HDC hdc, _In_ INT x, _In_ INT y)
Definition: painting.c:9
__kernel_entry W32KAPI BOOL APIENTRY NtGdiLineTo(_In_ HDC hdc, _In_ INT x, _In_ INT y)

Referenced by LineTo().

◆ MaskBlt()

BOOL WINAPI MaskBlt ( _In_ HDC  hdcDest,
_In_ INT  xDest,
_In_ INT  yDest,
_In_ INT  cx,
_In_ INT  cy,
_In_ HDC  hdcSrc,
_In_ INT  xSrc,
_In_ INT  ySrc,
_In_ HBITMAP  hbmMask,
_In_ INT  xMask,
_In_ INT  yMask,
_In_ DWORD  dwRop 
)

Definition at line 673 of file painting.c.

686{
688 MaskBlt,
689 FALSE,
690 hdcDest,
691 xDest,
692 yDest,
693 cx,
694 cy,
695 hdcSrc,
696 xSrc,
697 ySrc,
698 hbmMask,
699 xMask,
700 yMask,
701 dwRop);
702
703 if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
704
705 return NtGdiMaskBlt(hdcDest,
706 xDest,
707 yDest,
708 cx,
709 cy,
710 hdcSrc,
711 xSrc,
712 ySrc,
713 hbmMask,
714 xMask,
715 yMask,
716 dwRop,
718}
BOOL WINAPI MaskBlt(_In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cx, _In_ INT cy, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ HBITMAP hbmMask, _In_ INT xMask, _In_ INT yMask, _In_ DWORD dwRop)
Definition: painting.c:673
__kernel_entry W32KAPI BOOL APIENTRY NtGdiMaskBlt(_In_ HDC hdc, _In_ INT xDst, _In_ INT yDst, _In_ INT cx, _In_ INT cy, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_opt_ HBITMAP hbmMask, _In_ INT xMask, _In_ INT yMask, _In_ DWORD dwRop4, _In_ DWORD crBackColor)
COLORREF WINAPI GetBkColor(_In_ HDC)
Definition: dc.c:978

Referenced by MaskBlt().

◆ MoveToEx()

BOOL WINAPI MoveToEx ( _In_ HDC  hdc,
_In_ INT  x,
_In_ INT  y,
_Out_opt_ LPPOINT  ppt 
)

Definition at line 24 of file painting.c.

29{
30 PDC_ATTR pdcattr;
31
32 HANDLE_METADC(BOOL, MoveTo, FALSE, hdc, x, y);
33
34 /* Get the DC attribute */
35 pdcattr = GdiGetDcAttr(hdc);
36 if (pdcattr == NULL)
37 {
39 return FALSE;
40 }
41
42 if (ppt)
43 {
44 if ( pdcattr->ulDirty_ & DIRTY_PTLCURRENT ) // Double hit!
45 {
46 ppt->x = pdcattr->ptfxCurrent.x; // ret prev before change.
47 ppt->y = pdcattr->ptfxCurrent.y;
48 DPtoLP (hdc, ppt, 1); // reconvert back.
49 }
50 else
51 {
52 ppt->x = pdcattr->ptlCurrent.x;
53 ppt->y = pdcattr->ptlCurrent.y;
54 }
55 }
56
57 pdcattr->ptlCurrent.x = x;
58 pdcattr->ptlCurrent.y = y;
59
60 pdcattr->ulDirty_ &= ~DIRTY_PTLCURRENT;
61 pdcattr->ulDirty_ |= ( DIRTY_PTFXCURRENT|DIRTY_STYLESTATE); // Set dirty
62 return TRUE;
63}
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
Definition: gdi32p.h:451
#define DIRTY_PTLCURRENT
Definition: ntgdihdl.h:131
#define DIRTY_STYLESTATE
Definition: ntgdihdl.h:133
#define DIRTY_PTFXCURRENT
Definition: ntgdihdl.h:132
POINTL ptlCurrent
Definition: ntgdihdl.h:311
ULONG ulDirty_
Definition: ntgdihdl.h:294
POINTL ptfxCurrent
Definition: ntgdihdl.h:312
LONG y
Definition: windef.h:330
LONG x
Definition: windef.h:329
BOOL WINAPI DPtoLP(_In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _In_ int c)

◆ PaintRgn()

BOOL WINAPI PaintRgn ( _In_ HDC  hdc,
_In_ HRGN  hrgn 
)

Definition at line 250 of file painting.c.

253{
255}
#define OBJ_BRUSH
Definition: objidl.idl:1410
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT)
Definition: dc.c:428

Referenced by draw_graphics(), PlayEnhMetaFileRecord(), PlayMetaFileRecord(), and Test_PaintRgn().

◆ PatBlt()

BOOL WINAPI PatBlt ( _In_ HDC  hdc,
_In_ INT  nXLeft,
_In_ INT  nYLeft,
_In_ INT  nWidth,
_In_ INT  nHeight,
_In_ DWORD  dwRop 
)

Definition at line 485 of file painting.c.

492{
493 PDC_ATTR pdcattr;
494
495 HANDLE_EMETAFDC(BOOL, PatBlt, FALSE, hdc, nXLeft, nYLeft, nWidth, nHeight, dwRop);
496
497 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
498
499 /* Get the DC attribute */
500 pdcattr = GdiGetDcAttr(hdc);
501 if (pdcattr && !(pdcattr->ulDirty_ & DC_DIBSECTION))
502 {
503 PGDIBSPATBLT pgO;
504
506 if (pgO)
507 {
508 pdcattr->ulDirty_ |= DC_MODE_DIRTY;
509 pgO->nXLeft = nXLeft;
510 pgO->nYLeft = nYLeft;
511 pgO->nWidth = nWidth;
512 pgO->nHeight = nHeight;
513 pgO->dwRop = dwRop;
514 /* Snapshot attributes */
515 pgO->hbrush = pdcattr->hbrush;
516 pgO->crForegroundClr = pdcattr->crForegroundClr;
517 pgO->crBackgroundClr = pdcattr->crBackgroundClr;
518 pgO->crBrushClr = pdcattr->crBrushClr;
519 pgO->ulForegroundClr = pdcattr->ulForegroundClr;
520 pgO->ulBackgroundClr = pdcattr->ulBackgroundClr;
521 pgO->ulBrushClr = pdcattr->ulBrushClr;
522 return TRUE;
523 }
524 }
525 return NtGdiPatBlt( hdc, nXLeft, nYLeft, nWidth, nHeight, dwRop);
526}
FORCEINLINE PVOID GdiAllocBatchCommand(HDC hdc, USHORT Cmd)
Definition: gdi32p.h:381
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPatBlt(_In_ HDC hdcDest, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_ DWORD dwRop)
Definition: bitblt.c:984
#define DC_DIBSECTION
Definition: ntgdihdl.h:137
#define DC_MODE_DIRTY
Definition: ntgdihdl.h:144
@ GdiBCPatBlt
Definition: ntgdityp.h:86
HANDLE hbrush
Definition: ntgdihdl.h:295
ULONG ulBrushClr
Definition: ntgdihdl.h:302
ULONG ulBackgroundClr
Definition: ntgdihdl.h:298
COLORREF crBrushClr
Definition: ntgdihdl.h:301
ULONG ulForegroundClr
Definition: ntgdihdl.h:300
COLORREF crForegroundClr
Definition: ntgdihdl.h:299
COLORREF crBackgroundClr
Definition: ntgdihdl.h:297
ULONG ulBrushClr
Definition: ntgdityp.h:478
COLORREF crBackgroundClr
Definition: ntgdityp.h:472
ULONG ulForegroundClr
Definition: ntgdityp.h:476
COLORREF crBrushClr
Definition: ntgdityp.h:473
COLORREF crForegroundClr
Definition: ntgdityp.h:471
DWORD dwRop
Definition: ntgdityp.h:470
ULONG ulBackgroundClr
Definition: ntgdityp.h:477
HANDLE hbrush
Definition: ntgdityp.h:469

Referenced by BitBlt(), PatBlt(), and PolyPatBlt().

◆ PlgBlt()

BOOL WINAPI PlgBlt ( _In_ HDC  hdcDest,
_In_reads_(3) const POINT ppt,
_In_ HDC  hdcSrc,
_In_ INT  xSrc,
_In_ INT  ySrc,
_In_ INT  cx,
_In_ INT  cy,
_In_opt_ HBITMAP  hbmMask,
_In_ INT  xMask,
_In_ INT  yMask 
)

Definition at line 726 of file painting.c.

737{
739 PlgBlt,
740 FALSE,
741 hdcDest,
742 ppt,
743 hdcSrc,
744 xSrc,
745 ySrc,
746 cx,
747 cy,
748 hbmMask,
749 xMask,
750 yMask);
751
752 if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
753
754 return NtGdiPlgBlt(hdcDest,
755 (LPPOINT)ppt,
756 hdcSrc,
757 xSrc,
758 ySrc,
759 cx,
760 cy,
761 hbmMask,
762 xMask,
763 yMask,
765}
BOOL WINAPI PlgBlt(_In_ HDC hdcDest, _In_reads_(3) const POINT *ppt, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cx, _In_ INT cy, _In_opt_ HBITMAP hbmMask, _In_ INT xMask, _In_ INT yMask)
Definition: painting.c:726
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPlgBlt(_In_ HDC hdcTrg, _In_reads_(3) LPPOINT pptlTrg, _In_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_opt_ HBITMAP hbmMask, _In_ INT xMask, _In_ INT yMask, _In_ DWORD crBackColor)

Referenced by PlgBlt().

◆ PolyBezier()

BOOL WINAPI PolyBezier ( _In_ HDC  hdc,
_In_reads_(cpt) const POINT apt,
_In_ DWORD  cpt 
)

Definition at line 263 of file painting.c.

267{
269
270 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
271
272 return NtGdiPolyPolyDraw(hdc ,(PPOINT)apt, &cpt, 1, GdiPolyBezier);
273}
BOOL WINAPI PolyBezier(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
Definition: painting.c:263
__kernel_entry W32KAPI ULONG_PTR APIENTRY NtGdiPolyPolyDraw(_In_ HDC hdc, _In_ PPOINT ppt, _In_reads_(ccpt) PULONG pcpt, _In_ ULONG ccpt, _In_ INT iFunc)
@ GdiPolyBezier
Definition: ntgdityp.h:40

Referenced by Bezier(), DrawPrimitive(), PlayEnhMetaFileRecord(), PolyBezier(), test_all_functions(), and test_emf_polybezier().

◆ PolyBezierTo()

BOOL WINAPI PolyBezierTo ( _In_ HDC  hdc,
_In_reads_(cpt) const POINT apt,
_In_ DWORD  cpt 
)

Definition at line 281 of file painting.c.

285{
287
288 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
289
290 return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyBezierTo);
291}
BOOL WINAPI PolyBezierTo(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
Definition: painting.c:281
@ GdiPolyBezierTo
Definition: ntgdityp.h:42

Referenced by MainWndProc(), PlayEnhMetaFileRecord(), PolyBezierTo(), test_all_functions(), and test_emf_polybezier().

◆ PolyDraw()

BOOL WINAPI PolyDraw ( _In_ HDC  hdc,
_In_reads_(cpt) const POINT apt,
_In_reads_(cpt) const BYTE aj,
_In_ INT  cpt 
)

Definition at line 299 of file painting.c.

304{
305 HANDLE_EMETAFDC(BOOL, PolyDraw, FALSE, hdc, apt, aj, cpt);
306
307 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
308
309 return NtGdiPolyDraw(hdc, (PPOINT)apt, (PBYTE)aj, cpt);
310}
BOOL WINAPI PolyDraw(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_reads_(cpt) const BYTE *aj, _In_ INT cpt)
Definition: painting.c:299
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPolyDraw(_In_ HDC hdc, _In_reads_(cpt) LPPOINT ppt, _In_reads_(cpt) LPBYTE pjAttr, _In_ ULONG cpt)
BYTE * PBYTE
Definition: pedump.c:66

Referenced by PolyDraw().

◆ Polygon()

BOOL WINAPI Polygon ( _In_ HDC  hdc,
_In_reads_(cpt) const POINT apt,
_In_ INT  cpt 
)

Definition at line 318 of file painting.c.

322{
323 HANDLE_METADC(BOOL, Polygon, FALSE, hdc, apt, cpt);
324
325 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
326
327 return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolygon);
328}
BOOL WINAPI Polygon(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ INT cpt)
Definition: painting.c:318
@ GdiPolyPolygon
Definition: ntgdityp.h:38
uint32_t * PULONG
Definition: typedefs.h:59

Referenced by Polygon().

◆ Polyline()

BOOL WINAPI Polyline ( _In_ HDC  hdc,
_In_reads_(cpt) const POINT apt,
_In_ INT  cpt 
)

Definition at line 336 of file painting.c.

340{
341 HANDLE_METADC(BOOL, Polyline, FALSE, hdc, apt, cpt);
342
343 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
344
345 return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolyLine);
346}
BOOL WINAPI Polyline(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ INT cpt)
Definition: painting.c:336
@ GdiPolyPolyLine
Definition: ntgdityp.h:39

Referenced by Polyline().

◆ PolylineTo()

BOOL WINAPI PolylineTo ( _In_ HDC  hdc,
_In_reads_(cpt) const POINT apt,
_In_ DWORD  cpt 
)

Definition at line 354 of file painting.c.

358{
360
361 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
362
363 return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyLineTo);
364}
BOOL WINAPI PolylineTo(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
Definition: painting.c:354
@ GdiPolyLineTo
Definition: ntgdityp.h:41

Referenced by PlayEnhMetaFileRecord(), PolylineTo(), test_all_functions(), and test_emf_paths().

◆ PolyPatBlt()

BOOL WINAPI PolyPatBlt ( _In_ HDC  hdc,
_In_ DWORD  dwRop,
_In_ PPOLYPATBLT  pPoly,
_In_ DWORD  nCount,
_In_ DWORD  dwMode 
)

Definition at line 530 of file painting.c.

536{
537 UINT i;
538 BOOL bResult;
539 HBRUSH hbrOld;
540 PDC_ATTR pdcattr;
541
542 /* Handle meta DCs */
545 {
547 {
548 return FALSE;
549 }
550
551 /* Save the current DC brush */
552 hbrOld = SelectObject(hdc, GetStockObject(DC_BRUSH));
553
554 /* Assume success */
555 bResult = TRUE;
556
557 /* Loop all rect */
558 for (i = 0; i < nCount; i++)
559 {
560 /* Select the brush for this rect */
561 SelectObject(hdc, pPoly[i].hBrush);
562
563 /* Do the PatBlt operation for this rect */
564 bResult &= PatBlt(hdc,
565 pPoly[i].nXLeft,
566 pPoly[i].nYLeft,
567 pPoly[i].nWidth,
568 pPoly[i].nHeight,
569 dwRop);
570 }
571
572 /* Restore the old brush */
573 SelectObject(hdc, hbrOld);
574
575 return bResult;
576 }
577
578 /* Get the DC attribute */
579 pdcattr = GdiGetDcAttr(hdc);
580 if (nCount && pdcattr && !(pdcattr->ulDirty_ & DC_DIBSECTION))
581 {
582 PGDIBSPPATBLT pgO;
583 PTEB pTeb = NtCurrentTeb();
584
586 if (pgO)
587 {
588 USHORT cjSize = 0;
589 if (nCount > 1) cjSize = (nCount-1) * sizeof(PATRECT);
590
591 if ((pTeb->GdiTebBatch.Offset + cjSize) <= GDIBATCHBUFSIZE)
592 {
593 pdcattr->ulDirty_ |= DC_MODE_DIRTY;
594 pgO->Count = nCount;
595 pgO->Mode = dwMode;
596 pgO->rop4 = dwRop;
597 /* Snapshot attributes */
598 pgO->crForegroundClr = pdcattr->crForegroundClr;
599 pgO->crBackgroundClr = pdcattr->crBackgroundClr;
600 pgO->crBrushClr = pdcattr->crBrushClr;
601 pgO->ulForegroundClr = pdcattr->ulForegroundClr;
602 pgO->ulBackgroundClr = pdcattr->ulBackgroundClr;
603 pgO->ulBrushClr = pdcattr->ulBrushClr;
604 RtlCopyMemory(pgO->pRect, pPoly, nCount * sizeof(PATRECT));
605 // Recompute offset and return size, remember one is already accounted for in the structure.
606 pTeb->GdiTebBatch.Offset += cjSize;
607 ((PGDIBATCHHDR)pgO)->Size += cjSize;
608 return TRUE;
609 }
610 // Reset offset and count then fall through
611 pTeb->GdiTebBatch.Offset -= sizeof(GDIBSPPATBLT);
612 pTeb->GdiBatchCount--;
613 }
614 }
615 return NtGdiPolyPatBlt(hdc, dwRop, pPoly, nCount, dwMode);
616}
@ GDILoObjType_LO_ALTDC_TYPE
Definition: gdi_private.h:43
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define NtCurrentTeb
unsigned int UINT
Definition: ndis.h:50
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPolyPatBlt(_In_ HDC hdc, _In_ DWORD rop4, _In_reads_(cPoly) PPOLYPATBLT pPoly, _In_ DWORD cPoly, _In_ DWORD dwMode)
#define GDIBATCHBUFSIZE
Definition: ntgdityp.h:200
struct _GDIBATCHHDR * PGDIBATCHHDR
struct _GDIBSPPATBLT GDIBSPPATBLT
@ GdiBCPolyPatBlt
Definition: ntgdityp.h:87
unsigned short USHORT
Definition: pedump.c:61
DWORD rop4
Definition: ntgdityp.h:491
ULONG ulForegroundClr
Definition: ntgdityp.h:497
ULONG ulBackgroundClr
Definition: ntgdityp.h:498
ULONG ulBrushClr
Definition: ntgdityp.h:499
COLORREF crForegroundClr
Definition: ntgdityp.h:494
PATRECT pRect[1]
Definition: ntgdityp.h:501
DWORD Count
Definition: ntgdityp.h:493
DWORD Mode
Definition: ntgdityp.h:492
COLORREF crBackgroundClr
Definition: ntgdityp.h:495
COLORREF crBrushClr
Definition: ntgdityp.h:496
ULONG Offset
Definition: compat.h:831
Definition: compat.h:836
GDI_TEB_BATCH GdiTebBatch
Definition: compat.h:857
ULONG GdiBatchCount
Definition: compat.h:887
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
_In_ ULONG cjSize
Definition: winddi.h:3634
HGDIOBJ WINAPI GetStockObject(_In_ int)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539

◆ PolyPolygon()

BOOL WINAPI PolyPolygon ( _In_ HDC  hdc,
_In_ const POINT apt,
_In_reads_(csz) const INT asz,
_In_ INT  csz 
)

Definition at line 372 of file painting.c.

377{
378 HANDLE_METADC(BOOL, PolyPolygon, FALSE, hdc, apt, asz, csz);
379
380 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
381
382 return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolygon);
383}
BOOL WINAPI PolyPolygon(_In_ HDC hdc, _In_ const POINT *apt, _In_reads_(csz) const INT *asz, _In_ INT csz)
Definition: painting.c:372

Referenced by PolyPolygon().

◆ PolyPolyline()

BOOL WINAPI PolyPolyline ( _In_ HDC  hdc,
_In_ CONST POINT apt,
_In_reads_(csz) CONST DWORD asz,
_In_ DWORD  csz 
)

Definition at line 391 of file painting.c.

396{
398 return FALSE;
399
400 HANDLE_EMETAFDC(BOOL, PolyPolyline, FALSE, hdc, apt, asz, csz);
401
402 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
403
404 return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolyLine);
405}
BOOL WINAPI PolyPolyline(_In_ HDC hdc, _In_ CONST POINT *apt, _In_reads_(csz) CONST DWORD *asz, _In_ DWORD csz)
Definition: painting.c:391

Referenced by PolyPolyline().

◆ Rectangle()

BOOL WINAPI Rectangle ( _In_ HDC  hdc,
_In_ INT  left,
_In_ INT  top,
_In_ INT  right,
_In_ INT  bottom 
)

Definition at line 91 of file painting.c.

97{
99
100 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
101
103}
BOOL WINAPI Rectangle(_In_ HDC hdc, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom)
Definition: painting.c:91
__kernel_entry W32KAPI BOOL APIENTRY NtGdiRectangle(_In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)

Referenced by Rectangle().

◆ RoundRect()

BOOL WINAPI RoundRect ( _In_ HDC  hdc,
_In_ INT  left,
_In_ INT  top,
_In_ INT  right,
_In_ INT  bottom,
_In_ INT  width,
_In_ INT  height 
)

Definition at line 111 of file painting.c.

119{
121
122 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
123
125}
BOOL WINAPI RoundRect(_In_ HDC hdc, _In_ INT left, _In_ INT top, _In_ INT right, _In_ INT bottom, _In_ INT width, _In_ INT height)
Definition: painting.c:111
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
__kernel_entry W32KAPI BOOL APIENTRY NtGdiRoundRect(_In_ HDC hdc, _In_ INT x1, _In_ INT y1, _In_ INT x2, _In_ INT y2, _In_ INT x3, _In_ INT y3)

Referenced by RoundRect().

◆ SetPixel()

COLORREF WINAPI SetPixel ( _In_ HDC  hdc,
_In_ INT  x,
_In_ INT  y,
_In_ COLORREF  crColor 
)

Definition at line 149 of file painting.c.

154{
156
157 if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
158
159 return NtGdiSetPixel(hdc, x, y, crColor);
160}
COLORREF WINAPI SetPixel(_In_ HDC hdc, _In_ INT x, _In_ INT y, _In_ COLORREF crColor)
Definition: painting.c:149
__kernel_entry W32KAPI COLORREF APIENTRY NtGdiSetPixel(_In_ HDC hdcDst, _In_ INT x, _In_ INT y, _In_ COLORREF crColor)
Definition: bitblt.c:1423
DWORD COLORREF
Definition: windef.h:300

Referenced by SetPixel(), and SetPixelV().

◆ SetPixelV()

BOOL WINAPI SetPixelV ( _In_ HDC  hdc,
_In_ INT  x,
_In_ INT  y,
_In_ COLORREF  crColor 
)

Definition at line 168 of file painting.c.

173{
174 return SetPixel(hdc, x, y, crColor) != CLR_INVALID;
175}

◆ StretchBlt()

BOOL WINAPI StretchBlt ( _In_ HDC  hdcDest,
_In_ INT  xDest,
_In_ INT  yDest,
_In_ INT  cxDest,
_In_ INT  cyDest,
_In_opt_ HDC  hdcSrc,
_In_ INT  xSrc,
_In_ INT  ySrc,
_In_ INT  cxSrc,
_In_ INT  cySrc,
_In_ DWORD  dwRop 
)

Definition at line 623 of file painting.c.

635{
638 FALSE,
639 hdcDest,
640 xDest,
641 yDest,
642 cxDest,
643 cyDest,
644 hdcSrc,
645 xSrc,
646 ySrc,
647 cxSrc,
648 cySrc,
649 dwRop);
650
651 if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
652
653 return NtGdiStretchBlt(hdcDest,
654 xDest,
655 yDest,
656 cxDest,
657 cyDest,
658 hdcSrc,
659 xSrc,
660 ySrc,
661 cxSrc,
662 cySrc,
663 dwRop,
664 0);
665}
BOOL WINAPI StretchBlt(_In_ HDC hdcDest, _In_ INT xDest, _In_ INT yDest, _In_ INT cxDest, _In_ INT cyDest, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_ DWORD dwRop)
Definition: painting.c:623
__kernel_entry W32KAPI BOOL APIENTRY NtGdiStretchBlt(_In_ HDC hdcDst, _In_ INT xDst, _In_ INT yDst, _In_ INT cxDst, _In_ INT cyDst, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ INT cxSrc, _In_ INT cySrc, _In_ DWORD dwRop, _In_ DWORD dwBackColor)

Referenced by StretchBlt().