[Bf-blender-cvs] [43875e8dd1d] master: Cleanup: Remove no-op node preview function calls

Hans Goudey noreply at git.blender.org
Wed Dec 15 21:29:35 CET 2021


Commit: 43875e8dd1d76ee783b0d44e5199acfc650a07fb
Author: Hans Goudey
Date:   Wed Dec 15 14:27:38 2021 -0600
Branches: master
https://developer.blender.org/rB43875e8dd1d76ee783b0d44e5199acfc650a07fb

Cleanup: Remove no-op node preview function calls

This patch removes no-op node editor preview code (`PR_NODE_RENDER`)
and most calls to `BKE_node_preview_init_tree`. The only remaining call is
in the compositor.

 - Shader nodes previews don't seem to do anything.
 - In-node previews for the texture node system doesn't work either.

This is a first step to refactoring to remove `preview_xsize`,
`preview_ysize`, and `prvr` from nodes in DNA, aligned with
the general goal of removing runtime/derived data from data
structs.

Differential Revision: https://developer.blender.org/D13578

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

M	source/blender/editors/include/ED_render.h
M	source/blender/editors/render/render_preview.c
M	source/blender/editors/space_node/space_node.cc

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

diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h
index 50d7bfc3960..f60d62ed384 100644
--- a/source/blender/editors/include/ED_render.h
+++ b/source/blender/editors/include/ED_render.h
@@ -77,14 +77,12 @@ struct Scene *ED_render_job_get_current_scene(const struct bContext *C);
  * pr_method:
  * - PR_BUTS_RENDER: preview is rendered for buttons window
  * - PR_ICON_RENDER: preview is rendered for icons. hopefully fast enough for at least 32x32
- * - PR_NODE_RENDER: preview is rendered for node editor
  * - PR_ICON_DEFERRED: No render, we just ensure deferred icon data gets generated.
  */
 typedef enum ePreviewRenderMethod {
   PR_BUTS_RENDER = 0,
   PR_ICON_RENDER = 1,
-  PR_NODE_RENDER = 2,
-  PR_ICON_DEFERRED = 3,
+  PR_ICON_DEFERRED = 2,
 } ePreviewRenderMethod;
 
 void ED_preview_ensure_dbase(void);
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index e1121aa4b1e..9ff1fc89350 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -214,7 +214,7 @@ static bool check_engine_supports_preview(Scene *scene)
 
 static bool preview_method_is_render(int pr_method)
 {
-  return ELEM(pr_method, PR_ICON_RENDER, PR_BUTS_RENDER, PR_NODE_RENDER);
+  return ELEM(pr_method, PR_ICON_RENDER, PR_BUTS_RENDER);
 }
 
 void ED_preview_free_dbase(void)
@@ -528,15 +528,6 @@ static Scene *preview_prepare_scene(
                                               MA_SPHERE_A :
                                               mat->pr_type;
         set_preview_visibility(pr_main, sce, view_layer, preview_type, sp->pr_method);
-
-        if (sp->pr_method != PR_ICON_RENDER) {
-          if (mat->nodetree && sp->pr_method == PR_NODE_RENDER) {
-            /* two previews, they get copied by wmJob */
-            BKE_node_preview_init_tree(mat->nodetree, sp->sizex, sp->sizey, true);
-            /* WATCH: Accessing origmat is not safe! */
-            BKE_node_preview_init_tree(origmat->nodetree, sp->sizex, sp->sizey, true);
-          }
-        }
       }
       else {
         sce->display.render_aa = SCE_DISPLAY_AA_OFF;
@@ -572,13 +563,6 @@ static Scene *preview_prepare_scene(
         sp->id_copy = NULL;
         BLI_addtail(&pr_main->textures, tex);
       }
-
-      if (tex && tex->nodetree && sp->pr_method == PR_NODE_RENDER) {
-        /* two previews, they get copied by wmJob */
-        BKE_node_preview_init_tree(tex->nodetree, sp->sizex, sp->sizey, true);
-        /* WATCH: Accessing origtex is not safe! */
-        BKE_node_preview_init_tree(origtex->nodetree, sp->sizex, sp->sizey, true);
-      }
     }
     else if (id_type == ID_LA) {
       Light *la = NULL, *origla = (Light *)id;
@@ -608,13 +592,6 @@ static Scene *preview_prepare_scene(
           }
         }
       }
-
-      if (la && la->nodetree && sp->pr_method == PR_NODE_RENDER) {
-        /* two previews, they get copied by wmJob */
-        BKE_node_preview_init_tree(la->nodetree, sp->sizex, sp->sizey, true);
-        /* WATCH: Accessing origla is not safe! */
-        BKE_node_preview_init_tree(origla->nodetree, sp->sizex, sp->sizey, true);
-      }
     }
     else if (id_type == ID_WO) {
       World *wrld = NULL, *origwrld = (World *)id;
@@ -628,13 +605,6 @@ static Scene *preview_prepare_scene(
 
       set_preview_visibility(pr_main, sce, view_layer, MA_SKY, sp->pr_method);
       sce->world = wrld;
-
-      if (wrld && wrld->nodetree && sp->pr_method == PR_NODE_RENDER) {
-        /* two previews, they get copied by wmJob */
-        BKE_node_preview_init_tree(wrld->nodetree, sp->sizex, sp->sizey, true);
-        /* WATCH: Accessing origwrld is not safe! */
-        BKE_node_preview_init_tree(origwrld->nodetree, sp->sizex, sp->sizey, true);
-      }
     }
 
     return sce;
@@ -1037,41 +1007,8 @@ static int shader_preview_break(void *spv)
   return *(sp->stop);
 }
 
-/* outside thread, called before redraw notifiers, it moves finished preview over */
-static void shader_preview_updatejob(void *spv)
+static void shader_preview_updatejob(void *UNUSED(spv))
 {
-  ShaderPreview *sp = spv;
-
-  if (sp->pr_method == PR_NODE_RENDER) {
-    if (GS(sp->id->name) == ID_MA) {
-      Material *mat = (Material *)sp->id;
-
-      if (sp->matcopy && mat->nodetree && sp->matcopy->nodetree) {
-        ntreeLocalSync(sp->matcopy->nodetree, mat->nodetree);
-      }
-    }
-    else if (GS(sp->id->name) == ID_TE) {
-      Tex *tex = (Tex *)sp->id;
-
-      if (sp->texcopy && tex->nodetree && sp->texcopy->nodetree) {
-        ntreeLocalSync(sp->texcopy->nodetree, tex->nodetree);
-      }
-    }
-    else if (GS(sp->id->name) == ID_WO) {
-      World *wrld = (World *)sp->id;
-
-      if (sp->worldcopy && wrld->nodetree && sp->worldcopy->nodetree) {
-        ntreeLocalSync(sp->worldcopy->nodetree, wrld->nodetree);
-      }
-    }
-    else if (GS(sp->id->name) == ID_LA) {
-      Light *la = (Light *)sp->id;
-
-      if (sp->lampcopy && la->nodetree && sp->lampcopy->nodetree) {
-        ntreeLocalSync(sp->lampcopy->nodetree, la->nodetree);
-      }
-    }
-  }
 }
 
 /* Renders texture directly to render buffer. */
@@ -1187,21 +1124,12 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
     sce->r.scemode |= R_NO_IMAGE_LOAD;
     sce->display.render_aa = SCE_DISPLAY_AA_SAMPLES_8;
   }
-  else if (sp->pr_method == PR_NODE_RENDER) {
-    if (idtype == ID_MA) {
-      sce->r.scemode |= R_MATNODE_PREVIEW;
-    }
-    else if (idtype == ID_TE) {
-      sce->r.scemode |= R_TEXNODE_PREVIEW;
-    }
-    sce->display.render_aa = SCE_DISPLAY_AA_OFF;
-  }
   else { /* PR_BUTS_RENDER */
     sce->display.render_aa = SCE_DISPLAY_AA_SAMPLES_8;
   }
 
   /* Callbacks are cleared on GetRender(). */
-  if (ELEM(sp->pr_method, PR_BUTS_RENDER, PR_NODE_RENDER)) {
+  if (sp->pr_method == PR_BUTS_RENDER) {
     RE_display_update_cb(re, sp, shader_preview_update);
   }
   /* set this for all previews, default is react to G.is_break still */
@@ -1309,10 +1237,6 @@ static void shader_preview_free(void *customdata)
     main_id_copy = (ID *)sp->lampcopy;
     BLI_remlink(&pr_main->lights, sp->lampcopy);
   }
-  if (main_id_copy || sp->id_copy) {
-    /* node previews */
-    shader_preview_updatejob(sp);
-  }
   if (sp->own_id_copy) {
     if (sp->id_copy) {
       preview_id_copy_free(sp->id_copy);
@@ -1882,11 +1806,6 @@ void ED_preview_shader_job(const bContext *C,
     return;
   }
 
-  /* Only texture node preview is supported with Cycles. */
-  if (method == PR_NODE_RENDER && id_type != ID_TE) {
-    return;
-  }
-
   ED_preview_ensure_dbase();
 
   wm_job = WM_jobs_get(CTX_wm_manager(C),
diff --git a/source/blender/editors/space_node/space_node.cc b/source/blender/editors/space_node/space_node.cc
index f3b95ca2024..4cc0bed1928 100644
--- a/source/blender/editors/space_node/space_node.cc
+++ b/source/blender/editors/space_node/space_node.cc
@@ -482,27 +482,7 @@ static void node_area_refresh(const struct bContext *C, ScrArea *area)
   snode_set_context(*C);
 
   if (snode->nodetree) {
-    if (snode->nodetree->type == NTREE_SHADER) {
-      if (GS(snode->id->name) == ID_MA) {
-        Material *ma = (Material *)snode->id;
-        if (ma->use_nodes) {
-          ED_preview_shader_job(C, area, snode->id, nullptr, nullptr, 100, 100, PR_NODE_RENDER);
-        }
-      }
-      else if (GS(snode->id->name) == ID_LA) {
-        Light *la = (Light *)snode->id;
-        if (la->use_nodes) {
-          ED_preview_shader_job(C, area, snode->id, nullptr, nullptr, 100, 100, PR_NODE_RENDER);
-        }
-      }
-      else if (GS(snode->id->name) == ID_WO) {
-        World *wo = (World *)snode->id;
-        if (wo->use_nodes) {
-          ED_preview_shader_job(C, area, snode->id, nullptr, nullptr, 100, 100, PR_NODE_RENDER);
-        }
-      }
-    }
-    else if (snode->nodetree->type == NTREE_COMPOSIT) {
+    if (snode->nodetree->type == NTREE_COMPOSIT) {
       Scene *scene = (Scene *)snode->id;
       if (scene->use_nodes) {
         /* recalc is set on 3d view changes for auto compo */
@@ -515,12 +495,6 @@ static void node_area_refresh(const struct bContext *C, ScrArea *area)
         }
       }
     }
-    else if (snode->nodetree->type == NTREE_TEXTURE) {
-      Tex *tex = (Tex *)snode->id;
-      if (tex->use_nodes) {
-        ED_preview_shader_job(C, area, snode->id, nullptr, nullptr, 100, 100, PR_NODE_RENDER);
-      }
-    }
   }
 }



More information about the Bf-blender-cvs mailing list