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>2017-01-25 16:02:59 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-01-25 16:02:59 +0300
commitced20b74e58f3dd33840f2a62f6f1f19714b35d7 (patch)
tree5f97a618b28c9a88635d511178d63c59d8fcc186 /intern/cycles/render/image.cpp
parente29a6f739de36f4d33cd37181a946345bd26503d (diff)
Fix T50032: Wrong render result when same image is used with and without alpha
Diffstat (limited to 'intern/cycles/render/image.cpp')
-rw-r--r--intern/cycles/render/image.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index ab830b19c57..fd8a1262208 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -258,12 +258,14 @@ static bool image_equals(ImageManager::Image *image,
const string& filename,
void *builtin_data,
InterpolationType interpolation,
- ExtensionType extension)
+ ExtensionType extension,
+ bool use_alpha)
{
return image->filename == filename &&
image->builtin_data == builtin_data &&
image->interpolation == interpolation &&
- image->extension == extension;
+ image->extension == extension &&
+ image->use_alpha == use_alpha;
}
int ImageManager::add_image(const string& filename,
@@ -305,7 +307,8 @@ int ImageManager::add_image(const string& filename,
filename,
builtin_data,
interpolation,
- extension))
+ extension,
+ use_alpha))
{
if(img->frame != frame) {
img->frame = frame;
@@ -377,7 +380,8 @@ void ImageManager::remove_image(int flat_slot)
void ImageManager::remove_image(const string& filename,
void *builtin_data,
InterpolationType interpolation,
- ExtensionType extension)
+ ExtensionType extension,
+ bool use_alpha)
{
size_t slot;
@@ -387,7 +391,8 @@ void ImageManager::remove_image(const string& filename,
filename,
builtin_data,
interpolation,
- extension))
+ extension,
+ use_alpha))
{
remove_image(type_index_to_flattened_slot(slot, (ImageDataType)type));
return;
@@ -403,7 +408,8 @@ void ImageManager::remove_image(const string& filename,
void ImageManager::tag_reload_image(const string& filename,
void *builtin_data,
InterpolationType interpolation,
- ExtensionType extension)
+ ExtensionType extension,
+ bool use_alpha)
{
for(size_t type = 0; type < IMAGE_DATA_NUM_TYPES; type++) {
for(size_t slot = 0; slot < images[type].size(); slot++) {
@@ -411,7 +417,8 @@ void ImageManager::tag_reload_image(const string& filename,
filename,
builtin_data,
interpolation,
- extension))
+ extension,
+ use_alpha))
{
images[type][slot]->need_load = true;
break;