[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