Commit: 417febf757c8a629079f21f1e8cac415e8b29133 Author: Julian Eisel Date: Sat Dec 2 03:40:01 2017 +0100 Branches: temp-workspace_active_object https://developer.blender.org/rB417febf757c8a629079f21f1e8cac415e8b29133
Merge branch 'blender2.8' into temp-workspace_active_object =================================================================== =================================================================== diff --cc source/blender/blenkernel/BKE_workspace.h index 9ee31947842,9f989f7ae8f..209782737b7 --- a/source/blender/blenkernel/BKE_workspace.h +++ b/source/blender/blenkernel/BKE_workspace.h @@@ -98,16 -106,24 +106,26 @@@ void BKE_workspace_active_l struct bScreen *BKE_workspace_active_screen_get(const struct WorkSpaceInstanceHook *hook) GETTER_ATTRS; void BKE_workspace_active_screen_set( struct WorkSpaceInstanceHook *hook, struct WorkSpace *workspace, struct bScreen *screen) SETTER_ATTRS; - enum eObjectMode BKE_workspace_object_mode_get(const struct WorkSpace *workspace) GETTER_ATTRS; #ifdef USE_WORKSPACE_MODE - void BKE_workspace_object_mode_set(struct WorkSpace *workspace, const enum eObjectMode mode) SETTER_ATTRS; + enum eObjectMode BKE_workspace_object_mode_get( + const struct WorkSpace *workspace, + const struct Scene *scene) GETTER_ATTRS; + void BKE_workspace_object_mode_set( + struct WorkSpace *workspace, + struct Scene *scene, + const enum eObjectMode mode) SETTER_ATTRS; #endif - struct Base *BKE_workspace_active_base_get(const struct WorkSpace *workspace) GETTER_ATTRS; - void BKE_workspace_active_base_set(struct WorkSpace *workspace, struct Base *base) SETTER_ATTRS; - struct Object *BKE_workspace_active_object_get(const struct WorkSpace *workspace); -struct Base *BKE_workspace_active_base_get(const struct WorkSpace *workspace, const struct Scene *scene); ++struct Base *BKE_workspace_active_base_get(const struct WorkSpace *workspace, const struct Scene *scene) GETTER_ATTRS; ++void BKE_workspace_active_base_set(struct WorkSpace *workspace, struct Scene *scene, struct Base *base) SETTER_ATTRS; ++struct Object *BKE_workspace_active_object_get(const struct WorkSpace *workspace, const struct Scene *scene); struct ListBase *BKE_workspace_transform_orientations_get(struct WorkSpace *workspace) GETTER_ATTRS; - struct ViewLayer *BKE_workspace_view_layer_get(const struct WorkSpace *workspace) GETTER_ATTRS; - void BKE_workspace_view_layer_set(struct WorkSpace *workspace, struct ViewLayer *layer) SETTER_ATTRS; + struct ViewLayer *BKE_workspace_view_layer_get( + const struct WorkSpace *workspace, + const struct Scene *scene) GETTER_ATTRS; + void BKE_workspace_view_layer_set( + struct WorkSpace *workspace, + struct ViewLayer *layer, + struct Scene *scene) SETTER_ATTRS; struct ListBase *BKE_workspace_layouts_get(struct WorkSpace *workspace) GETTER_ATTRS; const char *BKE_workspace_layout_name_get(const struct WorkSpaceLayout *layout) GETTER_ATTRS; diff --cc source/blender/blenkernel/intern/context.c index 8378388a120,855216d089b..e9ce2d6728a --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@@ -1269,9 -1269,8 +1269,9 @@@ void CTX_data_eval_ctx(const bContext * Scene *scene = CTX_data_scene(C); ViewLayer *view_layer = CTX_data_view_layer(C); - RenderEngineType *engine = CTX_data_engine(C); + RenderEngineType *engine_type = CTX_data_engine_type(C); + Object *active_object = CTX_data_active_object(C); DEG_evaluation_context_init_from_scene(eval_ctx, - scene, view_layer, engine, active_object, - scene, view_layer, engine_type, ++ scene, view_layer, engine_type, active_object, DAG_EVAL_VIEWPORT); } diff --cc source/blender/blenkernel/intern/workspace.c index f3db41f0669,8554cf0fb28..08bde00136b --- a/source/blender/blenkernel/intern/workspace.c +++ b/source/blender/blenkernel/intern/workspace.c @@@ -400,20 -428,11 +428,22 @@@ void BKE_workspace_object_mode_set(Work } #endif - Base *BKE_workspace_active_base_get(const WorkSpace *workspace) + Base *BKE_workspace_active_base_get(const WorkSpace *workspace, const Scene *scene) { - return workspace->view_layer->basact; + ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene); + return view_layer->basact; } - void BKE_workspace_active_base_set(WorkSpace *workspace, Base *base) ++void BKE_workspace_active_base_set(WorkSpace *workspace, Scene *scene, Base *base) +{ - workspace->view_layer->basact = base; ++ ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene); ++ view_layer->basact = base; +} + - Object *BKE_workspace_active_object_get(const WorkSpace *workspace) ++Object *BKE_workspace_active_object_get(const WorkSpace *workspace, const Scene *scene) +{ - Base *active_base = BKE_workspace_active_base_get(workspace); ++ Base *active_base = BKE_workspace_active_base_get(workspace, scene); + return active_base ? active_base->object : NULL; +} ListBase *BKE_workspace_transform_orientations_get(WorkSpace *workspace) { diff --cc source/blender/depsgraph/DEG_depsgraph.h index defc1b6f32d,6bcbff4950b..56c1b0a2aaf --- a/source/blender/depsgraph/DEG_depsgraph.h +++ b/source/blender/depsgraph/DEG_depsgraph.h @@@ -86,8 -86,7 +86,8 @@@ typedef struct EvaluationContext struct Depsgraph *depsgraph; struct ViewLayer *view_layer; - struct RenderEngineType *engine; + struct RenderEngineType *engine_type; + struct Object *active_object; } EvaluationContext; /* DagNode->eval_flags */ @@@ -215,8 -217,7 +218,8 @@@ void DEG_evaluation_context_init(struc void DEG_evaluation_context_init_from_scene(struct EvaluationContext *eval_ctx, struct Scene *scene, struct ViewLayer *view_layer, - struct RenderEngineType *engine, + struct RenderEngineType *engine_type, + struct Object *active_object, eEvaluationMode mode); /* Free evaluation context. */ diff --cc source/blender/depsgraph/intern/depsgraph_eval.cc index d46a9a25237,1d389b902b8..c3f24e3d0fc --- a/source/blender/depsgraph/intern/depsgraph_eval.cc +++ b/source/blender/depsgraph/intern/depsgraph_eval.cc @@@ -81,15 -81,13 +81,15 @@@ void DEG_evaluation_context_init(Evalua void DEG_evaluation_context_init_from_scene(EvaluationContext *eval_ctx, Scene *scene, ViewLayer *view_layer, - RenderEngineType *engine, + RenderEngineType *engine_type, + Object *active_object, eEvaluationMode mode) { DEG_evaluation_context_init(eval_ctx, mode); eval_ctx->depsgraph = BKE_scene_get_depsgraph(scene, view_layer, false); eval_ctx->view_layer = view_layer; - eval_ctx->engine = engine; + eval_ctx->engine_type = engine_type; + eval_ctx->active_object = active_object; eval_ctx->ctime = BKE_scene_frame_get(scene); BLI_assert(eval_ctx->depsgraph != NULL); } diff --cc source/blender/draw/intern/draw_armature.c index f07b553b7aa,c7a88f7689e..597c9dc98e3 --- a/source/blender/draw/intern/draw_armature.c +++ b/source/blender/draw/intern/draw_armature.c @@@ -1417,9 -1417,9 +1417,9 @@@ void DRW_shgroup_armature_object DRWShadingGroup *shgrp_relationship_lines) { float *color; - DRW_object_wire_theme_get(ob, view_layer, &color); + DRW_object_wire_theme_get(ob, is_active, &color); - DRW_shgroup_armature(ob, pass_bone_solid, pass_bone_wire, NULL, shgrp_relationship_lines); + drw_shgroup_armature(ob, pass_bone_solid, pass_bone_wire, NULL, shgrp_relationship_lines); draw_armature_pose(ob, color); } diff --cc source/blender/draw/modes/object_mode.c index 11009cb9472,91b64818eff..20e7664a19a --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@@ -1107,10 -1107,10 +1107,10 @@@ static void DRW_shgroup_lamp(OBJECT_Sto { Lamp *la = ob->data; float *color; - int theme_id = DRW_object_wire_theme_get(ob, view_layer, &color); + int theme_id = DRW_object_wire_theme_get(ob, is_active, &color); static float zero = 0.0f; - float **la_mats = (float **)DRW_object_engine_data_get(ob, &draw_engine_object_type, NULL); + float **la_mats = (float **)DRW_object_engine_data_ensure(ob, &draw_engine_object_type, NULL); if (*la_mats == NULL) { /* we need 2 matrices */ *la_mats = MEM_mallocN(sizeof(float) * 16 * 2, "Lamp Object Mode Matrices"); @@@ -1453,10 -1453,10 +1453,10 @@@ static void DRW_shgroup_lightprobe(OBJE static float one = 1.0f; LightProbe *prb = (LightProbe *)ob->data; bool do_outlines = ((ob->base_flag & BASE_SELECTED) != 0); - DRW_object_wire_theme_get(ob, view_layer, &color); + DRW_object_wire_theme_get(ob, is_active, &color); OBJECT_LightProbeEngineData *prb_data; - OBJECT_LightProbeEngineData **prb_data_pt = (OBJECT_LightProbeEngineData **)DRW_object_engine_data_get(ob, &draw_engine_object_type, NULL); + OBJECT_LightProbeEngineData **prb_data_pt = (OBJECT_LightProbeEngineData **)DRW_object_engine_data_ensure(ob, &draw_engine_object_type, NULL); if (*prb_data_pt == NULL) { *prb_data_pt = MEM_mallocN(sizeof(OBJECT_LightProbeEngineData), "Probe Clip distances Matrices"); } diff --cc source/blender/editors/armature/armature_intern.h index 192bb8eea61,192bb8eea61..c8d5f220996 --- a/source/blender/editors/armature/armature_intern.h +++ b/source/blender/editors/armature/armature_intern.h @@@ -250,7 -250,7 +250,7 @@@ void armature_tag_unselect(struct bArma void *get_nearest_bone(struct bContext *C, const int xy[2], bool findunsel); void *get_bone_from_selectbuffer( -- struct Scene *scene, struct Base *base, const unsigned int *buffer, short hits, ++ struct Scene *scene, struct Object *active_object, const unsigned int *buffer, short hits, bool findunsel, bool do_nearest); int bone_looper(struct Object *ob, struct Bone *bone, void *data, diff --cc source/blender/editors/armature/armature_select.c index e843c9ddc53,b87942fed84..fb1077992f6 --- a/source/blender/ed @@ 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