Commit Graph

10192 Commits

Author SHA1 Message Date
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 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 00888518fe gobj: add F_r32i and F_r32 to TexturePeeker 2018-07-04 20:31:08 +02:00
rdb f2976b03ec gobj: add alignment support and move semantics to SimpleAllocator 2018-07-02 12:55:18 +02:00
rdb f5a78d599d putil: make LinkedListNode moveable 2018-06-30 21:38:45 +02:00
rdb 94cbdc563b general: fix a few more compiler warnings 2018-06-30 17:19:23 +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
rdb b0bbc66f06 bullet: document that sweep_test_closest is convex-only in API ref
Closes #356
2018-06-19 00:37:29 +02:00
rdb 886e1c2f16 general: fix many compilation warnings in GCC 8 2018-06-19 00:37:28 +02:00
rdb 835aab5424 physx: fix compiler errors 2018-06-15 18:05:41 +02:00
rdb d48695cb2e glgsg: fix occasional WeakPointerTo dereference 2018-06-14 22:51:35 +02:00
rdb 19e1b1d877 pgraph: add version of RenderState::get_attrib(_def) taking a CPT 2018-06-14 22:51:12 +02:00
rdb f804b10d45 Fix more compiler warnings 2018-06-14 22:49:45 +02:00
rdb 83f637ea9f ffmpeg: fix compilation for older FFMpeg versions 2018-06-14 19:00:13 +02:00
rdb c1fbeaea51 display: allow full access to all 4 of each aux buffer category
I think there was some confusion about how set_aux_rgba (and friends) worked; it seems the original intent was to toggle each individual buffer whereas it is actually interpreted as a count of how many of these buffers should be enabled.  We should try to clarify the API and/or replace it with something better as soon as possible.
2018-06-14 16:08:33 +02:00
Sam Edwards b2bfb31114 general: Remove `using std::*` from headers
Also remove most `using namespace std;` statements. The only one that remains is in py_panda.h.

Closes #350
Closes #335
2018-06-14 16:04:49 +02:00
rdb d284cedbea movies/ffmpeg: support grayscale and grayscale-alpha videos
Fixes #352
2018-06-14 14:22:56 +02:00
rdb 9231694f8f gobj: fix Python 3 support for GVADHandle::get_(sub)data/set_(sub)data
That said, you should really be using the buffer protocol; you can create a memoryview() directly around the GeomVertexArrayData.
2018-06-14 14:11:34 +02:00
Younguk Kim d22da73a4c Fix macro redefinition warning 2018-06-14 09:33:19 +09:00
Sam Edwards 69d5fcf3b0 pgraph: Fix use of incomplete GeomNode in PT(GeomNode) 2018-06-12 16:18:15 -06:00
Sam Edwards a971bc1dfc general: Break apart BUILDING_PANDAGL 2018-06-12 16:15:45 -06:00
Sam Edwards 768f78306a general: Break apart BUILDING_PANDAEGG 2018-06-12 16:15:25 -06:00
Sam Edwards e73c25d15e general: Break apart BUILDING_PANDAPHYSICS 2018-06-12 16:15:04 -06:00
Sam Edwards 7e61891c09 general: Fix more DLL linkage and EXPCL_PANDA_ macros 2018-06-12 16:14:33 -06:00
rdb eab8b1c7a3 tform: MouseWatcher sort should uniquify duplicates
Also change the code to use range-for when appropriate, which improves code readability.
2018-06-12 13:44:24 +02:00
rdb 65217a258d tform: allow calling MouseWatcher::add_region with same region twice
Previously, this was an error.  Now, it will simply silently be ignored, making it behave more like a set.
2018-06-12 12:45:48 +02:00
rdb b88bd99704 Various compiler warning fixes 2018-06-12 12:38:07 +02:00
rdb 494ba40c5e Fix compilation error on Android 2018-06-11 14:35:37 +02:00
Sam Edwards bc596797a3 general: Resolve some warnings unique to Windows 2018-06-10 02:25:10 -06:00
Sam Edwards 3c6ebb56bd general: pvector<unsigned char> -> vector_uchar 2018-06-10 02:25:10 -06:00
Sam Edwards f1eb811c0e general: Break apart BUILDING_PANDAEXPRESS 2018-06-10 01:37:31 -06:00
Sam Edwards b8bc1bb5e9 gobj: Include, don't forward-declare, BamCacheRecord in shader.h
Closes #346
2018-06-10 01:37:13 -06:00
Sam Edwards 7790f8429d general: Fully qualify header references into the std namespace
Closes #341
2018-06-07 10:35:12 +02:00
rdb b7f8ddfe35 dxgsg9: fix type mismatch in min() call 2018-06-07 10:34:47 +02:00
rdb 8a9d83b604 physx: fix compile error 2018-06-04 17:28:13 +02:00
rdb be282627a8 express: make PointerTo directly initializable from nullptr 2018-06-04 11:21:18 +02:00
Sam Edwards f0fc6e6d56 express: Fully qualify std::nullptr_t 2018-06-03 16:56:53 -06:00
Sam Edwards 5e82671084 general: Do away with TYPENAME macro 2018-06-03 16:36:34 -06:00
Sam Edwards e2b4353800 general: Replace NULL (and 0 as pointer) with C++11 nullptr
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
Sam Edwards 92d2f5e195 general: Don't use NULL where not appropriate 2018-06-03 16:31:01 -06:00
Sam Edwards d422d74abb general: Clean up asserts which were abusing NULL 2018-06-03 16:26:44 -06:00
Sam Edwards ebe1b0763f express: Allow WeakPointer comparisons to nullptr
This saves us from having to do casts like:
if (foo == (const FooType *)nullptr) {
  ...
}
2018-06-03 16:26:44 -06:00
rdb 57602d750f cocoadisplay: don't crash if window/buffer fails to open 2018-06-03 22:35:37 +02:00