diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-06-08 15:38:57 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-06-08 15:38:57 +0300 |
commit | 94aa4d16579defae126f6cb3986cf06b5969d0e7 (patch) | |
tree | 718c9fd603804b8b0969eaaa0a98a3c8b92c9e40 /source/blender/editors/transform/transform_conversions.c | |
parent | ae3e59fb6181cf1e2ca0788dbec638270aac6c23 (diff) | |
parent | 7b6af843c2bdef9c9ab6d00100d93192a8e769c0 (diff) |
Merge branch 'master' into blender2.8
Conflicts:
source/blender/blenkernel/BKE_sequencer.h
source/blender/blenkernel/intern/sequencer.c
source/blender/editors/curve/editcurve_paint.c
source/blender/editors/gpencil/gpencil_edit.c
source/blender/editors/gpencil/gpencil_paint.c
source/blender/editors/gpencil/gpencil_utils.c
source/blender/editors/include/ED_object.h
source/blender/editors/include/ED_view3d.h
source/blender/editors/interface/interface_eyedropper_depth.c
source/blender/editors/render/render_opengl.c
source/blender/editors/sculpt_paint/paint_image_proj.c
source/blender/editors/sculpt_paint/sculpt.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/space_view3d/view3d_draw.c
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/space_view3d/view3d_intern.h
source/blender/editors/space_view3d/view3d_select.c
source/blender/editors/space_view3d/view3d_utils.c
source/blender/editors/transform/transform_conversions.c
source/blender/editors/transform/transform_snap.c
source/blender/python/intern/gpu_offscreen.c
source/blender/windowmanager/intern/wm_files.c
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 0bc03880096..45941ba6f39 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -851,6 +851,8 @@ static bool pchan_autoik_adjust(bPoseChannel *pchan, short chainlen) /* change the chain-length of auto-ik */ void transform_autoik_update(TransInfo *t, short mode) { + Main *bmain = CTX_data_main(t->context); + short *chainlen = &t->settings->autoik_chainlen; bPoseChannel *pchan; @@ -887,12 +889,12 @@ void transform_autoik_update(TransInfo *t, short mode) if (changed) { /* TODO(sergey): Consider doing partial update only. */ - DEG_relations_tag_update(G.main); + DEG_relations_tag_update(bmain); } } /* frees temporal IKs */ -static void pose_grab_with_ik_clear(Object *ob) +static void pose_grab_with_ik_clear(Main *bmain, Object *ob) { bKinematicConstraint *data; bPoseChannel *pchan; @@ -930,7 +932,7 @@ static void pose_grab_with_ik_clear(Object *ob) if (relations_changed) { /* TODO(sergey): Consider doing partial update only. */ - DEG_relations_tag_update(G.main); + DEG_relations_tag_update(bmain); } } @@ -1038,7 +1040,7 @@ static short pose_grab_with_ik_children(bPose *pose, Bone *bone) } /* main call which adds temporal IK chains */ -static short pose_grab_with_ik(Object *ob) +static short pose_grab_with_ik(Main *bmain, Object *ob) { bArmature *arm; bPoseChannel *pchan, *parent; @@ -1084,8 +1086,8 @@ static short pose_grab_with_ik(Object *ob) /* iTaSC needs clear for new IK constraints */ if (tot_ik) { BIK_clear_data(ob->pose); - /* TODO(sergey): Consuder doing partial update only. */ - DEG_relations_tag_update(G.main); + /* TODO(sergey): Consider doing partial update only. */ + DEG_relations_tag_update(bmain); } return (tot_ik) ? 1 : 0; @@ -1108,6 +1110,7 @@ static void createTransPose(TransInfo *t, Object **objects, uint objects_len) tc->poseobj = objects[th_index]; } } + Main *bmain = CTX_data_main(t->context); t->data_len_all = 0; @@ -1135,7 +1138,7 @@ static void createTransPose(TransInfo *t, Object **objects, uint objects_len) /* do we need to add temporal IK chains? */ if ((arm->flag & ARM_AUTO_IK) && t->mode == TFM_TRANSLATION) { - ik_on = pose_grab_with_ik(ob); + ik_on = pose_grab_with_ik(bmain, ob); if (ik_on) t->flag |= T_AUTOIK; } @@ -5776,8 +5779,7 @@ static void trans_object_base_deps_flag_finish(ViewLayer *view_layer) /* it deselects Bases, so we have to call the clear function always after */ static void set_trans_object_base_flags(TransInfo *t) { - /* TODO(sergey): Get rid of global, use explicit main. */ - Main *bmain = G.main; + Main *bmain = CTX_data_main(t->context); ViewLayer *view_layer = t->view_layer; Scene *scene = t->scene; Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, view_layer, true); @@ -6329,6 +6331,9 @@ static void special_aftertrans_update__mesh(bContext *UNUSED(C), TransInfo *t) * */ void special_aftertrans_update(bContext *C, TransInfo *t) { + Main *bmain = CTX_data_main(t->context); + BLI_assert(bmain == CTX_data_main(C)); + Object *ob; // short redrawipo=0, resetslowpar=1; const bool canceled = (t->state == TRANS_CANCEL); @@ -6517,7 +6522,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) // XXX: BAD! this get gpencil datablocks directly from main db... // but that's how this currently works :/ - for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) { + for (gpd = bmain->gpencil.first; gpd; gpd = gpd->id.next) { if (ID_REAL_USERS(gpd)) posttrans_gpd_clean(gpd); } @@ -6537,7 +6542,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) // XXX: BAD! this get gpencil datablocks directly from main db... // but that's how this currently works :/ - for (mask = G.main->mask.first; mask; mask = mask->id.next) { + for (mask = bmain->mask.first; mask; mask = mask->id.next) { if (ID_REAL_USERS(mask)) posttrans_mask_clean(mask); } @@ -6702,7 +6707,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t) } if (t->mode == TFM_TRANSLATION) - pose_grab_with_ik_clear(ob); + pose_grab_with_ik_clear(bmain, ob); /* automatic inserting of keys and unkeyed tagging - only if transform wasn't canceled (or TFM_DUMMY) */ if (!canceled && (t->mode != TFM_DUMMY)) { |