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 /source | |
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
Diffstat (limited to 'source')
-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 |