Skip to content

Fixes to pixman transform code

Fix two bugs in my pixman transform code:

Reverts 77006e55. It turns out this change really breaks the labwc drop-shadow implementation (which relies on scaling up single-pixel-wide buffers). After reverting this there's still something subtley wrong with scaling pixel locations (shown by weston-scaler -b) but I can't see an obvious way to make both weston-scaler and labwc drop-shadows work in the same way with pixman and gles2. I'll have a harder look at this but in the mean time reverting this patch makes things less broken (in this respect no worse than when I started).

e08d52bb introduced a bug when rotating by 90 or 270 degrees and doing non-uniform scaling (different scale factor on X and Y axes). The scale factor was calculated as the ratio between the src box and the rotated dst box. But scaling is applied after rotation, so the scale factor should instead be the ratio between rotated src box and dst box.

Merge request reports