Correctly translate view transformation...

...from local view origin to screen origin.
This commit is contained in:
Stephan Aßmus 2014-02-06 11:05:50 +01:00
parent 08e109e570
commit fd8ad3d807

View File

@ -348,9 +348,10 @@ Painter::SetTransform(BAffineTransform transform, int32 xOffset, int32 yOffset)
{
fIdentityTransform = transform.IsIdentity();
if (!fIdentityTransform) {
fTransform = agg::trans_affine(transform.sx, transform.shy,
transform.shx, transform.sy, transform.tx/* + xOffset*/,
transform.ty/* + yOffset*/);
fTransform = agg::trans_affine_translation(-xOffset, -yOffset);
fTransform *= agg::trans_affine(transform.sx, transform.shy,
transform.shx, transform.sy, transform.tx, transform.ty);
fTransform *= agg::trans_affine_translation(xOffset, yOffset);
} else {
fTransform.reset();
}