* fixed the dirty canvas when Icon-O-Matic is started in Haiku
(and also improved performance of rendering icons, the background was cleared for no reason on each Draw() call) However there must be a bug still in the app_server which causes GetClippingRegion() to return an out-of-date clipping region (R5 has the very same bug though) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19413 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -38,10 +38,6 @@ CanvasView::CanvasView(BRect frame)
|
|||||||
fOffsreenBitmap(NULL),
|
fOffsreenBitmap(NULL),
|
||||||
fOffsreenView(NULL)
|
fOffsreenView(NULL)
|
||||||
{
|
{
|
||||||
#if __HAIKU__
|
|
||||||
SetFlags(Flags() | B_SUBPIXEL_PRECISE);
|
|
||||||
#endif // __HAIKU__
|
|
||||||
|
|
||||||
_MakeBackground();
|
_MakeBackground();
|
||||||
fRenderer->SetBackground(fBackground);
|
fRenderer->SetBackground(fBackground);
|
||||||
}
|
}
|
||||||
@@ -114,7 +110,6 @@ CanvasView::Draw(BRect updateRect)
|
|||||||
BRegion clipping;
|
BRegion clipping;
|
||||||
GetClippingRegion(&clipping);
|
GetClippingRegion(&clipping);
|
||||||
fOffsreenView->ConstrainClippingRegion(&clipping);
|
fOffsreenView->ConstrainClippingRegion(&clipping);
|
||||||
fOffsreenView->FillRect(updateRect, B_SOLID_LOW);
|
|
||||||
|
|
||||||
_DrawInto(fOffsreenView, updateRect);
|
_DrawInto(fOffsreenView, updateRect);
|
||||||
|
|
||||||
|
|||||||
@@ -305,12 +305,22 @@ class StrokePathIterator : public VectorPath::Iterator {
|
|||||||
void
|
void
|
||||||
PathManipulator::Draw(BView* into, BRect updateRect)
|
PathManipulator::Draw(BView* into, BRect updateRect)
|
||||||
{
|
{
|
||||||
// draw the Bezier curve, but only if editing
|
// draw the Bezier curve, but only if not "editing",
|
||||||
// if not "editing", the path is actually on top all other modifiers
|
// the path is actually on top all other modifiers
|
||||||
// TODO: make this customizable in the GUI
|
// TODO: make this customizable in the GUI
|
||||||
|
|
||||||
|
#if __HAIKU__
|
||||||
|
uint32 flags = into->Flags();
|
||||||
|
into->SetFlags(flags | B_SUBPIXEL_PRECISE);
|
||||||
|
#endif // __HAIKU__
|
||||||
|
|
||||||
StrokePathIterator iterator(fCanvasView, into);
|
StrokePathIterator iterator(fCanvasView, into);
|
||||||
fPath->Iterate(&iterator, fCanvasView->ZoomLevel());
|
fPath->Iterate(&iterator, fCanvasView->ZoomLevel());
|
||||||
|
|
||||||
|
#if __HAIKU__
|
||||||
|
into->SetFlags(flags);
|
||||||
|
#endif // __HAIKU__
|
||||||
|
|
||||||
into->SetLowColor(0, 0, 0, 255);
|
into->SetLowColor(0, 0, 0, 255);
|
||||||
BPoint point;
|
BPoint point;
|
||||||
BPoint pointIn;
|
BPoint pointIn;
|
||||||
|
|||||||
Reference in New Issue
Block a user