From 5aa3167e48b202f4883ce948ba8e3469e3eaf3ec Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Thu, 19 Aug 2021 14:03:48 +0200 Subject: Fix T90772: Image Editor not sampling color from the the currently selected pass Caused by {rBebaa3fcedd23}. Seems this above commit assumed an ImageUser's multi_index is only used for Multiview/Stereo? This is not the case, multi_index also stores the index for layer/pass combination. If we call both BKE_image_multilayer_index and BKE_image_multiview_index (even though this is not appropriate/needed for multilayer images?), we might end up overwriting multi_index again. note: looking at this I was also wondering why we update the ImageUser in image-buffer-aquiring funnctions [and not from the UI, e.g. template_image_layers, but that is a whole different story I guess, see comment in T90772 as well] note2: this could also use a utility function (this is not the only place where this is done), this is fo a cleanup commit. Maniphest Tasks: T90772 Differential Revision: https://developer.blender.org/D12267 --- source/blender/draw/engines/image/image_engine.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/engines/image/image_engine.c b/source/blender/draw/engines/image/image_engine.c index 395d50fbc6b..438c95118ef 100644 --- a/source/blender/draw/engines/image/image_engine.c +++ b/source/blender/draw/engines/image/image_engine.c @@ -111,7 +111,9 @@ static void space_image_gpu_texture_get(Image *image, /* Update multi-index and pass for the current eye. */ BKE_image_multilayer_index(image->rr, &sima->iuser); } - BKE_image_multiview_index(image, &sima->iuser); + else { + BKE_image_multiview_index(image, &sima->iuser); + } if (ibuf) { const int sima_flag = sima->flag & ED_space_image_get_display_channel_mask(ibuf); -- cgit v1.2.3