fixed BView::Stroke/FillPolygon(), the bounds were not converted to screen and the clipping decision was based on it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17310 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2006-05-03 20:33:18 +00:00
parent 554bbb1f37
commit d96389c199

View File

@ -2002,7 +2002,8 @@ ServerWindow::_DispatchViewDrawingMessage(int32 code, BPrivate::LinkReceiver &li
link.Read<float>(&span);
fCurrentLayer->ConvertToScreenForDrawing(&r);
drawingEngine->DrawArc(r, angle, span, fCurrentLayer->CurrentState(), code == AS_FILL_ARC);
drawingEngine->DrawArc(r, angle, span, fCurrentLayer->CurrentState(),
code == AS_FILL_ARC);
break;
}
case AS_STROKE_BEZIER:
@ -2016,7 +2017,8 @@ ServerWindow::_DispatchViewDrawingMessage(int32 code, BPrivate::LinkReceiver &li
fCurrentLayer->ConvertToScreenForDrawing(&pts[i]);
}
drawingEngine->DrawBezier(pts, fCurrentLayer->CurrentState(), code == AS_FILL_BEZIER);
drawingEngine->DrawBezier(pts, fCurrentLayer->CurrentState(),
code == AS_FILL_BEZIER);
break;
}
case AS_STROKE_ELLIPSE:
@ -2083,6 +2085,7 @@ ServerWindow::_DispatchViewDrawingMessage(int32 code, BPrivate::LinkReceiver &li
if (link.Read(pointList, pointCount * sizeof(BPoint)) >= B_OK) {
for (int32 i = 0; i < pointCount; i++)
fCurrentLayer->ConvertToScreenForDrawing(&pointList[i]);
fCurrentLayer->ConvertToScreenForDrawing(&polyFrame);
drawingEngine->DrawPolygon(pointList, pointCount, polyFrame,
fCurrentLayer->CurrentState(), code == AS_FILL_POLYGON,