[Bf-blender-cvs] [26f38f3] multiview: View3D Background Image stereo support

Dalai Felinto noreply at git.blender.org
Sun Sep 7 01:17:45 CEST 2014


Commit: 26f38f3fc06e0d31238ec3b3dfc0f6feed53680b
Author: Dalai Felinto
Date:   Fri Sep 5 12:56:40 2014 +0200
Branches: multiview
https://developer.blender.org/rB26f38f3fc06e0d31238ec3b3dfc0f6feed53680b

View3D Background Image stereo support

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

M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/windowmanager/intern/wm_draw.c

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

diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index af04e95..cbc936c 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1581,6 +1581,24 @@ exit:
 
 /* ************************************************************* */
 
+static void view3d_stereo_bgpic_setup(Scene *scene, View3D *v3d, Image *ima, ImageUser *iuser)
+{
+	if ((ima->flag & IMA_IS_STEREO)) {
+		iuser->flag |= IMA_SHOW_STEREO;
+
+		if ((scene->r.scemode & R_MULTIVIEW) == 0)
+			iuser->eye = STEREO_LEFT_ID;
+
+		/* show only left or right camera */
+		else if (v3d->stereo_camera != STEREO_3D_ID)
+			iuser->eye = v3d->stereo_camera;
+
+		BKE_image_multiview_index(ima, iuser);
+	}
+	else
+		iuser->flag &= ~IMA_SHOW_STEREO;
+}
+
 static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
                               const bool do_foreground, const bool do_camera_frame)
 {
@@ -1621,6 +1639,7 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
 					ibuf = NULL; /* frame is out of range, dont show */
 				}
 				else {
+					view3d_stereo_bgpic_setup(scene, v3d, ima, &bgpic->iuser);
 					ibuf = BKE_image_acquire_ibuf(ima, &bgpic->iuser, NULL);
 					releaseibuf = ibuf;
 				}
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index fbbd7b0..e3eadda 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -775,7 +775,9 @@ static void wm_method_draw_triple_multiview(bContext *C, wmWindow *win, StereoVi
 			case SPACE_VIEW3D:
 			{
 				View3D *v3d = sa->spacedata.first;
+				BGpic *bgpic = v3d->bgpicbase.first;
 				v3d->eye = sview;
+				if (bgpic) bgpic->iuser.eye = sview;
 				break;
 			}
 			case SPACE_NODE:




More information about the Bf-blender-cvs mailing list