[Bf-blender-cvs] [619c51592fc] blender-v2.93-release: Fix T92608: Image Editor does not display stereo images

Philipp Oeser noreply at git.blender.org
Tue Nov 2 13:52:41 CET 2021


Commit: 619c51592fcf1efcdc960386385f8a511c2a590e
Author: Philipp Oeser
Date:   Mon Nov 1 11:03:58 2021 +0100
Branches: blender-v2.93-release
https://developer.blender.org/rB619c51592fcf1efcdc960386385f8a511c2a590e

Fix T92608: Image Editor does not display stereo images

Caused by own {rB5aa3167e48b2}.
Related commit: {rBebaa3fcedd23}.

For stereo renders, `BKE_image_is_multilayer` is true, however we seem
to get to down to `space_image_gpu_texture_get` [where this is called]
from `IMAGE_cache_init` with a NULL Image->RenderResult.

So what then happens is that `BKE_image_multilayer_index` is called and
even though it has an appropriate codepath for stereo, it earlies out
and does not set multi_index correctly.

Still a bit puzzled why RenderResult is NULL for a render, but since
other places also check for a valid RenderResult before going down the
_multilayer_ route (and doing _multiview_ instead), now do the same
thing, BKE_image_multiview_index is now called in these cases (and seems
to behave correctly, checked with layers and passes and all seems to
display correctly, either in stereo or choosing individual eyes).

thx @jbakker & @brecht for double-checking.

Maniphest Tasks: T92608

Differential Revision: https://developer.blender.org/D13063

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

M	source/blender/draw/engines/image/image_engine.c

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

diff --git a/source/blender/draw/engines/image/image_engine.c b/source/blender/draw/engines/image/image_engine.c
index 089ddc8045b..201b44e04ea 100644
--- a/source/blender/draw/engines/image/image_engine.c
+++ b/source/blender/draw/engines/image/image_engine.c
@@ -107,8 +107,8 @@ static void space_image_gpu_texture_get(Image *image,
 {
   const DRWContextState *draw_ctx = DRW_context_state_get();
   SpaceImage *sima = (SpaceImage *)draw_ctx->space_data;
-  if (BKE_image_is_multilayer(image)) {
-    /* update multiindex and pass for the current eye */
+  if (image->rr != NULL) {
+    /* Update multi-index and pass for the current eye. */
     BKE_image_multilayer_index(image->rr, &sima->iuser);
   }
   else {



More information about the Bf-blender-cvs mailing list