Merged changes in the trunk up to revision 54421.
Conflicts resolved: release/datafiles/startup.blend release/scripts/startup/bl_ui/properties_render.py source/blender/SConscript source/blender/blenloader/intern/readfile.c
This commit is contained in:
@@ -1371,6 +1371,19 @@ static int composite_needs_render(Scene *sce, int this_scene)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool rlayer_node_uses_alpha(bNodeTree *ntree, bNode *node)
|
||||
{
|
||||
bNodeSocket *sock;
|
||||
|
||||
for (sock = node->outputs.first; sock; sock = sock->next) {
|
||||
/* Weak! but how to make it better? */
|
||||
if (!strcmp(sock->name, "Alpha") && nodeCountSocketLinks(ntree, sock) > 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void tag_scenes_for_render(Render *re)
|
||||
{
|
||||
bNode *node;
|
||||
@@ -1388,6 +1401,21 @@ static void tag_scenes_for_render(Render *re)
|
||||
for (node = re->scene->nodetree->nodes.first; node; node = node->next) {
|
||||
if (node->type == CMP_NODE_R_LAYERS) {
|
||||
if (node->id) {
|
||||
if (!MAIN_VERSION_ATLEAST(re->main, 265, 5)) {
|
||||
if (rlayer_node_uses_alpha(re->scene->nodetree, node)) {
|
||||
Scene *scene = (Scene*) node->id;
|
||||
|
||||
if (scene->r.alphamode != R_ALPHAPREMUL) {
|
||||
BKE_reportf(re->reports, RPT_WARNING, "Setting scene %s alpha mode to Premul\n", scene->id.name + 2);
|
||||
|
||||
/* also print, so feedback is immediate */
|
||||
printf("2.66 versioning fix: setting scene %s alpha mode to Premul\n", scene->id.name + 2);
|
||||
|
||||
scene->r.alphamode = R_ALPHAPREMUL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (node->id != (ID *)re->scene)
|
||||
node->id->flag |= LIB_DOIT;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user