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
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-02-22 07:52:30 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-02-22 07:52:30 +0300
commit026ac65831f340c4517903d2b7a377a957b55c0a (patch)
treede6711ec7116a57f46accf7b0f340ea556a4297f /source/blender/blenkernel/intern/scene.c
parent648df0fcdb8249d8d00ee501d6947216bb7330d5 (diff)
WorkSpace: Restore saved object-modes again
Was temporarily removed when moving object mode to workspace. Note: there is an issue where eval_ctx->view_layer is NULL on load, for now pass a view layer argument, we might wan't to set the value instead.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r--source/blender/blenkernel/intern/scene.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 899a911270f..7032541f90d 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1376,7 +1376,10 @@ static bool check_rendered_viewport_visible(Main *bmain)
return false;
}
-static void prepare_mesh_for_viewport_render(Main *bmain, const EvaluationContext *eval_ctx)
+/* TODO(campbell): shouldn't we be able to use 'eval_ctx->view_layer' here?
+ * Currently this is NULL on load, so don't. */
+static void prepare_mesh_for_viewport_render(
+ Main *bmain, const EvaluationContext *eval_ctx, const ViewLayer *view_layer)
{
/* This is needed to prepare mesh to be used by the render
* engine from the viewport rendering. We do loading here
@@ -1387,7 +1390,8 @@ static void prepare_mesh_for_viewport_render(Main *bmain, const EvaluationContex
* call loading of the edit data for the mesh objects.
*/
- Object *obedit = OBEDIT_FROM_EVAL_CTX(eval_ctx);
+ /* Expanded 'OBEDIT_FROM_EVAL_CTX' */
+ Object *obedit = (eval_ctx->object_mode & OB_MODE_EDIT) ? OBACT(view_layer) : NULL;
if (obedit) {
Mesh *mesh = obedit->data;
if ((obedit->type == OB_MESH) &&
@@ -1429,7 +1433,7 @@ void BKE_scene_graph_update_tagged(EvaluationContext *eval_ctx,
/* Uncomment this to check if graph was properly tagged for update. */
// DEG_debug_graph_relations_validate(depsgraph, bmain, scene);
/* Flush editing data if needed. */
- prepare_mesh_for_viewport_render(bmain, eval_ctx);
+ prepare_mesh_for_viewport_render(bmain, eval_ctx, view_layer);
/* Flush recalc flags to dependencies. */
DEG_graph_flush_update(bmain, depsgraph);
/* Update all objects: drivers, matrices, displists, etc. flags set