[PULL] Surface transformation fixes 1
krh at bitplanet.net
Tue Jan 31 06:43:31 PST 2012
On Tue, Jan 31, 2012 at 9:01 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Fri, 27 Jan 2012 17:07:16 +0200
> Pekka Paalanen <ppaalanen at gmail.com> wrote:
>> Hi Kristian, and everyone,
>> To stress test the surface transformations, Weston now has a debug
>> feature: if you press Super+Alt and left-drag a surface with a mouse,
>> it rotates. This is just a debug feature, and has some rough edges.
>> For testing input coordinate transformations, there is a new demo
>> application called clickdot. It simply shows a cross where you clicked,
>> and it should match the mouse cursor hotspot.
>> The major contribution of this series is cleaning up the coordinate
>> systems and making coordinate transformations explicit.
>> Things known broken:
>> - Transforming surfaces with opaque regions usually results in some
>> misrendering. In practice this concerns rotated RGB surfaces (as
>> opposed to RGBA).
>> - move and resize orientation for rotated surfaces is wrong
>> - related surfaces, e.g. menus, are not transformed
>> - cursors are not transformed
>> I intend to continue fixing the remaining issues, at least opaques and
>> move & resize.
> This fixes most of the move and resize issues.
> However, we are now cumulating rounding errors on continuous resizes.
> To see it yourself, take a window, rotate it a little, and start
> resizing from the top-left corner. As you spin the mouse, the surface
> wanders off.
> I have an idea how to fix that, but it is a bit invasive. Basically,
> store the surface-local translation in integers separately from the
> global translation. That way there are no cumulating rounding errors.
Yeah, as we discussed in IRC, that should work. I pulled these fixes
for now, it all work much better.
> The following changes since commit becfcbfbd29de1a59ae4c7c272bdad4fc1023a15:
> test: Fix out-of-tree builds (2012-01-30 19:17:52 -0500)
> are available in the git repository at:
> git://git.collabora.co.uk/git/user/pq/wayland-demos.git transform-fixes1
> Pekka Paalanen (3):
> shell: fix move of transformed surfaces
> shell: fix resize for transformed surfaces
> compositor: handle attach request in surface-local coordinates
> src/compositor.c | 16 +++++++++++-----
> src/shell.c | 52 ++++++++++++++++++++++++++--------------------------
> 2 files changed, 37 insertions(+), 31 deletions(-)
More information about the wayland-devel