25 pbrLine =
dc->dclevel.pbrLine;
37 lWidth = pbrLine->lWidth + 2;
48 else lWidth = (lWidth + 1) / 2;
160 pdcattr =
dc->pdcattr;
168 psurf =
dc->dclevel.pSurface;
183 Points[0].
x +=
dc->ptlDCOrig.x;
184 Points[0].
y +=
dc->ptlDCOrig.y;
185 Points[1].
x +=
dc->ptlDCOrig.x;
186 Points[1].
y +=
dc->ptlDCOrig.y;
188 Bounds.
left =
min(Points[0].
x, Points[1].
x);
189 Bounds.
top =
min(Points[0].
y, Points[1].
y);
194 pbrLine =
dc->dclevel.pbrLine;
224 dc->dclevel.flPath &= ~DCPATH_ACTIVE;
238 &
dc->eboLine.BrushObject,
239 Points[0].
x, Points[0].
y,
240 Points[1].
x, Points[1].
y,
337 if (!
dc->dclevel.pSurface)
343 psurf =
dc->dclevel.pSurface;
346 pbrLine =
dc->dclevel.pbrLine;
360 Points[
i].
x +=
dc->ptlDCOrig.x;
361 Points[
i].
y +=
dc->ptlDCOrig.y;
390 dc->dclevel.flPath &= ~DCPATH_ACTIVE;
404 &
dc->eboLine.BrushObject,
510 rcLockRect.
left =
dc->pdcattr->ptlCurrent.x;
511 rcLockRect.
top =
dc->pdcattr->ptlCurrent.y;
512 rcLockRect.
right = XEnd;
518 rcLockRect.
left +=
dc->ptlDCOrig.x;
519 rcLockRect.
top +=
dc->ptlDCOrig.y;
520 rcLockRect.
right +=
dc->ptlDCOrig.x;
521 rcLockRect.
bottom +=
dc->ptlDCOrig.y;
545 volatile PPOINT line_pts, line_pts_old, bzr_pts;
552 pdcattr =
dc->pdcattr;
572 ProbeArrayForRead(lppt,
sizeof(
POINT), cCount,
sizeof(
LONG));
573 ProbeArrayForRead(lpbTypes,
sizeof(
BYTE), cCount,
sizeof(
BYTE));
582 for (
i = 0;
i < cCount;
i++)
602 space = cCount + 300;
604 if (line_pts ==
NULL)
615 for (
i = 0;
i < cCount;
i++ )
622 line_pts[num_pts++] = lppt[
i];
626 line_pts[num_pts++] = lppt[
i];
629 bzr[0].
x = line_pts[num_pts - 1].
x;
630 bzr[0].
y = line_pts[num_pts - 1].
y;
633 if ((bzr_pts =
GDI_Bezier( bzr, 4, &num_bzr_pts )))
635 size = num_pts + (cCount -
i) + num_bzr_pts;
640 line_pts_old = line_pts;
648 num_pts += num_bzr_pts - 1;
668 if (line_pts !=
NULL)
673 if ((line_pts_old !=
NULL) && (line_pts_old != line_pts))
705 if (!pdc)
return FALSE;
POINT * GDI_Bezier(const POINT *Points, INT count, INT *nPtsOut)
#define CoordLPtoDP(pdc, ppt)
static BOOLEAN IntDPtoLP(DC *pdc, PPOINTL ppt, UINT count)
static BOOLEAN IntLPtoDP(DC *pdc, PPOINTL ppt, UINT count)
VOID FASTCALL DC_vPrepareDCsForBlit(PDC pdcDest, const RECT *rcDest, PDC pdcSrc, const RECT *rcSrc)
VOID FASTCALL DC_vUpdateLineBrush(PDC pdc)
VOID FASTCALL DC_vFinishBlit(PDC pdc1, PDC pdc2)
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
VOID FASTCALL IntUpdateBoundsRect(PDC, PRECTL)
#define ASSERT_DC_PREPARED(pdc)
VOID FASTCALL DC_vUpdateFillBrush(PDC pdc)
FORCEINLINE PDC DC_LockDc(HDC hdc)
#define ERROR_INVALID_HANDLE
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLsizei const GLfloat * points
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
#define EXCEPTION_EXECUTE_HANDLER
#define ROP2_TO_MIX(Rop2)
BOOL APIENTRY IntEngPolyline(SURFOBJ *DestSurf, CLIPOBJ *Clip, BRUSHOBJ *Brush, CONST LPPOINT pt, LONG dCount, MIX mix)
#define memcpy(s1, s2, n)
#define ExFreePoolWithTag(_P, _T)
_In_ UINT _Out_ PPOINTL pptOut
#define DIRTY_PTFXCURRENT
#define PATH_UnlockPath(pPath)
#define PATH_IsPathOpen(dclevel)
#define IntIsEffectiveWidePen(pbrLine)
void IntEngLineTo(SURFOBJ *, CLIPOBJ, PBRUSHOBJ, int x1, int y1, int x2, int y2, RECTL *, MIX mix)
void * EngAllocMem(int zero, unsigned long size, int tag=0)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
PULONG MinorVersion OPTIONAL
#define RtlCopyMemory(Destination, Source, Length)
VOID FASTCALL SetLastNtError(NTSTATUS Status)
BOOL FASTCALL IntGdiPolyline(DC *dc, LPPOINT pt, int Count)
BOOL FASTCALL IntGdiLineTo(DC *dc, int XEnd, int YEnd)
BOOL FASTCALL GreMoveTo(HDC hdc, INT x, INT y, LPPOINT pptOut)
BOOL FASTCALL IntGdiMoveToEx(DC *dc, int X, int Y, LPPOINT Point)
BOOL FASTCALL IntGdiPolyBezier(DC *dc, LPPOINT pt, DWORD Count)
VOID FASTCALL IntGetCurrentPositionEx(PDC dc, LPPOINT pt)
BOOL FASTCALL IntGdiPolylineTo(DC *dc, LPPOINT pt, DWORD Count)
BOOL FASTCALL IntGdiPolyPolyline(DC *dc, LPPOINT pt, PULONG PolyPoints, DWORD Count)
BOOL APIENTRY NtGdiPolyDraw(IN HDC hdc, IN LPPOINT lppt, IN LPBYTE lpbTypes, IN ULONG cCount)
BOOL APIENTRY NtGdiLineTo(HDC hDC, int XEnd, int YEnd)
VOID FASTCALL AddPenLinesBounds(PDC dc, int count, POINT *points)
BOOL FASTCALL IntGdiPolyBezierTo(DC *dc, LPPOINT pt, DWORD Count)
BOOL FASTCALL PATH_PolyBezierTo(PDC dc, const POINT *pts, DWORD cbPoints)
BOOL FASTCALL PATH_PolyBezier(PDC dc, const POINT *pts, DWORD cbPoints)
BOOL FASTCALL PATH_Delete(HPATH hPath)
BOOL FASTCALL PATH_PolylineTo(PDC dc, const POINT *pts, DWORD cbPoints)
BOOL FASTCALL PATH_LineTo(PDC dc, INT x, INT y)
BOOL FASTCALL PATH_StrokePath(DC *dc, PPATH pPath)
BOOL FASTCALL PATH_PolyPolyline(PDC dc, const POINT *pts, const DWORD *counts, DWORD polylines)
PPATH FASTCALL PATH_CreatePath(int count)
BOOL FASTCALL PATH_PolyDraw(PDC dc, const POINT *pts, const BYTE *types, DWORD cbPoints)
BOOL FASTCALL PATH_MoveTo(PDC dc, PPATH pPath)
BOOL FASTCALL RECTL_bUnionRect(_Out_ RECTL *prclDst, _In_ const RECTL *prcl1, _In_ const RECTL *prcl2)
BOOL FASTCALL RECTL_bIntersectRect(_Out_ RECTL *prclDst, _In_ const RECTL *prcl1, _In_ const RECTL *prcl2)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)