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:
parent
554bbb1f37
commit
d96389c199
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user