Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2013-09-09 22:39:51 +0400
committerAntony Riakiotakis <kalast@gmail.com>2013-09-09 22:39:51 +0400
commit00641bb237d32c341134e22201459aa74ea2e370 (patch)
tree6ba9c1e0bd2cf87ecbf0ccadfdd554eefba249b9 /source/blender/blenkernel/intern/colortools.c
parent97d250fa65bd0472e61fa8cab23cfdce0422a9ba (diff)
Attempt fix for #36688.
Curves may not be not initialized when called from python. C code explicilty says that curvemapping_initialize should be called prior to evaluating the curve, however the curve clip rectangle is not available when calling evaluation on the curvemap. This is not possible unless we force the evaluation on CurveMapping level, not on CurveMap level. For now just pass a rectangle with the x boundary values of the curvemap for evaluation to avoid the crash.
Diffstat (limited to 'source/blender/blenkernel/intern/colortools.c')
-rw-r--r--source/blender/blenkernel/intern/colortools.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c
index 7f94f365925..063fc2eccab 100644
--- a/source/blender/blenkernel/intern/colortools.c
+++ b/source/blender/blenkernel/intern/colortools.c
@@ -878,6 +878,19 @@ void curvemapping_initialize(CurveMapping *cumap)
}
}
+void curvemap_initialize(CurveMap *cuma)
+{
+ if (cuma->table == NULL) {
+ rctf clipr;
+ /* clip rectangle is not available here, but we can use a temporary
+ * rectangle with the same min/max values */
+ clipr.xmin = cuma->mintable;
+ clipr.xmax = cuma->maxtable;
+
+ curvemap_make_table(cuma, &clipr);
+ }
+}
+
void curvemapping_table_RGBA(const CurveMapping *cumap, float **array, int *size)
{
int a;