summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-04-29 10:32:14 -0700
committerZhenyu Wang <zhenyu.z.wang@intel.com>2008-05-07 11:10:28 +0800
commitf83960f3edb8a8be12ce9dc46a9b9a292de816d6 (patch)
tree22773539d7f48a2f13b192915f4c4ea17912490c
parent1df4fd9f1e7f1c6abea4ea134fbc1b3755988817 (diff)
Use new xf86RotateFreeShadow function to clean up shadow buffers.
This simply moves code from the driver up into the X server; use it where available. (cherry picked from commit fff17b9d1b58cb53032d153094826dd306836d59)
-rw-r--r--configure.ac12
-rw-r--r--src/i830_driver.c6
2 files changed, 18 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index da479dc0..23939c9d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -173,6 +173,18 @@ fi
AC_SUBST([XMODES_CFLAGS])
+SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+
+AC_CHECK_DECL(xf86RotateFreeShadow,
+ [AC_DEFINE(HAVE_FREE_SHADOW, 1, [have new FreeShadow API])],
+ [],
+ [#include <xorg-server.h>
+ #include <windowstr.h>
+ #include <xf86Crtc.h>])
+
+CPPFLAGS="$SAVE_CPPFLAGS"
+
dnl Use lots of warning flags with GCC
WARN_CFLAGS=""
diff --git a/src/i830_driver.c b/src/i830_driver.c
index f4046779..cc3d02df 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3132,7 +3132,9 @@ I830LeaveVT(int scrnIndex, int flags)
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
I830Ptr pI830 = I830PTR(pScrn);
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+#ifndef HAVE_FREE_SHADOW
int o;
+#endif
DPRINTF(PFX, "Leave VT\n");
@@ -3160,6 +3162,7 @@ I830LeaveVT(int scrnIndex, int flags)
}
#endif
+#ifndef HAVE_FREE_SHADOW
for (o = 0; o < config->num_crtc; o++) {
xf86CrtcPtr crtc = config->crtc[o];
@@ -3170,6 +3173,9 @@ I830LeaveVT(int scrnIndex, int flags)
crtc->rotatedData = NULL;
}
}
+#else
+ xf86RotateFreeShadow(pScrn);
+#endif
xf86_hide_cursors (pScrn);