[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57238] branches/multiview/source/blender/ windowmanager/intern/wm_stereo.c: multiview : merging from github branch
Dalai Felinto
dfelinto at gmail.com
Tue Jun 4 20:21:11 CEST 2013
Revision: 57238
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57238
Author: dfelinto
Date: 2013-06-04 18:21:11 +0000 (Tue, 04 Jun 2013)
Log Message:
-----------
multiview : merging from github branch
github: 51b695bdf33e9e8a80c5c2b453ac44ace22f7885
http://github.com/dfelinto/blender/tree/multiview
note: this is trunk/svn revision: 57236
Modified Paths:
--------------
branches/multiview/source/blender/windowmanager/intern/wm_stereo.c
Modified: branches/multiview/source/blender/windowmanager/intern/wm_stereo.c
===================================================================
--- branches/multiview/source/blender/windowmanager/intern/wm_stereo.c 2013-06-04 18:04:34 UTC (rev 57237)
+++ branches/multiview/source/blender/windowmanager/intern/wm_stereo.c 2013-06-04 18:21:11 UTC (rev 57238)
@@ -122,39 +122,54 @@
static GLuint left_interlace_mask[32];
static GLuint right_interlace_mask[32];
static int interlace_prev_type = -1;
+static char interlace_prev_swap = -1;
static void wm_interlace_create_masks(void)
{
- int i;
+ GLuint pattern;
+ char i;
+ char swap = U.stereo_flag & USER_INTERLACE_SWAP_LEFT_RIGHT;
- if(interlace_prev_type != U.interlace_type) {
- switch(U.interlace_type) {
- case USER_INTERLACE_TYPE_ROW_INTERLEAVED:
- for(i = 0; i < 32; i++) {
- left_interlace_mask[i] = (i&1)*0xFFFFFFFF;
- right_interlace_mask[i] = (i&0)*0xFFFFFFFF;
- }
- break;
- case USER_INTERLACE_TYPE_COLUMN_INTERLEAVED:
- for(i = 0; i < 32; i++) {
- left_interlace_mask[i] = 0x55555555;
- right_interlace_mask[i] = 0xAAAAAAAA;
- }
- break;
- case USER_INTERLACE_TYPE_CHECKERBOARD_INTERLEAVED:
- default:
- for(i = 0; i < 32; i += 2) {
- left_interlace_mask[i] = 0x55555555;
- right_interlace_mask[i] = 0xAAAAAAAA;
- }
- for(i = 1; i < 32; i += 2) {
- left_interlace_mask[i] = 0xAAAAAAAA;
- right_interlace_mask[i] = 0x55555555;
- }
- break;
- }
- interlace_prev_type = U.interlace_type;
+ if (interlace_prev_type == U.interlace_type && interlace_prev_swap == swap)
+ return;
+
+ switch(U.interlace_type) {
+ case USER_INTERLACE_TYPE_ROW_INTERLEAVED:
+ pattern = 0x00000000;
+ pattern = swap? ~pattern : pattern;
+ for(i = 0; i < 32; i += 2) {
+ left_interlace_mask[i] = pattern;
+ right_interlace_mask[i] = ~pattern;
+ }
+ for(i = 1; i < 32; i += 2) {
+ left_interlace_mask[i] = ~pattern;
+ right_interlace_mask[i] = pattern;
+ }
+ break;
+ case USER_INTERLACE_TYPE_COLUMN_INTERLEAVED:
+ pattern = 0x55555555;
+ pattern = swap? ~pattern : pattern;
+ for(i = 0; i < 32; i++) {
+ left_interlace_mask[i] = pattern;
+ right_interlace_mask[i] = ~pattern;
+ }
+ break;
+ case USER_INTERLACE_TYPE_CHECKERBOARD_INTERLEAVED:
+ default:
+ pattern = 0x55555555;
+ pattern = swap? ~pattern : pattern;
+ for(i = 0; i < 32; i += 2) {
+ left_interlace_mask[i] = pattern;
+ right_interlace_mask[i] = ~pattern;
+ }
+ for(i = 1; i < 32; i += 2) {
+ left_interlace_mask[i] = ~pattern;
+ right_interlace_mask[i] = pattern;
+ }
+ break;
}
+ interlace_prev_type = U.interlace_type;
+ interlace_prev_swap = swap;
}
static void wm_method_draw_stereo_interlace(wmWindow *win)
@@ -285,11 +300,11 @@
for (view=0; view < 2; view ++) {
if (view == STEREO_LEFT_ID) {
triple = win->drawdataall;
- soffy = 0;
+ soffy = WM_window_pixels_y(win) * 0.5;
}
else {
triple = win->drawdatastereoall;
- soffy = WM_window_pixels_y(win) * 0.5;
+ soffy = 0;
}
glEnable(triple->target);
More information about the Bf-blender-cvs
mailing list