Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2017-04-26 11:46:55 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-04-26 12:05:04 +0300
commitb27775138beedb20405756d5bbce01173b16fb74 (patch)
tree6d119e76c7110ac7e303f0425bad74538aa7b382 /source
parentdc1f491a506deafbd80f13b20783e477ef5f99fd (diff)
Pass depsgraph via Context to selection code
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/DRW_engine.h4
-rw-r--r--source/blender/draw/intern/draw_manager.c4
-rw-r--r--source/blender/editors/curve/editcurve_paint.c1
-rw-r--r--source/blender/editors/include/ED_view3d.h2
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c1
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c9
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();