We need third-party extensions that link with the Panda3D libraries to continue to work when shipping them with the optimized libraries that deploy-ng uses. To do this, we need the optimized build not to omit symbols that these extensions might depend on.
- Miles is gone; remove all references
- pystub is gone; remove all references
- dcparser uses Interrogate extensions properly; don't depend on Python
- stringStream* moved to express from downloader
The API seems to imply that the callback is per-world, when it is actually a global setting. This fixes it to truly behave per-world. This also fixes a crash on shutdown caused by the callback destructing when the Python interpreter is already shutting down.
Fixes#712
Compiling with libswscale isn't really optional if you want to play most video files, but if you know what you are doing and all your videos already have a supported pixel formats, it is now possible.
Fixes#711
CMake 3.15+ provides the former, which extension modules should link
against in order to ensure the ABI-appropriate linkage for the
platform.
For older versions of CMake, try to hack up the correct linkage for
the platform. If the platform isn't recognized, tell the user to
upgrade CMake.
This also tweaks p3pystub just a bit, since now it's actually relied
upon to resolve runtime link issues when p3dcparse pulls in direct,
as p3dcparse doesn't link against Python at all.
This should especially help with trimesh generation performance, which previously formatted a complete description of the trimesh to the debug output even if it was disabled.
The _render_stages and _render_ff_stages cannot simply be copied, because they contain pointer references to the previous TextureAttrib. Never copy them, and always mark _sort_seq as stale.
This fixes a test failure in replace_texture.
This is particularly the case when requesting a core-only profile (gl-version 3 2) where luminance textures are deprecated.
There is apparently no way to emulate them with swizzles (as we do with luminance textures), so we'll have to duplicate the channels out.
Fixes#693