Finally nailed a graphics bug I was looking for for quite some time. The only one I'm still seeing is with text. Sometimes the last line of text is not drawn.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12680 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2005-05-16 11:00:50 +00:00
parent c6b83b8027
commit 92acca78db
2 changed files with 44 additions and 44 deletions
@@ -493,7 +493,7 @@ DisplayDriverPainter::FillRect(const BRect& r, const RGBColor& color)
max_c(r.left, r.right), max_c(r.left, r.right),
max_c(r.top, r.bottom)); max_c(r.top, r.bottom));
vr = fPainter->ClipRect(vr); vr = fPainter->ClipRect(vr);
if (vr.IsValid()) {
fGraphicsCard->HideSoftwareCursor(vr); fGraphicsCard->HideSoftwareCursor(vr);
// try hardware optimized version first // try hardware optimized version first
@@ -508,6 +508,7 @@ DisplayDriverPainter::FillRect(const BRect& r, const RGBColor& color)
} }
fGraphicsCard->ShowSoftwareCursor(); fGraphicsCard->ShowSoftwareCursor();
}
Unlock(); Unlock();
} }
@@ -523,7 +524,7 @@ DisplayDriverPainter::FillRect(const BRect &r, const DrawData *d)
max_c(r.left, r.right), max_c(r.left, r.right),
max_c(r.top, r.bottom)); max_c(r.top, r.bottom));
vr = fPainter->ClipRect(vr); vr = fPainter->ClipRect(vr);
if (vr.IsValid()) {
fGraphicsCard->HideSoftwareCursor(vr); fGraphicsCard->HideSoftwareCursor(vr);
bool doInSoftware = true; bool doInSoftware = true;
@@ -553,6 +554,7 @@ DisplayDriverPainter::FillRect(const BRect &r, const DrawData *d)
} }
fGraphicsCard->ShowSoftwareCursor(); fGraphicsCard->ShowSoftwareCursor();
}
Unlock(); Unlock();
} }
@@ -634,8 +634,6 @@ void
Painter::FillRect(const BRect& r, const rgb_color& c) const Painter::FillRect(const BRect& r, const rgb_color& c) const
{ {
if (fBuffer && fValidClipping) { if (fBuffer && fValidClipping) {
//printf("Painter::FillRect(BRect(%.1f, %.1f, %.1f, %.1f))\n", r.left, r.top, r.right, r.bottom);
//printf(" rgb_color(%d, %d, %d, %d)\n", c.red, c.green, c.blue, c.alpha);
uint8* dst = fBuffer->row(0); uint8* dst = fBuffer->row(0);
uint32 bpr = fBuffer->stride(); uint32 bpr = fBuffer->stride();
int32 left = (int32)r.left; int32 left = (int32)r.left;