diff options
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/armature/armature_relations.c | 2 | ||||
-rw-r--r-- | source/blender/editors/curve/editcurve.c | 2 | ||||
-rw-r--r-- | source/blender/editors/gpencil/drawgpencil.c | 9 | ||||
-rw-r--r-- | source/blender/editors/gpencil/gpencil_utils.c | 6 | ||||
-rw-r--r-- | source/blender/editors/include/ED_gpencil.h | 11 | ||||
-rw-r--r-- | source/blender/editors/include/ED_object.h | 11 | ||||
-rw-r--r-- | source/blender/editors/mesh/meshtools.c | 2 | ||||
-rw-r--r-- | source/blender/editors/object/object_add.c | 8 | ||||
-rw-r--r-- | source/blender/editors/object/object_select.c | 54 | ||||
-rw-r--r-- | source/blender/editors/space_buttons/buttons_texture.c | 12 | ||||
-rw-r--r-- | source/blender/editors/space_outliner/outliner_tools.c | 4 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/drawobject.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw_legacy.c | 40 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 2 |
15 files changed, 75 insertions, 92 deletions
diff --git a/source/blender/editors/armature/armature_relations.c b/source/blender/editors/armature/armature_relations.c index 51c9836c741..0705d17882c 100644 --- a/source/blender/editors/armature/armature_relations.c +++ b/source/blender/editors/armature/armature_relations.c @@ -403,7 +403,7 @@ int join_armature_exec(bContext *C, wmOperator *op) } /* Free the old object data */ - ED_base_object_free_and_unlink(bmain, scene, base->object); + ED_object_base_free_and_unlink(bmain, scene, base->object); } } CTX_DATA_END; diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 85715bf575b..3716827c113 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -6123,7 +6123,7 @@ int join_curve_exec(bContext *C, wmOperator *op) } } - ED_base_object_free_and_unlink(bmain, scene, base->object); + ED_object_base_free_and_unlink(bmain, scene, base->object); } } } diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index 1b6261a6bef..5d38ab2340a 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -1669,14 +1669,19 @@ void ED_gpencil_draw_view2d(const bContext *C, bool onlyv2d) /* draw grease-pencil sketches to specified 3d-view assuming that matrices are already set correctly * Note: this gets called twice - first time with only3d=true to draw 3d-strokes, * second time with only3d=false for screen-aligned strokes */ -void ED_gpencil_draw_view3d(wmWindowManager *wm, Scene *scene, View3D *v3d, ARegion *ar, bool only3d) +void ED_gpencil_draw_view3d(wmWindowManager *wm, + Scene *scene, + SceneLayer *scene_layer, + View3D *v3d, + ARegion *ar, + bool only3d) { int dflag = 0; RegionView3D *rv3d = ar->regiondata; int offsx, offsy, winx, winy; /* check that we have grease-pencil stuff to draw */ - bGPdata *gpd = ED_gpencil_data_get_active_v3d(scene, v3d); + bGPdata *gpd = ED_gpencil_data_get_active_v3d(scene, scene_layer); if (gpd == NULL) return; /* when rendering to the offscreen buffer we don't want to diff --git a/source/blender/editors/gpencil/gpencil_utils.c b/source/blender/editors/gpencil/gpencil_utils.c index 4023a343b22..dfefd1aa745 100644 --- a/source/blender/editors/gpencil/gpencil_utils.c +++ b/source/blender/editors/gpencil/gpencil_utils.c @@ -204,15 +204,15 @@ bGPdata *ED_gpencil_data_get_active(const bContext *C) /* -------------------------------------------------------- */ // XXX: this should be removed... We really shouldn't duplicate logic like this! -bGPdata *ED_gpencil_data_get_active_v3d(Scene *scene, View3D *v3d) +bGPdata *ED_gpencil_data_get_active_v3d(Scene *scene, SceneLayer *scene_layer) { - BaseLegacy *base = scene->basact; + Base *base = scene_layer->basact; bGPdata *gpd = NULL; /* We have to make sure active object is actually visible and selected, else we must use default scene gpd, * to be consistent with ED_gpencil_data_get_active's behavior. */ - if (base && TESTBASE(v3d, base)) { + if (base && TESTBASE_NEW(base)) { gpd = base->object->gpd; } return gpd ? gpd : scene->gpd; diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h index 74d9ad0886d..926f31781e2 100644 --- a/source/blender/editors/include/ED_gpencil.h +++ b/source/blender/editors/include/ED_gpencil.h @@ -48,6 +48,8 @@ struct bGPDpalettecolor; struct bAnimContext; struct KeyframeEditData; struct PointerRNA; +struct Scene; +struct SceneLayer; struct wmWindowManager; struct wmKeyConfig; @@ -113,7 +115,7 @@ struct bGPdata *ED_gpencil_data_get_active_direct(struct ID *screen_id, struct S struct ScrArea *sa, struct Object *ob); /* 3D View */ -struct bGPdata *ED_gpencil_data_get_active_v3d(struct Scene *scene, struct View3D *v3d); +struct bGPdata *ED_gpencil_data_get_active_v3d(struct Scene *scene, struct SceneLayer *scene_layer); bool ED_gpencil_has_keyframe_v3d(struct Scene *scene, struct Object *ob, int cfra); @@ -147,7 +149,12 @@ void ED_gpencil_strokes_copybuf_free(void); void ED_gpencil_draw_2dimage(const struct bContext *C); void ED_gpencil_draw_view2d(const struct bContext *C, bool onlyv2d); -void ED_gpencil_draw_view3d(struct wmWindowManager *wm, struct Scene *scene, struct View3D *v3d, struct ARegion *ar, bool only3d); +void ED_gpencil_draw_view3d(struct wmWindowManager *wm, + struct Scene *scene, + struct SceneLayer *scene_layer, + struct View3D *v3d, + struct ARegion *ar, + bool only3d); void ED_gpencil_draw_ex(struct Scene *scene, struct bGPdata *gpd, int winx, int winy, const int cfra, const char spacetype); void ED_gp_draw_interpolation(struct tGPDinterpolate *tgpi, const int type); diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h index 19c1588fe7e..0dbe37c91b5 100644 --- a/source/blender/editors/include/ED_object.h +++ b/source/blender/editors/include/ED_object.h @@ -105,18 +105,9 @@ void ED_keymap_proportional_maskmode(struct wmKeyConfig *keyconf, struct wmKeyMa void ED_keymap_proportional_editmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, const bool do_connected); -/* send your own notifier for select! */ -void ED_base_object_select(struct BaseLegacy *base, short mode); -/* includes notifier */ -void ED_base_object_activate(struct bContext *C, struct BaseLegacy *base); - void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode); void ED_object_base_activate(struct bContext *C, struct Base *base); - -void ED_base_object_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob); - -void ED_base_object_sync_from_base(struct BaseLegacy *base, struct Object *ob); -void ED_base_object_sync_from_object(struct BaseLegacy *base, struct Object *ob); +void ED_object_base_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob); /* single object duplicate, if (dupflag == 0), fully linked, else it uses the flags given */ struct Base *ED_object_add_duplicate(struct Main *bmain, struct Scene *scene, struct SceneLayer *sl, struct Base *base, int dupflag); diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index da0da05bb13..dd1fbc36d8a 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -526,7 +526,7 @@ int join_mesh_exec(bContext *C, wmOperator *op) /* free base, now that data is merged */ if (base->object != ob) { - ED_base_object_free_and_unlink(bmain, scene, base->object); + ED_object_base_free_and_unlink(bmain, scene, base->object); } } } diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c index f6a23a03aa4..2f9dbb657c4 100644 --- a/source/blender/editors/object/object_add.c +++ b/source/blender/editors/object/object_add.c @@ -1204,7 +1204,7 @@ static void object_delete_check_glsl_update(Object *ob) /* remove base from a specific scene */ /* note: now unlinks constraints as well */ -void ED_base_object_free_and_unlink(Main *bmain, Scene *scene, Object *ob) +void ED_object_base_free_and_unlink(Main *bmain, Scene *scene, Object *ob) { if (BKE_library_ID_is_indirectly_used(bmain, ob) && ID_REAL_USERS(ob) <= 1 && ID_EXTRA_USERS(ob) == 0) @@ -1272,7 +1272,7 @@ static int object_delete_exec(bContext *C, wmOperator *op) } /* remove from current scene only */ - ED_base_object_free_and_unlink(bmain, scene, ob); + ED_object_base_free_and_unlink(bmain, scene, ob); changed = true; if (use_global) { @@ -1285,7 +1285,7 @@ static int object_delete_exec(bContext *C, wmOperator *op) ob->id.name + 2, scene_iter->id.name + 2); break; } - ED_base_object_free_and_unlink(bmain, scene_iter, ob); + ED_object_base_free_and_unlink(bmain, scene_iter, ob); } } } @@ -2013,7 +2013,7 @@ static int convert_exec(bContext *C, wmOperator *op) if (BKE_mball_is_basis(ob_mball) || ((ob_basis = BKE_mball_basis_find(scene, ob_mball)) && (ob_basis->flag & OB_DONE))) { - ED_base_object_free_and_unlink(bmain, scene, ob_mball); + ED_object_base_free_and_unlink(bmain, scene, ob_mball); } } } diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c index 9da7154ae8d..b87c8500de0 100644 --- a/source/blender/editors/object/object_select.c +++ b/source/blender/editors/object/object_select.c @@ -89,44 +89,6 @@ /* Note: send a NC_SCENE|ND_OB_SELECT notifier yourself! (or * or a NC_SCENE|ND_OB_VISIBLE in case of visibility toggling */ -void ED_base_object_select(BaseLegacy *base, short mode) -{ - if (base) { - if (mode == BA_SELECT) { - if (!(base->object->restrictflag & OB_RESTRICT_SELECT)) - base->flag_legacy |= SELECT; - } - else if (mode == BA_DESELECT) { - base->flag_legacy &= ~SELECT; - } - BKE_scene_base_flag_sync_from_base(base); - } -} - -/* also to set active NULL */ -void ED_base_object_activate(bContext *C, BaseLegacy *base) -{ - Scene *scene = CTX_data_scene(C); - - /* sets scene->basact */ - BASACT = base; - - if (base) { -#ifdef USE_WORKSPACE_MODE - WorkSpace *workspace = CTX_wm_workspace(C); - - BKE_workspace_object_mode_set(workspace, base->object->mode); -#endif - - /* XXX old signals, remember to handle notifiers now! */ - // select_actionchannel_by_name(base->object->action, "Object", 1); - - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); - } - else - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, NULL); -} - void ED_object_base_select(Base *base, eObjectSelect_Mode mode) { if (mode == BA_INVERT) { @@ -147,16 +109,24 @@ void ED_object_base_select(Base *base, eObjectSelect_Mode mode) /* Never happens. */ break; } + BKE_scene_object_base_flag_sync_from_base(base); } } +/** + * Change active base, it includes the notifier + */ void ED_object_base_activate(bContext *C, Base *base) { - SceneLayer *sl = CTX_data_scene_layer(C); - sl->basact = base; + SceneLayer *scene_layer = CTX_data_scene_layer(C); + scene_layer->basact = base; if (base) { - WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, sl); +#ifdef USE_WORKSPACE_MODE + WorkSpace *workspace = CTX_wm_workspace(C); + BKE_workspace_object_mode_set(workspace, base->object->mode); +#endif + WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene_layer); } else { WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, NULL); @@ -659,7 +629,7 @@ static bool select_grouped_object_hooks(bContext *C, Object *ob) if (hmd->object && !(hmd->object->flag & SELECT)) { base = BKE_scene_layer_base_find(sl, hmd->object); if (base && (BASE_SELECTABLE_NEW(base))) { - ED_base_object_select(base, BA_SELECT); + ED_object_base_select(base, BA_SELECT); changed = true; } } diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c index e3d72ba67d8..a7f18a4298c 100644 --- a/source/blender/editors/space_buttons/buttons_texture.c +++ b/source/blender/editors/space_buttons/buttons_texture.c @@ -54,6 +54,7 @@ #include "DNA_linestyle_types.h" #include "BKE_context.h" +#include "BKE_layer.h" #include "BKE_linestyle.h" #include "BKE_material.h" #include "BKE_modifier.h" @@ -324,6 +325,7 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * Material *ma = NULL; Lamp *la = NULL; World *wrld = NULL; + WorkSpace *workspace = NULL; FreestyleLineStyle *linestyle = NULL; Brush *brush = NULL; ID *pinid = sbuts->pinid; @@ -345,17 +347,25 @@ static void buttons_texture_users_from_context(ListBase *users, const bContext * brush = (Brush *)pinid; else if (GS(pinid->name) == ID_LS) linestyle = (FreestyleLineStyle *)pinid; + else if (GS(pinid->name) == ID_WS) + workspace = (WorkSpace *)workspace; } if (!scene) scene = CTX_data_scene(C); if (!pinid || GS(pinid->name) == ID_SCE) { - ob = (scene->basact) ? scene->basact->object : NULL; wrld = scene->world; brush = BKE_paint_brush(BKE_paint_get_active_from_context(C)); linestyle = BKE_linestyle_active_from_scene(scene); } + else if (!pinid || GS(pinid->name) == ID_WS) { + if (!workspace) { + workspace = CTX_wm_workspace(C); + } + SceneLayer *scene_layer = BKE_scene_layer_from_workspace_get(scene, workspace); + ob = OBACT_NEW(scene_layer); + } if (ob && ob->type == OB_LAMP && !la) la = ob->data; diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index 481497e15f1..ca168094ae2 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -424,7 +424,7 @@ static void object_delete_cb( if (scene->obedit == ob) ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); - ED_base_object_free_and_unlink(CTX_data_main(C), scene, ob); + ED_object_base_free_and_unlink(CTX_data_main(C), scene, ob); /* leave for ED_outliner_id_unref to handle */ #if 0 te->directdata = NULL; @@ -928,7 +928,7 @@ static Base *outline_delete_hierarchy(bContext *C, ReportList *reports, Scene *s base->object->id.name + 2, scene->id.name + 2); return base_next; } - ED_base_object_free_and_unlink(CTX_data_main(C), scene, base->object); + ED_object_base_free_and_unlink(CTX_data_main(C), scene, base->object); return base_next; } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index e75c353a34d..b2fdc62af3c 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -5941,7 +5941,7 @@ static void draw_new_particle_system( if (pars == NULL) return; /* don't draw normal paths in edit mode */ - if (psys_in_edit_mode(scene, psys) && (pset->flag & PE_DRAW_PART) == 0) + if (psys_in_edit_mode(eval_ctx->scene_layer, psys) && (pset->flag & PE_DRAW_PART) == 0) return; if (part->draw_as == PART_DRAW_REND) diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 75d064bbbac..13d5f590177 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2048,7 +2048,7 @@ void ED_view3d_draw_offscreen( if (v3d->flag2 & V3D_SHOW_GPENCIL) { /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */ - ED_gpencil_draw_view3d(NULL, scene, v3d, ar, false); + ED_gpencil_draw_view3d(NULL, scene, scene_layer, v3d, ar, false); } /* freeing the images again here could be done after the operator runs, leaving for now */ diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index 834c0390e2c..e242b2eef33 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -1182,7 +1182,7 @@ void ED_view3d_draw_depth_gpencil( glEnable(GL_DEPTH_TEST); if (v3d->flag2 & V3D_SHOW_GPENCIL) { - ED_gpencil_draw_view3d(NULL, scene, v3d, ar, true); + ED_gpencil_draw_view3d(NULL, scene, eval_ctx->scene_layer, v3d, ar, true); } v3d->zbuf = zbuf; @@ -1502,7 +1502,7 @@ static void view3d_draw_objects( const char **grid_unit, const bool do_bgpic, const bool draw_offscreen, GPUFX *fx) { - SceneLayer *sl = C ? CTX_data_scene_layer(C) : BKE_scene_layer_from_scene_get(scene); + SceneLayer *scene_layer = C ? CTX_data_scene_layer(C) : BKE_scene_layer_from_scene_get(scene); RegionView3D *rv3d = ar->regiondata; Base *base; const bool do_camera_frame = !draw_offscreen; @@ -1561,10 +1561,10 @@ static void view3d_draw_objects( for (SETLOOPER(scene->set, sce_iter, base)) { if ((base->flag & BASE_VISIBLED) != 0) { UI_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f); - draw_object(eval_ctx, scene, sl, ar, v3d, base, dflag); + draw_object(eval_ctx, scene, scene_layer, ar, v3d, base, dflag); if (base->object->transflag & OB_DUPLI) { - draw_dupli_objects_color(eval_ctx, scene, sl, ar, v3d, base, dflag, TH_UNDEFINED); + draw_dupli_objects_color(eval_ctx, scene, scene_layer, ar, v3d, base, dflag, TH_UNDEFINED); } } } @@ -1573,14 +1573,14 @@ static void view3d_draw_objects( } if (draw_offscreen) { - for (base = sl->object_bases.first; base; base = base->next) { + for (base = scene_layer->object_bases.first; base; base = base->next) { if ((base->flag & BASE_VISIBLED) != 0) { /* dupli drawing */ if (base->object->transflag & OB_DUPLI) { - draw_dupli_objects(eval_ctx, scene, sl, ar, v3d, base); + draw_dupli_objects(eval_ctx, scene, scene_layer, ar, v3d, base); } - draw_object(eval_ctx, scene, sl, ar, v3d, base, 0); + draw_object(eval_ctx, scene, scene_layer, ar, v3d, base, 0); } } } @@ -1588,18 +1588,18 @@ static void view3d_draw_objects( unsigned int lay_used = 0; /* then draw not selected and the duplis, but skip editmode object */ - for (base = sl->object_bases.first; base; base = base->next) { + for (base = scene_layer->object_bases.first; base; base = base->next) { lay_used |= base->lay; if ((base->flag & BASE_VISIBLED) != 0) { /* dupli drawing */ if (base->object->transflag & OB_DUPLI) { - draw_dupli_objects(eval_ctx, scene, sl, ar, v3d, base); + draw_dupli_objects(eval_ctx, scene, scene_layer, ar, v3d, base); } if ((base->flag & BASE_SELECTED) == 0) { if (base->object != scene->obedit) - draw_object(eval_ctx, scene, sl, ar, v3d, base, 0); + draw_object(eval_ctx, scene, scene_layer, ar, v3d, base, 0); } } } @@ -1608,10 +1608,10 @@ static void view3d_draw_objects( v3d->lay_used = lay_used & ((1 << 20) - 1); /* draw selected and editmode */ - for (base = sl->object_bases.first; base; base = base->next) { + for (base = scene_layer->object_bases.first; base; base = base->next) { if ((base->flag & BASE_VISIBLED) != 0) { if (base->object == scene->obedit || (base->flag & BASE_SELECTED)) { - draw_object(eval_ctx, scene, sl, ar, v3d, base, 0); + draw_object(eval_ctx, scene, scene_layer, ar, v3d, base, 0); } } } @@ -1628,12 +1628,12 @@ static void view3d_draw_objects( /* must be before xray draw which clears the depth buffer */ if (v3d->zbuf) glDisable(GL_DEPTH_TEST); - ED_gpencil_draw_view3d(wm, scene, v3d, ar, true); + ED_gpencil_draw_view3d(wm, scene, scene_layer, v3d, ar, true); if (v3d->zbuf) glEnable(GL_DEPTH_TEST); } /* transp and X-ray afterdraw stuff */ - if (v3d->afterdraw_transp.first) view3d_draw_transp(eval_ctx, scene, sl, ar, v3d); + if (v3d->afterdraw_transp.first) view3d_draw_transp(eval_ctx, scene, scene_layer, ar, v3d); /* always do that here to cleanup depth buffers if none needed */ if (fx) { @@ -1641,8 +1641,8 @@ static void view3d_draw_objects( GPU_fx_compositor_setup_XRay_pass(fx, do_composite_xray); } - if (v3d->afterdraw_xray.first) view3d_draw_xray(eval_ctx, scene, sl, ar, v3d, &xrayclear); - if (v3d->afterdraw_xraytransp.first) view3d_draw_xraytransp(eval_ctx, scene, sl, ar, v3d, xrayclear); + if (v3d->afterdraw_xray.first) view3d_draw_xray(eval_ctx, scene, scene_layer, ar, v3d, &xrayclear); + if (v3d->afterdraw_xraytransp.first) view3d_draw_xraytransp(eval_ctx, scene, scene_layer, ar, v3d, xrayclear); if (fx && do_composite_xray) { GPU_fx_compositor_XRay_resolve(fx); @@ -2041,7 +2041,7 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene, ARegion *ar, View3D *v3d, const char *grid_unit, bool render_border) { - SceneLayer *sl = CTX_data_scene_layer(C); + SceneLayer *scene_layer = CTX_data_scene_layer(C); wmWindowManager *wm = CTX_wm_manager(C); RegionView3D *rv3d = ar->regiondata; rcti rect; @@ -2058,11 +2058,11 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene, if (v3d->flag2 & V3D_SHOW_GPENCIL) { /* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */ - ED_gpencil_draw_view3d(wm, scene, v3d, ar, false); + ED_gpencil_draw_view3d(wm, scene, scene_layer, v3d, ar, false); } if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) { - VP_legacy_drawcursor(scene, sl, ar, v3d); /* 3D cursor */ + VP_legacy_drawcursor(scene, scene_layer, ar, v3d); /* 3D cursor */ if (U.uiflag & USER_SHOW_ROTVIEWICON) VP_legacy_draw_view_axis(rv3d, &rect); @@ -2070,7 +2070,7 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene, draw_view_icon(rv3d, &rect); if (U.uiflag & USER_DRAWVIEWINFO) { - Object *ob = OBACT_NEW(sl); + Object *ob = OBACT_NEW(scene_layer); VP_legacy_draw_selected_name(scene, ob, &rect); } } diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index 5408269ce13..82147f7af4c 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -1551,7 +1551,7 @@ static bool ed_object_select_pick( /* we make the armature selected: * not-selected active object in posemode won't work well for tools */ basact->flag |= BASE_SELECTED; - BKE_scene_base_flag_sync_from_base(basact); + BKE_scene_object_base_flag_sync_from_base(basact); retval = true; WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, basact->object); |