When a LightAttrib is set on the root of a model and the light is contained within that model, creating a copy (like the one Loader makes automatically) causes the LightAttrib to still point to the original light, not to the newly copied light.
This works around it only for the case when the LightAttrib is set on the root, and only for the case of NodePath::copy_to() (it turns out there are edge cases when doing it in PandaNode::copy_subgraph() that would be hard to explain).
See Moguri/blend2bam#44
Panda was adding a column with weights (0, 0, 0, 0), but these weights don't add up to 1 so no useful identity matrix can be produced. Instead it's better to fall back to the OpenGL default, (0, 0, 0, 1).
I'm also defaulting the transform_index values to (0, 1, 2, 3) to support non-indexed skinning (although that's pretty esoteric, given that that only supports 4 transforms...)
This is necessary to prevent deadlocking on the GIL if some Python code is trying to write some geometry while the CollisionTraverser is trying to read it.
Fixes#1033
This will cause all textures in .egg files to be loaded with an sRGB format setting (except with an envtype that generally assumes a linear texture).
Fixes#1006
These parameters are already taken care of by set_state_and_transform().
Also comment out a few lines of code that would prevent the latter from being called for transform changes, but which never triggered anyway.
The first time axis are processed while a dpad axis is engaged will
result in the opposite dpad "button" getting set to a state of S_up from
S_unknown, which results in an '-up' event getting fired. Instead,
assume the emulated dpad buttons start in a state of S_up.
This fix is for the Joystick API and for the evdev API, but only the
evdev changes were tested.
Closes#973
This needs a more thorough fix (probably on master), but the implicit sort is incrementing every time, and it is being included in the hash/compare, so every time the same texture is replaced on the same TextureAttrib, it will be a unique TextureAttrib, causing garbage to accumulate and the state system to be generally less effective.