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