diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2020-01-19 12:44:34 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2020-01-24 20:48:02 +0300 |
commit | fc1f5bded46afbb9b16fffe9e4c7f7c212566255 (patch) | |
tree | e4beb4c3119d87a668709b67e586ca8a1d9f0804 /source/blender/blenlib/BLI_expr_pylike_eval.h | |
parent | 300f937aec5d0be7b6003a5e835cd2a33bd52d64 (diff) |
Depsgraph: fix false positive time dependencies for simple drivers.
The dependency graph has to know whether a driver must be re-evaluated
every frame due to a dependency on the current frame number. For python
drivers it was using a heuristic based on searching for certain sub-
strings in the expression, notably including '('.
When the expression is actually evaluated using Python, this can't be
easily improved; however if the Simple Expression evaluator is used,
this check can be done precisely by accessing the parsed data.
Differential Revision: https://developer.blender.org/D6624
Diffstat (limited to 'source/blender/blenlib/BLI_expr_pylike_eval.h')
-rw-r--r-- | source/blender/blenlib/BLI_expr_pylike_eval.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_expr_pylike_eval.h b/source/blender/blenlib/BLI_expr_pylike_eval.h index b8bf88dd85b..1db91ea4205 100644 --- a/source/blender/blenlib/BLI_expr_pylike_eval.h +++ b/source/blender/blenlib/BLI_expr_pylike_eval.h @@ -45,6 +45,7 @@ typedef enum eExprPyLike_EvalStatus { void BLI_expr_pylike_free(struct ExprPyLike_Parsed *expr); bool BLI_expr_pylike_is_valid(struct ExprPyLike_Parsed *expr); bool BLI_expr_pylike_is_constant(struct ExprPyLike_Parsed *expr); +bool BLI_expr_pylike_is_using_param(struct ExprPyLike_Parsed *expr, int index); ExprPyLike_Parsed *BLI_expr_pylike_parse(const char *expression, const char **param_names, int param_names_len); |