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

Reply via email to