From: Luc Verhaegen <luc.verhae...@basyskom.de>

This change makes Xv support slightly less nice, but should, in itself,
not deteriorate things too much, as most drivers function acceptably
without reputimage.

Signed-off-by: Luc Verhaegen <luc.verhae...@basyskom.de>
---
 configure.ac    |   18 ++++++++++++++++++
 src/apm_video.c |    4 ++++
 2 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/configure.ac b/configure.ac
index 780b0a5..1d8ea0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -72,6 +72,24 @@ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
 DRIVER_NAME=apm
 AC_SUBST([DRIVER_NAME])
 
+# since we cannot use the result from XORG_DRIVER_CHECK_EXT directly.
+AC_CHECK_DECL([XV], [have_xv=yes], [have_xv=false], [#include 
"xorg/xorg-server.h"])
+if test "x$have_xv" = xyes; then
+       SAVED_CFLAGS="$CFLAGS"
+       CFLAGS="$CFLAGS $XORG_CFLAGS"
+
+       AC_CHECK_MEMBER([ScrnInfoRec.ModeSet],
+               [SCRNINFO_HAS_MODESET=yes], [SCRNINFO_HAS_MODESET=no],
+               [#include "xf86str.h"])
+       if test "x$SCRNINFO_HAS_MODESET" = xyes; then
+               AC_DEFINE(XV_NEW_REPUT, 1,
+                       [XvReputImage takes more all coordinates])
+       fi
+
+       CFLAGS="$SAVED_CFLAGS"
+fi
+AM_CONDITIONAL(XV_NEW_REPUT, test x$XV_NEW_REPUT = xyes)
+
 AC_CONFIG_FILES([
                 Makefile
                 src/Makefile
diff --git a/src/apm_video.c b/src/apm_video.c
index 9a9bc39..42694bb 100644
--- a/src/apm_video.c
+++ b/src/apm_video.c
@@ -28,8 +28,10 @@ static int   ApmQueryImageAttributes(ScrnInfoPtr, int,
                                            unsigned short *, unsigned short *,
                                            int *, int *);
 #endif
+#ifndef XV_NEW_REPUT
 static int     A(ReputImage)(ScrnInfoPtr, short, short, RegionPtr, pointer,
                                DrawablePtr);
+#endif
 static int     A(PutImage)(ScrnInfoPtr, short, short, short, short, short,
                                short, short, short, int, unsigned char*,
                                short, short, Bool, RegionPtr, pointer,
@@ -336,7 +338,9 @@ A(SetupImageVideo)(ScreenPtr pScreen)
     adapt->GetPortAttribute = ApmGetPortAttribute;
     adapt->QueryBestSize = ApmQueryBestSize;
     adapt->PutImage = A(PutImage);
+#ifndef XV_NEW_REPUT
     adapt->ReputImage = A(ReputImage);
+#endif
     adapt->QueryImageAttributes = ApmQueryImageAttributes;
 
     pPriv->brightness = 0;
-- 
1.6.4.2

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to