There is no good solution here, since RNA props can only have one type/unit.
Tried to find the less worse one - have different RNA props for same DNA value
(a bit like the angle/length for camera lens).
Also fixed two other issues with Transform conctraint:
* Angle were still in degrees (yes, another backward-compatibility breacking).
* Scale was absolute, unlike loc/rot.
Also cleaned up a bit the code, replaced some magic numbers by proper enums, ...
This required BL_ArmatureObject to have tighter control over armatures and poses.
Also, (Blender) armature objects are now copied instead of shared between
BL_ArmatureObjects to avoid race conditions. Also, due to the armature copy,
shape key drivers need a bit of extra fiddling to get the correct armature copy.
Initially OpenMP was used for threading, but then BLI_task was used due to being
less compiler dependent.
This commit also places time spent on skinning updates in the Animation
profiler category (was previously under the Rasterizer category).
Doubts: are written as comments in the code
Current Problems:
- stereo modes sometimes have different names and are ordered differently everywhere (blender properties panel names and tooltips, blenderplayer cmndline)
- dome mode as several options, but can only take one at a time, like -D mode bla -D tilt X -D ...
- gameoptions are also given one at a time, like above, but with an assignment -g option = X . This is inconsistent.
- gameoptions need to be reviewed and docummented
- parent to window (-i) is useful for what? (there is no wiki on this either)
- there is no support for verbose options like --help (blender itself supports it)
Reviewers: dfelinto, moguri
CC:
Differential Revision: https://developer.blender.org/D312
See T39470 and D436. Code by @tippisum, with some minor edits by @mont29.
Tested with various rigs, including Rigify, CGcookie flex rig, and gooseberry/pataz caterpillar.
Riggers, please test it, no change expected in behaviour.
Reviewers: aligorith
CC: tippisum
Differential Revision: https://developer.blender.org/D436
Issue is, looks like Debian testing's graphic backend now uses LLVM-3.4,
which conflicts with 3.3 in Blender and makes it crash.
So add support to handle 3.4, by both allowing to force a specific version for some libs,
and switching back to head of official repo for OSL.
These data elements are undocumented and of little use. For now they are commented out
in the implementation in favor of less memory consumption, and a very limited support for
these data components in the Python API was just removed (should be easy to recover).
Symbol 'real' is an alias of double and is subject to future change, while the interface of
0D/1D functions is part of the stable Freestyle Python API. So all occurrences of this type
in the class definitions were replaced with double.
Almost all pools allocated 2 chunks on initialization,
every element needed to be added to the free-list which
would never be used for small pools.
Now allocate only one, gives minor speedup for some bmesh operations.
This function used ugly hack with static variable which was
preventing some type checks in DAG nodes. Using this variable
form multiple threads is not considered safe, apparently.
Solved by moving this variable inside the DAGForest structure.
so it's global for the graph now, but different graphs does not
run into conflicts.
This required passing the forest to some functions, which doesn't
look so much nice, but don't want to spend time on making this
code look beautiful because it is really to be replaced by the
new dependency graph.
This is really bad bug actually which is must go to 'a'.