diff options
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/render/image.cpp | 4 | ||||
-rw-r--r-- | intern/cycles/render/image.h | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index a8e6f41e57a..341a95c0258 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -333,6 +333,10 @@ int ImageManager::add_image(const string& filename, img->use_alpha = use_alpha; img->need_load = true; } + if(!(img->metadata == metadata)) { + img->metadata = metadata; + img->need_load = true; + } img->users++; return type_index_to_flattened_slot(slot, type); } diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h index b608bc30e70..cd7130b3898 100644 --- a/intern/cycles/render/image.h +++ b/intern/cycles/render/image.h @@ -44,6 +44,18 @@ public: /* Automatically set. */ ImageDataType type; bool is_linear; + + bool operator==(const ImageMetaData& other) const + { + return is_float == other.is_float && + is_half == other.is_half && + channels == other.channels && + width == other.width && + height == other.height && + depth == other.depth && + type == other.type && + is_linear == other.is_linear; + } }; class ImageManager { |