forked from bartvdbraak/blender
Fix blender internal showing SSS preprocessing status message even if there isn't
any SSS material in the scene.
This commit is contained in:
parent
8b2c5e693c
commit
14cc35d1ab
@ -993,26 +993,45 @@ static void sss_free_tree(SSSData *sss)
|
||||
void make_sss_tree(Render *re)
|
||||
{
|
||||
Material *mat;
|
||||
bool infostr_set = false;
|
||||
const char *prevstr = NULL;
|
||||
|
||||
free_sss(re);
|
||||
|
||||
re->sss_hash= BLI_ghash_ptr_new("make_sss_tree gh");
|
||||
|
||||
re->i.infostr = IFACE_("SSS preprocessing");
|
||||
re->stats_draw(re->sdh, &re->i);
|
||||
|
||||
for (mat= re->main->mat.first; mat; mat= mat->id.next)
|
||||
if (mat->id.us && (mat->flag & MA_IS_USED) && (mat->sss_flag & MA_DIFF_SSS))
|
||||
for (mat= re->main->mat.first; mat; mat= mat->id.next) {
|
||||
if (mat->id.us && (mat->flag & MA_IS_USED) && (mat->sss_flag & MA_DIFF_SSS)) {
|
||||
if (!infostr_set) {
|
||||
prevstr = re->i.infostr;
|
||||
re->i.infostr = IFACE_("SSS preprocessing");
|
||||
infostr_set = true;
|
||||
}
|
||||
|
||||
sss_create_tree_mat(re, mat);
|
||||
}
|
||||
}
|
||||
|
||||
/* XXX preview exception */
|
||||
/* localizing preview render data is not fun for node trees :( */
|
||||
if (re->main!=G.main) {
|
||||
for (mat= G.main->mat.first; mat; mat= mat->id.next)
|
||||
if (mat->id.us && (mat->flag & MA_IS_USED) && (mat->sss_flag & MA_DIFF_SSS))
|
||||
for (mat= G.main->mat.first; mat; mat= mat->id.next) {
|
||||
if (mat->id.us && (mat->flag & MA_IS_USED) && (mat->sss_flag & MA_DIFF_SSS)) {
|
||||
if (!infostr_set) {
|
||||
prevstr = re->i.infostr;
|
||||
re->i.infostr = IFACE_("SSS preprocessing");
|
||||
infostr_set = true;
|
||||
}
|
||||
|
||||
sss_create_tree_mat(re, mat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (infostr_set)
|
||||
re->i.infostr = prevstr;
|
||||
}
|
||||
|
||||
void free_sss(Render *re)
|
||||
|
Loading…
Reference in New Issue
Block a user