compositor: do not round a zero area to non-zero
authorPekka Paalanen <ppaalanen@gmail.com>
Tue, 4 Sep 2012 10:55:44 +0000 (13:55 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 4 Sep 2012 20:15:43 +0000 (16:15 -0400)
commit7c7d464ce780e2d19705b2479c3e88d8ba8a09b4
tree55da7251456ccb77388ce3c922bfae3936c92678
parent27a8c5302079de37bd3f4b39a474c0bf1ae6ca5c
compositor: do not round a zero area to non-zero

surface_accumulate_damage() will call surface_compute_bbox() with the
extents of the surface damage region, for transformed surfaces only. If
there is no damage, surface_compute_bbox() will round up the empty
rectangle to a 1x1 rectangle. Triangles are produced for this 1x1
rectangle intersected with the surface.

The problem showed up with the triangle fan debug, where some seemingly
garbage pixels showed up relative to rotated surfaces.

Fix this by explicitly checking, that the area, for which a bounding box
is being computed for, is not zero.

Note, that the bbox will also be empty if only one of width and height
is zero. We do not paint things with zero thickness.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Cc: Rob Clark <rob.clark@linaro.org>
src/compositor.c