summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuc Verhaegen <luc.verhaegen@basyskom.de>2010-11-24 18:21:23 +0100
committerJulien Cristau <jcristau@debian.org>2012-05-12 12:42:22 +0200
commit384531dbd4ea359511c274d3cbd2b34449321ad0 (patch)
treef1c0566d839f5a8a2e8962728b59d62c5e815a4a
parente92c8ed0b03b5a33f4b0c3966e540a31af760402 (diff)
xv: disable reputimage hook on newer api
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.verhaegen@basyskom.de> Signed-off-by: Julien Cristau <jcristau@debian.org>
-rw-r--r--configure.ac18
-rw-r--r--src/apm_video.c4
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 c87ffd0..4b8f132 100644
--- a/src/apm_video.c
+++ b/src/apm_video.c
@@ -26,8 +26,10 @@ static void ApmQueryBestSize(ScrnInfoPtr, Bool, short, short, short,
static int ApmQueryImageAttributes(ScrnInfoPtr, int,
unsigned short *, unsigned short *,
int *, int *);
+#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,
@@ -333,7 +335,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;