[Bf-blender-cvs] [cabcfb0] object_nodes: Use the common BVM_DEFINE_ALL_OPCODES macro to simplify node->opcode mapping.

Lukas Tönne noreply at git.blender.org
Wed May 25 17:36:08 CEST 2016


Commit: cabcfb0062aa7176a1e08bcbfab79680ffc4e10b
Author: Lukas Tönne
Date:   Wed May 25 12:10:58 2016 +0200
Branches: object_nodes
https://developer.blender.org/rBcabcfb0062aa7176a1e08bcbfab79680ffc4e10b

Use the common BVM_DEFINE_ALL_OPCODES macro to simplify node->opcode mapping.

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

M	source/blender/blenvm/compile/node_graph.cc

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

diff --git a/source/blender/blenvm/compile/node_graph.cc b/source/blender/blenvm/compile/node_graph.cc
index 3c6b052..d99256c 100644
--- a/source/blender/blenvm/compile/node_graph.cc
+++ b/source/blender/blenvm/compile/node_graph.cc
@@ -1269,123 +1269,15 @@ static void register_typedefs()
 
 OpCode get_opcode_from_node_type(const string &node)
 {
-	#define NODETYPE(name) \
-	if (node == STRINGIFY(name)) \
-		return OP_##name
-	
-	NODETYPE(VALUE_FLOAT);
-	NODETYPE(VALUE_FLOAT3);
-	NODETYPE(VALUE_FLOAT4);
-	NODETYPE(VALUE_INT);
-	NODETYPE(VALUE_MATRIX44);
-	NODETYPE(VALUE_STRING);
-	NODETYPE(VALUE_RNAPOINTER);
-	NODETYPE(VALUE_MESH);
-	NODETYPE(VALUE_DUPLIS);
-	
-	NODETYPE(RANGE_INT);
-	
-	NODETYPE(FLOAT_TO_INT);
-	NODETYPE(INT_TO_FLOAT);
-	NODETYPE(SET_FLOAT3);
-	NODETYPE(GET_ELEM_FLOAT3);
-	NODETYPE(SET_FLOAT4);
-	NODETYPE(GET_ELEM_FLOAT4);
-	NODETYPE(MATRIX44_TO_LOC);
-	NODETYPE(MATRIX44_TO_EULER);
-	NODETYPE(MATRIX44_TO_AXISANGLE);
-	NODETYPE(MATRIX44_TO_SCALE);
-	NODETYPE(LOC_TO_MATRIX44);
-	NODETYPE(EULER_TO_MATRIX44);
-	NODETYPE(AXISANGLE_TO_MATRIX44);
-	NODETYPE(SCALE_TO_MATRIX44);
-	
-	NODETYPE(ADD_FLOAT);
-	NODETYPE(SUB_FLOAT);
-	NODETYPE(MUL_FLOAT);
-	NODETYPE(DIV_FLOAT);
-	NODETYPE(SINE);
-	NODETYPE(COSINE);
-	NODETYPE(TANGENT);
-	NODETYPE(ARCSINE);
-	NODETYPE(ARCCOSINE);
-	NODETYPE(ARCTANGENT);
-	NODETYPE(POWER);
-	NODETYPE(LOGARITHM);
-	NODETYPE(MINIMUM);
-	NODETYPE(MAXIMUM);
-	NODETYPE(ROUND);
-	NODETYPE(LESS_THAN);
-	NODETYPE(GREATER_THAN);
-	NODETYPE(MODULO);
-	NODETYPE(ABSOLUTE);
-	NODETYPE(CLAMP_ONE);
-	NODETYPE(SQRT);
-	
-	NODETYPE(ADD_FLOAT3);
-	NODETYPE(SUB_FLOAT3);
-	NODETYPE(MUL_FLOAT3);
-	NODETYPE(DIV_FLOAT3);
-	NODETYPE(MUL_FLOAT3_FLOAT);
-	NODETYPE(DIV_FLOAT3_FLOAT);
-	NODETYPE(AVERAGE_FLOAT3);
-	NODETYPE(DOT_FLOAT3);
-	NODETYPE(CROSS_FLOAT3);
-	NODETYPE(NORMALIZE_FLOAT3);
-	NODETYPE(LENGTH_FLOAT3);
-	
-	NODETYPE(ADD_MATRIX44);
-	NODETYPE(SUB_MATRIX44);
-	NODETYPE(MUL_MATRIX44);
-	NODETYPE(MUL_MATRIX44_FLOAT);
-	NODETYPE(DIV_MATRIX44_FLOAT);
-	NODETYPE(NEGATE_MATRIX44);
-	NODETYPE(TRANSPOSE_MATRIX44);
-	NODETYPE(INVERT_MATRIX44);
-	NODETYPE(ADJOINT_MATRIX44);
-	NODETYPE(DETERMINANT_MATRIX44);
-	
-	NODETYPE(MUL_MATRIX44_FLOAT3);
-	NODETYPE(MUL_MATRIX44_FLOAT4);
-	
-	NODETYPE(MIX_RGB);
-	
-	NODETYPE(INT_TO_RANDOM);
-	NODETYPE(FLOAT_TO_RANDOM);
-	
-	NODETYPE(TEX_PROC_VORONOI);
-	NODETYPE(TEX_PROC_CLOUDS);
-	NODETYPE(TEX_PROC_WOOD);
-	NODETYPE(TEX_PROC_MUSGRAVE);
-	NODETYPE(TEX_PROC_MAGIC);
-	NODETYPE(TEX_PROC_STUCCI);
-	NODETYPE(TEX_PROC_MARBLE);
-	NODETYPE(TEX_PROC_DISTNOISE);
-	
-	NODETYPE(OBJECT_LOOKUP);
-	NODETYPE(OBJECT_TRANSFORM);
-	NODETYPE(OBJECT_FINAL_MESH);
-	
-	NODETYPE(EFFECTOR_TRANSFORM);
-	NODETYPE(EFFECTOR_CLOSEST_POINT);
-	
-	NODETYPE(MESH_LOAD);
-	NODETYPE(MESH_COMBINE);
-	NODETYPE(MESH_ARRAY);
-	NODETYPE(MESH_DISPLACE);
-	NODETYPE(MESH_BOOLEAN);
-	NODETYPE(MESH_CLOSEST_POINT);
-	
-	NODETYPE(CURVE_PATH);
-	
-	NODETYPE(IMAGE_SAMPLE);
-	
-	NODETYPE(MAKE_DUPLI);
-	NODETYPE(DUPLIS_COMBINE);
-	
-	#undef NODETYPE
-	
-	return OP_NOOP;
+#define DEF_OPCODE(op) \
+	if (node == STRINGIFY(op)) \
+		return OP_##op; \
+	else
+	
+	BVM_DEFINE_ALL_OPCODES
+		return OP_NOOP;
+	
+#undef DEF_OPCODE
 }
 
 static mesh_ptr __empty_mesh__;




More information about the Bf-blender-cvs mailing list