fix bug with internal AGG renderer color not being updated when a special solid drawing mode is used
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12417 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
99d36ad1d1
commit
5cf27f9b8d
@ -152,8 +152,6 @@ void
|
||||
Painter::SetDrawData(const DrawData* data)
|
||||
{
|
||||
// for now...
|
||||
SetHighColor(data->highcolor.GetColor32());
|
||||
SetLowColor(data->lowcolor.GetColor32());
|
||||
SetPenSize(data->pensize);
|
||||
SetPenLocation(data->penlocation);
|
||||
SetFont(data->font);
|
||||
@ -174,6 +172,9 @@ Painter::SetDrawData(const DrawData* data)
|
||||
|
||||
if (updateDrawingMode)
|
||||
_UpdateDrawingMode();
|
||||
|
||||
SetHighColor(data->highcolor.GetColor32());
|
||||
SetLowColor(data->lowcolor.GetColor32());
|
||||
}
|
||||
|
||||
// #pragma mark -
|
||||
@ -201,6 +202,8 @@ void
|
||||
Painter::SetHighColor(const rgb_color& color)
|
||||
{
|
||||
fPatternHandler->SetHighColor(color);
|
||||
if (*(fPatternHandler->GetR5Pattern()) == B_SOLID_HIGH)
|
||||
_SetRendererColor(color);
|
||||
}
|
||||
|
||||
// SetLowColor
|
||||
@ -208,6 +211,8 @@ void
|
||||
Painter::SetLowColor(const rgb_color& color)
|
||||
{
|
||||
fPatternHandler->SetLowColor(color);;
|
||||
if (*(fPatternHandler->GetR5Pattern()) == B_SOLID_LOW)
|
||||
_SetRendererColor(color);
|
||||
}
|
||||
|
||||
// SetPenSize
|
||||
@ -335,7 +340,7 @@ Painter::StrokeLine(BPoint a, BPoint b, DrawData* context)
|
||||
return _Clipped(touched);
|
||||
}
|
||||
}
|
||||
|
||||
//printf("StrokeLine((%.2f, %.2f)->(%.2f, %.2f)) -> AGG version\n", a.x, a.y, b.x, b.y);
|
||||
// do the pixel center offset here
|
||||
a.x += 0.5;
|
||||
a.y += 0.5;
|
||||
@ -1036,12 +1041,14 @@ Painter::_UpdateDrawingMode()
|
||||
DrawingMode* mode = NULL;
|
||||
pattern p = *fPatternHandler->GetR5Pattern();
|
||||
if (p == B_SOLID_HIGH) {
|
||||
// TODO: fix me! is already set in SetHighColor()
|
||||
_SetRendererColor(fPatternHandler->HighColor().GetColor32());
|
||||
mode = fDrawingModeFactory->DrawingModeFor(fDrawingMode,
|
||||
fAlphaSrcMode,
|
||||
fAlphaFncMode,
|
||||
true);
|
||||
} else if (p == B_SOLID_LOW) {
|
||||
// TODO: fix me! is already set in SetLowColor()
|
||||
_SetRendererColor(fPatternHandler->LowColor().GetColor32());
|
||||
mode = fDrawingModeFactory->DrawingModeFor(fDrawingMode,
|
||||
fAlphaSrcMode,
|
||||
|
Loading…
Reference in New Issue
Block a user