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:
-rw-r--r--source/blender/editors/render/render_preview.c13
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c5
-rw-r--r--source/blender/nodes/shader/node_shader_tree.c4
3 files changed, 16 insertions, 6 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index 46777685442..e3b4051b8e0 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -299,10 +299,10 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
sce->r.cfra = scene->r.cfra;
- if (id_type == ID_TE && ELEM(sp->pr_method, PR_ICON_RENDER, PR_NODE_RENDER)) {
- /* Force blender internal for texture icons and nodes render,
+ if (id_type == ID_TE && sp->pr_method == PR_ICON_RENDER) {
+ /* force blender internal for texture icons render,
* seems commonly used render engines does not support
- * such kind of rendering.
+ * such kind of rendering
*/
BLI_strncpy(sce->r.engine, "BLENDER_RENDER", sizeof(sce->r.engine));
}
@@ -1137,6 +1137,11 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
wmJob *wm_job;
ShaderPreview *sp;
Scene *scene = CTX_data_scene(C);
+ const bool use_new_shading = BKE_scene_use_new_shading_nodes(scene);
+
+ /* node previews not supported for cycles */
+ if ((method == PR_NODE_RENDER) && use_new_shading)
+ 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);
@@ -1154,7 +1159,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 (BKE_scene_use_new_shading_nodes(scene) && method != PR_NODE_RENDER)
+ if (use_new_shading)
sp->pr_main = G_pr_main_cycles;
else
sp->pr_main = G_pr_main;
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index 03f2fa86ecb..56b6b6a89a7 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -947,7 +947,10 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d,
Object *ob, DerivedMesh *dm, const int draw_flags)
{
/* if not cycles, or preview-modifiers, or drawing matcaps */
- if ((!BKE_scene_use_new_shading_nodes(scene)) || (draw_flags & DRAW_MODIFIERS_PREVIEW) || (v3d->flag2 & V3D_SHOW_SOLID_MATCAP)) {
+ if ((draw_flags & DRAW_MODIFIERS_PREVIEW) ||
+ (v3d->flag2 & V3D_SHOW_SOLID_MATCAP) ||
+ (BKE_scene_use_new_shading_nodes(scene) == false))
+ {
draw_mesh_textured_old(scene, v3d, rv3d, ob, dm, draw_flags);
return;
}
diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c
index 53f97e0d36c..4288b8fbcdc 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -79,7 +79,9 @@ static void shader_get_from_context(const bContext *C, bNodeTreeType *UNUSED(tre
Scene *scene = CTX_data_scene(C);
Object *ob = OBACT;
- if (!BKE_scene_use_new_shading_nodes(scene) || snode->shaderfrom == SNODE_SHADER_OBJECT) {
+ if ((snode->shaderfrom == SNODE_SHADER_OBJECT) ||
+ (BKE_scene_use_new_shading_nodes(scene) == false))
+ {
if (ob) {
*r_from = &ob->id;
if (ob->type == OB_LAMP) {