diff options
Diffstat (limited to 'source/blender/editors/render/render_preview.c')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; |