Age | Commit message (Collapse) | Author |
|
rename change/is_change/is_changed/modified -> changed
also use bools over int/short/char and once accidental float.
|
|
|
|
|
|
Apparently, some routines in armature deformation code
were using static arrays. This is probably just an
optimization thing, but it's very bad for threading.
Now made it so bbone matrices array is allocating in
callee function stack. This required exposing
MAX_BBONE_SUBDIV to an external API, This is not so
much crappy from code side, and it shall be the same
fast as before.
--
svn merge -r58278:58279 ^/branches/soc-2013-depsgraph_mt
|
|
I know this is not so much nice to have this guys hanging
around in a general Object datablock and ideally they better
be wrapped around into a structure like DerivedMesh or
something like this. But this is pure runtime only stuff and
we could re-wrap them around later.
Main purpose of this is making curves more thread safe,
so no separate threads will ever start freeing the same path
or the same bevel list.
It also makes sense because path and bevel shall include
deformation coming from modifiers which are applying on
pre-tesselation point and different objects could have
different set of modifiers. This used to be really confusing
in the past and now data which depends on object is stored
in an object, making things clear for understanding even.
This doesn't make curve code fully thread-safe due to
pre-tesselation modifiers still modifies actual nurbs and
lock is still needed in makeDispListsCurveTypes, but this
change makes usage of paths safe for threading.
Once modifiers will stop modifying actual nurbs, curves
will be fully safe for threading.
Actually, this commit also contains wrapping runtime curve
members into own structure
This allows easier assignment on file loading, keeps curve-
specific runtime data grouped and saves couple of bytes in
Object for non-curve types.
--
svn merge -r57938:57939 ^/branches/soc-2013-depsgraph_mt
svn merge -r57957:57958^/branches/soc-2013-depsgraph_mt
|
|
Make it so mpath is not shared between several bones now.
Fix suggested by Joshua Leung, thanks!
|
|
Some places like proxy rebuild didn't increent
custom shape user counter which lead to user
decrement errors later when freeing pose channels.
Try to keep custom object counter relevent, but
some corner cases might still be missing.
|
|
|
|
indent.
also indent case's within the switch (we already did both of these almost everywhere)
|
|
|
|
- mult_m4_m4m4 -> mul_m4_m4m4
- mult_m3_m3m4 -> mul_m3_m3m4
these temporary names were used to avoid problems when argument order was switched.
|
|
|
|
Linked Armature with local proxy, using feature "Custom shape at other bone" stopped working
on undo/redo.
It was actually a bug in the original commit (r26600, april 2010), storing a pointer from
the library bone into the local proxy bone.
That's strictly forbidden in Blender, but it never showed up because on every undo-redo a
complete proxy-sync was called again. To allow undo/redo I had to disable this syncing,
except for file load. Hence the feature got lost :)
The fix is simple; just store the pointer to its own local bone instead.
|
|
Issue was caused by couple of circumstances:
- Normal Map node requires tesselated faces to compute tangent space
- All temporary meshes needed for Cycles export were adding to G.main
- Undo pushes would temporary set meshes tessfaces to NULL
- Moving node will cause undo push and tree re-evaluate fr preview
All this leads to threading conflict between preview render and undo
system.
Solved it in way that all temporary meshes are adding to that exact
Main which was passed to Cycles via BlendData. This required couple
of mechanic changes like adding extra parameter to *_add() functions
and adding some *_ex() functions to make it possible RNA adds objects
to Main passed to new() RNA function.
This was tricky to pass Main to RNA function and IMO that's not so
nice to pass main to function, so ended up with such decision:
- Object.to_mesh() will add temp mesh to G.main
- Added Main.meshes.new_from_object() which does the same as to_mesh,
but adds temporary mesh to specified Main.
So now all temporary meshes needed for preview render would be added
to preview_main which does not conflict with undo pushes.
Viewport render shall not be an issue because object sync happens from
main thread in this case.
It could be some issues with final render, but that's not so much
likely to happen, so shall be fine.
Thanks to Brecht for review!
|
|
Change Scene.frame_set so that it ensures subframe in range [0,1[ as Blender
expects, otherwise some things like physics point cache lookups don't get
evaluated properly.
|
|
blenkernel...
|
|
now blenlib/BLI doesn't depend on any blenkern/BKE functions,
there are still some bad level includes but these are only to access G.background and the blender version define.
|
|
|
|
|
|
Path rebuild may fail after certain editing operations. Instead of blindly
assuming that path rebuilds will always succeed, we now give up trying to
evaluate in case of failure.
|
|
checking >= 0.
also remove unused bmesh decimator code.
|
|
|
|
|
|
|
|
behave like similar functions, also when drawing vertex weight colors, only call this function when multi-paint is enabled.
|
|
from pointer references)
|
|
|
|
references in bmesh docs.
|
|
macros which results in calling the function multiple times needlessly.
also added some comments.
|
|
normalise->normalize).
|
|
|
|
Check that the def_nr is non-negative before using as index.
Fixes bug [#31700] Crash when opening .blend file on 64bit environment
|
|
|
|
replace do prefix with do_ for bool vars.
|
|
vector function edits.
|
|
|
|
|
|
|
|
Now only one operator. Same options for vertices, edges and faces (so adds edges sorting, and some options to vertices sorting).
Face sorting should behave as previously. However, XSortVerts won’t pack anymore selected vertices at the begining of the vert array (as it used to), if you want such behavior you’ll have to first run SortElements with Selected action.
Also added bug ref I forgot in r46354 (armature.c).
|
|
armature edit mode
There is no real good solution to this problem, hopefully this threshold value will be a good compromize this time... :(
|
|
|
|
also use ..._find_name(..., name) rather then ..._find_named(..., name) --- both were used.
|
|
also stop numpy from being found in /usr/include with cmake.
|
|
|
|
|
|
|
|
generic pchan_to_pose_mat().
After two months, think we can get rid of it, it’s in svn anyway if we ever need it!
|
|
- Make sure functions are named in way BKE_<object>_<action> (same way as RNA callbacks)
- Make functions which are used by mball.c only static and remove their prototypes
from public header file.
Further cleanup is coming.
|
|
|
|
In fact, problem was in vec_roll_to_mat3(), which has to detect when the bone is aligned with its Y axis, using a threshold. This one have been raised to quite a high value due to bug [#23954], then lowered a bit due to [#27675] (which is imho in fine the same problem as 30438).
Reset it to its org value (very low 1e-13), as testing file given with firt bug did not show any problem anymore... So now, instead of 1/1000 of bone length from Y axis, we have about 3.25*10-7... Only (hardly) noticeable at max zoom level in 3D view.
|