Commit Graph

6024 Commits

Author SHA1 Message Date
Peter Hutterer 0b88510069 Ensure the motion history is merged for master devices.
Add each event to the master's MH as well as to the SDs. In the MD, store
min/max and the actual value. When retrieving the MH, rescale all coordinates
to the current coordinate range and only post those valuators that are
currently active on the device.
2008-05-26 15:55:20 +09:30
Peter Hutterer d22c25bda4 dix: Allocate MD's motion history to be large enough for potential valuators
Since we can't predict how many valuators may be in a future SD attached to an
MD, we need to preallocate a history buffer that is large enough to keep
MAX_VALUATORS coordinates per event.

In addition, the history buffer needs to memorize the coordinate ranges at the
time, thus requiring MDs to store (min_val, max_val, current_val, time)
instead of (current_val, time) for each motion history entry.

This commit only fixes the allocation.
2008-05-26 09:26:18 +09:30
Peter Hutterer 0877de13ac Remove GetMotionProc from ValuatorClassRec.
With the MD/SD device hierarchy we need control over the generation of the
motion history as well as the conversion later before posting it to the
client. So let's not let the drivers change it.

No x.org driver currently uses it anyway, linuxwacom doesn't either so dumping
it seems safe enough.
2008-05-25 22:49:54 +09:30
Peter Hutterer 00b4339168 dmx: remove some #if 0'd code. 2008-05-25 22:34:11 +09:30
Peter Hutterer 096117cf02 Xi: reset motion history when swapping device classes.
This isn't really the correct solution, but it'll have to do until I figured
out how to transfer the history over correctly.
2008-05-25 10:38:33 +09:30
Michel Dänzer 29586101dc EXA: Only record damage generated by rendering operations.
Recording damage from other operations (e.g. creating a client damage record)
may confuse the migration code resulting in corruption.

Option "EXAOptimizeMigration" appears safe now, so enable it by default. Also
remove it from the manpage, as it should only be necessary on request in the
course of bug report diagnostics anymore.
2008-05-24 20:01:41 +02:00
Michel Dänzer f6d61d3d86 EXA: Don't migrate twice in exaImageGlyphBlt.
exaPrepareAccess already handles migration.
2008-05-24 20:01:36 +02:00
Michel Dänzer d733043982 EXA: Don't suggest exaCopyDirty be inlined.
Leave the decision to the compiler toolchain.
2008-05-24 20:01:31 +02:00
Michel Dänzer 3baf3b42e0 EXA: Specify region used for source pixmap migration in exaCopyNtoN.
Avoids excessive migration overhead in some pathological cases. See
http://bugs.freedesktop.org/show_bug.cgi?id=15845 .
2008-05-24 20:01:21 +02:00
Peter Hutterer ba557e0263 Xi: remove deprecated comment.
Axis clipping wouldn't be necessary here, it's already performed in GPE.
2008-05-24 17:23:10 +09:30
Julien Cristau e6cbb1e11e xfree86: fix build on GNU/kFreeBSD
GNU/kFreeBSD defines __FreeBSD_kernel__, but not __FreeBSD__.
Unify preprocessor conditionals between variable declaration and use.
Debian bug #482550.
2008-05-23 23:01:24 +02:00
George Sapountzis 6c72961d8f glx: fix memory corruption with r5g6b5
should cherry-pick to xserver-1.5
2008-05-23 22:40:26 +03:00
George Sapountzis 21a8052fdc glx: fix forgotten swrast -> SWRast 2008-05-23 22:40:26 +03:00
George Sapountzis 877e6c35ff glx: missing swrast is fatal 2008-05-23 22:40:26 +03:00
George Sapountzis 1345c93ad4 glx: drop stray glcore.h include 2008-05-23 22:40:25 +03:00
George Sapountzis ae0504d34d kdrive: need not export symbols for glx anymore 2008-05-23 22:40:25 +03:00
Jeremy Huddleston 7082929ef7 XQuartz: A 2 second delay for launchd socket connections should be sufficient.
(cherry picked from commit 2bb4251b3c6b30dbf1a556e1b51e6f03f02d2529)
2008-05-23 02:32:37 -07:00
Jeremy Huddleston 5a388b27a0 XQuartz: Add the launchd fd to AllSockets as well
(cherry picked from commit 83f72529394be5871671d73b6ef4f8bc83708f8a)
2008-05-23 02:32:32 -07:00
Jeremy Huddleston 77b688a730 XQuartz: Don't need launchd checking in configure.ac anymore since its functionality has been removed from libxtrans and into the mach startup code.
(cherry picked from commit 1e1f4fb717d2f3a3227be2a034d28d6a4f29b5d1)
2008-05-23 02:32:28 -07:00
Jeremy Huddleston 225dddbaed XQuartz: Move the launchd display grabbing into mach_startup
(cherry picked from commit c3866c98d23020d2151977ee1177b6054d05832e)
2008-05-23 02:31:41 -07:00
Jeremy Huddleston 3a22190061 XQuartz: Fixed a few issues with fd passing... still not working =(
(cherry picked from commit 7dd351271522b475d8017e4bd1618f12817ee2fa)
2008-05-23 02:31:38 -07:00
Peter Hutterer 3ae0f4fc83 dix: update valuators > 2 as well.
master->last.valuator[x] for x > 2 is undefined. For all other devices, it's
the respective device's last valuators.

If the lastSlave did not have a valuator that is to be updated now, it is
reset to 0.
2008-05-23 15:52:40 +09:30
Peter Hutterer 0d1b41ace3 Xi: update device valuators based on the event.
Event is always absolute, update the device's valuators (always absolute too),
and then change the deviceValuator event to reflect the device's reporting
mode.
2008-05-23 13:32:33 +09:30
Peter Hutterer 7eec1c23a3 dix: don't allow relative data in deviceValuators.
In GPE, we don't care about the device mode. Let's put the absolute values
into the deviceValuator event and worry about relative valuators on the other
side of the EQ.
2008-05-23 13:23:02 +09:30
Peter Hutterer 75551a2ef9 Revert "dix: Correct values in the device axisVal are calculated in GPE"
We can't rely on GPE to update device->valuators->axisVal. If a SIGIO occurs
during event processing this may have incoherent results.

This reverts commit f6645ddbf7.
2008-05-23 12:55:50 +09:30
Peter Hutterer fe59b1a62b dix: more device scaling insanity.
Assuming master->last.valuators is in screen coords, SD's are always in device
coordinates.

1. If an event comes in, scale masters->last to the device, drop into device's
last->valuators.
2. Apply motion from the actual event
3. Scale back to screen coords, check if we may need to cross screens
4. Drop screen coords into master->last
5. Rescale to device coords, drop into deviceValuator event and SD->last
6. Drop screen coords into ev->root_x/y

Whoopee...
2008-05-23 12:51:52 +09:30
Peter Hutterer 6c9e9f8a40 input: instead of lastx/y, use a last.valuators[] array on the device.
During GetPointerEvents (and others), we need to access the last coordinates
posted for this device from the driver (not as posted to the client!). Lastx/y
is ok if we only have two axes, but with more complex devices we also need to
transition between all other axes.

ABI break, recompile your input drivers.
2008-05-23 12:01:37 +09:30
Peter Hutterer fb146cbb0f dix: coreEvents doesn't have meaning here, use master instead.
We mustn't clip x/y if we are attached, otherwise we can't change screens.
2008-05-23 12:01:09 +09:30
Magnus Vigerlöf fc1cc0adcb dix: Cleanup of GetPointerEvents
Changed all the checks for x&y valuator so the more complex
calculation is only made once.
Added TODOs for valuator/axis 2 and above for future correct
handling of relative reporting of these.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-05-23 09:33:09 +09:30
Magnus Vigerlöf a0241d5380 dix: Correct clipAxis so it can handle devices with value ranges properly
Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-05-23 09:30:43 +09:30
Magnus Vigerlöf f6645ddbf7 dix: Correct values in the device axisVal are calculated in GPE
Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-05-23 09:20:01 +09:30
Peter Hutterer 7f85acdf70 dix: fill valuators with the correct values depending on the device mode (GPE)
valuators[] is passed from the DDX. Depending on the device mode, update it
with either absolute values or relative values. The deviceValuator event sent
to the client will then contain the respective values.
2008-05-22 23:27:15 +09:30
Peter Hutterer 1a3f351c50 dix: when floating a device, create a new cursor sprite.
This is essentially necessary to allow calls to miPointerGetSprite etc. to
work for floating slave devices.
2008-05-22 23:25:20 +09:30
Peter Hutterer e0fbe404a4 mi: handle sprite even for floating slave devices.
We still don't render it, but we accept all the other calls to update it's
internal state.
2008-05-22 23:24:29 +09:30
Magnus Vigerlöf 0f15875a27 Make all conversion handling in GPE.
This isn't quite finished yet, but at least it gives us the ability to use a
tablet as a normal mouse - with all the scaling in place.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-05-22 19:22:46 +09:30
Peter Hutterer 74372fd004 xfree86: suspend signals while removing a device.
Getting a keyboard event while halfway through freeing memory can be
unpleasant.
2008-05-22 18:08:32 +09:30
Peter Hutterer 30e9a33f7d xkb: fix crash caused by uninitialised variable. 2008-05-22 16:00:21 +09:30
Dan Nicholson e837244947 Actually enable building GLX without Mesa source 2008-05-21 17:03:25 -07:00
Dave Airlie ea4ec9e998 int10: add pci_device_enable support on Linux 2008-05-22 08:58:42 +10:00
Kristian Høgsberg 4230b92744 Clean up remaining afb references. 2008-05-21 17:58:15 -04:00
Adam Jackson 20ea99c655 Death to afb.
Planar framebuffer people, please talk to wfb for all your 1988 hardware
needs.
2008-05-21 17:03:25 -04:00
Dan Nicholson c76fddeea2 Fix up paths for GL/glx -> glx renaming 2008-05-21 10:51:15 -07:00
Kristian Høgsberg c3eb5b80d8 Move GL/glx on level up now that it's the only thing left under GL. 2008-05-21 13:33:36 -04:00
Kristian Høgsberg a8a9b40e55 Move the windows GL files to the xwin DDX. 2008-05-21 12:36:25 -04:00
Kristian Høgsberg e5aad4bc08 Get out of the mesa symlinking business.
This copies over the files generated from mesa/src/mesa/glapi.  There's
a corresponding mesa commit that makes it easy to generate the glapi files
straight into the xserver tree when the XML definitions change.

The only few files that are copied from mesa but aren't generated are
glapi.[ch] and glthread.[ch].  Everything in there is technically DRI
driver API and the whole setup is still a bit fragile, but it's not a new
problem.

The --with-mesa-source configure option is still around since other
parts of the server (XGL and DMX - grep for MESA_SOURCE) need that,
but for common case of building with GLX and AIGLX support, that
option is no longer needed.
2008-05-21 12:15:18 -04:00
Kristian Høgsberg f558c7d4d1 Use LD_EXPORT_SYMBOLS_FLAG when linking Xnest. 2008-05-21 12:15:18 -04:00
Kristian Høgsberg 77ff8fd507 Drop glcore GLX provider.
Obsoleted by the DRI swrast driver.
2008-05-21 12:15:18 -04:00
Kristian Høgsberg 61eaef2235 Stop symlinking glcontextmodes.[ch] from mesa. 2008-05-21 12:15:18 -04:00
George Sapountzis 88f43e5d06 glx: drop drm.h, sareaHandle from swrast loader 2008-05-21 18:13:47 +03:00
George Sapountzis 255142b61e drop xprint remnants: InitGlobals 2008-05-21 18:13:09 +03:00