[Bf-blender-cvs] [f9e0d51e318] master: Compositor: File output node sockets

Jeroen Bakker noreply at git.blender.org
Tue Jun 18 11:11:43 CEST 2019


Commit: f9e0d51e318e513fc4ce72c2acdfbded647b4a23
Author: Jeroen Bakker
Date:   Fri May 24 14:08:21 2019 +0200
Branches: master
https://developer.blender.org/rBf9e0d51e318e513fc4ce72c2acdfbded647b4a23

Compositor: File output node sockets

When using RNA to alter the type of socket only the type was changed.
the typeinfo was not updated. Internally the File Output Node used RNA
to update the sockettype. making the socket invalid. When users save the
file and reopened the typeinfo was used. Also the color of the node was
determined via the typeinfo.

Another thing that happened was that the socket conversion was ignored
when empty node groups were present. The empty node groups were
optimized away before the needed data conversion was determined.

Reviewed By: brecht

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

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

M	source/blender/compositor/intern/COM_NodeOperationBuilder.cpp
M	source/blender/makesrna/intern/rna_nodetree.c

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

diff --git a/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp b/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp
index 2b17fc0e5f7..198385649da 100644
--- a/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp
+++ b/source/blender/compositor/intern/COM_NodeOperationBuilder.cpp
@@ -100,10 +100,10 @@ void NodeOperationBuilder::convertToOperations(ExecutionSystem *system)
 
   add_operation_input_constants();
 
-  resolve_proxies();
-
   add_datatype_conversions();
 
+  resolve_proxies();
+
   determineResolutions();
 
   /* surround complex ops with read/write buffer */
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 6d463c7519c..5f156864479 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -2121,6 +2121,15 @@ static PointerRNA rna_NodeSocket_node_get(PointerRNA *ptr)
   return r_ptr;
 }
 
+static void rna_NodeSocket_type_set(PointerRNA *ptr, int value)
+{
+  bNodeTree *ntree = (bNodeTree *)ptr->id.data;
+  bNodeSocket *sock = (bNodeSocket *)ptr->data;
+  bNode *node;
+  nodeFindNode(ntree, sock, &node, NULL);
+  nodeModifySocketType(ntree, node, sock, value, 0);
+}
+
 static void rna_NodeSocket_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
 {
   bNodeTree *ntree = (bNodeTree *)ptr->id.data;
@@ -7759,6 +7768,7 @@ static void rna_def_node_socket(BlenderRNA *brna)
   RNA_def_property_enum_sdna(prop, NULL, "type");
   RNA_def_property_enum_items(prop, node_socket_type_items);
   RNA_def_property_enum_default(prop, SOCK_FLOAT);
+  RNA_def_property_enum_funcs(prop, NULL, "rna_NodeSocket_type_set", NULL);
   RNA_def_property_ui_text(prop, "Type", "Data type");
   RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_NodeSocket_update");



More information about the Bf-blender-cvs mailing list