[Bf-blender-cvs] [fc5a37b] master: Recent pydriver update missed setting 'curval'
Campbell Barton
noreply at git.blender.org
Mon Apr 25 07:26:04 CEST 2016
Commit: fc5a37b94ec55fa446395914e517c65aa3eef636
Author: Campbell Barton
Date: Mon Apr 25 15:25:32 2016 +1000
Branches: master
https://developer.blender.org/rBfc5a37b94ec55fa446395914e517c65aa3eef636
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
===================================================================
M source/blender/python/intern/bpy_driver.c
===================================================================
diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c
index f9c0982..9cd6fe3 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
More information about the Bf-blender-cvs
mailing list