21977 Commits

Author SHA1 Message Date
rdb
71b4b807f8 collide: add line-into-box test, improve segment/ray into box 2018-07-17 22:24:35 +02:00
rdb
684a58e7e9 parser-inc: add timespec 2018-07-17 22:21:44 +02:00
rdb
57578ee58f direct: add MetaInterval underscore aliases (fixes override bug)
These methods are supposed to override the underlying C methods, which do have underscore aliases, so it is important that the Python class defines these underscore aliases as well.
2018-07-17 22:20:35 +02:00
rdb
6cd59807dd Remove useless test_display.cxx file 2018-07-17 19:38:10 +02:00
rdb
799f0b4f78 glgsg: work around driver bug extracting buffer texture data
Some drivers would report the wrong internal format.  But it's silly that we query the internal format anyway, since buffer textures have a fixed sized internal format.
2018-07-17 17:04:50 +02:00
rdb
61084a3f4e pgraph: work around C++11 bug in something or other (see #355) 2018-07-12 14:24:40 +02:00
rdb
10fe8659c6 gobj: work around a deadlock in GeomCacheManager::flush() 2018-07-12 14:22:27 +02:00
rdb
c434e08a9c tests: add various depth buffer rendering tests 2018-07-12 14:20:31 +02:00
rdb
e41eeaae23 glgsg: if 32-bit unorm depth is not available, fallback to float
This prevents falling back to 24-bit depth if 32-bit depth is requested.
2018-07-12 14:17:02 +02:00
rdb
828233a8f2 glgsg: support gl-depth-zero-to-one to get same NDC Z range as D3D 2018-07-12 14:13:32 +02:00
rdb
16daf08e42 glgsg: fix some GCC warning messages 2018-07-11 13:33:50 +02:00
rdb
ff3d005230 x11display: fix Xlib thread safety problems 2018-07-11 13:33:21 +02:00
rdb
55146b9f82 dxgsg9: fix compilation error with WeakPointerTo comparison 2018-07-09 17:09:11 +02:00
rdb
fbce833aae pgui: reduce unnecessary locking in PGItem
A deadlock has been observed if the lock is held while traversing the scene graph, so the need for locking in cull_callback is now reduced.
2018-07-09 16:13:01 +02:00
rdb
e673937384 parser-inc: add <memory> include to unordered_map/set for allocator 2018-07-09 16:02:06 +02:00
rdb
7c8426a79f tests: fix int overflow error with GLSL shader test on some drivers 2018-07-08 22:28:52 +02:00
rdb
abe20fc489 fmod: return NullAudioSound if file does not exist
This matches the OpenAL behaviour, and is needed to fix the unit tests on macOS.
2018-07-08 21:49:37 +02:00
rdb
c6ed4e1836 general: don't cast to regular pointer when returning a PointerTo
This is inefficient because it induces an unnecessary ref()/unref() pair when we just need to move the pointer out of the function.  Thanks to 23128e4695d2e8581551be161f20cf7d53ca87b5, we can now move between related pointer types, making the .p() hack unnecessary.
2018-07-08 21:40:58 +02:00
rdb
23128e4695 express: support casting between compatible PointerTo types
This makes it possible to implicitly convert a PT of a derived type to a (C)PT of a base type, without needing to first convert it to a regular pointer.  This also applies to moves, which are now more efficient due to the lack of need for ref/unref pair even if the pointer type is not exactly the same.
2018-07-08 21:33:49 +02:00
rdb
409231d214 express: make WeakPointerTo cast operators explicit
This prevents accidentally (and unsafely) decaying a WeakPointerTo to a regular pointer.
2018-07-08 21:25:08 +02:00
rdb
fb82a1c557 express: enable WeakPointerToBase comparison operators on Win32
I'm not sure why they were ifdeffed out, but they should certainly be available so that it is possible to compare WeakPointerTo in a thread-safe manner.
2018-07-08 21:22:25 +02:00
rdb
269d154aea chan: fix thread-unsafe access of WeakPointerTo 2018-07-08 21:15:40 +02:00
rdb
eda47c7f3b bullet: support Plane class in BulletPlaneShape 2018-07-08 21:13:13 +02:00
rdb
cf451bde23 tests: add some fuzz to bullet plane shape testing
Needed to unbreak the test suite on macOS.
2018-07-08 21:11:36 +02:00
rdb
835a895c51 windisplay: don't adjust in_window during get_pointer
This restores the old behaviour from before 29a08932ea92bcf0e953994c524cafc1717930b5, which makes in_window true during pointer capture (ie. click-and-drag) even if the cursor leaves the window.

X11 behaviour is already not to adjust in_window.

Fixes #363
2018-07-07 22:55:45 +02:00
Tohka
0c1fa6a765 nsis: Correct building on NSIS 3.0
LVM_GETITEMCOUNT and LVM_GETITEMTEXT are already defined post NSIS 3.0.
2018-07-07 22:54:53 +02:00
Brian Lach
fd227f6492 bullet: allow creation of BulletCapsuleShape from CollisionTube 2018-07-06 13:31:00 -04:00
rdb
d4d582484f display: fix ability to make screenshots in multithreaded pipeline
Problem is that WGL is strict about binding context in different thread while it is still bound in another thread.  Either way we need to make sure the draw thread is not rendering, so if you call get_screenshot() from a thread other than the draw thread, it uses the GraphicsEngine to wait until the draw thread is idle and then asks it to do the get_screenshot().

Fixes #360
2018-07-05 19:02:37 +02:00
rdb
b85fead09d wgldisplay: report context binding error, keep track of thread
This isn't really a complete solution, just a stopgap measure to prevent a crash.
2018-07-05 17:55:39 +02:00
rdb
ec06d3f4f8 tests: fix occasional timing issue in future test 2018-07-05 12:59:02 +02:00
rdb
5fe294a467 bullet: prevent softbody with AABB out of bounds from asserting
See #357
2018-07-05 12:48:11 +02:00
rdb
96a48a6848 glgsg: fix issue with extract_texture_data and buffer textures
It would always extract the last-created buffer texture, not the texture in question.
2018-07-04 20:56:07 +02:00
rdb
c5dd683366 tests: add unit test for writing to and extracting buffer textures 2018-07-04 20:55:07 +02:00
rdb
00888518fe gobj: add F_r32i and F_r32 to TexturePeeker 2018-07-04 20:31:08 +02:00
rdb
e9e18c2277 dtoolutil: fix PandaSystem TypeHandle static init issue 2018-07-04 20:29:31 +02:00
rdb
66c5d65bf6 maxegg: fix compilation errors with min/max 2018-07-04 19:11:59 +02:00
rdb
f2976b03ec gobj: add alignment support and move semantics to SimpleAllocator 2018-07-02 12:55:18 +02:00
rdb
68e7f681f4 interrogate: support enum class to limited extent in Python 2
Only the basics are supported; the __members__ or iter interface is not supported at this time.

See also #351 for discussion on pulling in enum34 module.
2018-07-02 12:16:35 +02:00
rdb
cce21a5bee Add .pytest_cache/ directory to .gitignore 2018-07-02 11:54:27 +02:00
rdb
f5a78d599d putil: make LinkedListNode moveable 2018-06-30 21:38:45 +02:00
rdb
9441c28f61 interrogate: do not wrap methods with rvalue arguments
This could in theory be supported, but this is not really intuitive from a Python user's point of view.
2018-06-30 21:38:45 +02:00
rdb
e191ee84f4 cppparser: class is not implicitly copyable if it has a move ctor 2018-06-30 21:38:45 +02:00
rdb
b2c04a8c7a interrogate: support scoped enum args and return values 2018-06-30 21:38:40 +02:00
rdb
94cbdc563b general: fix a few more compiler warnings 2018-06-30 17:19:23 +02:00
rdb
c03a75d755 interrogate: use range for in various places for code cleanliness 2018-06-30 17:18:14 +02:00
David Carlsson
371e60c768 bullet: Change the b2p sync-order to allow parenting BulletWheels to a BulletVehicle
Parenting a BulletVehicle's wheels to the chassis-BulletRigidBodyNode now works as expected. Previously doing this would make the wheels appear to be positioned one frame ahead of the chassis, because the wheel's position were synced before the chassis' position.

For more information see issue #250.

Closes #349
2018-06-23 00:02:10 +02:00
David Carlsson
c18abad8c3 bullet: Interpolate BulletVehicle-wheel transform before syncing it to panda
Bullet automatically interpolate most bodies for us (for example the "chassis"
of a BulletVehicle), but BulletVehicle-wheels must be manually interpolated by
calling 'updateWheelTransform()'. Otherwise they will slowly rubber-band
between their intended position and a position one frame ahead in time.

For more information see issue #250.
2018-06-23 00:01:41 +02:00
rdb
29a08932ea display: improve mouselook smoothness significantly, esp if low FPS
This problem occurs when movePointer is used to reset the mouse back to the center every frame, a very common way to implement mouselook on Windows (which has no relative mouse mode).  Any movement between the last event loop run and the call to movePointer is destroyed, resulting in quite choppy mouselook in most implementations.

The solution is for getPointer to always return the latest mouse cursor position.  This goes a long way but is not 100% perfect; see the discussion in #359 for other solutions.

Fixes #359
2018-06-22 23:58:56 +02:00
rdb
927fcda817 shader: fix shader newline error with Intel drivers
It appears that Intel drivers always need a newline at the end of the file.
2018-06-22 20:53:56 +02:00
rdb
582cc2991e pipeline: add TypeHandle for CycleData if DO_PIPELINING is set
This helps to identify CycleData when tracking memory usage via MemoryUsage.
2018-06-22 20:52:44 +02:00