the Link* api supports sending large messages through areas, thanks to Julun, and this TODO can be removed.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27220 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2008-08-28 15:32:26 +00:00
parent 3f2dd98c88
commit 910c4a0106
+16 -31
View File
@@ -2732,8 +2732,7 @@ BView::StrokePolygon(const BPoint *ptArray, int32 numPoints, BRect bounds,
_FlushIfNotInTransaction();
} else {
// TODO: send via an area
fprintf(stderr, "ERROR: polygon to big for BPortLink!\n");
fprintf(stderr, "ERROR: Can't send polygon to app_server!\n");
}
}
@@ -2759,8 +2758,7 @@ BView::FillPolygon(const BPolygon *polygon, ::pattern pattern)
_FlushIfNotInTransaction();
} else {
// TODO: send via an area
fprintf(stderr, "ERROR: polygon to big for BPortLink!\n");
fprintf(stderr, "ERROR: Can't send polygon to app_server!\n");
}
}
@@ -2878,8 +2876,6 @@ BView::FillRegion(BRegion *region, ::pattern pattern)
fOwner->fLink->StartMessage(AS_FILL_REGION);
fOwner->fLink->AttachRegion(*region);
// TODO: make this automatically chose
// to send over area or handle failure here?
_FlushIfNotInTransaction();
}
@@ -3044,19 +3040,14 @@ BView::StrokeShape(BShape *shape, ::pattern pattern)
_CheckLockAndSwitchCurrent();
_UpdatePattern(pattern);
if ((sd->opCount * sizeof(uint32)) + (sd->ptCount * sizeof(BPoint))
< MAX_ATTACHMENT_SIZE) {
fOwner->fLink->StartMessage(AS_STROKE_SHAPE);
fOwner->fLink->Attach<BRect>(shape->Bounds());
fOwner->fLink->Attach<int32>(sd->opCount);
fOwner->fLink->Attach<int32>(sd->ptCount);
fOwner->fLink->Attach(sd->opList, sd->opCount * sizeof(uint32));
fOwner->fLink->Attach(sd->ptList, sd->ptCount * sizeof(BPoint));
fOwner->fLink->StartMessage(AS_STROKE_SHAPE);
fOwner->fLink->Attach<BRect>(shape->Bounds());
fOwner->fLink->Attach<int32>(sd->opCount);
fOwner->fLink->Attach<int32>(sd->ptCount);
fOwner->fLink->Attach(sd->opList, sd->opCount * sizeof(uint32));
fOwner->fLink->Attach(sd->ptList, sd->ptCount * sizeof(BPoint));
_FlushIfNotInTransaction();
} else {
// TODO: send via an area
}
_FlushIfNotInTransaction();
}
@@ -3073,20 +3064,14 @@ BView::FillShape(BShape *shape, ::pattern pattern)
_CheckLockAndSwitchCurrent();
_UpdatePattern(pattern);
if ((sd->opCount * sizeof(uint32)) + (sd->ptCount * sizeof(BPoint))
< MAX_ATTACHMENT_SIZE) {
fOwner->fLink->StartMessage(AS_FILL_SHAPE);
fOwner->fLink->Attach<BRect>(shape->Bounds());
fOwner->fLink->Attach<int32>(sd->opCount);
fOwner->fLink->Attach<int32>(sd->ptCount);
fOwner->fLink->Attach(sd->opList, sd->opCount * sizeof(int32));
fOwner->fLink->Attach(sd->ptList, sd->ptCount * sizeof(BPoint));
fOwner->fLink->StartMessage(AS_FILL_SHAPE);
fOwner->fLink->Attach<BRect>(shape->Bounds());
fOwner->fLink->Attach<int32>(sd->opCount);
fOwner->fLink->Attach<int32>(sd->ptCount);
fOwner->fLink->Attach(sd->opList, sd->opCount * sizeof(int32));
fOwner->fLink->Attach(sd->ptList, sd->ptCount * sizeof(BPoint));
_FlushIfNotInTransaction();
} else {
// TODO: send via an area
// BTW, in a perfect world, the fLink API would take care of that -- axeld.
}
_FlushIfNotInTransaction();
}