Merge pull request #245 from ydal/patch-15

gdi : fix polyline function
This commit is contained in:
Marc-André Moreau 2011-12-01 20:33:18 -08:00
commit dc0699fc8f

View File

@ -590,19 +590,25 @@ void gdi_polyline(rdpContext* context, POLYLINE_ORDER* polyline)
HGDI_PEN hPen;
DELTA_POINT* points;
rdpGdi* gdi = context->gdi;
sint32 x;
sint32 y;
color = freerdp_color_convert(polyline->penColor, gdi->srcBpp, 32, gdi->clrconv);
hPen = gdi_CreatePen(0, 1, (GDI_COLOR) color);
hPen = gdi_CreatePen(GDI_PS_SOLID, 1, (GDI_COLOR) color);
gdi_SelectObject(gdi->drawing->hdc, (HGDIOBJECT) hPen);
gdi_SetROP2(gdi->drawing->hdc, polyline->bRop2);
gdi_MoveToEx(gdi->drawing->hdc, polyline->xStart, polyline->yStart, NULL);
x = polyline->xStart;
y = polyline->yStart;
gdi_MoveToEx(gdi->drawing->hdc, x, y, NULL);
points = polyline->points;
for (i = 0; i < polyline->numPoints; i++)
{
gdi_LineTo(gdi->drawing->hdc, points[i].x, points[i].y);
gdi_MoveToEx(gdi->drawing->hdc, points[i].x, points[i].y, NULL);
x += points[i].x;
y += points[i].y;
gdi_LineTo(gdi->drawing->hdc, x, y);
gdi_MoveToEx(gdi->drawing->hdc, x, y, NULL);
}
gdi_DeleteObject((HGDIOBJECT) hPen);
@ -763,7 +769,7 @@ void gdi_register_update_callbacks(rdpUpdate* update)
primary->MultiOpaqueRect = gdi_multi_opaque_rect;
primary->MultiDrawNineGrid = NULL;
primary->LineTo = gdi_line_to;
primary->Polyline = NULL;
primary->Polyline = gdi_polyline;
primary->MemBlt = gdi_memblt;
primary->Mem3Blt = gdi_mem3blt;
primary->SaveBitmap = NULL;