diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-02-06 20:06:21 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-02-06 20:06:47 +0300 |
commit | cf64c69c5f58af4261092934090b2c226c5f0a8e (patch) | |
tree | a7a33275d17976946909470131113d5c58df01c2 | |
parent | bccea8d3991f05906b2673f224e90362a1d16d2f (diff) |
Remove any reference to scene->base from the old viewport coderender-layers
This allows non-clay engine to see the objects as well, even if their code will be dropped later
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 10 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw_legacy.c | 25 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_edit.c | 1 |
3 files changed, 21 insertions, 15 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 8a33f54172b..65966a67da8 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1872,6 +1872,7 @@ static void view3d_draw_setup_view(const bContext *C, ARegion *ar) static void draw_all_objects(const bContext *C, ARegion *ar, const bool only_depth, const bool use_depth) { Scene *scene = CTX_data_scene(C); + SceneLayer *sl = CTX_data_scene_layer(C); View3D *v3d = CTX_wm_view3d(C); if (only_depth) @@ -1884,8 +1885,8 @@ static void draw_all_objects(const bContext *C, ARegion *ar, const bool only_dep v3d->zbuf = true; } - for (BaseLegacy *base = scene->base.first; base; base = base->next) { - if (v3d->lay & base->lay) { + for (Base *base = sl->object_bases.first; base; base = base->next) { + if ((base->flag & BASE_VISIBLED) != 0) { /* dupli drawing */ if (base->object->transflag & OB_DUPLI) draw_dupli_objects(scene, ar, v3d, base); @@ -1968,6 +1969,7 @@ static void view3d_draw_non_meshes(const bContext *C, ARegion *ar) * we filter them based on the plates/layers */ Scene *scene = CTX_data_scene(C); + SceneLayer *sl = CTX_data_scene_layer(C); View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d = ar->regiondata; @@ -1981,8 +1983,8 @@ static void view3d_draw_non_meshes(const bContext *C, ARegion *ar) * for now let's avoid writing again to zbuffer to prevent glitches */ - for (BaseLegacy *base = scene->base.first; base; base = base->next) { - if (v3d->lay & base->lay) { + for (Base *base = sl->object_bases.first; base; base = base->next) { + if ((base->flag & BASE_VISIBLED) != 0) { Object *ob = base->object; unsigned char ob_wire_col[4]; diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index 83dd322e9bd..e75e15c02c5 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -60,6 +60,7 @@ #include "BKE_DerivedMesh.h" #include "BKE_image.h" #include "BKE_key.h" +#include "BKE_layer.h" #include "BKE_main.h" #include "BKE_object.h" #include "BKE_global.h" @@ -1450,10 +1451,11 @@ void ED_view3d_draw_depth(Scene *scene, ARegion *ar, View3D *v3d, bool alphaover short flag = v3d->flag; float glalphaclip = U.glalphaclip; int obcenter_dia = U.obcenter_dia; + TODO_LAYER_CONTEXT; /* we should pass context, really */ + SceneLayer *sl = BLI_findlink(&scene->render_layers, scene->active_layer); /* no need for color when drawing depth buffer */ const short dflag_depth = DRAW_CONSTCOLOR; /* temp set drawtype to solid */ - /* Setting these temporarily is not nice */ v3d->flag &= ~V3D_SELECT_OUTLINE; U.glalphaclip = alphaoverride ? 0.5f : glalphaclip; /* not that nice but means we wont zoom into billboards */ @@ -1492,8 +1494,8 @@ void ED_view3d_draw_depth(Scene *scene, ARegion *ar, View3D *v3d, bool alphaover } } - for (base = scene->base.first; base; base = base->next) { - if (v3d->lay & base->lay) { + for (base = sl->object_bases.first; base; base = base->next) { + if ((base->flag & BASE_VISIBLED) != 0) { /* dupli drawing */ if (base->object->transflag & OB_DUPLI) { draw_dupli_objects_color(scene, ar, v3d, base, dflag_depth, TH_UNDEFINED); @@ -1738,6 +1740,7 @@ static void view3d_draw_objects( const char **grid_unit, const bool do_bgpic, const bool draw_offscreen, GPUFX *fx) { + SceneLayer *sl = CTX_data_scene_layer(C); RegionView3D *rv3d = ar->regiondata; BaseLegacy *base; const bool do_camera_frame = !draw_offscreen; @@ -1811,8 +1814,8 @@ static void view3d_draw_objects( } if (draw_offscreen) { - for (base = scene->base.first; base; base = base->next) { - if (v3d->lay & base->lay) { + for (base = sl->object_bases.first; base; base = base->next) { + if ((base->flag & BASE_VISIBLED) != 0) { /* dupli drawing */ if (base->object->transflag & OB_DUPLI) draw_dupli_objects(scene, ar, v3d, base); @@ -1825,16 +1828,16 @@ static void view3d_draw_objects( unsigned int lay_used = 0; /* then draw not selected and the duplis, but skip editmode object */ - for (base = scene->base.first; base; base = base->next) { + for (base = sl->object_bases.first; base; base = base->next) { lay_used |= base->lay; - if (v3d->lay & base->lay) { + if ((base->flag & BASE_VISIBLED) != 0) { /* dupli drawing */ if (base->object->transflag & OB_DUPLI) { draw_dupli_objects(scene, ar, v3d, base); } - if ((base->flag_legacy & SELECT) == 0) { + if ((base->flag & BASE_SELECTED) == 0) { if (base->object != scene->obedit) draw_object(scene, ar, v3d, base, 0); } @@ -1845,9 +1848,9 @@ static void view3d_draw_objects( v3d->lay_used = lay_used & ((1 << 20) - 1); /* draw selected and editmode */ - for (base = scene->base.first; base; base = base->next) { - if (v3d->lay & base->lay) { - if (base->object == scene->obedit || (base->flag_legacy & SELECT)) { + for (base = sl->object_bases.first; base; base = base->next) { + if ((base->flag & BASE_VISIBLED) != 0) { + if (base->object == scene->obedit || (base->flag & BASE_SELECTED)) { draw_object(scene, ar, v3d, base, 0); } } diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index fe6dabe6710..902be0e839c 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -3540,6 +3540,7 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op) View3D *v3d = CTX_wm_view3d(C); RegionView3D *rv3d = CTX_wm_region_view3d(C); Scene *scene = CTX_data_scene(C); + SceneLayer *sl = CTX_data_scene_layer(C); int gesture_mode; const int smooth_viewtx = WM_operator_smooth_viewtx_get(op); |