[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