[Bf-blender-cvs] [d218f8e] depsgraph_refactor: Merge branch 'master' into depsgraph_refactor

Sergey Sharybin noreply at git.blender.org
Fri Dec 12 08:42:55 CET 2014


Commit: d218f8eb8fef861b0c523ea08c166a5830106a7d
Author: Sergey Sharybin
Date:   Fri Dec 12 12:42:45 2014 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rBd218f8eb8fef861b0c523ea08c166a5830106a7d

Merge branch 'master' into depsgraph_refactor

===================================================================



===================================================================

diff --cc source/blender/blenkernel/intern/depsgraph.c
index 91eac59,566aa66..6e0847a
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@@ -2413,15 -2353,21 +2413,24 @@@ void DAG_on_visible_update(Main *bmain
  			oblay = (node) ? node->lay : ob->lay;
  
  			if ((oblay & lay) & ~scene->lay_updated) {
 -				if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_LATTICE)) {
 +				/* TODO(sergey): Why do we need armature here now but didn't need before? */
 +				if (ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_LATTICE, OB_ARMATURE)) {
  					ob->recalc |= OB_RECALC_DATA;
 +					DEG_id_tag_update(scene->depsgraph, &ob->id);
  					lib_id_recalc_tag(bmain, &ob->id);
  				}
+ 				/* This should not be needed here, but in some cases, like after a redo, we can end up with
+ 				 * a wrong final matrix (see T42472).
+ 				 * Quoting Sergey, this comes from BKE_object_handle_update_ex, which is calling
+ 				 * BKE_object_where_is_calc_ex when it shouldn't, but that issue is not easily fixable.
+ 				 */
+ 				else {
+ 					ob->recalc |= OB_RECALC_OB;
+ 					lib_id_recalc_tag(bmain, &ob->id);
+ 				}
  				if (ob->proxy && (ob->proxy_group == NULL)) {
  					ob->proxy->recalc |= OB_RECALC_DATA;
 +					DEG_id_tag_update(scene->depsgraph, &ob->proxy->id);
  					lib_id_recalc_tag(bmain, &ob->id);
  				}
  				if (ob->dup_group)




More information about the Bf-blender-cvs mailing list