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:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-06-25 13:36:45 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-06-25 13:38:40 +0400
commitda64e8ae0551b85760855b5b5bdfdb2673985223 (patch)
treecb21ee1a4544bafd5bedaf3b11ca54e209a6a3f5
parent0529766f32b70f38d4089297c8b5e86b964de289 (diff)
Fix T40800: Crash when editing material nodes
it was caused by ee5f432. Not sure why exactly blender runs into threading conflicts here since material preview works. Let's keep it simple for now and disable material nodes preview, because it's not supported by the interface anyway. This is to be included to the final release.
-rw-r--r--source/blender/editors/render/render_preview.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index 7385ad111fe..01f00a8458a 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -1138,6 +1138,12 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
ShaderPreview *sp;
Scene *scene = CTX_data_scene(C);
short id_type = GS(id->name);
+ bool use_new_shading = BKE_scene_use_new_shading_nodes(scene);
+
+ /* Only texture node preview is supported with Cycles. */
+ if (use_new_shading && method == PR_NODE_RENDER && id_type != ID_TE) {
+ return;
+ }
wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Shader Preview",
WM_JOB_EXCL_RENDER, WM_JOB_TYPE_RENDER_PREVIEW);
@@ -1155,10 +1161,7 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
/* hardcoded preview .blend for cycles/internal, this should be solved
* once with custom preview .blend path for external engines */
- if ((method != PR_NODE_RENDER) &&
- id_type != ID_TE &&
- BKE_scene_use_new_shading_nodes(scene))
- {
+ if ((method != PR_NODE_RENDER) && id_type != ID_TE && use_new_shading) {
sp->pr_main = G_pr_main_cycles;
}
else {