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:

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to