[fusion-commits] 3D plugin: Changes to 'master' (1c983928e1ea547861d7997ba797afde065fc6f7)

maniac at server.beryl-project.org maniac at server.beryl-project.org
Fri Jul 6 07:57:48 CEST 2007


New commits:
commit 1c983928e1ea547861d7997ba797afde065fc6f7
Author: Danny Baumann <dannybaumann at web.de>
Date:   Fri Jul 6 07:57:09 2007 +0200

    Fix usage of wrong constants.

commit f67aaee2380855e08e7a975884b0bcd5cc3d8721
Author: Danny Baumann <dannybaumann at web.de>
Date:   Fri Jul 6 07:19:44 2007 +0200

    Re-add multiple output mode handling.


 3d.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)


Modified: fusion/plugins/3d/3d.c
===================================================================
--- fusion/plugins/3d/3d.c
+++ fusion/plugins/3d/3d.c
@@ -92,12 +92,13 @@ typedef struct _tdScreen
 
 	float maxZ;
 
-	int currentViewportNum;
 	float xMove;
 
 	Bool currentDifferentResolutions;
 
 	int currentScreenNum;
+	int currentViewportNum;
+	int currentMoMode;
 
 	tdWindow **lastInViewportList;
 	int lastInViewportListSize;
@@ -219,16 +220,18 @@ static void tdPreparePaintScreen(CompScreen * screen, int msSinceLastPaint)
 	              !(tdGetManualOnly(screen) && 
 			(cs->rotationState != RotationManual));
 
-	if (tds->currentViewportNum != screen->hsize
+	if (tds->currentMoMode != cs->moMode
+		|| tds->currentViewportNum != screen->hsize
 		|| tds->currentScreenNum != screen->nOutputDev
 		|| tds->currentDifferentResolutions != differentResolutions(screen))
 	{
+		tds->currentMoMode = cs->moMode;
 		tds->currentViewportNum = screen->hsize;
 		tds->currentScreenNum = screen->nOutputDev;
 		tds->currentDifferentResolutions = differentResolutions(screen);
 
 		if (tds->currentViewportNum > 2
-			&& (screen->nOutputDev == 1))
+			&& (cs->moMode != CUBE_MOMODE_MULTI || screen->nOutputDev == 1))
 			tds->xMove =
 					1.0f / (tan (PI * (tds->currentViewportNum - 2.0f) / (2.0f * tds->currentViewportNum)));
 		else
@@ -993,6 +996,7 @@ static Bool tdInitScreen(CompPlugin * p, CompScreen * s)
 
 	tds->tdWindowExists = FALSE;
 
+	tds->currentMoMode = CUBE_MOMODE_AUTO;
 	tds->currentViewportNum = s->hsize;
 	tds->currentScreenNum = s->nOutputDev;
 	tds->currentDifferentResolutions = differentResolutions(s);


More information about the commits mailing list