diff options
author | Keith Packard <keithp@keithp.com> | 2008-03-17 16:14:15 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2008-11-24 13:24:37 -0800 |
commit | eb222e64128034df8361d5a82d4f4aa1318923ce (patch) | |
tree | d6302f0da6d3015e3174080534135a1d99b7e216 /hw | |
parent | 3fdb963f6e8287edeb4c5bc7bbadbc02eb8bb910 (diff) |
Actually use filter kernel size to expand transform redisplay box
Diffstat (limited to 'hw')
-rw-r--r-- | hw/xfree86/modes/xf86Rotate.c | 13 |
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); } |