[Bf-blender-cvs] [20a94e9] master: Fix T46617 File Output Node seems to save only black images into OpenEXR image data

Dalai Felinto noreply at git.blender.org
Wed Oct 28 17:07:15 CET 2015


Commit: 20a94e956a3532ea1f8c58d745f14fab1881ba80
Author: Dalai Felinto
Date:   Wed Oct 28 13:41:01 2015 -0200
Branches: master
https://developer.blender.org/rB20a94e956a3532ea1f8c58d745f14fab1881ba80

Fix T46617 File Output Node seems to save only black images into OpenEXR image data

If the node output had only one layer, it would be detected as singlelayer, and it would miss the blender exr header string

===================================================================

M	source/blender/imbuf/intern/openexr/openexr_api.cpp

===================================================================

diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index 63c2182..c6140da 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1810,8 +1810,15 @@ static void imb_exr_type_by_channels(ChannelList& channels, StringVector& views,
 	/* will not include empty layer names */
 	channels.layers(layerNames);
 
-	if (views.size() && views[0] != "")
+	if (views.size() && views[0] != "") {
 		*r_multiview = true;
+	}
+	else {
+		*r_singlelayer = false;
+		*r_multilayer = true;
+		*r_multiview = false;
+		return;
+	}
 
 	if (layerNames.size()) {
 		/* if layerNames is not empty, it means at least one layer is non-empty,
@@ -1828,7 +1835,7 @@ static void imb_exr_type_by_channels(ChannelList& channels, StringVector& views,
 					std::string layerName = *i;
 					size_t pos = layerName.rfind ('.');
 
-					if (pos != std::string::npos) {
+					if (pos == std::string::npos) {
 						*r_multilayer = true;
 						*r_singlelayer = false;
 						return;




More information about the Bf-blender-cvs mailing list