[Bf-blender-cvs] [576d99e59aa] master: Cleanup: move texture nodes to C++

Jacques Lucke noreply at git.blender.org
Thu Nov 17 13:04:59 CET 2022


Commit: 576d99e59aa2b0e709aed0239eaf653bf1e2e716
Author: Jacques Lucke
Date:   Thu Nov 17 13:04:45 2022 +0100
Branches: master
https://developer.blender.org/rB576d99e59aa2b0e709aed0239eaf653bf1e2e716

Cleanup: move texture nodes to C++

No functional changes are expected. The goal here is to make
further refactorings to the nodes system easier.

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

M	source/blender/nodes/texture/CMakeLists.txt
R093	source/blender/nodes/texture/node_texture_tree.c	source/blender/nodes/texture/node_texture_tree.cc
R092	source/blender/nodes/texture/node_texture_util.c	source/blender/nodes/texture/node_texture_util.cc
R100	source/blender/nodes/texture/node_texture_util.h	source/blender/nodes/texture/node_texture_util.hh
R091	source/blender/nodes/texture/nodes/node_texture_at.c	source/blender/nodes/texture/nodes/node_texture_at.cc
R096	source/blender/nodes/texture/nodes/node_texture_bricks.c	source/blender/nodes/texture/nodes/node_texture_bricks.cc
R093	source/blender/nodes/texture/nodes/node_texture_checker.c	source/blender/nodes/texture/nodes/node_texture_checker.cc
R094	source/blender/nodes/texture/nodes/node_texture_combine_color.c	source/blender/nodes/texture/nodes/node_texture_combine_color.cc
R086	source/blender/nodes/texture/nodes/node_texture_common.c	source/blender/nodes/texture/nodes/node_texture_common.cc
R091	source/blender/nodes/texture/nodes/node_texture_compose.c	source/blender/nodes/texture/nodes/node_texture_compose.cc
R088	source/blender/nodes/texture/nodes/node_texture_coord.c	source/blender/nodes/texture/nodes/node_texture_coord.cc
R086	source/blender/nodes/texture/nodes/node_texture_curves.c	source/blender/nodes/texture/nodes/node_texture_curves.cc
R081	source/blender/nodes/texture/nodes/node_texture_decompose.c	source/blender/nodes/texture/nodes/node_texture_decompose.cc
R091	source/blender/nodes/texture/nodes/node_texture_distance.c	source/blender/nodes/texture/nodes/node_texture_distance.cc
R095	source/blender/nodes/texture/nodes/node_texture_hueSatVal.c	source/blender/nodes/texture/nodes/node_texture_hueSatVal.cc
R092	source/blender/nodes/texture/nodes/node_texture_image.c	source/blender/nodes/texture/nodes/node_texture_image.cc
R090	source/blender/nodes/texture/nodes/node_texture_invert.c	source/blender/nodes/texture/nodes/node_texture_invert.cc
R098	source/blender/nodes/texture/nodes/node_texture_math.c	source/blender/nodes/texture/nodes/node_texture_math.cc
R092	source/blender/nodes/texture/nodes/node_texture_mixRgb.c	source/blender/nodes/texture/nodes/node_texture_mixRgb.cc
R097	source/blender/nodes/texture/nodes/node_texture_output.c	source/blender/nodes/texture/nodes/node_texture_output.cc
R096	source/blender/nodes/texture/nodes/node_texture_proc.c	source/blender/nodes/texture/nodes/node_texture_proc.cc
R094	source/blender/nodes/texture/nodes/node_texture_rotate.c	source/blender/nodes/texture/nodes/node_texture_rotate.cc
R092	source/blender/nodes/texture/nodes/node_texture_scale.c	source/blender/nodes/texture/nodes/node_texture_scale.cc
R086	source/blender/nodes/texture/nodes/node_texture_separate_color.c	source/blender/nodes/texture/nodes/node_texture_separate_color.cc
R094	source/blender/nodes/texture/nodes/node_texture_texture.c	source/blender/nodes/texture/nodes/node_texture_texture.cc
R091	source/blender/nodes/texture/nodes/node_texture_translate.c	source/blender/nodes/texture/nodes/node_texture_translate.cc
R093	source/blender/nodes/texture/nodes/node_texture_valToNor.c	source/blender/nodes/texture/nodes/node_texture_valToNor.cc
R089	source/blender/nodes/texture/nodes/node_texture_valToRgb.c	source/blender/nodes/texture/nodes/node_texture_valToRgb.cc
R097	source/blender/nodes/texture/nodes/node_texture_viewer.c	source/blender/nodes/texture/nodes/node_texture_viewer.cc

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

diff --git a/source/blender/nodes/texture/CMakeLists.txt b/source/blender/nodes/texture/CMakeLists.txt
index 2d704ac2228..3c3135bd909 100644
--- a/source/blender/nodes/texture/CMakeLists.txt
+++ b/source/blender/nodes/texture/CMakeLists.txt
@@ -22,35 +22,35 @@ set(INC
 
 
 set(SRC
-  nodes/node_texture_at.c
-  nodes/node_texture_bricks.c
-  nodes/node_texture_checker.c
-  nodes/node_texture_combine_color.c
-  nodes/node_texture_common.c
-  nodes/node_texture_compose.c
-  nodes/node_texture_coord.c
-  nodes/node_texture_curves.c
-  nodes/node_texture_decompose.c
-  nodes/node_texture_distance.c
-  nodes/node_texture_hueSatVal.c
-  nodes/node_texture_image.c
-  nodes/node_texture_invert.c
-  nodes/node_texture_math.c
-  nodes/node_texture_mixRgb.c
-  nodes/node_texture_output.c
-  nodes/node_texture_proc.c
-  nodes/node_texture_rotate.c
-  nodes/node_texture_scale.c
-  nodes/node_texture_separate_color.c
-  nodes/node_texture_texture.c
-  nodes/node_texture_translate.c
-  nodes/node_texture_valToNor.c
-  nodes/node_texture_valToRgb.c
-  nodes/node_texture_viewer.c
-  node_texture_tree.c
-  node_texture_util.c
+  nodes/node_texture_at.cc
+  nodes/node_texture_bricks.cc
+  nodes/node_texture_checker.cc
+  nodes/node_texture_combine_color.cc
+  nodes/node_texture_common.cc
+  nodes/node_texture_compose.cc
+  nodes/node_texture_coord.cc
+  nodes/node_texture_curves.cc
+  nodes/node_texture_decompose.cc
+  nodes/node_texture_distance.cc
+  nodes/node_texture_hueSatVal.cc
+  nodes/node_texture_image.cc
+  nodes/node_texture_invert.cc
+  nodes/node_texture_math.cc
+  nodes/node_texture_mixRgb.cc
+  nodes/node_texture_output.cc
+  nodes/node_texture_proc.cc
+  nodes/node_texture_rotate.cc
+  nodes/node_texture_scale.cc
+  nodes/node_texture_separate_color.cc
+  nodes/node_texture_texture.cc
+  nodes/node_texture_translate.cc
+  nodes/node_texture_valToNor.cc
+  nodes/node_texture_valToRgb.cc
+  nodes/node_texture_viewer.cc
+  node_texture_tree.cc
+  node_texture_util.cc
 
-  node_texture_util.h
+  node_texture_util.hh
 )
 
 set(LIB
diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.cc
similarity index 93%
rename from source/blender/nodes/texture/node_texture_tree.c
rename to source/blender/nodes/texture/node_texture_tree.cc
index 99146f1a25c..f35d98891db 100644
--- a/source/blender/nodes/texture/node_texture_tree.c
+++ b/source/blender/nodes/texture/node_texture_tree.cc
@@ -26,7 +26,7 @@
 #include "NOD_texture.h"
 #include "node_common.h"
 #include "node_exec.h"
-#include "node_texture_util.h"
+#include "node_texture_util.hh"
 #include "node_util.h"
 
 #include "DEG_depsgraph.h"
@@ -106,7 +106,7 @@ static void localize(bNodeTree *localtree, bNodeTree *UNUSED(ntree))
   bNode *node, *node_next;
 
   /* replace muted nodes and reroute nodes by internal links */
-  for (node = localtree->nodes.first; node; node = node_next) {
+  for (node = static_cast<bNode *>(localtree->nodes.first); node; node = node_next) {
     node_next = node->next;
 
     if (node->flag & NODE_MUTED || node->type == NODE_REROUTE) {
@@ -137,8 +137,7 @@ bNodeTreeType *ntreeType_Texture;
 
 void register_node_tree_type_tex(void)
 {
-  bNodeTreeType *tt = ntreeType_Texture = MEM_callocN(sizeof(bNodeTreeType),
-                                                      "texture node tree type");
+  bNodeTreeType *tt = ntreeType_Texture = MEM_cnew<bNodeTreeType>("texture node tree type");
 
   tt->type = NTREE_TEXTURE;
   strcpy(tt->idname, "TextureNodeTree");
@@ -173,7 +172,7 @@ bNodeThreadStack *ntreeGetThreadStack(bNodeTreeExec *exec, int thread)
   }
 
   if (!nts) {
-    nts = MEM_callocN(sizeof(bNodeThreadStack), "bNodeThreadStack");
+    nts = MEM_cnew<bNodeThreadStack>("bNodeThreadStack");
     nts->stack = (bNodeStack *)MEM_dupallocN(exec->stack);
     nts->used = true;
     BLI_addtail(lb, nts);
@@ -226,9 +225,9 @@ bNodeTreeExec *ntreeTexBeginExecTree_internal(bNodeExecContext *context,
   exec = ntree_exec_begin(context, ntree, parent_key);
 
   /* allocate the thread stack listbase array */
-  exec->threadstack = MEM_callocN(BLENDER_MAX_THREADS * sizeof(ListBase), "thread stack array");
+  exec->threadstack = MEM_cnew_array<ListBase>(BLENDER_MAX_THREADS, "thread stack array");
 
-  for (node = exec->nodetree->nodes.first; node; node = node->next) {
+  for (node = static_cast<bNode *>(exec->nodetree->nodes.first); node; node = node->next) {
     node->need_exec = 1;
   }
 
@@ -267,7 +266,8 @@ static void tex_free_delegates(bNodeTreeExec *exec)
   int th, a;
 
   for (th = 0; th < BLENDER_MAX_THREADS; th++) {
-    for (nts = exec->threadstack[th].first; nts; nts = nts->next) {
+    for (nts = static_cast<bNodeThreadStack *>(exec->threadstack[th].first); nts;
+         nts = nts->next) {
       for (ns = nts->stack, a = 0; a < exec->stacksize; a++, ns++) {
         if (ns->data && !ns->is_copy) {
           MEM_freeN(ns->data);
@@ -286,7 +286,8 @@ void ntreeTexEndExecTree_internal(bNodeTreeExec *exec)
     tex_free_delegates(exec);
 
     for (a = 0; a < BLENDER_MAX_THREADS; a++) {
-      for (nts = exec->threadstack[a].first; nts; nts = nts->next) {
+      for (nts = static_cast<bNodeThreadStack *>(exec->threadstack[a].first); nts;
+           nts = nts->next) {
         if (nts->stack) {
           MEM_freeN(nts->stack);
         }
diff --git a/source/blender/nodes/texture/node_texture_util.c b/source/blender/nodes/texture/node_texture_util.cc
similarity index 92%
rename from source/blender/nodes/texture/node_texture_util.c
rename to source/blender/nodes/texture/node_texture_util.cc
index 248114f242a..e61a3018964 100644
--- a/source/blender/nodes/texture/node_texture_util.c
+++ b/source/blender/nodes/texture/node_texture_util.cc
@@ -21,7 +21,7 @@
  * over other previous ones.
  */
 
-#include "node_texture_util.h"
+#include "node_texture_util.hh"
 
 bool tex_node_poll_default(bNodeType *UNUSED(ntype),
                            bNodeTree *ntree,
@@ -51,7 +51,7 @@ static void tex_call_delegate(TexDelegate *dg, float *out, TexParams *params, sh
 
 static void tex_input(float *out, int num, bNodeStack *in, TexParams *params, short thread)
 {
-  TexDelegate *dg = in->data;
+  TexDelegate *dg = static_cast<TexDelegate *>(in->data);
   if (dg) {
     tex_call_delegate(dg, in->vec, params, thread);
 
@@ -118,10 +118,11 @@ void tex_output(bNode *node,
 
   if (!out->data) {
     /* Freed in tex_end_exec (node.cc) */
-    dg = out->data = MEM_mallocN(sizeof(TexDelegate), "tex delegate");
+    dg = MEM_new<TexDelegate>("tex delegate");
+    out->data = dg;
   }
   else {
-    dg = out->data;
+    dg = static_cast<TexDelegate *>(out->data);
   }
 
   dg->cdata = cdata;
@@ -135,7 +136,7 @@ void tex_output(bNode *node,
 void ntreeTexCheckCyclics(struct bNodeTree *ntree)
 {
   bNode *node;
-  for (node = ntree->nodes.first; node; node = node->next) {
+  for (node = static_cast<bNode *>(ntree->nodes.first); node; node = node->next) {
 
     if (node->type == TEX_NODE_TEXTURE && node->id) {
       /* custom2 stops the node from rendering */
diff --git a/source/blender/nodes/texture/node_texture_util.h b/source/blender/nodes/texture/node_texture_util.hh
similarity index 100%
rename from source/blender/nodes/texture/node_texture_util.h
rename to source/blender/nodes/texture/node_texture_util.hh
diff --git a/source/blender/nodes/texture/nodes/node_texture_at.c b/source/blender/nodes/texture/nodes/node_texture_at.cc
similarity index 91%
rename from source/blender/nodes/texture/nodes/node_texture_at.c
rename to source/blender/nodes/texture/nodes/node_texture_at.cc
index e2e635b7d92..65e6a2eb5d7 100644
--- a/source/blender/nodes/texture/nodes/node_texture_at.c
+++ b/source/blender/nodes/texture/nodes/node_texture_at.cc
@@ -6,7 +6,7 @@
  */
 
 #include "NOD_texture.h"
-#include "node_texture_util.h"
+#include "node_texture_util.hh"
 
 static bNodeSocketTemplate inputs[] = {
     {SOCK_RGBA, N_("Texture"), 0.0f, 0.0f, 0.0f, 1.0f},
@@ -35,7 +35,7 @@ static void exec(void *data,
                  bNodeStack **in,
                  bNodeStack **out)
 {
-  tex_output(node, execdata, in, out[0], &colorfn, data);
+  tex_output(node, execdata, in, out[0], &colorfn, static_cast<TexCallData *>(data));
 }
 
 void register_node_type_tex_at(void)
diff --git a/source/blender/nodes/texture/nodes/node_texture_bricks.c b/source/blender/nodes/texture/nodes/node_texture_bricks.cc
similarity index 96%
rename from source/blender/nodes/texture/nodes/node_texture_bricks.c
rename to source/blender/nodes/texture/nodes/node_texture_bricks.cc
index b68bf4fcb8d..abee596d229 100644
--- a/source/blender/nodes/texture/nodes/node_texture_bricks.c
+++ b/source/blender/nodes/texture/nodes/node_texture_bricks.cc
@@ -6,7 +6,7 @@
  */
 
 #include "NOD_texture.h"
-#include "node_texture_util.h"
+#include "node_texture_util.hh"
 
 #include <math.h>
 
@@ -96,7 +96,7 @@ static void exec(void *data,
                  bNodeStack **in,
                  bNodeStack **out)
 {
-  tex_output(node, execdata, in, out[0], &colorfn, data);
+  tex_output(node, execdata, in, out[0], &colorfn, static_cast<TexCallData *>(data));
 }
 
 void register_node_type_tex_bricks(void)
diff --git a/source/blender/nodes/texture/nodes/node_texture_checker.c b/source/blender/nodes/texture/nodes/node_texture_checker.cc
similarity index 93%
rename from source/blender/nodes/texture/nodes/node_texture_checker.c
rename to source/blender/nodes/texture/nodes/node_texture_checker.cc
index d66eb7e6953..c920ec77725 100644
--- a/source/blender/nodes/texture/nodes/node_texture_checker.c
+++ b/source/blender/nodes/texture/nodes/node_texture_checker.cc
@@ -6,7 +6,7 @@
  */
 
 #include "NOD_texture.h"
-#include "node_texture_util.h"
+#include "node_texture_util.hh"
 #include <math.h>
 
 static bNodeSocketTemplate inputs[] = {
@@ -47,7 +47,7 @@ static void exec(void *data,
                  bNodeStack **in,
                  bNodeStack **out)
 {
-  tex_output(node, execdata, in, out[0], &colorfn, data);
+  tex_output(node, execdata, in, out[0], &colorfn, static_cast<TexCallData *>(data));
 }
 
 void register_node_type_tex_checker(void)
diff --git a/source/blender/nodes/texture/nodes/node_texture_combine_color.c b/source/blender/n

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list