[Bf-blender-cvs] [c233774] blender-v2.76-release: Fix T46617 File Output Node seems to save only black images into OpenEXR image data

Dalai Felinto noreply at git.blender.org
Thu Oct 29 12:08:16 CET 2015


Commit: c2337748e59d2027459513f789e9bf0b93d5d018
Author: Dalai Felinto
Date:   Wed Oct 28 13:41:01 2015 -0200
Branches: blender-v2.76-release
https://developer.blender.org/rBc2337748e59d2027459513f789e9bf0b93d5d018

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 e3c0273..c3fb43b 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1806,8 +1806,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,
@@ -1824,7 +1831,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