Fix crash with custom input curves versioning
This commit is contained in:
parent
c237a48104
commit
601d896fc6
|
@ -270,14 +270,16 @@ static void brush_reset_input_curve(CurveMapping *cumap)
|
|||
|
||||
void BKE_brush_default_input_curves_set(Brush *brush)
|
||||
{
|
||||
if (!brush->pressure_size_curve) {
|
||||
brush->pressure_size_curve = BKE_curvemapping_add(1, 0, 0, 1, 1);
|
||||
if (brush->pressure_size_curve) {
|
||||
BKE_curvemapping_free(brush->pressure_size_curve);
|
||||
}
|
||||
brush->pressure_size_curve = BKE_curvemapping_add(1, 0, 0, 1, 1);
|
||||
brush_reset_input_curve(brush->pressure_size_curve);
|
||||
|
||||
if (!brush->pressure_strength_curve) {
|
||||
brush->pressure_strength_curve = BKE_curvemapping_add(1, 0, 0, 1, 1);
|
||||
if (brush->pressure_strength_curve) {
|
||||
BKE_curvemapping_free(brush->pressure_strength_curve);
|
||||
}
|
||||
brush->pressure_strength_curve = BKE_curvemapping_add(1, 0, 0, 1, 1);
|
||||
brush_reset_input_curve(brush->pressure_strength_curve);
|
||||
}
|
||||
|
||||
|
|
|
@ -1491,12 +1491,12 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
|
|||
*/
|
||||
{
|
||||
/* Keep this block, even when empty. */
|
||||
LISTBASE_FOREACH (Brush *, br, &bmain->brushes) {
|
||||
if (!br->pressure_size_curve || !br->pressure_strength_curve) {
|
||||
if (!DNA_struct_elem_find(fd->filesdna, "Brush", "CurveMapping", "*pressure_size_curve")) {
|
||||
LISTBASE_FOREACH (Brush *, br, &bmain->brushes) {
|
||||
BKE_brush_default_input_curves_set(br);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!DNA_struct_find(fd->filesdna, "NodeSetAlpha")) {
|
||||
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
|
||||
bNodeTree *nodetree = scene->nodetree;
|
||||
|
|
|
@ -2310,8 +2310,8 @@ static float brush_strength(const Sculpt *sd,
|
|||
|
||||
float pressure = BKE_brush_use_alpha_pressure(brush) ? cache->pressure : 1.0f;
|
||||
if (brush->pressure_strength_curve) {
|
||||
BKE_curvemapping_init(brush->pressure_strength_curve);
|
||||
}
|
||||
BKE_curvemapping_init(brush->pressure_strength_curve);
|
||||
pressure = BKE_brush_use_alpha_pressure(brush) && brush->pressure_strength_curve ?
|
||||
BKE_curvemapping_evaluateF(brush->pressure_strength_curve, 0, cache->pressure) :
|
||||
pressure;
|
||||
|
|
Loading…
Reference in New Issue