[Bf-blender-cvs] [93d11edd7e4] blender2.7: Fix Cycles build error with OpenImageIO 2.x.

Brecht Van Lommel noreply at git.blender.org
Thu Feb 14 17:23:37 CET 2019


Commit: 93d11edd7e43b6aeb58f3ca6ca9dc92742794a00
Author: Brecht Van Lommel
Date:   Thu Feb 14 13:57:28 2019 +0100
Branches: blender2.7
https://developer.blender.org/rB93d11edd7e43b6aeb58f3ca6ca9dc92742794a00

Fix Cycles build error with OpenImageIO 2.x.

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

M	intern/cycles/render/denoising.cpp
M	intern/cycles/render/denoising.h

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

diff --git a/intern/cycles/render/denoising.cpp b/intern/cycles/render/denoising.cpp
index bbc9f61522c..2fceee09c78 100644
--- a/intern/cycles/render/denoising.cpp
+++ b/intern/cycles/render/denoising.cpp
@@ -536,8 +536,6 @@ void DenoiseTask::free()
 
 DenoiseImage::DenoiseImage()
 {
-	in = NULL;
-
 	width = 0;
 	height = 0;
 	num_channels = 0;
@@ -552,7 +550,6 @@ DenoiseImage::~DenoiseImage()
 void DenoiseImage::close_input()
 {
 	in_neighbors.clear();
-	in.reset();
 }
 
 void DenoiseImage::free()
@@ -662,13 +659,13 @@ bool DenoiseImage::load(const string& in_filepath, string& error)
 		return false;
 	}
 
-	in.reset(ImageInput::open(in_filepath));
+	unique_ptr<ImageInput> in(ImageInput::open(in_filepath));
 	if(!in) {
 		error = "Couldn't open file: " + in_filepath;
 		return false;
 	}
 
-	const ImageSpec &in_spec = in->spec();
+	in_spec = in->spec();
 	width = in_spec.width;
 	height = in_spec.height;
 	num_channels = in_spec.nchannels;
@@ -725,7 +722,7 @@ bool DenoiseImage::load_neighbors(const vector<string>& filepaths, const vector<
 
 		foreach(DenoiseImageLayer& layer, layers) {
 			if(!layer.match_channels(neighbor,
-			                         in->spec().channelnames,
+			                         in_spec.channelnames,
 			                         neighbor_spec.channelnames))
 			{
 				error = "Neighbor frame misses denoising data passes: " + filepath;
@@ -742,7 +739,7 @@ bool DenoiseImage::load_neighbors(const vector<string>& filepaths, const vector<
 bool DenoiseImage::save_output(const string& out_filepath, string& error)
 {
 	/* Save image with identical dimensions, channels and metadata. */
-	ImageSpec out_spec = in->spec();
+	ImageSpec out_spec = in_spec;
 
 	/* Ensure that the output frame contains sample information even if the input didn't. */
 	for(int i = 0; i < layers.size(); i++) {
diff --git a/intern/cycles/render/denoising.h b/intern/cycles/render/denoising.h
index 85a1c7d0391..5bf1a8dd0fa 100644
--- a/intern/cycles/render/denoising.h
+++ b/intern/cycles/render/denoising.h
@@ -117,7 +117,7 @@ public:
 	array<float> pixels;
 
 	/* Image file handles */
-	unique_ptr<ImageInput> in;
+	ImageSpec in_spec;
 	vector<unique_ptr<ImageInput>> in_neighbors;
 
 	/* Render layers */



More information about the Bf-blender-cvs mailing list