diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-04-25 08:25:32 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-04-25 08:27:51 +0300 |
commit | fc5a37b94ec55fa446395914e517c65aa3eef636 (patch) | |
tree | 013bafc002abc2abef50cafaf8741448093d194c | |
parent | 45835e227e3770ed35b37fe874611e07fdb229db (diff) |
Recent pydriver update missed setting 'curval'
Using PyObject's for drivers (82b0a9e36) still needs to set the 'current value'
for debug info to display in the UI.
Resolves T48251
-rw-r--r-- | source/blender/python/intern/bpy_driver.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c index f9c0982a4c3..9cd6fe3da91 100644 --- a/source/blender/python/intern/bpy_driver.c +++ b/source/blender/python/intern/bpy_driver.c @@ -273,6 +273,22 @@ float BPY_driver_exec(ChannelDriver *driver, const float evaltime) if (driver_arg == NULL) { driver_arg = PyFloat_FromDouble(0.0); + dvar->curval = 0.0f; + } + else { + /* no need to worry about overflow here, values from RNA are within limits. */ + if (PyFloat_CheckExact(driver_arg)) { + dvar->curval = (float)PyFloat_AsDouble(driver_arg); + } + else if (PyLong_CheckExact(driver_arg)) { + dvar->curval = (float)PyLong_AsLong(driver_arg); + } + else if (PyBool_Check(driver_arg)) { + dvar->curval = (driver_arg == Py_True); + } + else { + dvar->curval = 0.0f; + } } } else |