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

Bastien Montagne noreply at git.blender.org
Fri Jun 1 17:27:41 CEST 2018


Commit: e44743736f39246192b49912073a96b4a5cdd2ee
Author: Bastien Montagne
Date:   Fri Jun 1 17:26:36 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe44743736f39246192b49912073a96b4a5cdd2ee

Merge branch 'master' into blender2.8

 Conflicts:
	source/blender/editors/io/io_collada.c
	source/blender/editors/object/object_bake.c
	source/blender/editors/object/object_edit.c
	source/blender/editors/render/render_internal.c
	source/blender/makesrna/intern/rna_object_api.c
	source/blenderplayer/bad_level_call_stubs/stubs.c

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



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

diff --cc source/blender/editors/include/ED_object.h
index b3a2f6f7ca6,75b98caaedb..e3458bcb278
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@@ -123,15 -116,11 +123,15 @@@ enum 
  	EM_FREEDATA         = (1 << 0),
  	EM_WAITCURSOR       = (1 << 1),
  	EM_IGNORE_LAYER     = (1 << 3),
 +	EM_NO_CONTEXT       = (1 << 4),
  };
 -bool ED_object_editmode_exit_ex(struct Scene *scene, struct Object *obedit, int flag);
 +bool ED_object_editmode_exit_ex(
 +        struct Scene *scene, struct Object *obedit, int flag);
  bool ED_object_editmode_exit(struct bContext *C, int flag);
 +
- bool ED_object_editmode_enter_ex(struct Scene *scene, struct Object *ob, int flag);
++bool ED_object_editmode_enter_ex(struct Main *bmain, struct Scene *scene, struct Object *ob, int flag);
  bool ED_object_editmode_enter(struct bContext *C, int flag);
- bool ED_object_editmode_load(struct Object *obedit);
+ bool ED_object_editmode_load(struct Main *bmain, struct Object *obedit);
  
  bool ED_object_editmode_calc_active_center(struct Object *obedit, const bool select_only, float r_center[3]);
  
diff --cc source/blender/editors/io/io_collada.c
index a3cbdb57fed,7e69aa62896..7fe252309de
--- a/source/blender/editors/io/io_collada.c
+++ b/source/blender/editors/io/io_collada.c
@@@ -164,11 -163,13 +164,13 @@@ static int wm_collada_export_exec(bCont
  	limit_precision = RNA_boolean_get(op->ptr, "limit_precision");
  	keep_bind_info = RNA_boolean_get(op->ptr, "keep_bind_info");
  
+ 	Main *bmain = CTX_data_main(C);
+ 
  	/* get editmode results */
- 	ED_object_editmode_load(CTX_data_edit_object(C));
+ 	ED_object_editmode_load(bmain, CTX_data_edit_object(C));
  
 -	EvaluationContext *eval_ctx = bmain->eval_ctx;
  	Scene *scene = CTX_data_scene(C);
 +
  	ExportSettings export_settings;
  
  	export_settings.filepath = filepath;
diff --cc source/blender/editors/object/object_bake_api.c
index 9af8169ae41,d24fc96b007..6dd6a76f129
--- a/source/blender/editors/object/object_bake_api.c
+++ b/source/blender/editors/object/object_bake_api.c
@@@ -623,11 -619,11 +623,11 @@@ static size_t initialize_internal_image
  }
  
  /* create new mesh with edit mode changes and modifiers applied */
 -static Mesh *bake_mesh_new_from_object(Main *bmain, Scene *scene, Object *ob)
 +static Mesh *bake_mesh_new_from_object(Depsgraph *depsgraph, Main *bmain, Scene *scene, Object *ob)
  {
- 	ED_object_editmode_load(ob);
+ 	ED_object_editmode_load(bmain, ob);
  
 -	Mesh *me = BKE_mesh_new_from_object(bmain, scene, ob, 1, 2, 0, 0);
 +	Mesh *me = BKE_mesh_new_from_object(depsgraph, bmain, scene, ob, 1, 0, 0);
  	if (me->flag & ME_AUTOSMOOTH) {
  		BKE_mesh_split_faces(me, true);
  	}
diff --cc source/blender/editors/object/object_edit.c
index b27e0c96660,d0429fc2bcf..5c7c56f9b18
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@@ -147,9 -135,195 +147,9 @@@ Object *ED_object_active_context(bConte
  }
  
  
 -/* ********* clear/set restrict view *********/
 -static int object_hide_view_clear_exec(bContext *C, wmOperator *op)
 -{
 -	Main *bmain = CTX_data_main(C);
 -	ScrArea *sa = CTX_wm_area(C);
 -	View3D *v3d = sa->spacedata.first;
 -	Scene *scene = CTX_data_scene(C);
 -	Base *base;
 -	bool changed = false;
 -	const bool select = RNA_boolean_get(op->ptr, "select");
 -	
 -	/* XXX need a context loop to handle such cases */
 -	for (base = FIRSTBASE; base; base = base->next) {
 -		if ((base->lay & v3d->lay) && base->object->restrictflag & OB_RESTRICT_VIEW) {
 -			if (!(base->object->restrictflag & OB_RESTRICT_SELECT)) {
 -				SET_FLAG_FROM_TEST(base->flag, select, SELECT);
 -			}
 -			base->object->flag = base->flag;
 -			base->object->restrictflag &= ~OB_RESTRICT_VIEW; 
 -			changed = true;
 -		}
 -	}
 -	if (changed) {
 -		DAG_id_type_tag(bmain, ID_OB);
 -		DAG_relations_tag_update(bmain);
 -		WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
 -	}
 -
 -	return OPERATOR_FINISHED;
 -}
 -
 -void OBJECT_OT_hide_view_clear(wmOperatorType *ot)
 -{
 -	
 -	/* identifiers */
 -	ot->name = "Clear Restrict View";
 -	ot->description = "Reveal the object by setting the hide flag";
 -	ot->idname = "OBJECT_OT_hide_view_clear";
 -	
 -	/* api callbacks */
 -	ot->exec = object_hide_view_clear_exec;
 -	ot->poll = ED_operator_view3d_active;
 -	
 -	/* flags */
 -	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 -
 -	RNA_def_boolean(ot->srna, "select", true, "Select", "");
 -}
 -
 -static int object_hide_view_set_exec(bContext *C, wmOperator *op)
 -{
 -	Main *bmain = CTX_data_main(C);
 -	Scene *scene = CTX_data_scene(C);
 -	bool changed = false;
 -	const bool unselected = RNA_boolean_get(op->ptr, "unselected");
 -	
 -	CTX_DATA_BEGIN(C, Base *, base, visible_bases)
 -	{
 -		if (!unselected) {
 -			if (base->flag & SELECT) {
 -				base->flag &= ~SELECT;
 -				base->object->flag = base->flag;
 -				base->object->restrictflag |= OB_RESTRICT_VIEW;
 -				changed = true;
 -				if (base == BASACT) {
 -					ED_base_object_activate(C, NULL);
 -				}
 -			}
 -		}
 -		else {
 -			if (!(base->flag & SELECT)) {
 -				base->object->restrictflag |= OB_RESTRICT_VIEW;
 -				changed = true;
 -				if (base == BASACT) {
 -					ED_base_object_activate(C, NULL);
 -				}
 -			}
 -		}
 -	}
 -	CTX_DATA_END;
 -
 -	if (changed) {
 -		DAG_id_type_tag(bmain, ID_OB);
 -		DAG_relations_tag_update(bmain);
 -		
 -		WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
 -		
 -	}
 -
 -	return OPERATOR_FINISHED;
 -}
 -
 -void OBJECT_OT_hide_view_set(wmOperatorType *ot)
 -{
 -	/* identifiers */
 -	ot->name = "Set Restrict View";
 -	ot->description = "Hide the object by setting the hide flag";
 -	ot->idname = "OBJECT_OT_hide_view_set";
 -	
 -	/* api callbacks */
 -	ot->exec = object_hide_view_set_exec;
 -	ot->poll = ED_operator_view3d_active;
 -	
 -	/* flags */
 -	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 -	
 -	RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects");
 -	
 -}
 -
 -/* 99% same as above except no need for scene refreshing (TODO, update render preview) */
 -static int object_hide_render_clear_exec(bContext *C, wmOperator *UNUSED(op))
 -{
 -	bool changed = false;
 -
 -	/* XXX need a context loop to handle such cases */
 -	CTX_DATA_BEGIN(C, Object *, ob, selected_editable_objects)
 -	{
 -		if (ob->restrictflag & OB_RESTRICT_RENDER) {
 -			ob->restrictflag &= ~OB_RESTRICT_RENDER;
 -			changed = true;
 -		}
 -	}
 -	CTX_DATA_END;
 -
 -	if (changed)
 -		WM_event_add_notifier(C, NC_SPACE | ND_SPACE_OUTLINER, NULL);
 -
 -	return OPERATOR_FINISHED;
 -}
 -
 -void OBJECT_OT_hide_render_clear(wmOperatorType *ot)
 -{
 -
 -	/* identifiers */
 -	ot->name = "Clear Restrict Render";
 -	ot->description = "Reveal the render object by setting the hide render flag";
 -	ot->idname = "OBJECT_OT_hide_render_clear";
 -
 -	/* api callbacks */
 -	ot->exec = object_hide_render_clear_exec;
 -	ot->poll = ED_operator_view3d_active;
 -
 -	/* flags */
 -	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 -}
 -
 -static int object_hide_render_set_exec(bContext *C, wmOperator *op)
 -{
 -	const bool unselected = RNA_boolean_get(op->ptr, "unselected");
 -
 -	CTX_DATA_BEGIN(C, Base *, base, visible_bases)
 -	{
 -		if (!unselected) {
 -			if (base->flag & SELECT) {
 -				base->object->restrictflag |= OB_RESTRICT_RENDER;
 -			}
 -		}
 -		else {
 -			if (!(base->flag & SELECT)) {
 -				base->object->restrictflag |= OB_RESTRICT_RENDER;
 -			}
 -		}
 -	}
 -	CTX_DATA_END;
 -	WM_event_add_notifier(C, NC_SPACE | ND_SPACE_OUTLINER, NULL);
 -	return OPERATOR_FINISHED;
 -}
 -
 -void OBJECT_OT_hide_render_set(wmOperatorType *ot)
 -{
 -	/* identifiers */
 -	ot->name = "Set Restrict Render";
 -	ot->description = "Hide the render object by setting the hide render flag";
 -	ot->idname = "OBJECT_OT_hide_render_set";
 -
 -	/* api callbacks */
 -	ot->exec = object_hide_render_set_exec;
 -	ot->poll = ED_operator_view3d_active;
 -
 -	/* flags */
 -	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 -
 -	RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects");
 -}
 -
  /* ******************* toggle editmode operator  ***************** */
  
- static bool mesh_needs_keyindex(const Mesh *me)
+ static bool mesh_needs_keyindex(Main *bmain, const Mesh *me)
  {
  	if (me->key) {
  		return false;  /* will be added */
@@@ -324,11 -500,38 +323,11 @@@ bool ED_object_editmode_exit(bContext *
  	return ED_object_editmode_exit_ex(scene, obedit, flag);
  }
  
- bool ED_object_editmode_enter_ex(Scene *scene, Object *ob, int flag)
 -bool ED_object_editmode_enter(bContext *C, int flag)
++bool ED_object_editmode_enter_ex(Main *bmain, Scene *scene, Object *ob, int flag)
  {
 -	Main *bmain = CTX_data_main(C);
 -	Scene *scene = CTX_data_scene(C);
 -	Base *base = NULL;
 -	Object *ob;
 -	ScrArea *sa = CTX_wm_area(C);
 -	View3D *v3d = NULL;
  	bool ok = false;
  
 -	if (ID_IS_LINKED(scene)) {
 -		return false;
 -	}
 -
 -	if (sa && sa->spacetype == SPACE_VIEW3D)
 -		v3d = sa->spacedata.first;
 -
 -	if ((flag & EM_IGNORE_LAYER) == 0) {
 -		base = CTX_data_active_base(C); /* active layer checked here for view3d */
 -
 -		if ((base == NULL) ||
 -		    (v3d && (base->lay & v3d->lay) == 0) ||
 -		    (!v3d && (base->lay & scene->lay) == 0))
 -		{
 -			return false;
 -		}
 -	}
 -	else {
 -		base = scene->basact;
 -	}
 -
 -	if (ELEM(NULL, base, base->object, base->object->data)) {
 +	if (ELEM(NULL, ob, ob->data) || ID_IS_LINKED(ob)) {
  		return false;
  	}
  
@@@ -351,7 -561,9 +350,8 @@@
  	if (ob->type == OB_MESH) {
  		BMEditMesh *em;
  		ok = 1;
- 		const bool use_key_index = mesh_needs_keyindex(ob->data);
 -		scene->obedit = ob;  /* context sees this */
+ 
+ 		const bool use_key_index = mesh_needs_keyindex(bmain, ob->data);
  
  		EDBM_mesh_make(ob, scene->toolsettings->selectmode, use_key_index);
  
@@@ -412,50 -628,21 +412,52 @@@
  	return (ob->mode & OB_MODE_EDIT) != 0;
  }
  
 +bool ED_object_editmode_enter(bContext *C, int flag)
 +{
++	Main *bmain = CTX_data_main(C);
 +	Scene *scene = CTX_data_scene(C);
 +	ViewLayer *view_layer = CTX_data_view_layer(C);
 +	Object *ob;
 +
 +	if ((flag & EM_IGNORE_LAYER) == 0) {
 +		ob = CTX_data_active_object(C); /* activ

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list