From fe26d188891f95d199e2559929204fddacea2ba8 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Fri, 18 Feb 2022 08:22:18 +0100 Subject: 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. --- source/blender/draw/engines/image/image_instance_data.hh | 2 +- source/blender/draw/engines/image/image_usage.hh | 8 +++++++- 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 -- cgit v1.2.3