[Bf-blender-cvs] [4c8746a9655] functions: Merge branch 'master' into functions
Jacques Lucke
noreply at git.blender.org
Wed Jul 31 18:45:29 CEST 2019
Commit: 4c8746a9655987c03d5cfc0b9cad9f78d88ff5d7
Author: Jacques Lucke
Date: Wed Jul 31 18:41:50 2019 +0200
Branches: functions
https://developer.blender.org/rB4c8746a9655987c03d5cfc0b9cad9f78d88ff5d7
Merge branch 'master' into functions
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/fcurve.c
index c240ff57213,9878bdf8a8a..fe67a0db671
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@@ -1744,44 -1742,9 +1744,44 @@@ static float dvar_eval_transChan(Channe
}
}
+/* evaluate 'function' driver variable */
+static float dvar_eval_function(ChannelDriver *UNUSED(driver), DriverVar *dvar)
+{
+ FnFunction fn = (FnFunction)get_driver_variable_function(dvar);
+ if (fn == NULL) {
+ return 0.0f;
+ }
+
+ FnTupleCallBody body = FN_tuple_call_get(fn);
+
+ FnTuple fn_in = FN_tuple_for_input(body);
+ FnTuple fn_out = FN_tuple_for_output(body);
+ FN_tuple_set_int32(fn_in, 0, (int64_t)dvar);
+
+ FN_tuple_call_invoke(body, fn_in, fn_out, __func__);
+ float result = FN_tuple_get_float(fn_out, 0);
+
+ FN_tuple_free(fn_in);
+ FN_tuple_free(fn_out);
+
+ return result;
+}
+
+struct bNodeTree;
+void *get_driver_variable_function(DriverVar *dvar)
+{
+ FnType float_ty = FN_type_borrow_float();
+ FnType int32_ty = FN_type_borrow_int32();
+ FnType inputs[] = {int32_ty, NULL};
+ FnType outputs[] = {float_ty, NULL};
+
+ struct bNodeTree *tree = (struct bNodeTree *)dvar->targets[0].id;
+ return FN_function_get_with_signature(tree, inputs, outputs);
+}
+
/* ......... */
- /* Table of Driver Varaiable Type Info Data */
+ /* Table of Driver Variable Type Info Data */
static DriverVarTypeInfo dvar_types[MAX_DVAR_TYPES] = {
BEGIN_DVAR_TYPEDEF(DVAR_TYPE_SINGLE_PROP) dvar_eval_singleProp, /* eval callback */
1, /* number of targets used */
More information about the Bf-blender-cvs
mailing list