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:
Diffstat (limited to 'source/blender/nodes')
-rw-r--r--source/blender/nodes/composite/node_composite_tree.c34
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_cryptomatte.c4
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_image.c31
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_moviedistortion.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_outputFile.c4
-rw-r--r--source/blender/nodes/intern/node_util.c6
-rw-r--r--source/blender/nodes/intern/node_util.h4
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_script.c4
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_output.c2
10 files changed, 58 insertions, 35 deletions
diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c
index 43a70a62350..89349d91f94 100644
--- a/source/blender/nodes/composite/node_composite_tree.c
+++ b/source/blender/nodes/composite/node_composite_tree.c
@@ -95,15 +95,17 @@ static void free_cache(bNodeTree *ntree)
}
/* local tree then owns all compbufs */
-static void localize(bNodeTree *UNUSED(localtree), bNodeTree *ntree)
+static void localize(bNodeTree *localtree, bNodeTree *ntree)
{
- bNode *node;
- bNodeSocket *sock;
- for (node = ntree->nodes.first; node; node = node->next) {
+ bNode *node = ntree->nodes.first;
+ bNode *local_node = localtree->nodes.first;
+ while (node != NULL) {
+ local_node->original = node;
+
/* ensure new user input gets handled ok */
node->need_exec = 0;
- node->new_node->original = node;
+ local_node->original = node;
/* move over the compbufs */
/* right after ntreeCopyTree() oldsock pointers are valid */
@@ -111,19 +113,29 @@ static void localize(bNodeTree *UNUSED(localtree), bNodeTree *ntree)
if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
if (node->id) {
if (node->flag & NODE_DO_OUTPUT) {
- node->new_node->id = (ID *)node->id;
+ local_node->id = (ID *)node->id;
}
else {
- node->new_node->id = NULL;
+ local_node->id = NULL;
}
}
}
- for (sock = node->outputs.first; sock; sock = sock->next) {
- sock->new_sock->cache = sock->cache;
- sock->cache = NULL;
- sock->new_sock->new_sock = sock;
+ bNodeSocket *output_sock = node->outputs.first;
+ bNodeSocket *local_output_sock = local_node->outputs.first;
+ while (output_sock != NULL) {
+ local_output_sock->cache = output_sock->cache;
+ output_sock->cache = NULL;
+ /* This is actually link to original: someone was just lazy enough and tried to save few
+ * bytes in the cost of readability. */
+ local_output_sock->new_sock = output_sock;
+
+ output_sock = output_sock->next;
+ local_output_sock = local_output_sock->next;
}
+
+ node = node->next;
+ local_node = local_node->next;
}
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c
index 68a7e8d1589..8d05c18621f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c
@@ -273,7 +273,9 @@ static void node_free_cryptomatte(bNode *node)
}
}
-static void node_copy_cryptomatte(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node)
+static void node_copy_cryptomatte(bNodeTree *UNUSED(dest_ntree),
+ bNode *dest_node,
+ const bNode *src_node)
{
NodeCryptomatte *src_nc = src_node->storage;
NodeCryptomatte *dest_nc = MEM_dupallocN(src_nc);
diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c
index e1e23b843a1..79db436ec4e 100644
--- a/source/blender/nodes/composite/nodes/node_composite_image.c
+++ b/source/blender/nodes/composite/nodes/node_composite_image.c
@@ -432,15 +432,17 @@ static void node_composit_free_image(bNode *node)
static void node_composit_copy_image(bNodeTree *UNUSED(dest_ntree),
bNode *dest_node,
- bNode *src_node)
+ const bNode *src_node)
{
- bNodeSocket *sock;
-
dest_node->storage = MEM_dupallocN(src_node->storage);
- /* copy extra socket info */
- for (sock = src_node->outputs.first; sock; sock = sock->next) {
- sock->new_sock->storage = MEM_dupallocN(sock->storage);
+ const bNodeSocket *src_output_sock = src_node->outputs.first;
+ bNodeSocket *dest_output_sock = dest_node->outputs.first;
+ while (dest_output_sock != NULL) {
+ dest_output_sock->storage = MEM_dupallocN(src_output_sock->storage);
+
+ src_output_sock = src_output_sock->next;
+ dest_output_sock = dest_output_sock->next;
}
}
@@ -556,16 +558,17 @@ static void node_composit_free_rlayers(bNode *node)
}
static void node_composit_copy_rlayers(bNodeTree *UNUSED(dest_ntree),
- bNode *UNUSED(dest_node),
- bNode *src_node)
+ bNode *dest_node,
+ const bNode *src_node)
{
- bNodeSocket *sock;
-
/* copy extra socket info */
- for (sock = src_node->outputs.first; sock; sock = sock->next) {
- if (sock->storage) {
- sock->new_sock->storage = MEM_dupallocN(sock->storage);
- }
+ const bNodeSocket *src_output_sock = src_node->outputs.first;
+ bNodeSocket *dest_output_sock = dest_node->outputs.first;
+ while (dest_output_sock != NULL) {
+ dest_output_sock->storage = MEM_dupallocN(src_output_sock->storage);
+
+ src_output_sock = src_output_sock->next;
+ dest_output_sock = dest_output_sock->next;
}
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c
index d4462d937ad..dbdd65c5976 100644
--- a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c
+++ b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c
@@ -64,7 +64,7 @@ static void storage_free(bNode *node)
node->storage = NULL;
}
-static void storage_copy(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node)
+static void storage_copy(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
{
if (src_node->storage) {
dest_node->storage = BKE_tracking_distortion_copy(src_node->storage);
diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
index c700aee1bc1..faf9e20da51 100644
--- a/source/blender/nodes/composite/nodes/node_composite_outputFile.c
+++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
@@ -228,7 +228,9 @@ static void free_output_file(bNode *node)
MEM_freeN(node->storage);
}
-static void copy_output_file(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node)
+static void copy_output_file(bNodeTree *UNUSED(dest_ntree),
+ bNode *dest_node,
+ const bNode *src_node)
{
bNodeSocket *src_sock, *dest_sock;
diff --git a/source/blender/nodes/intern/node_util.c b/source/blender/nodes/intern/node_util.c
index 6ad1c9b6925..2ab68e2f7cf 100644
--- a/source/blender/nodes/intern/node_util.c
+++ b/source/blender/nodes/intern/node_util.c
@@ -57,12 +57,14 @@ void node_free_standard_storage(bNode *node)
}
}
-void node_copy_curves(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node)
+void node_copy_curves(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, const bNode *src_node)
{
dest_node->storage = curvemapping_copy(src_node->storage);
}
-void node_copy_standard_storage(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node)
+void node_copy_standard_storage(bNodeTree *UNUSED(dest_ntree),
+ bNode *dest_node,
+ const bNode *src_node)
{
dest_node->storage = MEM_dupallocN(src_node->storage);
}
diff --git a/source/blender/nodes/intern/node_util.h b/source/blender/nodes/intern/node_util.h
index ec5cd074922..7eef70db498 100644
--- a/source/blender/nodes/intern/node_util.h
+++ b/source/blender/nodes/intern/node_util.h
@@ -58,10 +58,10 @@ extern void node_free_standard_storage(struct bNode *node);
extern void node_copy_curves(struct bNodeTree *dest_ntree,
struct bNode *dest_node,
- struct bNode *src_node);
+ const struct bNode *src_node);
extern void node_copy_standard_storage(struct bNodeTree *dest_ntree,
struct bNode *dest_node,
- struct bNode *src_node);
+ const struct bNode *src_node);
extern void *node_initexec_curves(struct bNodeExecContext *context,
struct bNode *node,
bNodeInstanceKey key);
diff --git a/source/blender/nodes/shader/nodes/node_shader_script.c b/source/blender/nodes/shader/nodes/node_shader_script.c
index 29d3fd3ba67..42ab272de0e 100644
--- a/source/blender/nodes/shader/nodes/node_shader_script.c
+++ b/source/blender/nodes/shader/nodes/node_shader_script.c
@@ -44,7 +44,9 @@ static void node_free_script(bNode *node)
}
}
-static void node_copy_script(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bNode *src_node)
+static void node_copy_script(bNodeTree *UNUSED(dest_ntree),
+ bNode *dest_node,
+ const bNode *src_node)
{
NodeShaderScript *src_nss = src_node->storage;
NodeShaderScript *dest_nss = MEM_dupallocN(src_nss);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c b/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c
index 561f39716b9..dbf79ec1f1d 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_pointdensity.c
@@ -57,7 +57,7 @@ static void node_shader_free_tex_pointdensity(bNode *node)
static void node_shader_copy_tex_pointdensity(bNodeTree *UNUSED(dest_ntree),
bNode *dest_node,
- bNode *src_node)
+ const bNode *src_node)
{
dest_node->storage = MEM_dupallocN(src_node->storage);
NodeShaderTexPointDensity *point_density = dest_node->storage;
diff --git a/source/blender/nodes/texture/nodes/node_texture_output.c b/source/blender/nodes/texture/nodes/node_texture_output.c
index f9f91e65912..cdacb05153d 100644
--- a/source/blender/nodes/texture/nodes/node_texture_output.c
+++ b/source/blender/nodes/texture/nodes/node_texture_output.c
@@ -154,7 +154,7 @@ static void init(bNodeTree *UNUSED(ntree), bNode *node)
assign_index(node);
}
-static void copy(bNodeTree *dest_ntree, bNode *dest_node, bNode *src_node)
+static void copy(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node)
{
node_copy_standard_storage(dest_ntree, dest_node, src_node);
unique_name(dest_node);