Commit: efe41ae7fd1b5b0161678fe7edbd8620a0687035
Author: Dalai Felinto
Date:   Thu Apr 23 19:01:49 2015 -0300
Branches: master
https://developer.blender.org/rBefe41ae7fd1b5b0161678fe7edbd8620a0687035

Multiview: Quadbuffer (time sequential) working [debug builds only]

I'll enable this mode in Release builds once I figure out how to best
handle opening files that are saved with the quadbuffer mode.

In fact I think no display mode should be saved/read from a file.

Tested in Linux with NVidia 3D Vision and NVidia 3D Vision Pro with
NVidia Quadro FX 580 and Quadro FX 4600.

(kudos for the Visgraf Lab at IMPA, for having me around with all those
gadgets ;)

Thanks for Cédric Paille (cedricp) for the code snippets and tests -
T44327

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

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

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

diff --git a/source/blender/windowmanager/intern/wm_stereo.c 
b/source/blender/windowmanager/intern/wm_stereo.c
index 3282236..b2cd1f0 100644
--- a/source/blender/windowmanager/intern/wm_stereo.c
+++ b/source/blender/windowmanager/intern/wm_stereo.c
@@ -363,8 +363,7 @@ static bool 
wm_stereo3d_is_fullscreen_required(eStereoDisplayMode stereo_display
 {
        return ELEM(stereo_display,
                    S3D_DISPLAY_SIDEBYSIDE,
-                   S3D_DISPLAY_TOPBOTTOM,
-                   S3D_DISPLAY_PAGEFLIP);
+                   S3D_DISPLAY_TOPBOTTOM);
 }
 
 bool WM_stereo3d_enabled(wmWindow *win, bool skip_stereo3d_check)
@@ -463,24 +462,25 @@ int wm_stereo3d_set_exec(bContext *C, wmOperator *op)
 
        /* pageflip requires a new window to be created with the proper OS 
flags */
        if (win->stereo3d_format->display_mode == S3D_DISPLAY_PAGEFLIP) {
-               if (wm_stereo3d_quadbuffer_supported() == false) {
-                       BKE_report(op->reports, RPT_ERROR, "Quad-buffer not 
supported by the system");
-                       win->stereo3d_format->display_mode = display_mode;
-                       return OPERATOR_CANCELLED;
-               }
                if (wm_window_duplicate_exec(C, op) == OPERATOR_FINISHED) {
-                       wm_window_close(C, wm, win);
-                       win = wm->windows.last;
+                       if (wm_stereo3d_quadbuffer_supported()) {
+                               wm_window_close(C, wm, win);
+                               BKE_report(op->reports, RPT_INFO, "Quad-buffer 
window successfully created");
+                       }
+                       else {
+                               wmWindow *win_new = wm->windows.last;
+                               wm_window_close(C, wm, win_new);
+                               win->stereo3d_format->display_mode = 
display_mode;
+                               BKE_report(op->reports, RPT_ERROR, "Quad-buffer 
not supported by the system");
+                       }
                }
                else {
                        BKE_report(op->reports, RPT_ERROR,
-                                  "Fail to create a window compatible with 
time sequential (page-flip) display method");
+                                  "Fail to create a window compatible with the 
time sequential display method");
                        win->stereo3d_format->display_mode = display_mode;
-                       return OPERATOR_CANCELLED;
                }
        }
-
-       if 
(wm_stereo3d_is_fullscreen_required(win->stereo3d_format->display_mode)) {
+       else if 
(wm_stereo3d_is_fullscreen_required(win->stereo3d_format->display_mode)) {
                if (!is_fullscreen) {
                        BKE_report(op->reports, RPT_INFO, "Stereo 3D Mode 
requires the window to be fullscreen");
                }

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

Reply via email to