[beryl-commits] compiz mirror: Changes to 'master' (22481bc09476cb0d9271f119eb9e8ef7a10fbc1e)
compiz at server.beryl-project.org
compiz at server.beryl-project.org
Fri Jun 1 06:55:16 CEST 2007
New commits:
commit 22481bc09476cb0d9271f119eb9e8ef7a10fbc1e
Author: David Reveman <davidr at novell.com>
Date: Fri Jun 1 00:47:27 2007 -0400
Bump ABIVERSION.
commit 4c5fa70c3f083711851020029ca12043907c387d
Author: David Reveman <davidr at novell.com>
Date: Fri Jun 1 00:46:48 2007 -0400
Move lastViewport into CompScreen struct as it's GL context
dependent.
commit 465a0c1f5e64d92d12d8e9c38aa993d06f45d01d
Author: David Reveman <davidr at novell.com>
Date: Fri Jun 1 00:38:49 2007 -0400
Clean up last viewport check.
commit a998c19e41d0f7b33002edd6d372c2a8aadf4398
Author: David Reveman <davidr at novell.com>
Date: Fri Jun 1 00:31:13 2007 -0400
Use output id.
commit b958103af339be101ec518a3ad6cb801421d6069
Author: David Reveman <davidr at novell.com>
Date: Fri Jun 1 00:31:03 2007 -0400
Use output id.
commit 10210f88ac94c6ee89b854ec0d6f571f1e15a435
Author: David Reveman <davidr at novell.com>
Date: Fri Jun 1 00:30:35 2007 -0400
Add output id. The id is always set to the output's index in the
screen outputs list. The id must be set to ~0 if the output is
not a real screen output.
include/compiz.h | 5 ++++-
plugins/cube.c | 14 +++-----------
plugins/zoom.c | 11 +++--------
src/display.c | 31 +++++++++++++------------------
src/screen.c | 14 ++++++++++----
5 files changed, 33 insertions(+), 42 deletions(-)
Modified: compiz/include/compiz.h
===================================================================
--- compiz/include/compiz.h
+++ compiz/include/compiz.h
@@ -26,7 +26,7 @@
#ifndef _COMPIZ_H
#define _COMPIZ_H
-#define ABIVERSION 20070601
+#define ABIVERSION 20070602
#include <stdio.h>
#include <sys/time.h>
@@ -1773,6 +1773,7 @@ struct _CompIcon {
struct _CompOutput {
char *name;
+ int id;
REGION region;
int width;
int height;
@@ -1866,6 +1867,8 @@ struct _CompScreen {
int currentOutputDev;
CompOutput fullscreenOutput;
+ XRectangle lastViewport;
+
CompActiveWindowHistory history[ACTIVE_WINDOW_HISTORY_NUM];
int currentHistory;
Modified: compiz/plugins/cube.c
===================================================================
--- compiz/plugins/cube.c
+++ compiz/plugins/cube.c
@@ -802,7 +802,6 @@ cubePaintOutput (CompScreen *s,
unsigned int mask)
{
Bool status;
- int i;
CUBE_SCREEN (s);
@@ -812,10 +811,7 @@ cubePaintOutput (CompScreen *s,
mask |= PAINT_SCREEN_TRANSFORMED_MASK;
}
- cs->srcOutput = 0;
- for (i = 0; i < s->nOutputDev; i++)
- if (!memcmp (output, &s->outputDev[i], sizeof (CompOutput)))
- cs->srcOutput = i;
+ cs->srcOutput = (output->id != ~0) ? output->id : 0;
UNWRAP (cs, s, paintOutput);
status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask);
@@ -845,14 +841,10 @@ cubeMoveViewportAndPaint (CompScreen *s,
unsigned int mask,
int dx)
{
- int i, output = 0;
-
+ int output = (outputPtr->id != ~0) ? outputPtr->id : 0;
+
CUBE_SCREEN (s);
- for (i = 0; i < s->nOutputDev; i++)
- if (!memcmp (outputPtr, &s->outputDev[i], sizeof (CompOutput)))
- output = i;
-
if (cs->nOutput > 1)
{
int cubeOutput, dView;
Modified: compiz/plugins/zoom.c
===================================================================
--- compiz/plugins/zoom.c
+++ compiz/plugins/zoom.c
@@ -255,15 +255,10 @@ zoomPaintOutput (CompScreen *s,
{
CompTransform zTransform = *transform;
Bool status;
- int i, outputNum = -1;
ZOOM_SCREEN (s);
- for (i = 0; i < s->nOutputDev; i++)
- if (output == &s->outputDev[i])
- outputNum = i;
-
- if (outputNum >= 0 && (zs->zoomed & (1 << outputNum)))
+ if (output->id != ~0 && (zs->zoomed & (1 << output->id)))
{
int saveFilter;
ZoomBox box;
@@ -273,7 +268,7 @@ zoomPaintOutput (CompScreen *s,
mask &= ~PAINT_SCREEN_REGION_MASK;
- zoomGetCurrentZoom (s, outputNum, &box);
+ zoomGetCurrentZoom (s, output->id, &box);
x1 = box.x1 - output->region.extents.x1;
y1 = box.y1 - output->region.extents.y1;
@@ -293,7 +288,7 @@ zoomPaintOutput (CompScreen *s,
saveFilter = s->filter[SCREEN_TRANS_FILTER];
- if ((zs->zoomOutput != outputNum || !zs->adjust) && scale > 3.9f)
+ if ((zs->zoomOutput != output->id || !zs->adjust) && scale > 3.9f)
s->filter[SCREEN_TRANS_FILTER] = COMP_TEXTURE_FILTER_FAST;
UNWRAP (zs, s, paintOutput);
Modified: compiz/src/display.c
===================================================================
--- compiz/src/display.c
+++ compiz/src/display.c
@@ -79,10 +79,6 @@ static CompFileWatchHandle lastFileWatchHandle = 1;
static CompScreen *targetScreen = NULL;
static CompOutput *targetOutput;
static Region tmpRegion, outputRegion;
-static int curViewportX = 0;
-static int curViewportY = 0;
-static int curViewportW = 0;
-static int curViewportH = 0;
static Bool inHandleEvent = FALSE;
@@ -1456,27 +1452,26 @@ paintScreen (CompScreen *s,
int numOutput,
unsigned int mask)
{
- int i;
+ XRectangle r;
+ int i;
for (i = 0; i < numOutput; i++)
{
targetScreen = s;
targetOutput = &outputs[i];
- if (curViewportX != outputs[i].region.extents.x1 ||
- curViewportY != s->height - outputs[i].region.extents.x2 ||
- curViewportW != outputs[i].width ||
- curViewportH != outputs[i].height)
+ r.x = outputs[i].region.extents.x1;
+ r.y = s->height - outputs[i].region.extents.y2;
+ r.width = outputs[i].width;
+ r.height = outputs[i].height;
+
+ if (s->lastViewport.x != r.x ||
+ s->lastViewport.y != r.y ||
+ s->lastViewport.width != r.width ||
+ s->lastViewport.height != r.height)
{
- glViewport (outputs[i].region.extents.x1,
- s->height -
- outputs[i].region.extents.y2,
- outputs[i].width,
- outputs[i].height);
- curViewportX = outputs[i].region.extents.x1;
- curViewportY = s->height - outputs[i].region.extents.x2;
- curViewportW = outputs[i].width;
- curViewportH = outputs[i].height;
+ glViewport (r.x, r.y, r.width, r.height);
+ s->lastViewport = r;
}
if (mask & COMP_SCREEN_DAMAGE_ALL_MASK)
Modified: compiz/src/screen.c
===================================================================
--- compiz/src/screen.c
+++ compiz/src/screen.c
@@ -281,6 +281,7 @@ updateOutputDevices (CompScreen *s)
output[i].workArea.width = output[i].width;
output[i].workArea.height = output[i].height;
+ output[i].id = i;
}
if (s->outputDev)
@@ -3601,10 +3602,15 @@ getWorkareaForOutput (CompScreen *s,
void
setDefaultViewport (CompScreen *s)
{
- glViewport (s->outputDev->region.extents.x1,
- s->height - s->outputDev->region.extents.y2,
- s->outputDev->width,
- s->outputDev->height);
+ s->lastViewport.x = s->outputDev->region.extents.x1;
+ s->lastViewport.y = s->height - s->outputDev->region.extents.y2;
+ s->lastViewport.width = s->outputDev->width;
+ s->lastViewport.height = s->outputDev->height;
+
+ glViewport (s->lastViewport.x,
+ s->lastViewport.y,
+ s->lastViewport.width,
+ s->lastViewport.height);
}
void
More information about the commits
mailing list