[Bf-blender-cvs] [a4e537d] multiview: Image Editor saving of Image in 3d working (it was working for RenderResult images only in the past)

Dalai Felinto noreply at git.blender.org
Mon Sep 8 19:46:59 CEST 2014


Commit: a4e537d0f4f25285b8a5cfb6059153bad7978520
Author: Dalai Felinto
Date:   Mon Sep 8 19:46:08 2014 +0200
Branches: multiview
https://developer.blender.org/rBa4e537d0f4f25285b8a5cfb6059153bad7978520

Image Editor saving of Image in 3d working (it was working for RenderResult images only in the past)

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

M	source/blender/editors/space_image/image_ops.c

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

diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 6387801..30385fe 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -1786,10 +1786,10 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
 			}
 		}
 
-		/* we need renderresult for exr and multiview */
+		/* we need renderresult for exr and rendered multiview */
 		scene = CTX_data_scene(C);
 		rr = BKE_image_acquire_renderresult(scene, ima);
-		is_mono = rr ? BLI_countlist(&rr->views) < 2 : false;
+		is_mono = rr ? BLI_countlist(&rr->views) < 2 : (ima->flag & IMA_IS_MULTIVIEW) == 0;
 
 		/* error handling */
 		if (!rr) {
@@ -1802,11 +1802,6 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
 				BKE_report(op->reports, RPT_ERROR, "Did not write, no Multiview Image");
 				goto cleanup;
 			}
-
-			else if (!is_mono) {
-				BKE_report(op->reports, RPT_ERROR, "Did not write, the image doesn't have multiple views");
-				goto cleanup;
-			}
 		}
 		else {
 			if (imf->imtype != R_IMF_IMTYPE_MULTIVIEW && imf->views_format == R_IMF_VIEWS_STEREO_3D) {
@@ -1915,13 +1910,20 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
 
 				for (i = 0; i < 2; i ++) {
 					ImageUser iuser = sima->iuser;
-					int id = BLI_findstringindex(&rr->views, names[i], offsetof(RenderView, name));
-
-					iuser.pass = get_multiview_pass_id(rr, &sima->iuser, id);
-					iuser.view = id;
 					iuser.flag &= ~IMA_SHOW_STEREO;
 
-					BKE_image_multilayer_index(rr, &iuser);
+					if (rr) {
+						int id = BLI_findstringindex(&rr->views, names[i], offsetof(RenderView, name));
+						iuser.pass = get_multiview_pass_id(rr, &sima->iuser, id);
+						iuser.view = id;
+
+						BKE_image_multilayer_index(rr, &iuser);
+					}
+					else {
+						iuser.view = i;
+						BKE_image_multiview_index(ima, &iuser);
+					}
+
 					ibuf = BKE_image_acquire_ibuf(sima->image, &iuser, &lock);
 
 					if (ibuf == NULL) {




More information about the Bf-blender-cvs mailing list