[Bf-blender-cvs] [a922a097ef5] master: Transform Snap Object: Remove depsgraph when creating context
Germano Cavalcante
noreply at git.blender.org
Mon Mar 9 14:03:17 CET 2020
Commit: a922a097ef5c453bf4bc515494a3ab5f402946e2
Author: Germano Cavalcante
Date: Mon Mar 9 10:02:11 2020 -0300
Branches: master
https://developer.blender.org/rBa922a097ef5c453bf4bc515494a3ab5f402946e2
Transform Snap Object: Remove depsgraph when creating context
Currently, this change does not bring functional changes.
But it is necessary to extend the use of the snap system for gizmos,
since, after a Undo, the `depsgraph` pointed by the `snap_context`
has its memory invalidated.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D7013
===================================================================
M source/blender/editors/curve/editcurve.c
M source/blender/editors/gizmo_library/gizmo_types/move3d_gizmo.c
M source/blender/editors/gpencil/gpencil_edit.c
M source/blender/editors/include/ED_transform_snap_object_context.h
M source/blender/editors/mesh/editmesh_tools.c
M source/blender/editors/space_view3d/view3d_edit.c
M source/blender/editors/space_view3d/view3d_gizmo_ruler.c
M source/blender/editors/space_view3d/view3d_walk.c
M source/blender/editors/transform/transform_snap.c
M source/blender/editors/transform/transform_snap.h
M source/blender/editors/transform/transform_snap_object.c
M source/blender/makesrna/intern/rna_scene_api.c
===================================================================
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index ee1a48e9f1e..6fdf76bfb75 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -5677,10 +5677,11 @@ static int add_vertex_invoke(bContext *C, wmOperator *op, const wmEvent *event)
const float mval[2] = {UNPACK2(event->mval)};
struct SnapObjectContext *snap_context = ED_transform_snap_object_context_create_view3d(
- vc.bmain, vc.scene, vc.depsgraph, 0, vc.region, vc.v3d);
+ vc.bmain, vc.scene, 0, vc.region, vc.v3d);
ED_transform_snap_object_project_view3d(
snap_context,
+ vc.depsgraph,
SCE_SNAP_MODE_FACE,
&(const struct SnapObjectParams){
.snap_select = (vc.obedit != NULL) ? SNAP_NOT_ACTIVE : SNAP_ALL,
diff --git a/source/blender/editors/gizmo_library/gizmo_types/move3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/move3d_gizmo.c
index f7b51a7a0cb..d8cd4d20579 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/move3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/move3d_gizmo.c
@@ -276,6 +276,7 @@ static int gizmo_move_modal(bContext *C,
float co[3];
if (ED_transform_snap_object_project_view3d(
inter->snap_context_v3d,
+ CTX_data_ensure_evaluated_depsgraph(C),
(SCE_SNAP_MODE_VERTEX | SCE_SNAP_MODE_EDGE | SCE_SNAP_MODE_FACE),
&(const struct SnapObjectParams){
.snap_select = SNAP_ALL,
@@ -369,12 +370,7 @@ static int gizmo_move_invoke(bContext *C, wmGizmo *gz, const wmEvent *event)
switch (sa->spacetype) {
case SPACE_VIEW3D: {
inter->snap_context_v3d = ED_transform_snap_object_context_create_view3d(
- CTX_data_main(C),
- CTX_data_scene(C),
- CTX_data_ensure_evaluated_depsgraph(C),
- 0,
- CTX_wm_region(C),
- CTX_wm_view3d(C));
+ CTX_data_main(C), CTX_data_scene(C), 0, CTX_wm_region(C), CTX_wm_view3d(C));
break;
}
default:
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index a7e28fe1f87..420c2907c82 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -3426,7 +3426,7 @@ static int gp_strokes_reproject_exec(bContext *C, wmOperator *op)
int cfra_prv = INT_MIN;
/* init snap context for geometry projection */
sctx = ED_transform_snap_object_context_create_view3d(
- bmain, scene, depsgraph, 0, region, CTX_wm_view3d(C));
+ bmain, scene, 0, region, CTX_wm_view3d(C));
/* Go through each editable + selected stroke, adjusting each of its points one by one... */
GP_EDITABLE_STROKES_BEGIN (gpstroke_iter, C, gpl, gps) {
@@ -3517,6 +3517,7 @@ static int gp_strokes_reproject_exec(bContext *C, wmOperator *op)
ED_view3d_win_to_ray(region, xy, &ray_start[0], &ray_normal[0]);
if (ED_transform_snap_object_project_ray(sctx,
+ depsgraph,
&(const struct SnapObjectParams){
.snap_select = SNAP_ALL,
},
diff --git a/source/blender/editors/include/ED_transform_snap_object_context.h b/source/blender/editors/include/ED_transform_snap_object_context.h
index 34f2bf8361a..b998ac87819 100644
--- a/source/blender/editors/include/ED_transform_snap_object_context.h
+++ b/source/blender/editors/include/ED_transform_snap_object_context.h
@@ -79,11 +79,9 @@ struct SnapObjectParams {
typedef struct SnapObjectContext SnapObjectContext;
SnapObjectContext *ED_transform_snap_object_context_create(struct Main *bmain,
struct Scene *scene,
- struct Depsgraph *depsgraph,
int flag);
SnapObjectContext *ED_transform_snap_object_context_create_view3d(struct Main *bmain,
struct Scene *scene,
- struct Depsgraph *depsgraph,
int flag,
/* extra args for view3d */
const struct ARegion *region,
@@ -99,6 +97,7 @@ void ED_transform_snap_object_context_set_editmesh_callbacks(
void *user_data);
bool ED_transform_snap_object_project_ray_ex(struct SnapObjectContext *sctx,
+ struct Depsgraph *depsgraph,
const struct SnapObjectParams *params,
const float ray_start[3],
const float ray_normal[3],
@@ -110,6 +109,7 @@ bool ED_transform_snap_object_project_ray_ex(struct SnapObjectContext *sctx,
struct Object **r_ob,
float r_obmat[4][4]);
bool ED_transform_snap_object_project_ray(SnapObjectContext *sctx,
+ struct Depsgraph *depsgraph,
const struct SnapObjectParams *params,
const float ray_origin[3],
const float ray_direction[3],
@@ -118,6 +118,7 @@ bool ED_transform_snap_object_project_ray(SnapObjectContext *sctx,
float r_no[3]);
bool ED_transform_snap_object_project_ray_all(SnapObjectContext *sctx,
+ struct Depsgraph *depsgraph,
const struct SnapObjectParams *params,
const float ray_start[3],
const float ray_normal[3],
@@ -126,6 +127,7 @@ bool ED_transform_snap_object_project_ray_all(SnapObjectContext *sctx,
struct ListBase *r_hit_list);
short ED_transform_snap_object_project_view3d_ex(struct SnapObjectContext *sctx,
+ struct Depsgraph *depsgraph,
const unsigned short snap_to,
const struct SnapObjectParams *params,
const float mval[2],
@@ -137,6 +139,7 @@ short ED_transform_snap_object_project_view3d_ex(struct SnapObjectContext *sctx,
struct Object **r_ob,
float r_obmat[4][4]);
bool ED_transform_snap_object_project_view3d(struct SnapObjectContext *sctx,
+ struct Depsgraph *depsgraph,
const unsigned short snap_to,
const struct SnapObjectParams *params,
const float mval[2],
@@ -147,6 +150,7 @@ bool ED_transform_snap_object_project_view3d(struct SnapObjectContext *sctx,
float r_no[3]);
bool ED_transform_snap_object_project_all_view3d_ex(SnapObjectContext *sctx,
+ struct Depsgraph *depsgraph,
const struct SnapObjectParams *params,
const float mval[2],
float ray_depth,
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index e38bb90fd08..a4546780dd9 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -420,7 +420,7 @@ void EDBM_project_snap_verts(
ED_view3d_init_mats_rv3d(obedit, region->regiondata);
struct SnapObjectContext *snap_context = ED_transform_snap_object_context_create_view3d(
- bmain, CTX_data_scene(C), depsgraph, 0, region, CTX_wm_view3d(C));
+ bmain, CTX_data_scene(C), 0, region, CTX_wm_view3d(C));
BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
@@ -428,6 +428,7 @@ void EDBM_project_snap_verts(
if (ED_view3d_project_float_object(region, eve->co, mval, V3D_PROJ_TEST_NOP) ==
V3D_PROJ_RET_OK) {
if (ED_transform_snap_object_project_view3d(snap_context,
+ depsgraph,
SCE_SNAP_MODE_FACE,
&(const struct SnapObjectParams){
.snap_select = SNAP_NOT_ACTIVE,
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 00b696da756..415c275090d 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -5028,12 +5028,13 @@ void ED_view3d_cursor3d_position_rotation(bContext *C,
float ray_co[3];
struct SnapObjectContext *snap_context = ED_transform_snap_object_context_create_view3d(
- bmain, scene, CTX_data_ensure_evaluated_depsgraph(C), 0, region, v3d);
+ bmain, scene, 0, region, v3d);
float obmat[4][4];
Object *ob_dummy = NULL;
float dist_px = 0;
if (ED_transform_snap_object_project_view3d_ex(snap_context,
+ CTX_data_ensure_evaluated_depsgraph(C),
SCE_SNAP_MODE_FACE,
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list