Commit: e013d2eb4be9decd6d888f6d7fa9b329a4574287
Author: Sergey Sharybin
Date:   Thu May 3 12:58:48 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBe013d2eb4be9decd6d888f6d7fa9b329a4574287

Render preview: Make it to preserve unkeyed animation

The idea is to re-use evaluated datablock from within current context.

This relies on the following factors:

- It expects scene to be fully evaluated before preview jobs starts.
- It expects datablocks to be localized.

===================================================================

M       source/blender/editors/render/render_preview.c

===================================================================

diff --git a/source/blender/editors/render/render_preview.c 
b/source/blender/editors/render/render_preview.c
index 4afcc5f661e..ed800c2ff7c 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -80,6 +80,7 @@
 #include "BKE_world.h"
 
 #include "DEG_depsgraph.h"
+#include "DEG_depsgraph_query.h"
 #include "DEG_depsgraph_build.h"
 
 #include "IMB_imbuf.h"
@@ -155,6 +156,7 @@ typedef struct ShaderPreview {
        short *stop, *do_update;
        
        Scene *scene;
+       Depsgraph *depsgraph;
        ID *id;
        ID *parent;
        MTex *slot;
@@ -679,6 +681,7 @@ static void shader_preview_render(ShaderPreview *sp, ID 
*id, int split, int firs
        char name[32];
        int sizex;
        Main *pr_main = sp->pr_main;
+       ID *id_eval = DEG_get_evaluated_id(sp->depsgraph, id);
        
        /* in case of split preview, use border render */
        if (split) {
@@ -698,7 +701,7 @@ static void shader_preview_render(ShaderPreview *sp, ID 
*id, int split, int firs
        }
        
        /* get the stuff from the builtin preview dbase */
-       sce = preview_prepare_scene(sp->bmain, sp->scene, id, idtype, sp);
+       sce = preview_prepare_scene(sp->bmain, sp->scene, id_eval, idtype, sp);
        if (sce == NULL) return;
        
        if (!split || first) sprintf(name, "Preview %p", sp->owner);
@@ -1216,6 +1219,7 @@ void ED_preview_shader_job(const bContext *C, void 
*owner, ID *id, ID *parent, M
 
        /* customdata for preview thread */
        sp->scene = scene;
+       sp->depsgraph = CTX_data_depsgraph(C);
        sp->owner = owner;
        sp->sizex = sizex;
        sp->sizey = sizey;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to