Files excluded from compositing are (from makepanda):
dtool/src/dtoolbase/indent.cxx
panda/src/display/graphicsStateGuardian.cxx
panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx
panda/src/grutil/multitexReducer.cxx
panda/src/pgraph/nodePath.cxx
panda/src/pnmimage/convert_srgb_sse2.cxx (due to being compiled w/ SSE2)
Otherwise, PyPI wil pick the ones for the first uploaded wheel, which means that Panda3D will not be indexed under all Python versions on PyPI.
Also add a few more classifiers.
This effectively ends support for 32-bit Intel Macs. It switches the standard library to libc++, allowing us to use features from C++11.
There are some known bugs with older versions of libc++ (such as the istream::eof() bug); we may end up raising the minimum further (eg. to 10.9) soon if the situation becomes untenable.
Fixes#300
This back-end has been deprecated by Apple for a while, and has not been used in Panda. As we will no longer be supporting 32-bit macs going forward, and the Carbon windowing API is not available for 64-bit mac, there's no point in keeping it.
Apparently eof() in older versions of libc++ returns true if the last character has just been read, whereas the proper behavior is only to return true when attempting to read past the end of the stream. Since failbit is reliably set in all cases when reading past the length of the stream, we should only trust the result of eof() if fail() also returns true.
Apparently eof() in older versions of libc++ returns true if the last character has just been read, whereas the proper behavior is only to return true when attempting to read past the end of the stream. Since failbit is reliably set in all cases when reading past the length of the stream, we should only trust the result of eof() if fail() also returns true.
Specifically, this happens if you have a custom ShaderGenerator that assigns shader inputs via the ShaderAttrib. If two objects then both have the auto-shader turned on, and the shader generator generates ShaderAttribs with the same shaders but different inputs, the inputs will not be updated properly for one of the objects.
Generators can no longer raise StopIteration, and we are supposed to use "return" instead. But, return with value inside generator is a syntax error in Python 2.
Fixes#513