Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-12-11 14:17:26 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-12-11 17:50:02 +0300
commit66d8bfb85c61aafe3bad2edf0e7b4d9d694ee2e7 (patch)
tree97653b0aa4c87ca5349284405f12323d3c59c04e /intern/cycles/render
parent84b02dc54a8c06e963a263e7232e41a993ab21c8 (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')
-rw-r--r--intern/cycles/render/attribute.cpp2
-rw-r--r--intern/cycles/render/image.cpp17
-rw-r--r--intern/cycles/render/image.h4
3 files changed, 8 insertions, 15 deletions
diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp
index a7450849195..ca167a7c722 100644
--- a/intern/cycles/render/attribute.cpp
+++ b/intern/cycles/render/attribute.cpp
@@ -663,7 +663,7 @@ void AttributeRequestSet::add(AttributeRequestSet& reqs)
void AttributeRequestSet::add_standard(ustring name)
{
- if(!name) {
+ if(name.empty()) {
return;
}
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) {
diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h
index 8367a6811bd..b608bc30e70 100644
--- a/intern/cycles/render/image.h
+++ b/intern/cycles/render/image.h
@@ -23,6 +23,7 @@
#include "util/util_image.h"
#include "util/util_string.h"
#include "util/util_thread.h"
+#include "util/util_unique_ptr.h"
#include "util/util_vector.h"
CCL_NAMESPACE_BEGIN
@@ -141,8 +142,7 @@ private:
vector<Image*> images[IMAGE_DATA_NUM_TYPES];
void *osl_texture_system;
- bool file_load_image_generic(Image *img,
- ImageInput **in);
+ bool file_load_image_generic(Image *img, unique_ptr<ImageInput> *in);
template<TypeDesc::BASETYPE FileFormat,
typename StorageType,