[Bf-blender-cvs] [15a1fae] master: Fix T46712: Crash while rendering Freestyle scene

Sergey Sharybin noreply at git.blender.org
Sun Nov 8 03:30:12 CET 2015


Commit: 15a1faefe9b9963f4846502bd78dd36e228239cd
Author: Sergey Sharybin
Date:   Sun Nov 8 07:29:12 2015 +0500
Branches: master
https://developer.blender.org/rB15a1faefe9b9963f4846502bd78dd36e228239cd

Fix T46712: Crash while rendering Freestyle scene

The issue was in fact caused by missing initialization of motion blur shutter
curve for all new scenes when not using "Copy Scene Settings" option.

===================================================================

M	source/blender/blenkernel/intern/scene.c

===================================================================

diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 47f9aec..addf329 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -259,6 +259,8 @@ Scene *BKE_scene_copy(Scene *sce, int type)
 			}
 			new_srl = new_srl->next;
 		}
+
+		curvemapping_copy_data(&scen->r.mblur_shutter_curve, &sce->r.mblur_shutter_curve);
 	}
 
 	/* tool settings */
@@ -351,8 +353,6 @@ Scene *BKE_scene_copy(Scene *sce, int type)
 		scen->preview = BKE_previewimg_copy(sce->preview);
 	}
 
-	curvemapping_copy_data(&scen->r.mblur_shutter_curve, &sce->r.mblur_shutter_curve);
-
 	return scen;
 }
 
@@ -473,6 +473,7 @@ void BKE_scene_init(Scene *sce)
 	int a;
 	const char *colorspace_name;
 	SceneRenderView *srv;
+	CurveMapping *mblur_shutter_curve;
 
 	BLI_assert(MEMCMP_STRUCT_OFS_IS_ZERO(sce, id));
 
@@ -577,6 +578,14 @@ void BKE_scene_init(Scene *sce)
 	sce->r.line_thickness_mode = R_LINE_THICKNESS_ABSOLUTE;
 	sce->r.unit_line_thickness = 1.0f;
 
+	mblur_shutter_curve = &sce->r.mblur_shutter_curve;
+	curvemapping_set_defaults(mblur_shutter_curve, 1, 0.0f, 0.0f, 1.0f, 1.0f);
+	curvemapping_initialize(mblur_shutter_curve);
+	curvemap_reset(mblur_shutter_curve->cm,
+	               &mblur_shutter_curve->clipr,
+	               CURVE_PRESET_MAX,
+	               CURVEMAP_SLOPE_POS_NEG);
+
 	sce->toolsettings = MEM_callocN(sizeof(struct ToolSettings), "Tool Settings Struct");
 	sce->toolsettings->doublimit = 0.001;
 	sce->toolsettings->vgroup_weight = 1.0f;




More information about the Bf-blender-cvs mailing list