diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-04-26 11:46:55 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-04-26 12:05:04 +0300 |
commit | b27775138beedb20405756d5bbce01173b16fb74 (patch) | |
tree | 6d119e76c7110ac7e303f0425bad74538aa7b382 /source | |
parent | dc1f491a506deafbd80f13b20783e477ef5f99fd (diff) |
Pass depsgraph via Context to selection code
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/DRW_engine.h | 4 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 4 | ||||
-rw-r--r-- | source/blender/editors/curve/editcurve_paint.c | 1 | ||||
-rw-r--r-- | source/blender/editors/include/ED_view3d.h | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 1 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 9 |
6 files changed, 15 insertions, 6 deletions
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h index 03ba8e39447..8d1188cb3b7 100644 --- a/source/blender/draw/DRW_engine.h +++ b/source/blender/draw/DRW_engine.h @@ -28,6 +28,7 @@ struct ARegion; struct CollectionEngineSettings; +struct Depsgraph; struct DRWPass; struct Material; struct Scene; @@ -62,7 +63,8 @@ void DRW_engine_viewport_data_size_get( void DRW_draw_view(const struct bContext *C); void DRW_draw_select_loop( - struct ViewContext *vc, struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d, struct ARegion *ar, + struct ViewContext *vc, struct Depsgraph *graph, + struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d, struct ARegion *ar, bool use_obedit_skip, bool use_nearest, const struct rcti *rect); void DRW_object_engine_data_free(struct Object *ob); diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index d866a4c52db..7cba39d8bff 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -2045,7 +2045,8 @@ void DRW_draw_view(const bContext *C) * object mode select-loop, see: ED_view3d_draw_select_loop (legacy drawing). */ void DRW_draw_select_loop( - struct ViewContext *vc, Scene *scene, struct SceneLayer *sl, View3D *v3d, ARegion *ar, + struct ViewContext *vc, Depsgraph *graph, + Scene *scene, struct SceneLayer *sl, View3D *v3d, ARegion *ar, bool UNUSED(use_obedit_skip), bool UNUSED(use_nearest), const rcti *rect) { #ifndef USE_GPU_SELECT @@ -2115,7 +2116,6 @@ void DRW_draw_select_loop( DRW_engines_cache_populate(vc->obedit); } else { - Depsgraph *graph = scene->depsgraph; // CTX_data_depsgraph(C); DEG_OBJECT_ITER(graph, ob) { if ((ob->base_flag & BASE_SELECTABLED) != 0) { diff --git a/source/blender/editors/curve/editcurve_paint.c b/source/blender/editors/curve/editcurve_paint.c index 804d5573993..23a400bed19 100644 --- a/source/blender/editors/curve/editcurve_paint.c +++ b/source/blender/editors/curve/editcurve_paint.c @@ -699,6 +699,7 @@ static bool curve_draw_init(bContext *C, wmOperator *op, bool is_invoke) } } else { + cdd->vc.depsgraph = CTX_data_depsgraph(C); cdd->vc.scene = CTX_data_scene(C); cdd->vc.scene_layer = CTX_data_scene_layer(C); cdd->vc.obedit = CTX_data_edit_object(C); diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h index ba85e2deb52..59e3852f284 100644 --- a/source/blender/editors/include/ED_view3d.h +++ b/source/blender/editors/include/ED_view3d.h @@ -40,6 +40,7 @@ struct BPoint; struct BaseLegacy; struct BezTriple; struct BoundBox; +struct Depsgraph; struct EditBone; struct ImBuf; struct MVert; @@ -70,6 +71,7 @@ enum eGPUFXFlags; /* for derivedmesh drawing callbacks, for view3d_select, .... */ typedef struct ViewContext { + struct Depsgraph *depsgraph; struct Scene *scene; struct SceneLayer *scene_layer; struct Object *obact; diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 4e527a93ed3..a15e4baced2 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -109,6 +109,7 @@ void view3d_set_viewcontext(bContext *C, ViewContext *vc) { memset(vc, 0, sizeof(ViewContext)); vc->ar = CTX_wm_region(C); + vc->depsgraph = CTX_data_depsgraph(C); vc->scene = CTX_data_scene(C); vc->scene_layer = CTX_data_scene_layer(C); vc->v3d = CTX_wm_view3d(C); diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 4f6ee4df5f2..3314ae27e47 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -51,6 +51,8 @@ #include "BKE_scene.h" #include "BKE_screen.h" +#include "DEG_depsgraph.h" + #include "BIF_glutil.h" #include "GPU_select.h" @@ -1113,6 +1115,7 @@ int view3d_opengl_select( ViewContext *vc, unsigned int *buffer, unsigned int bufsize, const rcti *input, eV3DSelectMode select_mode) { + Depsgraph *graph = vc->depsgraph; Scene *scene = vc->scene; SceneLayer *sl = vc->scene_layer; View3D *v3d = vc->v3d; @@ -1187,10 +1190,10 @@ int view3d_opengl_select( ED_view3d_draw_select_loop(vc, scene, sl, v3d, ar, use_obedit_skip, use_nearest); } else { - DRW_draw_select_loop(vc, scene, sl, v3d, ar, use_obedit_skip, use_nearest, &rect); + DRW_draw_select_loop(vc, graph, scene, sl, v3d, ar, use_obedit_skip, use_nearest, &rect); } #else - DRW_draw_select_loop(vc, scene, sl, v3d, ar, use_obedit_skip, use_nearest, &rect); + DRW_draw_select_loop(vc, graph, scene, sl, v3d, ar, use_obedit_skip, use_nearest, &rect); #endif /* WITH_OPENGL_LEGACY */ hits = GPU_select_end(); @@ -1203,7 +1206,7 @@ int view3d_opengl_select( ED_view3d_draw_select_loop(vc, scene, sl, v3d, ar, use_obedit_skip, use_nearest); } else { - DRW_draw_select_loop(vc, scene, sl, v3d, ar, use_obedit_skip, use_nearest, &rect); + DRW_draw_select_loop(vc, graph, scene, sl, v3d, ar, use_obedit_skip, use_nearest, &rect); } GPU_select_end(); |