app_server: Drawing mode fixups

* TODO: squash commit before merge into master
This commit is contained in:
Julian Harnath
2015-08-23 01:00:38 +02:00
parent e3d7394869
commit 1cd452ea03
4 changed files with 16 additions and 9 deletions
+8 -3
View File
@@ -526,21 +526,26 @@ DrawState::SetPattern(const Pattern& pattern)
}
void
bool
DrawState::SetDrawingMode(drawing_mode mode)
{
if (!fDrawingModeLocked)
if (!fDrawingModeLocked) {
fDrawingMode = mode;
return true;
}
return false;
}
void
bool
DrawState::SetBlendingMode(source_alpha srcMode, alpha_function fncMode)
{
if (!fDrawingModeLocked) {
fAlphaSrcMode = srcMode;
fAlphaFncMode = fncMode;
return true;
}
return false;
}
+2 -2
View File
@@ -100,11 +100,11 @@ public:
{ return fPattern; }
// drawing/blending mode
void SetDrawingMode(drawing_mode mode);
bool SetDrawingMode(drawing_mode mode);
drawing_mode GetDrawingMode() const
{ return fDrawingMode; }
void SetBlendingMode(source_alpha srcMode,
bool SetBlendingMode(source_alpha srcMode,
alpha_function fncMode);
source_alpha AlphaSrcMode() const
{ return fAlphaSrcMode; }
+2 -2
View File
@@ -626,8 +626,8 @@ set_pen_location(Canvas* canvas, BPoint pt)
static void
set_drawing_mode(Canvas* canvas, drawing_mode mode)
{
canvas->CurrentState()->SetDrawingMode(mode);
canvas->GetDrawingEngine()->SetDrawingMode(mode);
if (canvas->CurrentState()->SetDrawingMode(mode))
canvas->GetDrawingEngine()->SetDrawingMode(mode);
}
+4 -2
View File
@@ -2200,7 +2200,8 @@ fDesktop->LockSingleWindow();
if (opacity != 255) {
fCurrentView->CurrentState()->SetDrawingMode(B_OP_ALPHA);
fCurrentView->CurrentState()->SetBlendingMode(B_PIXEL_ALPHA, B_ALPHA_COMPOSITE);
fCurrentView->CurrentState()->SetBlendingMode(B_PIXEL_ALPHA,
B_ALPHA_COMPOSITE);
fCurrentView->CurrentState()->SetDrawingModeLocked(true);
}
@@ -3466,7 +3467,8 @@ ServerWindow::_DispatchPictureMessage(int32 code, BPrivate::LinkReceiver& link)
if (opacity != 255) {
fCurrentView->CurrentState()->SetDrawingMode(B_OP_ALPHA);
fCurrentView->CurrentState()->SetBlendingMode(B_PIXEL_ALPHA, B_ALPHA_COMPOSITE);
fCurrentView->CurrentState()->SetBlendingMode(B_PIXEL_ALPHA,
B_ALPHA_COMPOSITE);
fCurrentView->CurrentState()->SetDrawingModeLocked(true);
}