The previous behavior was for unloadAnims() to remove the control effects from all animations, even when only one animation was passed in, which is unintuitive behavior.
Fixes#853
They are not exposed to Python, and I cannot think of a good reason to use these classes directly in C++ code.
Call init_libpnmimagetypes() to register these classes with the PNMFileTypeRegistry instead.
For some reason, IOHIDDeviceRegisterRemovalCallback() no longer works on
10.15+, so an app will crash once trying to poll a device that doesn't
exist anymore. Thankfully, there is the alternative solution of using
IOHIDManagerRegisterDeviceRemovalCallback(). This just required a little
rearranging of the callback code, as well as keeping track of the
connection between IOHIDDeviceRefs and IOKitInputDevices so we actually
know which device to remove.
Closes#847
This results in size savings for thirdparty libraries that are only used once, and a size increase for libraries used more than once (eg. OpenSSL). More importantly, it prevents conflicts with other versions of the libraries loaded by other Python modules, such as the version of OpenSSL that the hmac module uses.
We need to be careful to only apply this for packages that are either used once, used in a plug-in module, or if we don't need to pass thirdparty library structures across Panda library boundaries. For example, I haven't done this for Bullet, since the Bullet symbols need to be available through libpandabullet.so due to the fact that pandabullet contains calls to the Bullet libraries in the inline methods.
Fixes#851
These were probably added before makepanda gained the ability to automatically add dependencies of static libraries when linking statically.
They don't really do any harm--the linker will probably optimize these out automatically--but it's cleaner not to add unused dependencies.
We haven't needed this for a while since the direct tree is both Python 2 and 3 capable, and furthermore, Python 2.7 is EOL and will be dropped soon in Panda3D.
We no longer support Windows XP and so there is no point in defaulting to the old 7.1 SDK, which is hard to install. To target Vista, we can use the 8.1 SDK (+UCRT).