[Bf-blender-cvs] [74b47e4181d] master: Fix: VSE preview not showing stereo drawing (unreported)

Dalai Felinto noreply at git.blender.org
Fri Mar 22 20:08:25 CET 2019


Commit: 74b47e4181d70284e125ff4c0012d9c1cc36487d
Author: Dalai Felinto
Date:   Fri Mar 22 15:08:22 2019 -0300
Branches: master
https://developer.blender.org/rB74b47e4181d70284e125ff4c0012d9c1cc36487d

Fix: VSE preview not showing stereo drawing (unreported)

SpaceSeq main stereo drawing is for ar->regiontype RGN_TYPE_PREVIEW, but
the drawing code was assuming RGN_TYPE_WINDOW was the only one to be
considered for all the regions.

SpaceSeq still needs stereo drawing in RGN_TYPE_WINDOW but only when
backdrop is enabled.

Bug introduced on rBe01cadd657c76267.

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

M	source/blender/windowmanager/intern/wm_draw.c

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

diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index c2488ed0992..6a3eeea14f0 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -125,44 +125,59 @@ static bool wm_draw_region_stereo_set(Main *bmain, ScrArea *sa, ARegion *ar, eSt
 {
 	/* We could detect better when stereo is actually needed, by inspecting the
 	 * image in the image editor and sequencer. */
-	if (ar->regiontype != RGN_TYPE_WINDOW) {
+	if (!ELEM(ar->regiontype, RGN_TYPE_WINDOW, RGN_TYPE_PREVIEW)) {
 		return false;
 	}
 
 	switch (sa->spacetype) {
 		case SPACE_IMAGE:
 		{
-			SpaceImage *sima = sa->spacedata.first;
-			sima->iuser.multiview_eye = sview;
-			return true;
+			if (ar->regiontype == RGN_TYPE_WINDOW) {
+				SpaceImage *sima = sa->spacedata.first;
+				sima->iuser.multiview_eye = sview;
+				return true;
+			}
+			break;
 		}
 		case SPACE_VIEW3D:
 		{
-			View3D *v3d = sa->spacedata.first;
-			if (v3d->camera && v3d->camera->type == OB_CAMERA) {
-				Camera *cam = v3d->camera->data;
-				CameraBGImage *bgpic = cam->bg_images.first;
-				v3d->multiview_eye = sview;
-				if (bgpic) bgpic->iuser.multiview_eye = sview;
-				return true;
+			if (ar->regiontype == RGN_TYPE_WINDOW) {
+				View3D *v3d = sa->spacedata.first;
+				if (v3d->camera && v3d->camera->type == OB_CAMERA) {
+					Camera *cam = v3d->camera->data;
+					CameraBGImage *bgpic = cam->bg_images.first;
+					v3d->multiview_eye = sview;
+					if (bgpic) {
+						bgpic->iuser.multiview_eye = sview;
+					}
+					return true;
+				}
 			}
-			return false;
+			break;
 		}
 		case SPACE_NODE:
 		{
-			SpaceNode *snode = sa->spacedata.first;
-			if ((snode->flag & SNODE_BACKDRAW) && ED_node_is_compositor(snode)) {
-				Image *ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node");
-				ima->eye = sview;
-				return true;
+			if (ar->regiontype == RGN_TYPE_WINDOW) {
+				SpaceNode *snode = sa->spacedata.first;
+				if ((snode->flag & SNODE_BACKDRAW) && ED_node_is_compositor(snode)) {
+					Image *ima = BKE_image_verify_viewer(bmain, IMA_TYPE_COMPOSITE, "Viewer Node");
+					ima->eye = sview;
+					return true;
+				}
 			}
-			return false;
+			break;
 		}
 		case SPACE_SEQ:
 		{
 			SpaceSeq *sseq = sa->spacedata.first;
 			sseq->multiview_eye = sview;
-			return true;
+
+			if (ar->regiontype == RGN_TYPE_PREVIEW) {
+				return true;
+			}
+			else if (ar->regiontype == RGN_TYPE_WINDOW) {
+				return (sseq->draw_flag & SEQ_DRAW_BACKDROP) != 0;
+			}
 		}
 	}



More information about the Bf-blender-cvs mailing list