[Bf-blender-cvs] [13329d9] object_nodes: Reordered data types a bit, so mesh and other complex types are at the end.

Lukas Tönne noreply at git.blender.org
Wed Dec 23 12:47:33 CET 2015


Commit: 13329d9a632973a17aab11218b57e93b139d9ccd
Author: Lukas Tönne
Date:   Tue Dec 22 12:02:19 2015 +0100
Branches: object_nodes
https://developer.blender.org/rB13329d9a632973a17aab11218b57e93b139d9ccd

Reordered data types a bit, so mesh and other complex types are at the end.

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

M	source/blender/blenvm/BVM_types.h
M	source/blender/blenvm/bvm/bvm_eval.cc
M	source/blender/blenvm/bvm/bvm_opcode.h
M	source/blender/blenvm/compile/bvm_codegen.cc
M	source/blender/blenvm/compile/bvm_nodegraph.cc
M	source/blender/blenvm/util/bvm_util_typedesc.h
M	source/blender/makesrna/intern/rna_blenvm.c

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

diff --git a/source/blender/blenvm/BVM_types.h b/source/blender/blenvm/BVM_types.h
index ce9cfb8..1291c71 100644
--- a/source/blender/blenvm/BVM_types.h
+++ b/source/blender/blenvm/BVM_types.h
@@ -42,9 +42,9 @@ typedef enum BVMType {
 	BVM_FLOAT4,
 	BVM_INT,
 	BVM_MATRIX44,
+	BVM_STRING,
 	BVM_POINTER,
 	BVM_MESH,
-	BVM_STRING,
 } BVMType;
 
 typedef enum BVMBufferType {
diff --git a/source/blender/blenvm/bvm/bvm_eval.cc b/source/blender/blenvm/bvm/bvm_eval.cc
index e9d0c14..da7d2a9 100644
--- a/source/blender/blenvm/bvm/bvm_eval.cc
+++ b/source/blender/blenvm/bvm/bvm_eval.cc
@@ -324,6 +324,12 @@ void EvalContext::eval_instructions(const EvalGlobals *globals, const Function *
 				eval_op_value_matrix44(stack, value, offset);
 				break;
 			}
+			case OP_VALUE_STRING: {
+				const char *value = fn->read_string(&instr);
+				StackIndex offset = fn->read_stack_index(&instr);
+				eval_op_value_string(stack, value, offset);
+				break;
+			}
 			case OP_VALUE_POINTER: {
 				StackIndex offset = fn->read_stack_index(&instr);
 				eval_op_value_pointer(stack, offset);
@@ -334,12 +340,6 @@ void EvalContext::eval_instructions(const EvalGlobals *globals, const Function *
 				eval_op_value_mesh(stack, offset);
 				break;
 			}
-			case OP_VALUE_STRING: {
-				const char *value = fn->read_string(&instr);
-				StackIndex offset = fn->read_stack_index(&instr);
-				eval_op_value_string(stack, value, offset);
-				break;
-			}
 			case OP_FLOAT_TO_INT: {
 				StackIndex offset_from = fn->read_stack_index(&instr);
 				StackIndex offset_to = fn->read_stack_index(&instr);
diff --git a/source/blender/blenvm/bvm/bvm_opcode.h b/source/blender/blenvm/bvm/bvm_opcode.h
index 9f7e682..33042ea 100644
--- a/source/blender/blenvm/bvm/bvm_opcode.h
+++ b/source/blender/blenvm/bvm/bvm_opcode.h
@@ -41,9 +41,9 @@ enum OpCode {
 	OP_VALUE_FLOAT4,
 	OP_VALUE_INT,
 	OP_VALUE_MATRIX44,
+	OP_VALUE_STRING,
 	OP_VALUE_POINTER,
 	OP_VALUE_MESH,
-	OP_VALUE_STRING,
 	
 	OP_FLOAT_TO_INT,
 	OP_INT_TO_FLOAT,
diff --git a/source/blender/blenvm/compile/bvm_codegen.cc b/source/blender/blenvm/compile/bvm_codegen.cc
index b9a7887..1855370 100644
--- a/source/blender/blenvm/compile/bvm_codegen.cc
+++ b/source/blender/blenvm/compile/bvm_codegen.cc
@@ -333,19 +333,22 @@ void BVMCompiler::push_constant(const Value *value) const
 			push_matrix44(m);
 			break;
 		}
+		case BVM_STRING: {
+			const char *s = "";
+			value->get(&s);
+			
+			push_string(s);
+			break;
+		}
 		case BVM_POINTER: {
 			/* POINTER type can not be stored as a constant */
 			break;
 		}
-		case BVM_MESH:
+		
+		case BVM_MESH: {
 			/* MESH type can not be stored as a constant */
 			break;
-		case BVM_STRING:
-			const char *s = "";
-			value->get(&s);
-			
-			push_string(s);
-			break;
+		}
 	}
 }
 
@@ -397,23 +400,26 @@ void BVMCompiler::codegen_value(const Value *value, StackIndex offset) const
 			push_stack_index(offset);
 			break;
 		}
+		case BVM_STRING: {
+			const char *s = "";
+			value->get(&s);
+			
+			push_opcode(OP_VALUE_STRING);
+			push_string(s);
+			push_stack_index(offset);
+			break;
+		}
 		case BVM_POINTER: {
 			push_opcode(OP_VALUE_POINTER);
 			push_stack_index(offset);
 			break;
 		}
-		case BVM_MESH:
+		
+		case BVM_MESH: {
 			push_opcode(OP_VALUE_MESH);
 			push_stack_index(offset);
 			break;
-		case BVM_STRING:
-			const char *s = "";
-			value->get(&s);
-			
-			push_opcode(OP_VALUE_STRING);
-			push_string(s);
-			push_stack_index(offset);
-			break;
+		}
 	}
 }
 
@@ -425,8 +431,8 @@ static OpCode ptr_init_opcode(const TypeDesc &typedesc)
 		case BVM_FLOAT4:
 		case BVM_INT:
 		case BVM_MATRIX44:
-		case BVM_POINTER:
 		case BVM_STRING:
+		case BVM_POINTER:
 			return OP_NOOP;
 		
 		case BVM_MESH:
@@ -443,8 +449,8 @@ static OpCode ptr_release_opcode(const TypeDesc &typedesc)
 		case BVM_FLOAT4:
 		case BVM_INT:
 		case BVM_MATRIX44:
-		case BVM_POINTER:
 		case BVM_STRING:
+		case BVM_POINTER:
 			return OP_NOOP;
 		
 		case BVM_MESH:
diff --git a/source/blender/blenvm/compile/bvm_nodegraph.cc b/source/blender/blenvm/compile/bvm_nodegraph.cc
index 6dee415..63b7e0e 100644
--- a/source/blender/blenvm/compile/bvm_nodegraph.cc
+++ b/source/blender/blenvm/compile/bvm_nodegraph.cc
@@ -602,9 +602,9 @@ SocketPair NodeGraph::add_proxy(const TypeDesc &typedesc, Value *default_value)
 				case BVM_FLOAT4: node = add_node("PASS_FLOAT4"); break;
 				case BVM_INT: node = add_node("PASS_INT"); break;
 				case BVM_MATRIX44: node = add_node("PASS_MATRIX44"); break;
-				case BVM_MESH: node = add_node("PASS_MESH"); break;
-				case BVM_POINTER: node = add_node("PASS_POINTER"); break;
 				case BVM_STRING: node = add_node("PASS_STRING"); break;
+				case BVM_POINTER: node = add_node("PASS_POINTER"); break;
+				case BVM_MESH: node = add_node("PASS_MESH"); break;
 			}
 			break;
 		case BVM_BUFFER_ARRAY:
@@ -614,9 +614,9 @@ SocketPair NodeGraph::add_proxy(const TypeDesc &typedesc, Value *default_value)
 				case BVM_FLOAT4: node = add_node("PASS_FLOAT4_ARRAY"); break;
 				case BVM_INT: node = add_node("PASS_INT_ARRAY"); break;
 				case BVM_MATRIX44: node = add_node("PASS_MATRIX44_ARRAY"); break;
-				case BVM_MESH: node = add_node("PASS_MESH_ARRAY"); break;
-				case BVM_POINTER: node = add_node("PASS_POINTER_ARRAY"); break;
 				case BVM_STRING: node = add_node("PASS_STRING_ARRAY"); break;
+				case BVM_POINTER: node = add_node("PASS_POINTER_ARRAY"); break;
+				case BVM_MESH: node = add_node("PASS_MESH_ARRAY"); break;
 			}
 			break;
 	}
@@ -634,9 +634,9 @@ SocketPair NodeGraph::add_value_node(Value *value)
 		case BVM_FLOAT4: node = add_node("VALUE_FLOAT4"); break;
 		case BVM_INT: node = add_node("VALUE_INT"); break;
 		case BVM_MATRIX44: node = add_node("VALUE_MATRIX44"); break;
+		case BVM_STRING: node = add_node("VALUE_STRING"); break;
 		case BVM_POINTER: node = add_node("VALUE_POINTER"); break;
 		case BVM_MESH: node = add_node("VALUE_MESH"); break;
-		case BVM_STRING: node = add_node("VALUE_STRING"); break;
 	}
 	if (node)
 		node->set_input_value("value", value);
@@ -652,9 +652,9 @@ SocketPair NodeGraph::add_argument_node(const TypeDesc &typedesc)
 		case BVM_FLOAT4: node = add_node("ARG_FLOAT4"); break;
 		case BVM_INT: node = add_node("ARG_INT"); break;
 		case BVM_MATRIX44: node = add_node("ARG_MATRIX44"); break;
+		case BVM_STRING: node = add_node("ARG_STRING"); break;
 		case BVM_POINTER: node = add_node("ARG_POINTER"); break;
 		case BVM_MESH: node = add_node("ARG_MESH"); break;
-		case BVM_STRING: node = add_node("ARG_STRING"); break;
 	}
 	return SocketPair(node, "value");
 }
@@ -791,9 +791,9 @@ OpCode get_opcode_from_node_type(const string &node)
 	NODETYPE(VALUE_FLOAT4);
 	NODETYPE(VALUE_INT);
 	NODETYPE(VALUE_MATRIX44);
+	NODETYPE(VALUE_STRING);
 	NODETYPE(VALUE_POINTER);
 	NODETYPE(VALUE_MESH);
-	NODETYPE(VALUE_STRING);
 	
 	NODETYPE(FLOAT_TO_INT);
 	NODETYPE(INT_TO_FLOAT);
@@ -918,6 +918,10 @@ static void register_opcode_node_types()
 	nt->add_input("value", TYPE_MATRIX44, matrix44::identity());
 	nt->add_output("value", TYPE_MATRIX44);
 	
+	nt = NodeGraph::add_pass_node_type("PASS_STRING");
+	nt->add_input("value", TYPE_STRING, "");
+	nt->add_output("value", TYPE_STRING);
+	
 	nt = NodeGraph::add_pass_node_type("PASS_POINTER");
 	nt->add_input("value", TYPE_POINTER, PointerRNA_NULL);
 	nt->add_output("value", TYPE_POINTER);
@@ -926,10 +930,6 @@ static void register_opcode_node_types()
 	nt->add_input("value", TYPE_MESH, __empty_mesh__);
 	nt->add_output("value", TYPE_MESH);
 	
-	nt = NodeGraph::add_pass_node_type("PASS_STRING");
-	nt->add_input("value", TYPE_STRING, "");
-	nt->add_output("value", TYPE_STRING);
-	
 	nt = NodeGraph::add_pass_node_type("PASS_FLOAT_ARRAY");
 	nt->add_input("value", TYPE_FLOAT_ARRAY, array<BVM_FLOAT>());
 	nt->add_output("value", TYPE_FLOAT_ARRAY);
@@ -950,15 +950,15 @@ static void register_opcode_node_types()
 	nt->add_input("value", TYPE_FLOAT_ARRAY, array<BVM_FLOAT>());
 	nt->add_output("value", TYPE_FLOAT_ARRAY);
 	
-	nt = NodeGraph::add_pass_node_type("PASS_POINTER_ARRAY");
+	nt = NodeGraph::add_pass_node_type("PASS_STRING_ARRAY");
 	nt->add_input("value", TYPE_FLOAT_ARRAY, array<BVM_FLOAT>());
 	nt->add_output("value", TYPE_FLOAT_ARRAY);
 	
-	nt = NodeGraph::add_pass_node_type("PASS_MESH_ARRAY");
+	nt = NodeGraph::add_pass_node_type("PASS_POINTER_ARRAY");
 	nt->add_input("value", TYPE_FLOAT_ARRAY, array<BVM_FLOAT>());
 	nt->add_output("value", TYPE_FLOAT_ARRAY);
 	
-	nt = NodeGraph::add_pass_node_type("PASS_STRING_ARRAY");
+	nt = NodeGraph::add_pass_node_type("PASS_MESH_ARRAY");
 	nt->add_input("value", TYPE_FLOAT_ARRAY, array<BVM_FLOAT>());
 	nt->add_output("value", TYPE_FLOAT_ARRAY);
 	
@@ -977,15 +977,15 @@ static void register_opcode_node_types()
 	nt = NodeGraph::add_function_node_type("ARG_MATRIX44");
 	nt->add_output("value", TYPE_MATRIX44);
 	
+	nt = NodeGraph::add_function_node_type("ARG_STRING");
+	nt->add_output("value", TYPE_STRING);
+	
 	nt = NodeGraph::add_function_node_type("ARG_POINTER");
 	nt->add_output("value", TYPE_POINTER);
 	
 	nt = NodeGraph::add_function_node_type("ARG_MESH");
 	nt->add_output("value", TYPE_MESH);
 	
-	nt = NodeGraph::add_function_node_type("ARG_STRING");
-	nt->add_output("value", TYPE_STRING);
-	
 	nt = NodeGraph::add_function_node_type("VALUE_FLOAT");
 	nt->add_input("value", TYPE_FLOAT, 0.0f, INPUT_CONSTANT);
 	nt->add_output("value", TYPE_FLOAT);
@@ -1006,6 +1006,10 @@ static void register_opcode_node_types()
 	nt->add_input("value", TYPE_MATRIX44, matrix44::identity(), INPUT_CONSTANT);
 	nt->add_output("value", TYPE_MATRIX44);
 	
+	nt = NodeGraph::add_function_node_type("VALUE_STRING");
+	nt->add_input("value", TYPE_STRING, "", INPUT_CONSTANT);
+	nt->add_output("value", TYPE_STRING);
+	
 	nt = NodeGraph::add_function_node_type("VALUE_POINTER");
 	nt->add_input("value", TYPE_POINTER, PointerRNA_NULL, INPUT_CONSTANT);
 	nt->add_output("value", TYPE_POINTER);
@@ -1014,10 +1018,6 @@ static void register_opcode_node_types()
 	nt->add_input("value", TYPE_MESH, __empty_mesh__, INPUT_CONSTANT);
 	nt->add_output("value", TYPE_MESH);
 	
-	nt = NodeGraph::add_function_node_type("VALUE_STRING");
-	nt->add_input("value", TYPE_STRING, "", INPUT_CONSTANT);
-	nt->add_output("value", TYPE_STRING);
-	
 	nt 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list