From 970a4c7cc4ce50ea204f7525ebd160b93bbcd0a7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 5 Jul 2013 07:53:22 +0000 Subject: [PATCH] fix [#36005] viewport rendering crashes blender --- source/blender/render/intern/source/convertblender.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 28277b0c07e..adb8956bfa3 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4149,10 +4149,15 @@ static void set_renderlayer_lightgroups(Render *re, Scene *sce) void init_render_world(Render *re) { + void *wrld_prev[2] = { + re->wrld.aotables, + re->wrld.aosphere, + }; + int a; if (re->scene && re->scene->world) { - re->wrld= *(re->scene->world); + re->wrld = *(re->scene->world); copy_v3_v3(re->grvec, re->viewmat[2]); normalize_v3(re->grvec); @@ -4181,6 +4186,10 @@ void init_render_world(Render *re) re->wrld.linfac= 1.0f + powf((2.0f*re->wrld.exp + 0.5f), -10); re->wrld.logfac= logf((re->wrld.linfac-1.0f)/re->wrld.linfac) / re->wrld.range; + + /* restore runtime vars, needed for viewport rendering [#36005] */ + re->wrld.aotables = wrld_prev[0]; + re->wrld.aosphere = wrld_prev[1]; }