[Commit] Xrender ChangeLog,1.1,1.2 Composite.c,1.3,1.4 Cursor.c,1.4,1.5 FillRect.c,1.3,1.4 FillRects.c,1.3,1.4 Filter.c,1.2,1.3 Glyph.c,1.13,1.14 Makefile.am,1.5,1.6 Picture.c,1.10,1.11 Trap.c,1.4,1.5 Tri.c,1.4,1.5 Xrender.c,1.15,1.16 Xrenderint.h,1.8,1.9 configure.ac,1.5,1.6 xrender.pc.in,1.5,1.6 extutil.h,1.2,NONE
Noah Levitt
commit@keithp.com
Wed, 23 Apr 2003 20:29:17 -0700
Committed by: nlevitt
Update of /local/src/CVS/Xrender
In directory home.keithp.com:/tmp/cvs-serv28728
Modified Files:
ChangeLog Composite.c Cursor.c FillRect.c FillRects.c Filter.c
Glyph.c Makefile.am Picture.c Trap.c Tri.c Xrender.c
Xrenderint.h configure.ac xrender.pc.in
Removed Files:
extutil.h
Log Message:
Get rid of libXext dependency.
Index: ChangeLog
===================================================================
RCS file: /local/src/CVS/Xrender/ChangeLog,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ChangeLog 21 Apr 2003 17:36:39 -0000 1.1
+++ ChangeLog 24 Apr 2003 03:29:14 -0000 1.2
@@ -1,3 +1,7 @@
+2003-04-21 Noah Levitt <nlevitt@columbia.edu>
+
+ + Get rid of libXext dependency.
+
2003-04-21 Keith Packard <keithp@keithp.com>
+ Add ChangeLog and INSTALL
Index: Composite.c
===================================================================
RCS file: /local/src/CVS/Xrender/Composite.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Composite.c 21 Apr 2003 17:22:42 -0000 1.3
+++ Composite.c 24 Apr 2003 03:29:15 -0000 1.4
@@ -40,7 +40,7 @@
unsigned int width,
unsigned int height)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeReq *req;
RenderSimpleCheckExtension (dpy, info);
Index: Cursor.c
===================================================================
RCS file: /local/src/CVS/Xrender/Cursor.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Cursor.c 21 Apr 2003 17:22:42 -0000 1.4
+++ Cursor.c 24 Apr 2003 03:29:15 -0000 1.5
@@ -30,7 +30,7 @@
unsigned int x,
unsigned int y)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
Cursor cid;
xRenderCreateCursorReq *req;
@@ -54,7 +54,7 @@
int ncursor,
XAnimCursor *cursors)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
Cursor cid;
xRenderCreateAnimCursorReq *req;
long len;
Index: FillRect.c
===================================================================
RCS file: /local/src/CVS/Xrender/FillRect.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- FillRect.c 21 Apr 2003 06:49:00 -0000 1.3
+++ FillRect.c 24 Apr 2003 03:29:15 -0000 1.4
@@ -39,7 +39,7 @@
unsigned int width,
unsigned int height)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRectangle *rect;
xRenderFillRectanglesReq *req;
#ifdef MUSTCOPY
Index: FillRects.c
===================================================================
RCS file: /local/src/CVS/Xrender/FillRects.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- FillRects.c 21 Apr 2003 17:22:42 -0000 1.3
+++ FillRects.c 24 Apr 2003 03:29:15 -0000 1.4
@@ -37,7 +37,7 @@
_Xconst XRectangle *rectangles,
int n_rects)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderFillRectanglesReq *req;
long len;
int n;
Index: Filter.c
===================================================================
RCS file: /local/src/CVS/Xrender/Filter.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- Filter.c 21 Apr 2003 17:22:42 -0000 1.2
+++ Filter.c 24 Apr 2003 03:29:15 -0000 1.3
@@ -27,7 +27,7 @@
XFilters *
XRenderQueryFilters (Display *dpy, Drawable drawable)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
XRenderInfo *xri;
xRenderQueryFiltersReq *req;
xRenderQueryFiltersReply rep;
@@ -37,7 +37,7 @@
int i;
long nbytes, nbytesAlias, nbytesName;
- if (!XextHasExtension (info))
+ if (!RenderHasExtension (info))
return 0;
if (!XRenderQueryFormats (dpy))
@@ -131,7 +131,7 @@
XFixed *params,
int nparams)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderSetPictureFilterReq *req;
int nbytes = strlen (filter);
Index: Glyph.c
===================================================================
RCS file: /local/src/CVS/Xrender/Glyph.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- Glyph.c 21 Apr 2003 17:22:42 -0000 1.13
+++ Glyph.c 24 Apr 2003 03:29:15 -0000 1.14
@@ -28,7 +28,7 @@
GlyphSet
XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
GlyphSet gsid;
xRenderCreateGlyphSetReq *req;
@@ -47,7 +47,7 @@
GlyphSet
XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
GlyphSet gsid;
xRenderReferenceGlyphSetReq *req;
@@ -66,7 +66,7 @@
void
XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderFreeGlyphSetReq *req;
RenderSimpleCheckExtension (dpy, info);
@@ -88,7 +88,7 @@
_Xconst char *images,
int nbyte_images)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderAddGlyphsReq *req;
long len;
@@ -116,7 +116,7 @@
_Xconst Glyph *gids,
int nglyphs)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderFreeGlyphsReq *req;
long len;
@@ -148,7 +148,7 @@
_Xconst char *string,
int nchar)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeGlyphs8Req *req;
long len;
xGlyphElt *elt;
@@ -233,7 +233,7 @@
_Xconst unsigned short *string,
int nchar)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeGlyphs8Req *req;
long len;
xGlyphElt *elt;
@@ -313,7 +313,7 @@
_Xconst unsigned int *string,
int nchar)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeGlyphs8Req *req;
long len;
xGlyphElt *elt;
@@ -392,7 +392,7 @@
_Xconst XGlyphElt8 *elts,
int nelt)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeGlyphs8Req *req;
GlyphSet glyphset;
long len;
@@ -505,7 +505,7 @@
_Xconst XGlyphElt16 *elts,
int nelt)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeGlyphs16Req *req;
GlyphSet glyphset;
long len;
@@ -616,7 +616,7 @@
_Xconst XGlyphElt32 *elts,
int nelt)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderCompositeGlyphs32Req *req;
GlyphSet glyphset;
long len;
Index: Makefile.am
===================================================================
RCS file: /local/src/CVS/Xrender/Makefile.am,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- Makefile.am 22 Apr 2003 04:46:24 -0000 1.5
+++ Makefile.am 24 Apr 2003 03:29:15 -0000 1.6
@@ -42,7 +42,7 @@
extutil.h \
region.h
-libXrender_la_LIBADD = @X_LIBS@ -lXext -lX11
+libXrender_la_LIBADD = @X_LIBS@ -lX11
# -version-number requires libtool >= 1.5
libXrender_la_LDFLAGS = -version-number 1:2:1
Index: Picture.c
===================================================================
RCS file: /local/src/CVS/Xrender/Picture.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- Picture.c 21 Apr 2003 17:22:42 -0000 1.10
+++ Picture.c 24 Apr 2003 03:29:15 -0000 1.11
@@ -76,7 +76,7 @@
unsigned long valuemask,
_Xconst XRenderPictureAttributes *attributes)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
Picture pid;
xRenderCreatePictureReq *req;
@@ -104,7 +104,7 @@
unsigned long valuemask,
_Xconst XRenderPictureAttributes *attributes)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderChangePictureReq *req;
RenderSimpleCheckExtension (dpy, info);
@@ -124,7 +124,7 @@
static void
_XRenderSetPictureClipRectangles (Display *dpy,
- XExtDisplayInfo *info,
+ XRenderExtDisplayInfo *info,
Picture picture,
int xOrigin,
int yOrigin,
@@ -154,7 +154,7 @@
_Xconst XRectangle *rects,
int n)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
RenderSimpleCheckExtension (dpy, info);
LockDisplay(dpy);
@@ -169,7 +169,7 @@
Picture picture,
Region r)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
int i;
XRectangle *xr, *pr;
BOX *pb;
@@ -200,7 +200,7 @@
Picture picture,
XTransform *transform)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderSetPictureTransformReq *req;
RenderSimpleCheckExtension (dpy, info);
@@ -227,7 +227,7 @@
XRenderFreePicture (Display *dpy,
Picture picture)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderFreePictureReq *req;
RenderSimpleCheckExtension (dpy, info);
Index: Trap.c
===================================================================
RCS file: /local/src/CVS/Xrender/Trap.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Trap.c 21 Apr 2003 17:22:42 -0000 1.4
+++ Trap.c 24 Apr 2003 03:29:15 -0000 1.5
@@ -35,7 +35,7 @@
_Xconst XTrapezoid *traps,
int ntrap)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderTrapezoidsReq *req;
int n;
long len;
Index: Tri.c
===================================================================
RCS file: /local/src/CVS/Xrender/Tri.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- Tri.c 21 Apr 2003 17:22:42 -0000 1.4
+++ Tri.c 24 Apr 2003 03:29:15 -0000 1.5
@@ -35,7 +35,7 @@
_Xconst XTriangle *triangles,
int ntriangle)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderTrianglesReq *req;
int n;
long len;
@@ -80,7 +80,7 @@
_Xconst XPointFixed *points,
int npoint)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderTriStripReq *req;
int n;
long len;
@@ -125,7 +125,7 @@
_Xconst XPointFixed *points,
int npoint)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
_Xconst XPointFixed *first = points;
xPointFixed *p;
xRenderTriFanReq *req;
Index: Xrender.c
===================================================================
RCS file: /local/src/CVS/Xrender/Xrender.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- Xrender.c 21 Apr 2003 06:44:47 -0000 1.15
+++ Xrender.c 24 Apr 2003 03:29:15 -0000 1.16
@@ -25,59 +25,168 @@
#include "Xrenderint.h"
-XExtensionInfo XRenderExtensionInfo;
+XRenderExtInfo XRenderExtensionInfo;
char XRenderExtensionName[] = RENDER_NAME;
-static int XRenderCloseDisplay(Display *dpy, XExtCodes *codes);
+static int XRenderCloseDisplay (Display *dpy, XExtCodes *codes);
-static /* const */ XExtensionHooks render_extension_hooks = {
- NULL, /* create_gc */
- NULL, /* copy_gc */
- NULL, /* flush_gc */
- NULL, /* free_gc */
- NULL, /* create_font */
- NULL, /* free_font */
- XRenderCloseDisplay, /* close_display */
- NULL, /* wire_to_event */
- NULL, /* event_to_wire */
- NULL, /* error */
- NULL, /* error_string */
-};
+/*
+ * XRenderExtFindDisplay - look for a display in this extension; keeps a
+ * cache of the most-recently used for efficiency. (Replaces
+ * XextFindDisplay.)
+ */
+static XRenderExtDisplayInfo *
+XRenderExtFindDisplay (XRenderExtInfo *extinfo,
+ Display *dpy)
+{
+ XRenderExtDisplayInfo *dpyinfo;
-XExtDisplayInfo *
+ /*
+ * see if this was the most recently accessed display
+ */
+ if ((dpyinfo = extinfo->cur) && dpyinfo->display == dpy)
+ return dpyinfo;
+
+ /*
+ * look for display in list
+ */
+ _XLockMutex(_Xglobal_lock);
+ for (dpyinfo = extinfo->head; dpyinfo; dpyinfo = dpyinfo->next) {
+ if (dpyinfo->display == dpy) {
+ extinfo->cur = dpyinfo; /* cache most recently used */
+ _XUnlockMutex(_Xglobal_lock);
+ return dpyinfo;
+ }
+ }
+ _XUnlockMutex(_Xglobal_lock);
+
+ return NULL;
+}
+
+/*
+ * XRenderExtAddDisplay - add a display to this extension. (Replaces
+ * XextAddDisplay)
+ */
+static XRenderExtDisplayInfo *
+XRenderExtAddDisplay (XRenderExtInfo *extinfo,
+ Display *dpy,
+ char *ext_name)
+{
+ XRenderExtDisplayInfo *dpyinfo;
+
+ dpyinfo = (XRenderExtDisplayInfo *) Xmalloc (sizeof (XRenderExtDisplayInfo));
+ if (!dpyinfo) return NULL;
+ dpyinfo->display = dpy;
+ dpyinfo->data = NULL;
+ dpyinfo->codes = XInitExtension (dpy, ext_name);
+
+ /*
+ * if the server has the extension, then we can initialize the
+ * appropriate function vectors
+ */
+ if (dpyinfo->codes) {
+ XESetCloseDisplay (dpy, dpyinfo->codes->extension,
+ XRenderCloseDisplay);
+ } else {
+ /* The server doesn't have this extension.
+ * Use a private Xlib-internal extension to hang the close_display
+ * hook on so that the "cache" (extinfo->cur) is properly cleaned.
+ * (XBUG 7955)
+ */
+ XExtCodes *codes = XAddExtension(dpy);
+ if (!codes) {
+ XFree(dpyinfo);
+ return NULL;
+ }
+ XESetCloseDisplay (dpy, codes->extension, XRenderCloseDisplay);
+ }
+
+ /*
+ * now, chain it onto the list
+ */
+ _XLockMutex(_Xglobal_lock);
+ dpyinfo->next = extinfo->head;
+ extinfo->head = dpyinfo;
+ extinfo->cur = dpyinfo;
+ extinfo->ndisplays++;
+ _XUnlockMutex(_Xglobal_lock);
+ return dpyinfo;
+}
+
+
+/*
+ * XRenderExtRemoveDisplay - remove the indicated display from the
+ * extension object. (Replaces XextRemoveDisplay.)
+ */
+static int
+XRenderExtRemoveDisplay (XRenderExtInfo *extinfo, Display *dpy)
+{
+ XRenderExtDisplayInfo *dpyinfo, *prev;
+
+ /*
+ * locate this display and its back link so that it can be removed
+ */
+ _XLockMutex(_Xglobal_lock);
+ prev = NULL;
+ for (dpyinfo = extinfo->head; dpyinfo; dpyinfo = dpyinfo->next) {
+ if (dpyinfo->display == dpy) break;
+ prev = dpyinfo;
+ }
+ if (!dpyinfo) {
+ _XUnlockMutex(_Xglobal_lock);
+ return 0; /* hmm, actually an error */
+ }
+
+ /*
+ * remove the display from the list; handles going to zero
+ */
+ if (prev)
+ prev->next = dpyinfo->next;
+ else
+ extinfo->head = dpyinfo->next;
+
+ extinfo->ndisplays--;
+ if (dpyinfo == extinfo->cur) extinfo->cur = NULL; /* flush cache */
+ _XUnlockMutex(_Xglobal_lock);
+
+ Xfree ((char *) dpyinfo);
+ return 1;
+}
+
+
+
+XRenderExtDisplayInfo *
XRenderFindDisplay (Display *dpy)
{
- XExtDisplayInfo *dpyinfo;
+ XRenderExtDisplayInfo *dpyinfo;
- dpyinfo = XextFindDisplay (&XRenderExtensionInfo, dpy);
+ dpyinfo = XRenderExtFindDisplay (&XRenderExtensionInfo, dpy);
if (!dpyinfo)
- dpyinfo = XextAddDisplay (&XRenderExtensionInfo, dpy,
- XRenderExtensionName,
- &render_extension_hooks,
- 0, 0);
+ dpyinfo = XRenderExtAddDisplay (&XRenderExtensionInfo, dpy,
+ XRenderExtensionName);
return dpyinfo;
}
static int
XRenderCloseDisplay (Display *dpy, XExtCodes *codes)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
if (info->data) XFree (info->data);
- return XextRemoveDisplay (&XRenderExtensionInfo, dpy);
+ return XRenderExtRemoveDisplay (&XRenderExtensionInfo, dpy);
}
/****************************************************************************
* *
- * Render public interfaces *
+ * Render public interfaces *
* *
****************************************************************************/
Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
- if (XextHasExtension(info)) {
+ if (RenderHasExtension(info)) {
*event_basep = info->codes->first_event;
*error_basep = info->codes->first_error;
return True;
@@ -91,10 +200,10 @@
int *major_versionp,
int *minor_versionp)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
XRenderInfo *xri;
- if (!XextHasExtension (info))
+ if (!RenderHasExtension (info))
return 0;
if (!XRenderQueryFormats (dpy))
@@ -161,7 +270,7 @@
Status
XRenderQueryFormats (Display *dpy)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
_XAsyncHandler async;
_XrenderVersionState async_state;
xRenderQueryVersionReq *vreq;
@@ -332,10 +441,10 @@
int
XRenderQuerySubpixelOrder (Display *dpy, int screen)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
XRenderInfo *xri;
- if (!XextHasExtension (info))
+ if (!RenderHasExtension (info))
return SubPixelUnknown;
if (!XRenderQueryFormats (dpy))
@@ -348,10 +457,10 @@
Bool
XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
XRenderInfo *xri;
- if (!XextHasExtension (info))
+ if (!RenderHasExtension (info))
return False;
if (!XRenderQueryFormats (dpy))
@@ -365,7 +474,7 @@
XRenderPictFormat *
XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
int nv;
XRenderInfo *xri;
XRenderVisual *xrv;
@@ -386,7 +495,7 @@
_Xconst XRenderPictFormat *template,
int count)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
int nf;
XRenderInfo *xri;
@@ -596,7 +705,7 @@
_Xconst XRenderPictFormat *format,
int *num)
{
- XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+ XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
xRenderQueryPictIndexValuesReq *req;
xRenderQueryPictIndexValuesReply rep;
XIndexValue *values;
Index: Xrenderint.h
===================================================================
RCS file: /local/src/CVS/Xrender/Xrenderint.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- Xrenderint.h 22 Apr 2003 04:46:24 -0000 1.8
+++ Xrenderint.h 24 Apr 2003 03:29:15 -0000 1.9
@@ -32,11 +32,6 @@
#include <X11/Xutil.h>
#include <X11/extensions/Xext.h>
#include <X11/extensions/renderproto.h>
-#if HAVE_X11_EXTENSIONS_EXTUTIL_H
-# include <X11/extensions/extutil.h>
-#else
-# include "extutil.h" /* use local copy if not installed */
-#endif
#include "Xrender.h"
typedef struct {
@@ -76,17 +71,34 @@
int nfilter_alias;
} XRenderInfo;
-extern XExtensionInfo XRenderExtensionInfo;
+/* replaces XRenderExtDisplayInfo */
+typedef struct _XRenderExtDisplayInfo {
+ struct _XRenderExtDisplayInfo *next; /* keep a linked list */
+ Display *display; /* which display this is */
+ XExtCodes *codes; /* the extension protocol codes */
+ XPointer data; /* extra data for the extension to use */
+} XRenderExtDisplayInfo;
+
+/* replaces XExtensionInfo */
+typedef struct _XRenderExtInfo {
+ XRenderExtDisplayInfo *head; /* start of the list */
+ XRenderExtDisplayInfo *cur; /* most recently used */
+ int ndisplays; /* number of displays */
+} XRenderExtInfo;
+
+extern XRenderExtInfo XRenderExtensionInfo;
extern char XRenderExtensionName[];
+XRenderExtDisplayInfo *
+XRenderFindDisplay (Display *dpy);
+
+#define RenderHasExtension(i) ((i) && ((i)->codes))
+
#define RenderCheckExtension(dpy,i,val) \
- XextCheckExtension (dpy, i, XRenderExtensionName, val)
+ if (!RenderHasExtension(i)) { XMissingExtension (dpy, XRenderExtensionName); return val; }
#define RenderSimpleCheckExtension(dpy,i) \
- XextSimpleCheckExtension (dpy, i, XRenderExtensionName)
-
-XExtDisplayInfo *
-XRenderFindDisplay (Display *dpy);
+ if (!RenderHasExtension(i)) { XMissingExtension (dpy, XRenderExtensionName); return; }
/*
* Xlib uses long for 32-bit values. Xrender uses int. This
Index: configure.ac
===================================================================
RCS file: /local/src/CVS/Xrender/configure.ac,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- configure.ac 22 Apr 2003 04:46:25 -0000 1.5
+++ configure.ac 24 Apr 2003 03:29:15 -0000 1.6
@@ -46,11 +46,6 @@
AC_MSG_ERROR([X is required, but it was either disabled or not found.])
fi
-saved_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="-I$x_includes"
-AC_CHECK_HEADERS([X11/extensions/extutil.h], [], [], [#include <X11/Xutil.h>])
-CPPFLAGS="$saved_CPPFLAGS"
-
# Check render configuration
PKG_CHECK_MODULES(RENDER, render >= $VERSION, [render_found_with_pkgconfig=yes],
[render_found_with_pkgconfig=no])
Index: xrender.pc.in
===================================================================
RCS file: /local/src/CVS/Xrender/xrender.pc.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- xrender.pc.in 22 Apr 2003 06:41:41 -0000 1.5
+++ xrender.pc.in 24 Apr 2003 03:29:15 -0000 1.6
@@ -7,4 +7,4 @@
Description: X Render Library
Version: @VERSION@
Cflags: -I${includedir} @RENDER_CFLAGS@
-Libs: -L${libdir} -lXrender @X_LIBS@ -lX11 -lXext
+Libs: -L${libdir} -lXrender @X_LIBS@ -lX11
--- extutil.h DELETED ---