diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-11-08 05:29:12 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-11-08 05:29:12 +0300 |
commit | 15a1faefe9b9963f4846502bd78dd36e228239cd (patch) | |
tree | d7accd63f889321caefe36f33b19fc7669b705c9 /source/blender/blenkernel/intern/scene.c | |
parent | 8c3538c3e7f816b43cb8cf33570e4082d5bec5ec (diff) |
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.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 47f9aecfc63..addf32919a3 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; |