diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-12-11 14:17:26 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-12-11 17:50:02 +0300 |
commit | 66d8bfb85c61aafe3bad2edf0e7b4d9d694ee2e7 (patch) | |
tree | 97653b0aa4c87ca5349284405f12323d3c59c04e /intern/cycles/render/image.cpp | |
parent | 84b02dc54a8c06e963a263e7232e41a993ab21c8 (diff) |
Update code to be compatible with OIIO 2.0
There are some changes in API of OpenImageIO, but those are quite
simple to keep working with older and newer library versions.
Reviewers: brecht
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4064
Diffstat (limited to 'intern/cycles/render/image.cpp')
-rw-r--r-- | intern/cycles/render/image.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index e6ef19cc3be..a8e6f41e57a 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -24,6 +24,7 @@ #include "util/util_path.h" #include "util/util_progress.h" #include "util/util_texture.h" +#include "util/util_unique_ptr.h" #ifdef WITH_OSL #include <OSL/oslexec.h> @@ -194,7 +195,7 @@ bool ImageManager::get_image_metadata(const string& filename, return false; } - ImageInput *in = ImageInput::create(filename); + unique_ptr<ImageInput> in(ImageInput::create(filename)); if(!in) { return false; @@ -202,7 +203,6 @@ bool ImageManager::get_image_metadata(const string& filename, ImageSpec spec; if(!in->open(filename, spec)) { - delete in; return false; } @@ -270,7 +270,6 @@ bool ImageManager::get_image_metadata(const string& filename, } in->close(); - delete in; return true; } @@ -455,7 +454,7 @@ void ImageManager::tag_reload_image(const string& filename, } bool ImageManager::file_load_image_generic(Image *img, - ImageInput **in) + unique_ptr<ImageInput> *in) { if(img->filename == "") return false; @@ -467,7 +466,7 @@ bool ImageManager::file_load_image_generic(Image *img, } /* load image from file through OIIO */ - *in = ImageInput::create(img->filename); + *in = unique_ptr<ImageInput>(ImageInput::create(img->filename)); if(!*in) return false; @@ -479,8 +478,6 @@ bool ImageManager::file_load_image_generic(Image *img, config.attribute("oiio:UnassociatedAlpha", 1); if(!(*in)->open(img->filename, spec, config)) { - delete *in; - *in = NULL; return false; } } @@ -494,10 +491,7 @@ bool ImageManager::file_load_image_generic(Image *img, if(!(img->metadata.channels >= 1 && img->metadata.channels <= 4)) { if(*in) { (*in)->close(); - delete *in; - *in = NULL; } - return false; } @@ -512,7 +506,7 @@ bool ImageManager::file_load_image(Image *img, int texture_limit, device_vector<DeviceType>& tex_img) { - ImageInput *in = NULL; + unique_ptr<ImageInput> in = NULL; if(!file_load_image_generic(img, &in)) { return false; } @@ -575,7 +569,6 @@ bool ImageManager::file_load_image(Image *img, } cmyk = strcmp(in->format_name(), "jpeg") == 0 && components == 4; in->close(); - delete in; } else { if(FileFormat == TypeDesc::FLOAT) { |