- Add patch to add option to always use glXSwapBuffers.

This commit is contained in:
Kristian Høgsberg 2009-08-01 01:04:45 +00:00
parent cca49219c0
commit f61124942b
2 changed files with 96 additions and 1 deletions

90
compiz-pageflip.patch Normal file
View File

@ -0,0 +1,90 @@
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;

View File

@ -14,7 +14,7 @@ URL: http://www.go-compiz.org
License: GPLv2+ and LGPLv2+ and MIT
Group: User Interface/Desktops
Version: 0.8.2
Release: 7%{?dist}
Release: 8%{?dist}
Summary: OpenGL window and compositing manager
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -61,6 +61,7 @@ Patch103: composite-cube-logo.patch
Patch105: fedora-logo.patch
Patch106: redhat-logo.patch
Patch107: compiz-0.8.2-wall.patch
Patch108: compiz-pageflip.patch
#Patch110: scale-key.patch
# update translations in desktop-effects
Patch115: desktop-effects-linguas.patch
@ -146,6 +147,7 @@ popd
%patch123 -p1 -b .initial-plugins
%patch125 -p1 -b .gnome-terminal
%patch108 -p1 -b .pageflip
%build
rm -rf $RPM_BUILD_ROOT
@ -359,6 +361,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Fri Jul 31 2009 Kristian Høgsberg <krh@redhat.com> - 0.8.2-8
- Add patch to add option to always use glXSwapBuffers.
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild