From 0e683ed9aac5bfaadb9e3040632a09f2870707bf Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Thu, 26 Oct 2006 19:49:02 +0000 Subject: [PATCH] ServerPicture was using the wrong StrokeRect call (the one which ignored the pen size). Added scale handling. Removed duplicated AS_SETPENSIZE handler in ServerWindow git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19130 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/ServerPicture.cpp | 10 +++++++--- src/servers/app/ServerWindow.cpp | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/servers/app/ServerPicture.cpp b/src/servers/app/ServerPicture.cpp index 8bbbd5320b..983710f19f 100644 --- a/src/servers/app/ServerPicture.cpp +++ b/src/servers/app/ServerPicture.cpp @@ -42,7 +42,7 @@ stroke_line(ViewLayer *view, BPoint start, BPoint end) { view->ConvertToScreenForDrawing(&start); view->ConvertToScreenForDrawing(&end); - view->Window()->GetDrawingEngine()->StrokeLine(start, end, view->CurrentState()->HighColor()); + view->Window()->GetDrawingEngine()->StrokeLine(start, end, view->CurrentState()); } @@ -50,7 +50,7 @@ static void stroke_rect(ViewLayer *view, BRect rect) { view->ConvertToScreenForDrawing(&rect); - view->Window()->GetDrawingEngine()->StrokeRect(rect, view->CurrentState()->HighColor()); + view->Window()->GetDrawingEngine()->StrokeRect(rect, view->CurrentState()); } @@ -58,7 +58,7 @@ static void fill_rect(ViewLayer *view, BRect rect) { view->ConvertToScreenForDrawing(&rect); - view->Window()->GetDrawingEngine()->FillRect(rect, view->CurrentState()->HighColor()); + view->Window()->GetDrawingEngine()->FillRect(rect, view->CurrentState()); } @@ -669,6 +669,10 @@ ServerPicture::SyncState(ViewLayer *view) AddFloat(view->CurrentState()->PenSize()); EndOp(); + BeginOp(B_PIC_SET_SCALE); + AddFloat(view->CurrentState()->Scale()); + EndOp(); + BeginOp(B_PIC_SET_LINE_MODE); AddInt16((int16)view->CurrentState()->LineCapMode()); AddInt16((int16)view->CurrentState()->LineJoinMode()); diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp index 1e325d3bfa..73e6bc12b5 100644 --- a/src/servers/app/ServerWindow.cpp +++ b/src/servers/app/ServerWindow.cpp @@ -1809,16 +1809,6 @@ ServerWindow::_DispatchViewMessage(int32 code, fCurrentLayer->CurrentState()->SetPenLocation(BPoint(x, y)); break; } - case AS_SETPENSIZE: - { - DTRACE(("ServerWindow %s: Message AS_SETPENSIZE\n", Title())); - - float size; - link.Read(&size); - - fCurrentLayer->CurrentState()->SetPenSize(size); - break; - } case AS_SET_FONT: { DTRACE(("ServerWindow %s: Message AS_SET_FONT\n", Title())); @@ -2387,6 +2377,16 @@ ServerWindow::_DispatchPictureMessage(int32 code, BPrivate::LinkReceiver &link) break; } + case AS_LAYER_SET_SCALE: + { + float scale; + link.Read(&scale); + picture->BeginOp(B_PIC_SET_SCALE); + picture->AddFloat(scale); + picture->EndOp(); + break; + } + case AS_FILL_RECT: case AS_STROKE_RECT: {