compiz/compiz-pageflip.patch

91 lines
2.7 KiB
Diff

diff -up compiz-0.8.2/include/compiz-core.h.flip compiz-0.8.2/include/compiz-core.h
--- compiz-0.8.2/include/compiz-core.h.flip 2009-07-31 13:00:46.120940112 -0400
+++ compiz-0.8.2/include/compiz-core.h 2009-07-31 13:00:57.625815409 -0400
@@ -219,6 +219,8 @@ extern Bool useCow;
extern Bool noDetection;
extern Bool useDesktopHints;
extern Bool onlyCurrentScreen;
+extern Bool noWait;
+extern Bool alwaysSwap;
extern char **initialPlugins;
extern int nInitialPlugins;
diff -up compiz-0.8.2/src/display.c.flip compiz-0.8.2/src/display.c
--- compiz-0.8.2/src/display.c.flip 2009-07-31 13:00:46.121940240 -0400
+++ compiz-0.8.2/src/display.c 2009-07-31 13:00:57.627815245 -0400
@@ -1488,6 +1488,9 @@ eventLoop (void)
s->idle ? s->redrawTime :
timeDiff);
+ if (alwaysSwap == TRUE)
+ damageScreen (s);
+
/* substract top most overlay window region */
if (s->overlayWindowCount)
{
@@ -1547,9 +1550,11 @@ eventLoop (void)
targetScreen = NULL;
targetOutput = &s->outputDev[0];
- waitForVideoSync (s);
+ if (!noWait)
+ waitForVideoSync (s);
- if (mask & COMP_SCREEN_DAMAGE_ALL_MASK)
+ if ((mask & COMP_SCREEN_DAMAGE_ALL_MASK) ||
+ (alwaysSwap == TRUE))
{
glXSwapBuffers (d->display, s->output);
}
diff -up compiz-0.8.2/src/main.c.flip compiz-0.8.2/src/main.c
--- compiz-0.8.2/src/main.c.flip 2009-07-31 13:00:46.122940228 -0400
+++ compiz-0.8.2/src/main.c 2009-07-31 13:00:57.628820890 -0400
@@ -67,6 +67,8 @@ Bool noDetection = FALSE;
Bool useDesktopHints = FALSE;
Bool onlyCurrentScreen = FALSE;
static Bool debugOutput = FALSE;
+Bool noWait = FALSE;
+Bool alwaysSwap = FALSE;
#ifdef USE_COW
Bool useCow = TRUE;
@@ -89,7 +91,9 @@ usage (void)
"[--replace]\n "
"[--sm-disable] "
"[--sm-client-id ID] "
- "[--only-current-screen]\n "
+ "[--only-current-screen] "
+ "[--no-wait]\n "
+ "[--always-swap] "
#ifdef USE_COW
" [--use-root-window] "
@@ -376,6 +380,14 @@ main (int argc, char **argv)
if (i + 1 < argc)
backgroundImage = argv[++i];
}
+ else if (!strcmp (argv[i], "--no-wait"))
+ {
+ noWait = TRUE;
+ }
+ else if (!strcmp (argv[i], "--always-swap"))
+ {
+ alwaysSwap = TRUE;
+ }
else if (*argv[i] == '-')
{
compLogMessage ("core", CompLogLevelWarn,
diff -up compiz-0.8.2/src/screen.c.flip compiz-0.8.2/src/screen.c
--- compiz-0.8.2/src/screen.c.flip 2009-02-15 14:26:28.000000000 -0500
+++ compiz-0.8.2/src/screen.c 2009-07-31 13:00:57.631815337 -0400
@@ -2422,6 +2422,9 @@ void
damageScreenRegion (CompScreen *screen,
Region region)
{
+ if (alwaysSwap)
+ damageScreen (screen);
+
if (screen->damageMask & COMP_SCREEN_DAMAGE_ALL_MASK)
return;