Commit: be25a0faa7ff0f64e9d75f5f48c042bb8595f142 Author: Campbell Barton Date: Wed Mar 14 02:02:05 2018 +1100 Branches: master https://developer.blender.org/rBbe25a0faa7ff0f64e9d75f5f48c042bb8595f142
Cleanup: pass selectmode directly Pass instead of editmesh or toolsettings. Needed for multi edit-mode =================================================================== M source/blender/editors/include/ED_mesh.h M source/blender/editors/mesh/editmesh_select.c M source/blender/editors/mesh/editmesh_utils.c M source/blender/editors/mesh/mesh_data.c M source/blender/editors/object/object_edit.c M source/blender/editors/object/object_hook.c M source/blender/editors/object/object_relations.c M source/blender/makesrna/intern/rna_object.c M source/blenderplayer/bad_level_call_stubs/stubs.c =================================================================== diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h index 5ed6105e5e7..40d796aeed1 100644 --- a/source/blender/editors/include/ED_mesh.h +++ b/source/blender/editors/include/ED_mesh.h @@ -80,7 +80,7 @@ void EDBM_mesh_normals_update(struct BMEditMesh *em); void EDBM_mesh_clear(struct BMEditMesh *em); void EDBM_selectmode_to_scene(struct bContext *C); -void EDBM_mesh_make(struct ToolSettings *ts, struct Object *ob, const bool add_key_index); +void EDBM_mesh_make(struct Object *ob, const int select_mode, const bool add_key_index); void EDBM_mesh_free(struct BMEditMesh *em); void EDBM_mesh_load(struct Object *ob); struct DerivedMesh *EDBM_mesh_deform_dm_get(struct BMEditMesh *em); diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c index f0ad491e148..7d20f7a5665 100644 --- a/source/blender/editors/mesh/editmesh_select.c +++ b/source/blender/editors/mesh/editmesh_select.c @@ -2422,10 +2422,10 @@ static bool select_linked_delimit_test( * Gets the default from the operator fallback to own last-used value * (selected based on mode) */ -static int select_linked_delimit_default_from_op(wmOperator *op, BMEditMesh *em) +static int select_linked_delimit_default_from_op(wmOperator *op, int select_mode) { static char delimit_last_store[2] = {0, BMO_DELIM_SEAM}; - int delimit_last_index = (em->selectmode & (SCE_SELECT_VERTEX | SCE_SELECT_EDGE)) == 0; + int delimit_last_index = (select_mode & (SCE_SELECT_VERTEX | SCE_SELECT_EDGE)) == 0; char *delimit_last = &delimit_last_store[delimit_last_index]; PropertyRNA *prop_delimit = RNA_struct_find_property(op->ptr, "delimit"); int delimit; @@ -2495,7 +2495,7 @@ static int edbm_select_linked_exec(bContext *C, wmOperator *op) BMWalker walker; #ifdef USE_LINKED_SELECT_DEFAULT_HACK - int delimit = select_linked_delimit_default_from_op(op, em); + int delimit = select_linked_delimit_default_from_op(op, em->selectmode); #else int delimit = RNA_enum_get(op->ptr, "delimit"); #endif @@ -2827,7 +2827,7 @@ static int edbm_select_linked_pick_invoke(bContext *C, wmOperator *op, const wmE } #ifdef USE_LINKED_SELECT_DEFAULT_HACK - int delimit = select_linked_delimit_default_from_op(op, em); + int delimit = select_linked_delimit_default_from_op(op, em->selectmode); #else int delimit = RNA_enum_get(op->ptr, "delimit"); #endif @@ -2864,7 +2864,7 @@ static int edbm_select_linked_pick_exec(bContext *C, wmOperator *op) BMElem *ele = EDBM_elem_from_index_any(em, index); #ifdef USE_LINKED_SELECT_DEFAULT_HACK - int delimit = select_linked_delimit_default_from_op(op, em); + int delimit = select_linked_delimit_default_from_op(op, em->selectmode); #else int delimit = RNA_enum_get(op->ptr, "delimit"); #endif diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index 8197e368a17..5595ca05065 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -330,7 +330,7 @@ void EDBM_selectmode_to_scene(bContext *C) WM_event_add_notifier(C, NC_SCENE | ND_TOOLSETTINGS, scene); } -void EDBM_mesh_make(ToolSettings *ts, Object *ob, const bool add_key_index) +void EDBM_mesh_make(Object *ob, const int select_mode, const bool add_key_index) { Mesh *me = ob->data; BMesh *bm; @@ -357,7 +357,7 @@ void EDBM_mesh_make(ToolSettings *ts, Object *ob, const bool add_key_index) me->edit_btmesh = BKE_editmesh_create(bm, false); #endif - me->edit_btmesh->selectmode = me->edit_btmesh->bm->selectmode = ts->selectmode; + me->edit_btmesh->selectmode = me->edit_btmesh->bm->selectmode = select_mode; me->edit_btmesh->mat_nr = (ob->actcol > 0) ? ob->actcol - 1 : 0; me->edit_btmesh->ob = ob; diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index cfeda36214c..84d2ac3cef1 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -596,7 +596,7 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, const wmEvent *e obedit = base->object; me = obedit->data; if (me->edit_btmesh == NULL) { - EDBM_mesh_make(scene->toolsettings, obedit, false); + EDBM_mesh_make(obedit, scene->toolsettings->selectmode, false); exitmode = 1; } if (me->edit_btmesh == NULL) diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 32f0f1f9bec..add2ab98652 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -564,7 +564,7 @@ void ED_object_editmode_enter(bContext *C, int flag) const bool use_key_index = mesh_needs_keyindex(ob->data); - EDBM_mesh_make(scene->toolsettings, ob, use_key_index); + EDBM_mesh_make(ob, scene->toolsettings->selectmode, use_key_index); em = BKE_editmesh_from_object(ob); if (LIKELY(em)) { diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c index 42e3a4a6837..e9203fa1972 100644 --- a/source/blender/editors/object/object_hook.c +++ b/source/blender/editors/object/object_hook.c @@ -316,7 +316,7 @@ static bool object_hook_index_array(Scene *scene, Object *obedit, BMEditMesh *em; EDBM_mesh_load(obedit); - EDBM_mesh_make(scene->toolsettings, obedit, true); + EDBM_mesh_make(obedit, scene->toolsettings->selectmode, true); DAG_id_tag_update(obedit->data, 0); diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index f8c80f2a933..83d67cea2f0 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -140,7 +140,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op) BMEditMesh *em; EDBM_mesh_load(obedit); - EDBM_mesh_make(scene->toolsettings, obedit, true); + EDBM_mesh_make(obedit, scene->toolsettings->selectmode, true); DAG_id_tag_update(obedit->data, 0); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index e6e70694885..1d77030fe00 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -273,7 +273,7 @@ static void rna_Object_active_shape_update(Main *bmain, Scene *scene, PointerRNA switch (ob->type) { case OB_MESH: EDBM_mesh_load(ob); - EDBM_mesh_make(scene->toolsettings, ob, true); + EDBM_mesh_make(ob, scene->toolsettings->selectmode, true); DAG_id_tag_update(ob->data, 0); diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 8399b43bcdd..9486546b923 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -224,7 +224,7 @@ bool BPY_string_is_keyword(const char *str) { return false; } /*new render funcs */ void EDBM_selectmode_set(struct BMEditMesh *em) RET_NONE void EDBM_mesh_load(struct Object *ob) RET_NONE -void EDBM_mesh_make(struct ToolSettings *ts, struct Object *ob, const bool use_key_index) RET_NONE +void EDBM_mesh_make(struct Object *ob, const int select_mode, const bool use_key_index) RET_NONE void EDBM_mesh_normals_update(struct BMEditMesh *em) RET_NONE void *g_system; bool EDBM_uv_check(struct BMEditMesh *em) RET_ZERO _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs