21678 Commits

Author SHA1 Message Date
Sam Edwards
5f14d9c48f char: Move JointVertexTransform::_matrix to CharacterJoint
The rationale is that CharacterJoint should contain all of the joint
state information, and JointVertexTransform should be pretty much devoid
of state so that we don't have to worry about synchronizing it.
JointVertexTransform::_matrix was just a cached/precomputed matrix
that transforms from original vertex positions to animated vertex
positions, so moving it to CharacterJoint doesn't change any engine
functionality.

This also removes the useless lock on recomputing that matrix. It was
useless because it was computing from shared state in CharacterJoint
that wasn't properly synchronized, but this would have to be fixed by
making CharacterJoint pipeline-cycled - a lock won't do.
2018-03-10 20:26:02 -07:00
Sam Edwards
280b13a289 char: Remove references to dead "ComputedVertices" class
This hasn't been a thing for nearly 13 years.
2018-03-10 20:15:39 -07:00
rdb
766b38fb7a dtoolbase: make TypeHandle a constexpr class 2018-03-08 12:58:16 +01:00
rdb
5d2110c644 bullet: add force_update_all_aabbs property to BulletWorld 2018-03-08 12:19:22 +01:00
Michael Wass
b10ee32752 direct: Fix some more NameErrors
Closes #274
2018-03-08 11:44:04 +01:00
rdb
bfff7e1000 tests: don't assert if pipe cannot create physical windows 2018-03-08 11:41:00 +01:00
rdb
15f6ed1ba2 androiddisplay: remove error messages leftover from debugging 2018-03-08 11:39:03 +01:00
rdb
b0b32b9d6a direct: fix Python 3 support in Pmw-based tools
Fixes #276
2018-03-08 11:21:14 +01:00
rdb
9a31478744 task: remove accidentally committed debug message 2018-03-08 11:19:43 +01:00
Sam Edwards
d8b48a3837 openal: ptr != 0 -> ptr != NULL 2018-03-06 19:02:05 -07:00
Sam Edwards
99dc462174 openal: assert -> nassert 2018-03-06 19:02:05 -07:00
Sam Edwards
c89bb3d030 openal: "reattempt" -> "retry" 2018-03-06 19:02:05 -07:00
Sam Edwards
cb85d01de6 openal: Always use INLINE in .I files 2018-03-06 19:02:05 -07:00
Sam Edwards
a10cd7d8bb openal: Always use release_sound_data
This simplifies cleanup() a little bit.
2018-03-06 19:02:05 -07:00
Sam Edwards
9a5d7d8254 openal: Add several asserts
This also includes a few slight style fixes.
2018-03-06 19:02:05 -07:00
Sam Edwards
1a6fb5300b openal: Be explicit about what constructs like _sound != 0 mean 2018-03-06 19:02:05 -07:00
Sam Edwards
fd5ce687b3 openal: Add cleanup guards to buffer functions
Without this, the audio might encounter an error, call cleanup()
on itself, and (if in the middle of update()) try to dereference
its recently cleaned-up _sd pointer.

Fixes #230
2018-03-06 19:02:05 -07:00
Sam Edwards
6ca0a68042 openal: Retry deleting a buffer until success
The rationale for this change is Apple's OpenAL implementation,
which needs a little time after the
`alSourcei(source, AL_BUFFER, 0);`
call before any buffers used by that source are free for deletion.

The defaults in the config variables are such that the OpenAL manager
will attempt to delete a buffer up to 6 times (that is, the original
attempt plus 5 reattempts), with delays of 1ms, 2ms, 4ms, 8ms, and 16ms
before each reattempt - which means it'll wait a grand total of 31ms for
a buffer to be free before assuming that some even greater problem must
be happening and giving up.
2018-03-06 19:02:05 -07:00
Sam Edwards
1862100bac openal: Don't assume alSourceUnqueueBuffers is FIFO 2018-03-06 19:02:05 -07:00
Michael Wass
89799bc024 direct: Fix some NameErrors
Squashed merge of GitHub PR #273
2018-03-05 18:32:27 -07:00
Sam Edwards
1b1c76b2e8 pgraph: Fix "Unknown render mode 5" errors
This happened when a M_dual transparent object is given the
M_filled_wireframe render attrib. M_dual would copy the transparent
parts of the object to the transparent back-to-front bin, before
the M_filled_wireframe handler could deal with the M_filled_wireframe
flag.

The solution is just to switch the order - let M_filled_wireframe be
dealt with before the transparency code gets a chance to make a copy.
2018-03-05 06:10:25 -07:00
Sam Edwards
fd6eebb7fe bam: Fix circular reference with ClipPlaneAttrib
What's being addressed here is the circumstance where an ancestor of
a PlaneNode has a ClipPlaneAttrib that references said PlaneNode.

The code here is just being copied out of LightAttrib, which has the
exact same mode of operation (it nominates a sorted list of on/off
NodePaths) and a compatible structure. LightAttrib has had this problem
in the past, so using the same solution makes sense.
2018-03-05 05:26:54 -07:00
Sam Edwards
74bb2fef2e bam: Fix typo in ClipPlaneAttrib::fillin 2018-03-05 05:26:50 -07:00
Sam Edwards
d088341da1 bam: Log object IDs when spamming read 2018-03-05 05:26:45 -07:00
Sam Edwards
ebe9e75d84 dtoolbase: Delete unused preprocessor macro
[skip ci]
2018-03-04 20:28:51 -07:00
Sam Edwards
013af2ac4b dtool: Delete 'newheader'
This is a task better handled by editors/scripts.

[skip ci]
2018-03-04 20:28:09 -07:00
Sam Edwards
ac8417ffdf distributed: type(x) == types.FooType -> inspect.isfoo(x)
This is more compatible across Python 2 vs. 3.

[skip ci]
2018-03-04 15:28:39 -07:00
deflected
8ad4c8e23c bullet: Fixed deadlock when loading from collision solids
- Fixed deadlock when loading ghost nodes from collision solids and
        have non-identity scale applied.

Signed-off-by: deflected <deflected@users.noreply.github.com>
2018-03-01 23:36:10 +02:00
rdb
9638eb47eb Add support for geometry with adjacency information
Example code: https://gist.github.com/rdb/7cebb8941b962c59d5a092048efb3855
2018-03-01 21:20:19 +01:00
rdb
4e640fcb60 Merge remote-tracking branch 'deflected/panda3d-master' 2018-02-27 20:41:01 +01:00
rdb
361d36380d makepanda: don't put pview metadata in rpm when building without pview
Fixes: #260
2018-02-27 20:36:53 +01:00
rdb
8b6616814d interrogate_module: warn about circular dependencies between classes
This will help us catch cases wherein we inadvertently create a circular dependency between component libraries.  Right now it only checks inheritance and typedefs, but this can be expanded in the future.

Also, sorts the module initialization by dependency topology.  This isn't very important right now, but having this guarantee might help when refactoring module initialization in the future.
2018-02-27 20:23:36 +01:00
rdb
bdb575e766 interrogatedb: add interrogate_type_is_global (+regenerate pydtool) 2018-02-27 19:44:14 +01:00
rdb
162b86c6d9 interrogatedb: fix library name setting for typedefs
Typedefs are evidently always considered "fully defined", so we need to add another condition to the database merging code to prefer the type that is marked "global" when merging two types.
2018-02-27 19:33:18 +01:00
rdb
fa231664bd interrogate: don't mark base types as global 2018-02-27 18:47:51 +01:00
rdb
2450f31ef5 interrogate: remove deprecated and unneeded downcastTo*() functions
They have not been needed for a very long time, and they create an awkward reverse dependency of base classes on derived classes.
2018-02-27 15:06:12 +01:00
rdb
b62435a373 general: remove all uses of deprecated upcastTo*() methods
These methods have not been needed for a very long time, so we should not encourage their use.
2018-02-27 15:02:49 +01:00
rdb
5523af09ce makepanda: rebuild modules when interrogate_module is modified 2018-02-27 12:05:23 +01:00
Sam Edwards
01b0835797 pandabase: Remove reference to DIRECTORY_DLLS
Nothing defines this under any circumstances.

Also this moves the various component EXPCLs and EXPTPs
within the include guard of the entire header.
2018-02-26 00:25:03 -07:00
Sam Edwards
705fd445f3 dtool: Fix an inconsistent EXPCL/EXPTP 2018-02-26 00:03:09 -07:00
Sam Edwards
c3106411f5 dtool: Remove 'attach'
See #244 for discussion. It's really old, hasn't been used in almost
a decade, and doesn't support the current Git workflow either.
2018-02-25 18:27:10 -07:00
rdb
a5beccc99e chan: fix crash when AnimControl is destroyed in threaded pipeline
See #254 for related discussion.
2018-02-24 12:15:56 +01:00
Sam Edwards
b72d1c198f distributed: Fix the import test (and syntax on Python 3) 2018-02-23 19:52:48 -07:00
Sam Edwards
f76b8a6ad8 distributed: Replace the OTP protocol format with Astron's
Again, all this does is affect the 4-years-disused OTP system, leaving
the CMU system entirely untouched.

This changes the packet formatting in several of distributed's helper
classes.
2018-02-23 16:45:50 -07:00
Sam Edwards
167c6dcafa distributed: Change the message numbers to match Astron's
I imagine very few Panda3D users depend on the message numbers having
particular values. The ones removed belonged to Disney's OTP system,
which hasn't been used by anybody in over 4 years.

At any rate, old code should continue to work, just at the cost of
compatibility between clients and servers running different P3D versions.
2018-02-23 16:35:50 -07:00
Sam Edwards
97368ec321 distributed: Make a few slight cleanliness changes
I brought all of these over from the Astron fork
2018-02-23 15:55:30 -07:00
Sam Edwards
aaeb925e84 directtools: Fix typo in DirectSelection 2018-02-23 15:50:50 -07:00
rdb
aa90b7b0c0 showbase: disable track-gui-items by default, remove want-e3-hacks 2018-02-23 22:26:27 +01:00
rdb
e6c2d3b609 showbase: allow DirectGui elements to be created before ShowBase
This is done by precreating aspect2d inside ShowBaseGlobal.
2018-02-23 22:15:34 +01:00
rdb
0cf605ce7d showbase: move run() and __dev__ to ShowBaseGlobal
Also remove ShowBaseGlobal notify category, it doesn't really add anything
2018-02-23 21:26:49 +01:00