Commit: 819607a30477ffd49942c0a27cb3bb03a5eef26a Author: Julian Eisel Date: Sat Dec 2 02:46:55 2017 +0100 Branches: temp-workspace_active_object https://developer.blender.org/rB819607a30477ffd49942c0a27cb3bb03a5eef26a
Avoid getting active object from view-layer in a whole bunch of cases Instead get it from context (which again gets it from workspace) =================================================================== M release/scripts/startup/bl_ui/space_info.py M source/blender/blenkernel/BKE_paint.h M source/blender/blenkernel/BKE_particle.h M source/blender/blenkernel/intern/DerivedMesh.c M source/blender/blenkernel/intern/context.c M source/blender/blenkernel/intern/paint.c M source/blender/blenkernel/intern/particle.c M source/blender/blenkernel/intern/particle_system.c M source/blender/depsgraph/DEG_depsgraph.h M source/blender/depsgraph/intern/depsgraph_eval.cc M source/blender/draw/intern/draw_armature.c M source/blender/draw/intern/draw_common.c M source/blender/draw/intern/draw_common.h M source/blender/draw/intern/draw_view.c M source/blender/draw/modes/object_mode.c M source/blender/editors/armature/armature_select.c M source/blender/editors/armature/editarmature_sketch.c M source/blender/editors/curve/editcurve.c M source/blender/editors/gpencil/drawgpencil.c M source/blender/editors/gpencil/gpencil_utils.c M source/blender/editors/include/ED_gpencil.h M source/blender/editors/include/ED_info.h M source/blender/editors/include/ED_transform_snap_object_context.h M source/blender/editors/interface/interface_handlers.c M source/blender/editors/mesh/editmesh_tools.c M source/blender/editors/object/object_edit.c M source/blender/editors/object/object_hook.c M source/blender/editors/render/render_update.c M source/blender/editors/sculpt_paint/paint_utils.c M source/blender/editors/space_buttons/buttons_context.c M source/blender/editors/space_info/info_stats.c M source/blender/editors/space_view3d/drawobject.c M source/blender/editors/space_view3d/view3d_draw.c M source/blender/editors/space_view3d/view3d_draw_legacy.c M source/blender/editors/space_view3d/view3d_intern.h M source/blender/editors/space_view3d/view3d_manipulator_ruler.c M source/blender/editors/space_view3d/view3d_ruler.c M source/blender/editors/space_view3d/view3d_walk.c M source/blender/editors/transform/transform.h M source/blender/editors/transform/transform_conversions.c M source/blender/editors/transform/transform_generics.c M source/blender/editors/transform/transform_snap.c M source/blender/editors/transform/transform_snap_object.c M source/blender/makesrna/intern/rna_brush.c M source/blender/makesrna/intern/rna_scene.c M source/blender/makesrna/intern/rna_scene_api.c M source/blender/makesrna/intern/rna_texture.c M source/blenderplayer/bad_level_call_stubs/stubs.c =================================================================== diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py index 8c7fcb29ad2..f88b75d573f 100644 --- a/release/scripts/startup/bl_ui/space_info.py +++ b/release/scripts/startup/bl_ui/space_info.py @@ -86,7 +86,7 @@ class INFO_HT_header(Header): return row.operator("wm.splash", text="", icon='BLENDER', emboss=False) - row.label(text=scene.statistics(context.view_layer), translate=False) + row.label(text=scene.statistics(context.view_layer, context.active_object), translate=False) class INFO_MT_editor_menus(Menu): diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index 31f4695201c..5ac783d4eb7 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -91,8 +91,12 @@ typedef enum eOverlayControlFlags { PAINT_OVERLAY_OVERRIDE_PRIMARY | \ PAINT_OVERLAY_OVERRIDE_CURSOR) -void BKE_paint_invalidate_overlay_tex(struct Scene *scene, struct ViewLayer *view_layer, const struct Tex *tex); -void BKE_paint_invalidate_cursor_overlay(struct Scene *scene, struct ViewLayer *view_layer, struct CurveMapping *curve); +void BKE_paint_invalidate_overlay_tex( + struct Scene *scene, const struct Object *active_object, + const struct Tex *tex); +void BKE_paint_invalidate_cursor_overlay( + struct Scene *scene, const struct Object *active_object, + struct CurveMapping *curve); void BKE_paint_invalidate_overlay_all(void); eOverlayControlFlags BKE_paint_get_overlay_flags(void); void BKE_paint_reset_overlay_invalid(eOverlayControlFlags flag); @@ -126,7 +130,7 @@ void BKE_paint_cavity_curve_preset(struct Paint *p, int preset); short BKE_paint_object_mode_from_paint_mode(ePaintMode mode); struct Paint *BKE_paint_get_active_from_paintmode(struct Scene *sce, ePaintMode mode); -struct Paint *BKE_paint_get_active(struct Scene *sce, struct ViewLayer *view_layer); +struct Paint *BKE_paint_get_active(struct Scene *sce, const struct Object *active_object); struct Paint *BKE_paint_get_active_from_context(const struct bContext *C); ePaintMode BKE_paintmode_get_active_from_context(const struct bContext *C); struct Brush *BKE_paint_brush(struct Paint *paint); diff --git a/source/blender/blenkernel/BKE_particle.h b/source/blender/blenkernel/BKE_particle.h index 1776872f455..0bba702f5af 100644 --- a/source/blender/blenkernel/BKE_particle.h +++ b/source/blender/blenkernel/BKE_particle.h @@ -297,7 +297,7 @@ void psys_set_current_num(Object *ob, int index); struct LatticeDeformData *psys_create_lattice_deform_data(struct ParticleSimulationData *sim); -bool psys_in_edit_mode(struct ViewLayer *view_layer, struct ParticleSystem *psys); +bool psys_in_edit_mode(struct ParticleSystem *psys, struct Object *active_object); bool psys_check_enabled(struct Object *ob, struct ParticleSystem *psys, const bool use_render_params); bool psys_check_edited(struct ParticleSystem *psys); diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 1367157c13c..23ac9d2e87b 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -77,6 +77,8 @@ static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm); #include "BLI_sys_types.h" /* for intptr_t support */ +#include "DEG_depsgraph.h" + #include "GPU_buffers.h" #include "GPU_shader.h" #include "GPU_immediate.h" @@ -1149,7 +1151,7 @@ DerivedMesh *mesh_create_derived(Mesh *me, float (*vertCos)[3]) } DerivedMesh *mesh_create_derived_for_modifier( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, ModifierData *md, int build_shapekey_layers) { Mesh *me = ob->data; @@ -1755,7 +1757,7 @@ static void dm_ensure_display_normals(DerivedMesh *dm) * - apply deform modifiers and input vertexco */ static void mesh_calc_modifiers( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, float (*inputVertexCos)[3], + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, float (*inputVertexCos)[3], const bool useRenderParams, int useDeform, const bool need_mapping, CustomDataMask dataMask, const int index, const bool useCache, const bool build_shapekey_layers, @@ -2310,7 +2312,7 @@ bool editbmesh_modifier_is_enabled(Scene *scene, ModifierData *md, DerivedMesh * } static void editbmesh_calc_modifiers( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, BMEditMesh *em, CustomDataMask dataMask, /* return args */ DerivedMesh **r_cage, DerivedMesh **r_final) @@ -2640,7 +2642,7 @@ static bool calc_modifiers_skip_orco(const EvaluationContext *eval_ctx, #endif static void mesh_build_data( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask, + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask, const bool build_shapekey_layers, const bool need_mapping) { BLI_assert(ob->type == OB_MESH); @@ -2677,7 +2679,7 @@ static void mesh_build_data( } static void editbmesh_build_data( - const struct EvaluationContext *eval_ctx, Scene *scene, + const EvaluationContext *eval_ctx, Scene *scene, Object *obedit, BMEditMesh *em, CustomDataMask dataMask) { BKE_object_free_derived_caches(obedit); @@ -2704,18 +2706,15 @@ static void editbmesh_build_data( BLI_assert(!(em->derivedFinal->dirty & DM_DIRTY_NORMALS)); } -static CustomDataMask object_get_datamask(const Scene *scene, Object *ob, bool *r_need_mapping) +static CustomDataMask object_get_datamask(Object *ob, bool is_active, bool *r_need_mapping) { - /* TODO(sergey): Avoid this linear list lookup. */ - ViewLayer *view_layer = BKE_view_layer_context_active_PLACEHOLDER(scene); - Object *actob = view_layer->basact ? view_layer->basact->object : NULL; CustomDataMask mask = ob->customdata_mask; if (r_need_mapping) { *r_need_mapping = false; } - if (ob == actob) { + if (is_active) { bool editing = BKE_paint_select_face_test(ob); /* weight paint and face select need original indices because of selection buffer drawing */ @@ -2745,11 +2744,11 @@ static CustomDataMask object_get_datamask(const Scene *scene, Object *ob, bool * } void makeDerivedMesh( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, BMEditMesh *em, + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, BMEditMesh *em, CustomDataMask dataMask, const bool build_shapekey_layers) { bool need_mapping; - dataMask |= object_get_datamask(scene, ob, &need_mapping); + dataMask |= object_get_datamask(ob, ob == eval_ctx->active_object, &need_mapping); if (em) { editbmesh_build_data(eval_ctx, scene, ob, em, dataMask); @@ -2762,13 +2761,13 @@ void makeDerivedMesh( /***/ DerivedMesh *mesh_get_derived_final( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) { /* if there's no derived mesh or the last data mask used doesn't include * the data we need, rebuild the derived mesh */ bool need_mapping; - dataMask |= object_get_datamask(scene, ob, &need_mapping); + dataMask |= object_get_datamask(ob, ob == eval_ctx->active_object, &need_mapping); if (!ob->derivedFinal || ((dataMask & ob->lastDataMask) != dataMask) || @@ -2781,14 +2780,14 @@ DerivedMesh *mesh_get_derived_final( return ob->derivedFinal; } -DerivedMesh *mesh_get_derived_deform(const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) +DerivedMesh *mesh_get_derived_deform(const EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) { /* if there's no derived mesh or the last data mask used doesn't include * the data we need, rebuild the derived mesh */ bool need_mapping; - dataMask |= object_get_datamask(scene, ob, &need_mapping); + dataMask |= object_get_datamask(ob, ob == eval_ctx->active_object, &need_mapping); if (!ob->derivedDeform || ((dataMask & ob->lastDataMask) != dataMask) || @@ -2800,7 +2799,7 @@ DerivedMesh *mesh_get_derived_deform(const struct EvaluationContext *eval_ctx, S return ob->derivedDeform; } -DerivedMesh *mesh_create_derived_render(const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) +DerivedMesh *mesh_create_derived_render(const EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) { DerivedMesh *final; @@ -2811,7 +2810,7 @@ DerivedMesh *mesh_create_derived_render(const struct EvaluationContext *eval_ctx return final; } -DerivedMesh *mesh_create_derived_index_render(const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask, int index) +DerivedMesh *mesh_create_derived_index_render(const EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask, int index) { DerivedMesh *final; @@ -2823,7 +2822,7 @@ DerivedMesh *mesh_create_derived_index_render(const struct EvaluationContext *ev } DerivedMesh *mesh_create_derived_view( - const struct EvaluationContext *eval_ctx, Scene *scene, + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, CustomDataMask dataMask) { DerivedMesh *final; @@ -2844,7 +2843,7 @@ DerivedMesh *mesh_create_derived_view( } DerivedMesh *mesh_create_derived_no_deform( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, + const EvaluationContext *eval_ctx, Scene *scene, Object *ob, float (*vertCos)[3], CustomDataMask dataMask) { DerivedMesh *final; @@ -2857,7 +2856,7 @@ DerivedMesh *mesh_create_derived_no_deform( } DerivedMesh *mesh_create_derived_no_virtual( - const struct EvaluationContext *eval_ctx, Scene *scene, Object *ob, + const E @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs