summaryrefslogtreecommitdiff
path: root/3d.c
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2007-07-06 07:19:44 +0200
committerDanny Baumann <dannybaumann@web.de>2007-07-06 07:19:44 +0200
commitf67aaee2380855e08e7a975884b0bcd5cc3d8721 (patch)
tree9f78bd2a3bc5a5da766848ebbce8f72f9690f492 /3d.c
parentfe8598b8f8fb90f445ee95c9cc0aa0aec6afc09d (diff)
download3d-f67aaee2380855e08e7a975884b0bcd5cc3d8721.tar.gz
3d-f67aaee2380855e08e7a975884b0bcd5cc3d8721.tar.bz2
Re-add multiple output mode handling.
Diffstat (limited to '3d.c')
-rw-r--r--3d.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/3d.c b/3d.c
index 6ab1336..2384d8a 100644
--- a/3d.c
+++ b/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 != Multiple || 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 = Automatic;
tds->currentViewportNum = s->hsize;
tds->currentScreenNum = s->nOutputDev;
tds->currentDifferentResolutions = differentResolutions(s);