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:
authorJeroen Bakker <jeroen@blender.org>2022-02-18 10:22:18 +0300
committerJeroen Bakker <jeroen@blender.org>2022-02-18 10:22:18 +0300
commitfe26d188891f95d199e2559929204fddacea2ba8 (patch)
tree0b2803d785e1e5d81a1506af60943269e66e029e
parent400e57b64acc5fee1859a815d96db91e4e89aaa0 (diff)
Fix T95809: Check color space changes to refresh image engine.
Previous commit fixed the compositor node, this commit is related to the shader tree. Also checks if the color space or alpha mode have changed.
-rw-r--r--source/blender/draw/engines/image/image_instance_data.hh2
-rw-r--r--source/blender/draw/engines/image/image_usage.hh8
2 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/draw/engines/image/image_instance_data.hh b/source/blender/draw/engines/image/image_instance_data.hh
index e5e19593e23..420f9396f3f 100644
--- a/source/blender/draw/engines/image/image_instance_data.hh
+++ b/source/blender/draw/engines/image/image_instance_data.hh
@@ -113,7 +113,7 @@ struct IMAGE_InstanceData {
void update_image_usage(const ImageUser *image_user)
{
- ImageUsage usage(image_user);
+ ImageUsage usage(image, image_user);
if (last_usage != usage) {
last_usage = usage;
reset_dirty_flag(true);
diff --git a/source/blender/draw/engines/image/image_usage.hh b/source/blender/draw/engines/image/image_usage.hh
index fb85d88cd11..1eadee4481d 100644
--- a/source/blender/draw/engines/image/image_usage.hh
+++ b/source/blender/draw/engines/image/image_usage.hh
@@ -34,12 +34,18 @@ struct ImageUsage {
/** View of the image that is used. */
short view = 0;
+ ColorManagedColorspaceSettings colorspace_settings;
+ /** IMA_ALPHA_* */
+ char alpha_mode;
+
ImageUsage() = default;
- ImageUsage(const struct ImageUser *image_user)
+ ImageUsage(const struct Image *image, const struct ImageUser *image_user)
{
pass = image_user ? image_user->pass : 0;
layer = image_user ? image_user->layer : 0;
view = image_user ? image_user->multi_index : 0;
+ colorspace_settings = image->colorspace_settings;
+ alpha_mode = image->alpha_mode;
}
bool operator==(const ImageUsage &other) const