xserver-multidpi/hw/xfree86
Aaron Plattner ffcbfa0063 xfree86: Fix rotation of 2-color non-interleaved cursor images
When RandR 1.2's transformation code is enabled, it rotates the cursor
image so that it appears upright on a rotated screen.  This code
completely mangles 2-color cursors on hardware where the the mask and
source images are not interleaved due to two problems:

1. stride is calculated as (width / 4) rather than (width / 8), so the
   expression (y * stride) skips two lines instead of one for every
   time y is incremented.
2. cursor_bitpos ignores the 'mask' parameter if the hardware doesn't
   specify any of the HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_* flags.

To fix this, refactor the code to pass the whole xf86CursorInfoPtr
through to cursor_bitpos and compute the correct stride there based on
the flags.  If none of the SOURCE_MASK_INTERLEAVE flags are set, use
the total cursor size to move the 'image' variable into the mask part
of the image before computing the desired byte pointer.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Tested-by: Cyril Brulebois <kibi@debian.org>
2010-11-30 10:31:43 -08:00
..
common xfree86: add missing linebreak in error message. 2010-11-24 08:47:00 +10:00
ddc ddc: Don't probe for DDC/CI or EEPROM 2010-10-18 15:42:54 -04:00
dixmods xserver: delete pervasively use of DISPATCH_PROC 2010-09-28 16:45:05 +03:00
doc doc: refactor Makefile and xmlrules.in code for reusability 2010-11-24 11:44:35 -08:00
dri xserver: delete pervasively use of DISPATCH_PROC 2010-09-28 16:45:05 +03:00
dri2 DRI2: Avoid call to NULL pointer 2010-11-10 14:38:09 -08:00
exa Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
fbdevhw xfree86: Remove useless module setup functions where appropriate 2010-09-22 10:57:22 -04:00
i2c xfree86: Remove useless module setup functions where appropriate 2010-09-22 10:57:22 -04:00
int10 Merge remote branch 'ajax/less-loader' 2010-09-28 08:15:07 -07:00
loader render: Delete renderedge.[ch] 2010-11-01 22:54:18 -04:00
modes xfree86: Fix rotation of 2-color non-interleaved cursor images 2010-11-30 10:31:43 -08:00
os-support linux: Fix CPU usage bug in console fd flushing 2010-11-19 11:11:04 +10:00
parser xfree86: parser: Remove 'CUSTOM' flag option in Monitor section. 2010-11-10 21:35:58 -08:00
ramdac Add API to update setting of waitForUpdate screen private in miPointer 2010-07-02 14:27:49 +10:00
shadowfb xfree86: Kill pixmapPrivate with a vengeance (v2) 2010-09-28 08:07:21 -07:00
utils Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
vbe vbe: Fix copying the mode info block 2010-10-05 10:20:43 -07:00
vgahw xfree86: nds32: add nds32 definition for vgaHW support. 2010-09-23 15:36:19 -07:00
x86emu x86emu: fix jump_near_IMM to handle DATA: flag correctly. 2010-11-10 14:56:57 -08:00
xaa Delete redundant GC initializations. 2010-09-13 15:55:17 -07:00
xf8_16bpp Update several of my and/or Red Hat's licenses to standard form. 2009-05-14 07:02:44 -04:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
Makefile.am Fix relink targets for silent rules 2010-03-22 00:45:52 -05:00
xorgconf.cpp Update xorg.conf man page & sample for changes in Xorg 1.7 2009-09-14 16:03:18 +10:00