[Bf-blender-cvs] [fe26d188891] blender-v3.1-release: Fix T95809: Check color space changes to refresh image engine.

Jeroen Bakker noreply at git.blender.org
Fri Feb 18 08:25:48 CET 2022


Commit: fe26d188891f95d199e2559929204fddacea2ba8
Author: Jeroen Bakker
Date:   Fri Feb 18 08:22:18 2022 +0100
Branches: blender-v3.1-release
https://developer.blender.org/rBfe26d188891f95d199e2559929204fddacea2ba8

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.

===================================================================

M	source/blender/draw/engines/image/image_instance_data.hh
M	source/blender/draw/engines/image/image_usage.hh

===================================================================

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



More information about the Bf-blender-cvs mailing list