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:
authorTon Roosendaal <ton@blender.org>2010-12-19 14:39:55 +0300
committerTon Roosendaal <ton@blender.org>2010-12-19 14:39:55 +0300
commit7507a5f959211ab8eb52fe098103d63f5b5d67e1 (patch)
tree8e23ab086eff3e24abfa52927fbbee5619b0e3e8 /source/blender/editors/render
parent3bcde46dfae04f4659975d44a1e6837197a2fb18 (diff)
Bugfix #25288
SSS preview render didn't happy. Was caused by using a Material copy for preview renders (to prevent crashing in other cases). There were actually 2 errors: - material copy should be added to preview-main database - the render was invoked using wrong main database even!
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r--source/blender/editors/render/render_preview.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index af210f49553..61fb9305a83 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -350,6 +350,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
mat= copy_material((Material *)id);
sp->matcopy= mat;
BLI_remlink(&G.main->mat, mat);
+ BLI_addtail(&pr_main->mat, mat);
init_render_material(mat, 0, NULL); /* call that retrieves mode_l */
end_render_material(mat);
@@ -409,6 +410,8 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
else {
sce->r.mode &= ~(R_OSA|R_RAYTRACE|R_SSS);
+ /* get rid of copied material */
+ BLI_remlink(&pr_main->mat, sp->matcopy);
free_material(sp->matcopy);
MEM_freeN(sp->matcopy);
sp->matcopy= NULL;
@@ -982,7 +985,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
((Camera *)sce->camera->data)->lens *= (float)sp->sizey/(float)sizex;
/* entire cycle for render engine */
- RE_PreviewRender(re, G.main, sce);
+ RE_PreviewRender(re, pr_main, sce);
((Camera *)sce->camera->data)->lens= oldlens;