[PATCH] configure: set X render animated cursors optional

Tiago Vignatti tiago.vignatti at nokia.com
Fri Aug 28 07:22:57 PDT 2009


Signed-off-by: Tiago Vignatti <tiago.vignatti at nokia.com>
---

My only doubt is regarding the return type on ProcRenderCreateAnimCursor when
the server does not support animated cursor. I put as BadImplementation.


 configure.ac            |    7 +++++++
 include/dix-config.h.in |    3 +++
 render/Makefile.am      |    6 +++++-
 render/animcur.c        |    1 +
 render/animcur.h        |   10 ++++++++++
 render/picture.c        |    2 ++
 render/picturestr.h     |    9 +++------
 render/render.c         |    4 ++++
 8 files changed, 35 insertions(+), 7 deletions(-)
 create mode 100644 render/animcur.h

diff --git a/configure.ac b/configure.ac
index c5c069d..6eb447a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -590,6 +590,8 @@ AC_ARG_ENABLE(xaa,               AS_HELP_STRING([--enable-xaa], [Build XAA (defa
 AC_ARG_ENABLE(vgahw,          AS_HELP_STRING([--enable-vgahw], [Build Xorg with vga access (default: enabled)]), [VGAHW=$enableval], [VGAHW=yes])
 AC_ARG_ENABLE(vbe,            AS_HELP_STRING([--enable-vbe], [Build Xorg with VBE module (default: enabled)]), [VBE=$enableval], [VBE=yes])
 AC_ARG_ENABLE(int10-module,     AS_HELP_STRING([--enable-int10-module], [Build Xorg with int10 module (default: enabled)]), [INT10MODULE=$enableval], [INT10MODULE=yes])
+AC_ARG_ENABLE(animcursor,     AS_HELP_STRING([--enable-animcursor], [Build Xorg with X render animated cursor support (default: enabled)]), [ANIMCURSOR=$enableval], [ANIMCURSOR=yes])
+
 
 dnl DDXes.
 AC_ARG_ENABLE(xorg,    	      AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
@@ -1033,6 +1035,11 @@ AM_CONDITIONAL(XAA, test "x$XAA" = xyes)
 AM_CONDITIONAL(VGAHW, test "x$VGAHW" = xyes)
 AM_CONDITIONAL(VBE, test "x$VBE" = xyes)
 AM_CONDITIONAL(INT10MODULE, test "x$INT10MODULE" = xyes)
+AM_CONDITIONAL(ANIMCURSOR, test "x$ANIMCURSOR" = xyes)
+
+if test "x$ANIMCURSOR" = xyes; then
+    AC_DEFINE(ANIMCURSOR_SUPPORT, 1, [X Render animated cursor support available])
+fi
 
 AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
 
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index fcb582f..7d11021 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -430,4 +430,7 @@
 
 #undef HAVE_AVC_NETLINK_ACQUIRE_FD
 
+/* X Render animated cursor support */
+#undef ANIMCURSOR_SUPPORT
+
 #endif /* _DIX_CONFIG_H_ */
diff --git a/render/Makefile.am b/render/Makefile.am
index 216c613..a967fb7 100644
--- a/render/Makefile.am
+++ b/render/Makefile.am
@@ -2,8 +2,12 @@ noinst_LTLIBRARIES = librender.la
 
 AM_CFLAGS = $(DIX_CFLAGS)
 
+if ANIMCURSOR
+ANIMCURSOR_SRC = animcur.c
+endif
+
 librender_la_SOURCES =	\
-	animcur.c	\
+	$(ANIMCURSOR_SRC)	\
 	filter.c	\
 	glyph.c		\
 	matrix.c	\
diff --git a/render/animcur.c b/render/animcur.c
index 276e5e4..2a5fc55 100644
--- a/render/animcur.c
+++ b/render/animcur.c
@@ -46,6 +46,7 @@
 #include "picturestr.h"
 #include "inputstr.h"
 #include "xace.h"
+#include "animcur.h"
 
 typedef struct _AnimCurElt {
     CursorPtr	pCursor;    /* cursor to show */
diff --git a/render/animcur.h b/render/animcur.h
new file mode 100644
index 0000000..c0842c1
--- /dev/null
+++ b/render/animcur.h
@@ -0,0 +1,10 @@
+#include "scrnintstr.h"
+#include "glyphstr.h"
+#include "resource.h"
+#include "privates.h"
+
+Bool
+AnimCurInit (ScreenPtr pScreen);
+
+int
+AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
diff --git a/render/picture.c b/render/picture.c
index a367077..f071f26 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -494,7 +494,9 @@ PictureFinishInit (void)
     {
 	if (!PictureInitIndexedFormats (screenInfo.screens[s]))
 	    return FALSE;
+#ifdef ANIMCURSOR_SUPPORT
 	(void) AnimCurInit (screenInfo.screens[s]);
+#endif
     }
 
     return TRUE;
diff --git a/render/picturestr.h b/render/picturestr.h
index 6a8d76d..ee4928b 100644
--- a/render/picturestr.h
+++ b/render/picturestr.h
@@ -28,6 +28,9 @@
 #include "glyphstr.h"
 #include "resource.h"
 #include "privates.h"
+#ifdef ANIMCURSOR_SUPPORT
+#include "animcur.h"
+#endif
 
 typedef struct _DirectFormat {
     CARD16	    red, redMask;
@@ -620,12 +623,6 @@ PictureGradientColor (PictGradientStopPtr stop1,
 
 extern _X_EXPORT void RenderExtensionInit (void);
 
-Bool
-AnimCurInit (ScreenPtr pScreen);
-
-int
-AnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
-
 extern _X_EXPORT void
 AddTraps (PicturePtr	pPicture,
 	  INT16		xOff,
diff --git a/render/render.c b/render/render.c
index 995ebd9..0644fd9 100644
--- a/render/render.c
+++ b/render/render.c
@@ -1869,8 +1869,12 @@ ProcRenderCreateAnimCursor (ClientPtr client)
 	deltas[i] = elt->delay;
 	elt++;
     }
+#ifdef ANIMCURSOR_SUPPORT
     ret = AnimCursorCreate (cursors, deltas, ncursor, &pCursor, client,
 			    stuff->cid);
+#else
+    ret = BadImplementation;
+#endif
     xfree (cursors);
     if (ret != Success)
 	return ret;
-- 
1.5.6.3



More information about the xorg-devel mailing list