This can be used to disable certain extensions from being loaded via Assimp
Also makes the `get_additional_extensions()` method a bit more efficient by having it avoid string concatenation, using a temporary buffer instead
It changes the following things:
* Changes the counts in the PStatFrameData from uint16 to uint32, since I was hitting the value limit in some heavy frames with Python profiling enabled - no good reason for this limitation, so this allows removing it later
* Adds a T_expire_thread message, which I can use later to fix#450
These features are not used on the client side, but will be used on master. Adding these changes here now makes it possible to use a master client with a 1.10.13 version of the server (can be useful if you can't compile Panda on the host).
Currently, the client doesn't send nested start/stop pairs, but there is no good reason not to handle this case in the server, and in some cases it is useful to send them (I will soon make changes on master to take advantage of this).
Client version 3.1 indicates that the client may send nested start/stop pairs.
It can be very useful to know how often a collector was invoked in a frame, not just how long it took. This adds a number to the upper-right corner showing exactly that (but not aggregated, just for leaf collectors).
Remove the use of set and list, which are allocator-heavy and insertion was a bottleneck. Since each sample occurs only once on the linked list, we can more efficiently roll our own linked list with next and prev pointers, so no allocation needed. Instead of the set, we can just store a per-collector flag.
This fixes the value of `sys.flags.optimize`, as we always build Python code with `optimize=2` in Python 3.2 and above
In the long run we need a better solution, see #1363Closes#1359Fixes#1343
This prevents a common error of trying to load non-Panda3D assets without specifying $MAIN_DIR. We aren't currently making any guarantees about the cwd (which may in fact be / when launching from Finder), so I think this is safe.