diff options
-rw-r--r-- | configure.ac | 18 | ||||
-rw-r--r-- | 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 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; |