Commit: 754d3a2fe626fbe57bb6ef47581368e3859f6390
Author: Campbell Barton
Date:   Tue Feb 13 19:29:08 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB754d3a2fe626fbe57bb6ef47581368e3859f6390

Object Mode: remove Scene.obedit for 3D View

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

M       source/blender/editors/armature/armature_edit.c
M       source/blender/editors/armature/armature_intern.h
M       source/blender/editors/armature/armature_select.c
M       source/blender/editors/armature/pose_select.c
M       source/blender/editors/include/ED_armature.h
M       source/blender/editors/object/object_transform.c
M       source/blender/editors/sculpt_paint/paint_image.c
M       source/blender/editors/space_image/image_ops.c
M       source/blender/editors/space_view3d/drawobject.c
M       source/blender/editors/space_view3d/space_view3d.c
M       source/blender/editors/space_view3d/view3d_draw.c
M       source/blender/editors/space_view3d/view3d_draw_legacy.c
M       source/blender/editors/space_view3d/view3d_header.c
M       source/blender/editors/space_view3d/view3d_intern.h
M       source/blender/editors/space_view3d/view3d_select.c
M       source/blender/editors/space_view3d/view3d_view.c

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

diff --git a/source/blender/editors/armature/armature_edit.c 
b/source/blender/editors/armature/armature_edit.c
index a2fbfe645f7..6c8779202e9 100644
--- a/source/blender/editors/armature/armature_edit.c
+++ b/source/blender/editors/armature/armature_edit.c
@@ -50,6 +50,7 @@
 #include "BKE_context.h"
 #include "BKE_global.h"
 #include "BKE_report.h"
+#include "BKE_object.h"
 
 #include "RNA_access.h"
 #include "RNA_define.h"
@@ -138,17 +139,16 @@ void ED_armature_transform(struct bArmature *arm, float 
mat[4][4], const bool do
 
 /* exported for use in editors/object/ */
 /* 0 == do center, 1 == center new, 2 == center cursor */
-void ED_armature_origin_set(Scene *scene, Object *ob, float cursor[3], int 
centermode, int around)
+void ED_armature_origin_set(Object *ob, float cursor[3], int centermode, int 
around)
 {
-       Object *obedit = scene->obedit; // XXX get from context
+       const bool is_editmode = BKE_object_is_in_editmode(ob);
        EditBone *ebone;
        bArmature *arm = ob->data;
        float cent[3];
 
        /* Put the armature into editmode */
-       if (ob != obedit) {
+       if (is_editmode == false) {
                ED_armature_to_edit(arm);
-               obedit = NULL; /* we cant use this so behave as if there is no 
obedit */
        }
 
        /* Find the centerpoint */
@@ -188,13 +188,13 @@ void ED_armature_origin_set(Scene *scene, Object *ob, 
float cursor[3], int cente
        }
        
        /* Turn the list into an armature */
-       if (obedit == NULL) {
+       if (is_editmode == false) {
                ED_armature_from_edit(arm);
                ED_armature_edit_free(arm);
        }
 
        /* Adjust object location for new centerpoint */
-       if (centermode && obedit == NULL) {
+       if (centermode && (is_editmode == false)) {
                mul_mat3_m4_v3(ob->obmat, cent); /* omit translation part */
                add_v3_v3(ob->loc, cent);
        }
diff --git a/source/blender/editors/armature/armature_intern.h 
b/source/blender/editors/armature/armature_intern.h
index 192bb8eea61..0ba720a17d0 100644
--- a/source/blender/editors/armature/armature_intern.h
+++ b/source/blender/editors/armature/armature_intern.h
@@ -250,7 +250,7 @@ void armature_tag_unselect(struct bArmature *arm);
 
 void *get_nearest_bone(struct bContext *C, const int xy[2], bool findunsel);
 void *get_bone_from_selectbuffer(
-        struct Scene *scene, struct Base *base, const unsigned int *buffer, 
short hits,
+        struct Base *base, struct Object *obedit, const unsigned int *buffer, 
short hits,
         bool findunsel, bool do_nearest);
 
 int bone_looper(struct Object *ob, struct Bone *bone, void *data,
diff --git a/source/blender/editors/armature/armature_select.c 
b/source/blender/editors/armature/armature_select.c
index b87942fed84..f178ad640b6 100644
--- a/source/blender/editors/armature/armature_select.c
+++ b/source/blender/editors/armature/armature_select.c
@@ -77,10 +77,9 @@ Bone *get_indexed_bone(Object *ob, int index)
 /* See if there are any selected bones in this buffer */
 /* only bones from base are checked on */
 void *get_bone_from_selectbuffer(
-        Scene *scene, Base *base, const unsigned int *buffer, short hits,
+        Base *base, Object *obedit, const unsigned int *buffer, short hits,
         bool findunsel, bool do_nearest)
 {
-       Object *obedit = scene->obedit; // XXX get from context
        Bone *bone;
        EditBone *ebone;
        void *firstunSel = NULL, *firstSel = NULL, *data;
@@ -183,9 +182,9 @@ void *get_nearest_bone(bContext *C, const int xy[2], bool 
findunsel)
        
        hits = view3d_opengl_select(&eval_ctx, &vc, buffer, MAXPICKBUF, &rect, 
VIEW3D_SELECT_PICK_NEAREST);
 
-       if (hits > 0)
-               return get_bone_from_selectbuffer(vc.scene, 
vc.view_layer->basact, buffer, hits, findunsel, true);
-       
+       if (hits > 0) {
+               return get_bone_from_selectbuffer(vc.view_layer->basact, 
vc.obedit, buffer, hits, findunsel, true);
+       }
        return NULL;
 }
 
diff --git a/source/blender/editors/armature/pose_select.c 
b/source/blender/editors/armature/pose_select.c
index a43f3ff4acc..16f5bb59641 100644
--- a/source/blender/editors/armature/pose_select.c
+++ b/source/blender/editors/armature/pose_select.c
@@ -135,7 +135,7 @@ void ED_pose_bone_select(Object *ob, bPoseChannel *pchan, 
bool select)
 /* assumes scene obact and basact is still on old situation */
 bool ED_do_pose_selectbuffer(
         const EvaluationContext *eval_ctx,
-        Scene *scene, ViewLayer *view_layer, Base *base, const unsigned int 
*buffer, short hits,
+        ViewLayer *view_layer, Base *base, const unsigned int *buffer, short 
hits,
         bool extend, bool deselect, bool toggle, bool do_nearest)
 {
        Object *ob = base->object;
@@ -143,11 +143,13 @@ bool ED_do_pose_selectbuffer(
        
        if (!ob || !ob->pose) return 0;
 
-       nearBone = get_bone_from_selectbuffer(scene, base, buffer, hits, 1, 
do_nearest);
+       Object *ob_act = OBACT(view_layer);
+       Object *obedit = OBEDIT_FROM_EVAL_CTX(eval_ctx);
+
+       nearBone = get_bone_from_selectbuffer(base, obedit, buffer, hits, 1, 
do_nearest);
        
        /* if the bone cannot be affected, don't do anything */
        if ((nearBone) && !(nearBone->flag & BONE_UNSELECTABLE)) {
-               Object *ob_act = OBACT(view_layer);
                bArmature *arm = ob->data;
                
                /* since we do unified select, we don't shift+select a bone if 
the
diff --git a/source/blender/editors/include/ED_armature.h 
b/source/blender/editors/include/ED_armature.h
index 5ad242003e3..18eb442766b 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -144,7 +144,7 @@ void ED_armature_deselect_all_visible(struct Object 
*obedit);
 
 bool ED_do_pose_selectbuffer(
         const struct EvaluationContext *eval_ctx,
-        struct Scene *scene, struct ViewLayer *view_layer, struct Base *base, 
const unsigned int *buffer, short hits,
+        struct ViewLayer *view_layer, struct Base *base, const unsigned int 
*buffer, short hits,
         bool extend, bool deselect, bool toggle, bool do_nearest);
 bool ED_armature_select_pick(struct bContext *C, const int mval[2], bool 
extend, bool deselect, bool toggle);
 int join_armature_exec(struct bContext *C, struct wmOperator *op);
@@ -169,7 +169,7 @@ void ED_armature_ebone_from_mat3(EditBone *ebone, float 
mat[3][3]);
 void ED_armature_ebone_from_mat4(EditBone *ebone, float mat[4][4]);
 
 void transform_armature_mirror_update(struct Object *obedit);
-void ED_armature_origin_set(struct Scene *scene, struct Object *ob, float 
cursor[3], int centermode, int around);
+void ED_armature_origin_set(struct Object *ob, float cursor[3], int 
centermode, int around);
 
 void ED_armature_transform_bones(struct bArmature *arm, float mat[4][4], const 
bool do_props);
 void ED_armature_apply_transform(struct Object *ob, float mat[4][4], const 
bool do_props);
diff --git a/source/blender/editors/object/object_transform.c 
b/source/blender/editors/object/object_transform.c
index d69d8f8b26e..b336b560ef2 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -983,7 +983,7 @@ static int object_origin_set_exec(bContext *C, wmOperator 
*op)
                                        /* Function to recenter armatures in 
editarmature.c
                                         * Bone + object locations are handled 
there.
                                         */
-                                       ED_armature_origin_set(scene, ob, 
cursor, centermode, around);
+                                       ED_armature_origin_set(ob, cursor, 
centermode, around);
 
                                        tot_change++;
                                        arm->id.tag |= LIB_TAG_DOIT;
diff --git a/source/blender/editors/sculpt_paint/paint_image.c 
b/source/blender/editors/sculpt_paint/paint_image.c
index d42bbfdc43a..1cb37fc10cd 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -1429,8 +1429,10 @@ static int texture_paint_toggle_exec(bContext *C, 
wmOperator *op)
                                                if (sl->spacetype == 
SPACE_IMAGE) {
                                                        SpaceImage *sima = 
(SpaceImage *)sl;
                                                        
-                                                       if (!sima->pin)
-                                                               
ED_space_image_set(sima, scene, scene->obedit, ima);
+                                                       if (!sima->pin) {
+                                                               Object *obedit 
= CTX_data_edit_object(C);
+                                                               
ED_space_image_set(sima, scene, obedit, ima);
+                                                       }
                                                }
                                        }
                                }
diff --git a/source/blender/editors/space_image/image_ops.c 
b/source/blender/editors/space_image/image_ops.c
index 0ff30c228b4..6ee9d547ac3 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -275,12 +275,14 @@ int space_image_main_region_poll(bContext *C)
 /* For IMAGE_OT_curves_point_set to avoid sampling when in uv smooth mode or 
editmode */
 static int space_image_main_area_not_uv_brush_poll(bContext *C)
 {
+       const WorkSpace *workspace = CTX_wm_workspace(C);
        SpaceImage *sima = CTX_wm_space_image(C);
        Scene *scene = CTX_data_scene(C);
        ToolSettings *toolsettings = scene->toolsettings;
 
-       if (sima && !toolsettings->uvsculpt && !scene->obedit)
+       if (sima && !toolsettings->uvsculpt && ((workspace->object_mode & 
OB_MODE_EDIT) == 0)) {
                return 1;
+       }
 
        return 0;
 }
@@ -2459,7 +2461,7 @@ static int image_new_exec(bContext *C, wmOperator *op)
                                                SpaceImage *sima_other = 
(SpaceImage *)sl;
                                                
                                                if (!sima_other->pin) {
-                                                       
ED_space_image_set(sima_other, scene, scene->obedit, ima);
+                                                       
ED_space_image_set(sima_other, scene, obedit, ima);
                                                }
                                        }
                                }
diff --git a/source/blender/editors/space_view3d/drawobject.c 
b/source/blender/editors/space_view3d/drawobject.c
index 7ad5f733f02..b12756c8299 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -4579,7 +4579,7 @@ static bool draw_mesh_object(
         const char dt, const unsigned char ob_wire_col[4], const short dflag)
 {
        Object *ob = base->object;
-       Object *obedit = scene->obedit;
+       Object *obedit = OBEDIT_FROM_EVAL_CTX(eval_ctx);
        Mesh *me = ob->data;
        BMEditMesh *em = me->edit_btmesh;
        bool do_alpha_after = false, drawlinked = false, retval = false;
@@ -4720,8 +4720,10 @@ static void make_color_variations(const unsigned char 
base_ubyte[4], float low[4
        high[3] = base[3];
 }
 
-static void draw_mesh_fancy_new(EvaluationContext *eval_ctx, Scene *scene, 
ViewLayer *view_layer, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
-                                const char dt, const unsigned char 
ob_wire_col[4], const short dflag, const bool other_obedit)
+static void draw_mesh_fancy_new(
+        const 

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to