[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