app_server: Apply scale to round corner radius.

This commit is contained in:
Stephan Aßmus
2014-02-24 11:43:54 +01:00
parent fe3c024016
commit 99d23e5198
2 changed files with 18 additions and 9 deletions
+12 -5
View File
@@ -293,19 +293,26 @@ fill_rect(DrawingContext* context, BRect rect)
static void
stroke_round_rect(DrawingContext* context, BRect rect, BPoint radii)
draw_round_rect(DrawingContext* context, BRect rect, BPoint radii, bool fill)
{
context->ConvertToScreenForDrawing(&rect);
context->GetDrawingEngine()->DrawRoundRect(rect, radii.x,
radii.y, false);
float scale = context->CurrentState()->CombinedScale();
context->GetDrawingEngine()->DrawRoundRect(rect, radii.x * scale,
radii.y * scale, fill);
}
static void
stroke_round_rect(DrawingContext* context, BRect rect, BPoint radii)
{
draw_round_rect(context, rect, radii, false);
}
static void
fill_round_rect(DrawingContext* context, BRect rect, BPoint radii)
{
context->ConvertToScreenForDrawing(&rect);
context->GetDrawingEngine()->DrawRoundRect(rect, radii.x, radii.y, true);
draw_round_rect(context, rect, radii, true);
}
+6 -4
View File
@@ -2451,14 +2451,16 @@ ServerWindow::_DispatchViewDrawingMessage(int32 code,
Title()));
BRect rect;
float xrad,yrad;
float xRadius;
float yRadius;
link.Read<BRect>(&rect);
link.Read<float>(&xrad);
if (link.Read<float>(&yrad) != B_OK)
link.Read<float>(&xRadius);
if (link.Read<float>(&yRadius) != B_OK)
break;
fCurrentView->ConvertToScreenForDrawing(&rect);
drawingEngine->DrawRoundRect(rect, xrad, yrad,
float scale = fCurrentView->CurrentState()->CombinedScale();
drawingEngine->DrawRoundRect(rect, xRadius * scale, yRadius * scale,
code == AS_FILL_ROUNDRECT);
break;
}