app_server: apply transform to CopyBits
* Apply affine transforms to source and target rects of BView::CopyBits(). For now, only if transform is a dilation.
This commit is contained in:
parent
4bd6f322bb
commit
1cde68c5a2
@ -823,6 +823,17 @@ View::CopyBits(IntRect src, IntRect dst, BRegion& windowContentClipping)
|
|||||||
if (!fVisible || !fWindow)
|
if (!fVisible || !fWindow)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// TODO: figure out what to do when we have a transform which is not
|
||||||
|
// a dilation
|
||||||
|
BAffineTransform transform = CurrentState()->CombinedTransform();
|
||||||
|
if (!transform.IsIdentity() && transform.IsDilation()) {
|
||||||
|
BPoint points[4] = { src.LeftTop(), src.RightBottom(),
|
||||||
|
dst.LeftTop(), dst.RightBottom() };
|
||||||
|
transform.Apply(&points[0], 4);
|
||||||
|
src.Set(points[0].x, points[0].y, points[1].x, points[1].y);
|
||||||
|
dst.Set(points[2].x, points[2].y, points[3].x, points[3].y);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: confirm that in R5 this call is affected by origin and scale
|
// TODO: confirm that in R5 this call is affected by origin and scale
|
||||||
|
|
||||||
// blitting version
|
// blitting version
|
||||||
|
Loading…
Reference in New Issue
Block a user