Find a file
Aaron Plattner 7eaf84d2d1 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>
(cherry picked from commit ffcbfa0063)
2010-12-02 14:55:29 -08:00
composite Replace usage of DamageRegionAppend with DamageDamageRegion to fix reportAfter. 2010-11-13 15:17:58 -08:00
config Fix udev population of Bluetooth input device product IDs 2010-09-27 09:41:39 +02:00
damageext Set DamageSetReportAfterOp to true for the damage extension 2010-11-13 15:25:28 -08:00
dbe miDbe window priv priv is pre-allocated, don't use dixSetPrivate (bug 28639) 2010-07-02 12:30:24 -04:00
dix dix: Fix make distcheck 2010-11-13 15:52:55 -08:00
doc DOC: Only build dtrace documentation with --enable-docs 2010-11-13 15:26:56 -08:00
exa Replace usage of DamageRegionAppend with DamageDamageRegion to fix reportAfter. 2010-11-13 15:17:58 -08:00
fb fb: make isClipped always reject negative coordinates (bug 11503) 2010-08-20 10:01:48 -07:00
glx Replace usage of DamageRegionAppend with DamageDamageRegion to fix reportAfter. 2010-11-13 15:17:58 -08:00
hw xfree86: Fix rotation of 2-color non-interleaved cursor images 2010-12-02 14:55:29 -08:00
include fix a sign problem with valuator data. 2010-11-10 11:17:32 +10:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi mi: Integer overflow for dashed lines longer than 46340. #31093 2010-11-13 15:16:26 -08:00
miext shadow: Optimize shadowUpdatePacked(). (#26973) 2010-11-13 15:26:37 -08:00
os os: Fix BigReq ignoring when another request is pending 2010-11-13 15:17:05 -08:00
randr randr: set error numbers of resource types in RRExtenstionInit() (V2) 2010-09-29 17:14:40 -07:00
record record: Prevent a crash on recording client disconnect. 2010-06-22 11:43:36 -07:00
render render: Bounds check for nglyphs in ProcRenderAddGlyphs (#28801) 2010-08-19 18:00:18 -07:00
test test: input - set valuators mask for event to core conversion 2010-11-14 13:56:16 -08:00
Xext Xext: panoramiXprocs: fix typo 2010-11-15 10:57:01 -08:00
xfixes Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
Xi Xi: move property reset from extension shutdown to init. 2010-12-02 12:17:00 -08:00
xkb xkb: init mapWidth and symsPerKey arrays to 0. 2010-11-10 11:16:45 +10:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Version bumped to 1.9.2.901 (1.9.3 RC1) 2010-11-13 16:04:32 -08:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
cpprules.in xfree86: Set a saner search path for xorg.conf.d 2010-04-08 15:21:01 +10:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am Fix relink targets for silent rules 2010-03-22 00:45:52 -05:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in config: declare xserver private dependencies in xorg-server.pc 2010-06-22 11:34:47 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage