This is done by adding a PyTargetAdd function, which builds the target into a Python ABI-specific temporary directory, allowing multiple Python versions to be built into the same built dir side-by-side. This could greatly speed up buildbot builds.
It also paves the way for building multiple Python versions in the same makepanda call / installer by changing PyTargetAdd to add one target per enabled Python version.
This makes it easier to build for one platform even if multiple
platforms are specified in setup.py/cfg. For example:
python setup.py build_apps -p win_amd64
Or, for multiple platforms:
python setup.py build_apps -p win32,win_amd64
This is for consistency with fbbc5bb9e63 which introduced the
same `#undef Configure` in dxgsg9. This prevents dtool's own
Configure() macro from conflicting with the declaration of
D3D9's Configure function in d3d9.h.
This is done by only writing out a #line when the first non-whitespace line is encountered; any blank lines before that are trimmed. This cuts down the size of the preprocessed shaders for a large project with many shader includes, such as the RenderPipeline.
This method of checking for pnhpast.dll was actually for
DirectX 8.1 (see a16fe56c7) and its presence in the DX9 code
is largely due to the copy-and-paste nature of how the DX9
GSG was created from the DX8 code.
This is to fix eg. public ButtonHandle members from being returned as const reference, which means they won't outlive the struct they are accessed on, a recipe for obscure crashes.
The is_trivial() criterium for this to apply is admittedly really arbitrary; I haven't really figured out what the right criterium should be, but it's better than hardcoding ButtonHandle.
This file isn't compiled, and I'm pretty sure never has been
compiled. The dependence on "config_wdxdisplay9.h" (which has
never existed) and absence of any commits that address its
functionality reinforce the idea that this is actually just
dead code.
This seems like an artifact copied over from the DX8 code,
that nobody cared enough to get working or delete.
- Don't assume GLSL 4.30 is available just because the driver
supports compute shaders. Drivers before OpenGL 4.3 may still
offer the extension.
- Use GLSL 1.30 by default, and turn on additional features
using extensions. Skip any tests requiring extensions that
aren't supported by the driver.
- Unsigned literal ints should have a 'u' suffix.
- Clean up a few dead Python expressions
Since this still takes a long time to build, even with the previous change, it would be better for one CPU to chew on this in the background while the rest of the build continues.