On Tue, Oct 07, 2008 at 01:46:21AM -0300, Tiago Vignatti wrote: > A problem that I see is in GetPointerEvents() function. It's bloated and > confusing. It generates X events and also updates the cursor on screen. > We don't need to mix this two actions in one function. For instance, I > did a quickly hack here calling miPointerSetPosition() directly from > evdev driver (!) instead inside GPE and apparently all worked nice. So > if we could only put in a separate thread the pieces that deal with > cursor's update and not related with X events then we'd be winning -- I > failed to not see this before :(
The actual event generation is the least of your worries here. GPE basically does: 1. sanity checking 2. get the MD, update the SD from the MD if we switched devices so we can apply the new coordinates. 3. accelerate motion and/or clip axes as applicable. 4. scale to screen, write it into the MD 5. NOW you have your coordinates you can move to 6. do event-specific stuff you don't have to worry about for displaying the cursor. You can't easily get around 1-4 since you won't know the position otherwise. I'm pretty sure 6 is negligable for processing time since all we're basically doing there is assigning values to already allocated memory. Cheers, Peter _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg