[Bf-blender-cvs] [0d64857c3f2] blender2.8: Merge branch 'master' into blender2.8

Sergey Sharybin noreply at git.blender.org
Tue Jan 30 14:32:57 CET 2018


Commit: 0d64857c3f2364349475728958fac211b0bad5a2
Author: Sergey Sharybin
Date:   Tue Jan 30 14:32:27 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB0d64857c3f2364349475728958fac211b0bad5a2

Merge branch 'master' into blender2.8

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



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

diff --cc source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
index 2fc42efa440,29cd72c13fd..8be974aae39
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
@@@ -321,52 -257,34 +321,52 @@@ void DepsgraphNodeBuilder::build_proxy_
  {
  	bArmature *arm = (bArmature *)object->data;
  	OperationDepsNode *op_node;
 -
 -	build_animdata(&arm->id);
 -
 +	Object *object_cow;
 +	if (DEG_depsgraph_use_copy_on_write()) {
 +		/* NOTE: We need to expand both object and armature, so this way we can
 +		 * safely create object level pose.
 +		 */
 +		object_cow = expand_cow_datablock(object);
 +	}
 +	else {
 +		object_cow = object;
 +	}
 +	/* Sanity check. */
  	BLI_assert(object->pose != NULL);
 -
 +	/* Animation. */
 +	build_animdata(&arm->id);
  	/* speed optimization for animation lookups */
  	BKE_pose_channels_hash_make(object->pose);
 -	if (object->pose->flag & POSE_CONSTRAINTS_NEED_UPDATE_FLAGS) {
 -		BKE_pose_update_constraint_flags(object->pose);
 +	if (object_cow->pose->flag & POSE_CONSTRAINTS_NEED_UPDATE_FLAGS) {
 +		BKE_pose_update_constraint_flags(object_cow->pose);
  	}
 -
  	op_node = add_operation_node(&object->id,
  	                             DEG_NODE_TYPE_EVAL_POSE,
 -	                             function_bind(BKE_pose_eval_proxy_copy, _1, object),
 +	                             function_bind(BKE_pose_eval_proxy_copy,
 +	                                           _1,
 +	                                           object_cow),
  	                             DEG_OPCODE_POSE_INIT);
  	op_node->set_as_entry();
- 	BLI_LISTBASE_FOREACH (bPoseChannel *, pchan, &object_cow->pose->chanbase) {
- 		/* Local bone transform. */
+ 
 -
+ 	BLI_LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) {
 -		op_node = add_operation_node(&object->id, DEG_NODE_TYPE_BONE, pchan->name,
 -		                             NULL, DEG_OPCODE_BONE_LOCAL);
 +		op_node = add_operation_node(&object->id,
 +		                             DEG_NODE_TYPE_BONE,
 +		                             pchan->name,
 +		                             NULL,
 +		                             DEG_OPCODE_BONE_LOCAL);
  		op_node->set_as_entry();
 -
 -		add_operation_node(&object->id, DEG_NODE_TYPE_BONE, pchan->name,
 -		                   NULL, DEG_OPCODE_BONE_READY);
 -
 -		op_node = add_operation_node(&object->id, DEG_NODE_TYPE_BONE, pchan->name,
 -		                             NULL, DEG_OPCODE_BONE_DONE);
 +		/* Bone is ready for solvers. */
 +		add_operation_node(&object->id,
 +		                   DEG_NODE_TYPE_BONE,
 +		                   pchan->name,
 +		                   NULL,
 +		                   DEG_OPCODE_BONE_READY);
 +		/* Bone is fully evaluated. */
 +		op_node = add_operation_node(&object->id,
 +		                             DEG_NODE_TYPE_BONE,
 +		                             pchan->name,
 +		                             NULL,
 +		                             DEG_OPCODE_BONE_DONE);
  		op_node->set_as_exit();
  
  		/* Custom properties. */
diff --cc source/blender/editors/sculpt_paint/paint_vertex.c
index 0c1df71b1aa,490343ab1f2..b536f42a54e
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@@ -938,11 -937,14 +938,14 @@@ static void do_weight_paint_vertex
  
  
  /* Toggle operator for turning vertex paint mode on or off (copied from sculpt.c) */
 -static void vertex_paint_init_session(Scene *scene, Object *ob)
 +static void vertex_paint_init_session(const EvaluationContext *eval_ctx, Scene *scene, Object *ob)
  {
+ 	/* Create persistent sculpt mode data */
+ 	BKE_sculpt_toolsettings_data_ensure(scene);
+ 
  	if (ob->sculpt == NULL) {
  		ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session");
 -		BKE_sculpt_update_mesh_elements(scene, scene->toolsettings->sculpt, ob, 0, false);
 +		BKE_sculpt_update_mesh_elements(eval_ctx, scene, scene->toolsettings->sculpt, ob, 0, false);
  	}
  }
  
diff --cc source/blender/editors/sculpt_paint/sculpt.c
index c9d550aa4bd,696267a0e8e..2d71cc17a19
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@@ -5599,15 -5583,13 +5599,16 @@@ static void SCULPT_OT_symmetrize(wmOper
  
  /**** Toggle operator for turning sculpt mode on or off ****/
  
 -static void sculpt_init_session(Scene *scene, Object *ob)
 +static void sculpt_init_session(const bContext *C, Scene *scene, Object *ob)
  {
 +	EvaluationContext eval_ctx;
- 
 +	CTX_data_eval_ctx(C, &eval_ctx);
 +
- 	ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session");
+ 	/* Create persistent sculpt mode data */
+ 	BKE_sculpt_toolsettings_data_ensure(scene);
  
+ 	ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session");
 -	BKE_sculpt_update_mesh_elements(scene, scene->toolsettings->sculpt, ob, 0, false);
 +	BKE_sculpt_update_mesh_elements(&eval_ctx, scene, scene->toolsettings->sculpt, ob, 0, false);
  }
  
  
@@@ -5668,33 -5649,8 +5668,8 @@@ static int sculpt_mode_toggle_exec(bCon
  		ob->mode |= mode_flag;
  
  		if (flush_recalc)
 -			DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
 +			DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
  
- 		/* Create persistent sculpt mode data */
- 		if (!ts->sculpt) {
- 			ts->sculpt = MEM_callocN(sizeof(Sculpt), "sculpt mode data");
- 
- 			/* Turn on X plane mirror symmetry by default */
- 			ts->sculpt->paint.symmetry_flags |= PAINT_SYMM_X;
- 			ts->sculpt->paint.flags |= PAINT_SHOW_BRUSH;
- 
- 			/* Make sure at least dyntopo subdivision is enabled */
- 			ts->sculpt->flags |= SCULPT_DYNTOPO_SUBDIVIDE | SCULPT_DYNTOPO_COLLAPSE;
- 		}
- 
- 		if (!ts->sculpt->detail_size)
- 			ts->sculpt->detail_size = 12;
- 		if (!ts->sculpt->detail_percent)
- 			ts->sculpt->detail_percent = 25;
- 		if (ts->sculpt->constant_detail == 0.0f)
- 			ts->sculpt->constant_detail = 3.0f;
- 
- 		/* Set sane default tiling offsets */
- 		if (!ts->sculpt->paint.tile_offset[0]) ts->sculpt->paint.tile_offset[0] = 1.0f;
- 		if (!ts->sculpt->paint.tile_offset[1]) ts->sculpt->paint.tile_offset[1] = 1.0f;
- 		if (!ts->sculpt->paint.tile_offset[2]) ts->sculpt->paint.tile_offset[2] = 1.0f;
- 
- 
  		/* Create sculpt mode session data */
  		if (ob->sculpt)
  			BKE_sculptsession_free(ob);
diff --cc source/blender/makesrna/intern/rna_space.c
index 4ff8444cd71,ca24cdd27ec..f6019747b45
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@@ -570,10 -532,10 +570,10 @@@ static int rna_SpaceView3D_active_layer
  
  static void rna_SpaceView3D_layer_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
  {
 -	DAG_on_visible_update(bmain, false);
 +	DEG_on_visible_update(bmain, false);
  }
  
- static void rna_SpaceView3D_viewport_shade_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+ static void rna_SpaceView3D_viewport_shade_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
  {
  	View3D *v3d = (View3D *)(ptr->data);
  	ScrArea *sa = rna_area_from_space(ptr);



More information about the Bf-blender-cvs mailing list