summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-03-17 16:14:15 -0700
committerKeith Packard <keithp@keithp.com>2008-11-24 13:24:37 -0800
commiteb222e64128034df8361d5a82d4f4aa1318923ce (patch)
treed6302f0da6d3015e3174080534135a1d99b7e216 /hw
parent3fdb963f6e8287edeb4c5bc7bbadbc02eb8bb910 (diff)
Actually use filter kernel size to expand transform redisplay box
Diffstat (limited to 'hw')
-rw-r--r--hw/xfree86/modes/xf86Rotate.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index bf6976a47..dc9ad1177 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -118,10 +118,10 @@ xf86RotateCrtcRedisplay (xf86CrtcPtr crtc, RegionPtr region)
BoxRec dst_box;
dst_box = *b;
- dst_box.x1 -= crtc->filter_width >> 2;
- dst_box.x2 += crtc->filter_width >> 2;
- dst_box.y1 -= crtc->filter_width >> 2;
- dst_box.y2 += crtc->filter_width >> 2;
+ dst_box.x1 -= crtc->filter_width >> 1;
+ dst_box.x2 += crtc->filter_width >> 1;
+ dst_box.y1 -= crtc->filter_height >> 1;
+ dst_box.y2 += crtc->filter_height >> 1;
PictureTransformBounds (&dst_box, &crtc->framebuffer_to_crtc);
CompositePicture (PictOpSrc,
src, NULL, dst,
@@ -408,6 +408,11 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation)
}
} else
new_filter = transform->filter;
+ if (new_filter)
+ {
+ new_width = new_filter->width;
+ new_height = new_filter->height;
+ }
PictureTransformMultiply (&crtc_to_fb, &transform->transform, &crtc_to_fb);
PictureTransformMultiply (&fb_to_crtc, &fb_to_crtc, &transform->inverse);
}