Commit Graph

10032 Commits

Author SHA1 Message Date
rdb f189b817c6 input: fix name/manufacturer/serial fetching for some evdev devices 2018-01-23 12:59:14 +01:00
rdb 712b246dd6 input: reverse rudder direction to match yaw, reverse 3D mouse roll
Although having the rudder reversed is less intuitive, this makes it match the Panda convention for "heading".
2018-01-23 12:58:40 +01:00
rdb 8bd617c4ee input: new windows input manager based on raw input
The new implementation uses a message-only window to register raw input events.

XInput is still used when possible, but raw input is being used to handle device detection.  (XInput is only enabled when an XInput device is plugged in, which also prevents us from having to load and poll the XInput library unnecessarily.)

For raw devices, the Windows HID parser library is used to parse the raw data.  Unfortunately, the Windows 7.1 SDK does not ship hid.lib (which is in the WDK 7.1.0), so I am dynamically loading hid.dll to prevent pulling in a dependency on the WDK.  (But perhaps we can ship hid.lib in the thirdparty libraries?)

Input devices other than XInput gamepads and the 3D mouse have not been tested very well yet.  Adding keyboard and mouse support is still a TODO.

This also splits out the Windows implementation of InputDeviceManager into a separate subclass; it is intended that the other implementations will follow suit.
2018-01-22 22:05:14 +01:00
rdb 73b4217cad input: fix joystick button and axis mapping on macOS 2018-01-07 19:34:49 +01:00
rdb 96f6bd7fa5 input: fixes for joysticks in Linux compatibility mode 2018-01-07 17:39:44 +01:00
rdb 2523bb0326 input: fixes for 3D mouse axes on Linux 2018-01-07 17:36:52 +01:00
rdb 9fbdefe120 input: add analog trigger emulation on Linux 2018-01-07 17:26:48 +01:00
rdb 4f739e88cf input: joystick buttons, use yaw/pitch/roll for axes, more devices
Also adds format_* functions to get string from enum value.
2018-01-07 14:50:54 +01:00
rdb 27bd7ae4ac Merge branch 'master' into input-overhaul 2018-01-07 12:08:59 +01:00
rdb b5e9f23e3b glesgsg: fix compile error on Arch Linux
[skip ci]
2018-01-07 12:07:49 +01:00
rdb 36636aad81 Merge remote-tracking branch 'origin/release/1.9.x' 2018-01-05 19:48:32 +01:00
rdb eaf3983c06 ode: fix trimeshes in double-precision ODE builds
Fixes #174
2018-01-05 15:40:59 +01:00
rdb 42f8978236 pgraph: sort "off" texture stages when loading from .bam
This fixes an issue where states loaded from .bam file containing more than one "off" texture stage would not compose properly.

Fixes #179
2018-01-05 15:16:42 +01:00
rdb 428c5cbbf3 gles2gsg: fix compilation error with OpenGL ES 2 2018-01-05 14:34:15 +01:00
rdb 5980b0b9ab openal: fix warning spam every frame in newer AL implementations
This fixes error messages being generated of the form:
AL lib: (WW) alSetError: Error generated on context 0x801cf8800, code 0xa003

This is caused by alSourceUnqueueBuffers being called without first checking whether processed buffers are available using alGetSourcei.

Fixes #180
2018-01-05 13:37:00 +01:00
rdb 58623b09bd input: add missing has_vibration() method to InputDevice 2018-01-03 14:48:47 +01:00
rdb 962e6e31e4 Merge branch 'master' into input-overhaul 2018-01-03 14:46:13 +01:00
rdb 1073f5abde pgraph: sort "off" texture stages when loading from .bam
This fixes an issue where states loaded from .bam file containing more than one "off" texture stage would not compose properly.

Fixes #179
2018-01-03 14:29:03 +01:00
rdb 4bac9efffe display: fix dispatch_compute and extract_texture_data in MT pipeline
This is required to make the test suite run with pipelining enabled.

It's necessary to let the draw thread do these tasks because that's where the OpenGL context is bound to.  However, we need to let it access the data from the calling thread, so we have to temporarily change the pipeline stage of the draw thread.

I'm not really happy about this solution; it would be better to temporarily make the context current to the app thread, but we need a window for that, which we don't currently require to be passed into that method.
2018-01-03 00:13:48 +01:00
rdb 512f305c12 display: fix assertions when removing window that isn't open yet 2018-01-03 00:09:30 +01:00
rdb 7ea16fd772 putil: fix copy constructor of SimpleHashMap 2018-01-02 19:07:43 +01:00
rdb 92787264de putil: fix assertion when global clock is created on non-main thread 2018-01-02 17:11:27 +01:00
Younguk Kim 84bdce01f2 Fix crash by end iterator while closing a window 2018-01-01 18:14:48 +09:00
rdb a96b171095 glgsg: only consider texture/texgen in munger if !gl_parallel_arrays
This could possibly be used to workaround issue #218
2017-12-31 09:51:25 +01:00
rdb a6f737d4eb linmath: make raising quaternion to power more meaningful
Fixes #160
2017-12-31 09:30:32 +01:00
rdb 7ee9467f8d shadows: fix shadow buffer creation deadlock in multithreaded pipeline
Fixes #162
2017-12-30 17:47:15 +01:00
rdb 39abc66025 gobj: reduce unnecessary use of threading primitives in constructors 2017-12-28 00:20:59 +01:00
rdb e04ddbef9a pipeline: fix multithreaded render pipeline deadlock
This deadlock happens when another thread holds a cycler lock and then attempts to call Pipeline::remove_cycler() while Pipeline::cycle() is running on the main thread.

The fix for this problem is threefold:
* Allow remove_cycler (and add_cycler) to be called while a cycle is in progress, by introducing a second lock
* Let cycle() not block if a dirty cycler can't be locked, instead trying other cyclers first
* Adding a way to let remove_cycler() check whether a cycler is currently in use by the main thread, and yielding if so

More information is on https://github.com/panda3d/panda3d/issues/217

Fixes #217 (also see LP 1186880)
2017-12-27 22:59:38 +01:00
rdb 8a94a0d439 loader: fix crash getting result from async load 2017-12-27 22:56:21 +01:00
rdb 588d41ed7e Fix assorted compiler warnings 2017-12-24 15:12:58 +01:00
rdb 0281f306e1 express: add PointerToArray.count() 2017-12-24 15:09:21 +01:00
rdb 540122e703 gobj: fix crash with ShaderBuffer 2017-12-24 12:41:52 +01:00
rdb ba8cbfd056 input: fixes for Linux scoring and axis/button mapping
This adds a list of known devices so that we can assign custom behavior to them.  I tested this with the T.Flight Hotas X flight stick and the NVIDIA Shield Controller.
2017-12-22 17:45:06 +01:00
rdb 920f1b75e3 input: support macOS gamepads, joysticks, raw keyboards/mice
I tested gamepads with a wireless 360 controller and a wired Xbox One controller using the 360Controller driver.  I tested the joystick support using a T.Flight Hotas X.
2017-12-22 15:33:33 +01:00
rdb 12cfc93b79 input: let InputDevice manage axis remapping, add C_twist axis 2017-12-22 15:21:50 +01:00
rdb ef9803b25e Changes to support compiling input-overhaul branch on macOS 2017-12-22 14:59:52 +01:00
rdb ed5e5386b9 AsyncFuture improvements, incl. support for gathering futures 2017-12-21 14:07:01 +01:00
rdb ef7f856c46 cocoa: support windowless offscreen rendering on macOS
Fixes: #183
2017-12-20 14:27:08 +01:00
rdb f82a940878 glgsg: fix shader version in macOS 3.2+ context 2017-12-20 14:16:05 +01:00
rdb f0b21ee969 Support old Python 2 buffer protocol in PTA and Texture ram_image
This enables passing eg. str and array.array objects in Python 2
2017-12-20 01:23:26 +01:00
rdb 096d54de00 Add double-precision versions of encode_sRGB_uchar 2017-12-19 23:44:15 +01:00
rdb 061e0c4862 cocoa: allow getting a GL 3.2+ context on macOS 10.7+ using gl-version 2017-12-19 23:38:45 +01:00
rdb 9dcfcbf5fa texture: support store() on more component types (incl. sRGB)
This changes behaviour for sRGB textures, which weren't previously converting to the correct color space.

Also add unit tests for storing to PNMImage.

Closes: #212
2017-12-19 20:02:49 +01:00
rdb e9a50c8898 texture: fix get_clear_data() return type, make it work with sRGB 2017-12-19 19:27:36 +01:00
rdb e4e24eee56 glgsg: use T_float when downloading 24-bit depth textures
This is to match behavior with previous Panda3D versions.  See #212
2017-12-19 18:44:44 +01:00
rdb 348b1c344d texture: support uint/float/half/sRGB textures in TexturePeeker 2017-12-19 18:44:18 +01:00
rdb 9d2e1f92cb input: fix for Windows compilation, reenable raw input 2017-12-17 16:33:23 +01:00
rdb 8e6cf2a60b Merge branch 'master' into input-overhaul 2017-12-17 13:04:15 +01:00
rdb 29f50be15e Fix bug: copy-to-ram depth texture binding gets format set to RGB
This was a regression introduced by be8f4de337

Fixes: #212
2017-12-16 21:03:08 +01:00
rdb 9bfc425b75 Fix assertion when rendering bounding volumes (broken since 6f8b379) 2017-12-12 23:27:51 +01:00