[xorg-commit-diffs] xc/lib/Xrender AUTHORS, NONE, 1.1.6.1 COPYING, NONE, 1.1.6.1 ChangeLog, NONE, 1.1.6.1 INSTALL, NONE, 1.1.6.1 NEWS, NONE, 1.1.6.1 README, NONE, 1.1.6.1 autogen.sh, NONE, 1.1.6.1 config.h, NONE, 1.1.6.1 configure.ac, NONE, 1.1.6.1 xrender.pc.in, NONE, 1.1.6.1 Color.c, 1.1.4.1, 1.1.4.2 Composite.c, 1.1.4.1, 1.1.4.2 Cursor.c, 1.1.4.1, 1.1.4.2 FillRect.c, 1.1.4.1, 1.1.4.2 FillRects.c, 1.1.4.1, 1.1.4.2 Filter.c, 1.1.4.1, 1.1.4.2 Glyph.c, 1.1.4.1, 1.1.4.2 Picture.c, 1.1.4.1, 1.1.4.2 Poly.c, 1.1.4.1, 1.1.4.2 Trap.c, 1.1.4.1, 1.1.4.2 Tri.c, 1.1.4.1, 1.1.4.2 Xrender-def.cpp, 1.1.4.2, 1.1.4.3 Xrender.c, 1.1.4.1, 1.1.4.2 Xrender.h, 1.1.4.1, 1.1.4.2 Xrenderint.h, 1.1.4.1, 1.1.4.2

Egbert Eich xorg-commit at pdx.freedesktop.org
Thu Apr 15 03:15:10 PDT 2004


Committed by: eich

Update of /cvs/xorg/xc/lib/Xrender
In directory pdx:/home/eich/tstbuild/xc/lib/Xrender

Modified Files:
      Tag: XORG-CURRENT
	Color.c Composite.c Cursor.c FillRect.c FillRects.c Filter.c 
	Glyph.c Picture.c Poly.c Trap.c Tri.c Xrender-def.cpp 
	Xrender.c Xrender.h Xrenderint.h 
Added Files:
      Tag: XORG-CURRENT
	AUTHORS COPYING ChangeLog INSTALL NEWS README autogen.sh 
	config.h configure.ac xrender.pc.in 
Log Message:
2004-04-15  Egbert Eich  <eich at freedesktop.org>
        Merged changes from RELEASE-1 branch
	


--- NEW FILE: AUTHORS ---
Keith Packard, of SuSE, XFree86 and Hewlett-Packard

Noah Levitt, autotooling.

--- NEW FILE: COPYING ---
(This appears to be a binary file; contents omitted.)

--- NEW FILE: ChangeLog ---
2004-02-03  Jim Gettys  <jg at freedesktop.org>

	* AUTHORS: Get a author's list going.

2004-01-15  Daniel Stone  <daniel at fooishbar.org>
	* Tag release 0.8.4 for first freedesktop.org clientside lib release.

2004-01-15  Harold L Hunt II <huntharo at msu.edu>
	* Makefile.am: Pass -no-undefined to libtool via LDFLAGS.

2003-12-12  Keith Packard  <keithp at keithp.com>

	* configure.ac:
	* xrender.pc.in:
	Use Requires: in xrender.pc when x11.pc exists

2003-06-08 10:56  keithp

	* Filter.c, Makefile.am, Xrender.c, Xrenderint.h, configure.ac:
	Bail on bogus Xsun servers, compile with -DXTHREADS if necessary,
	get rid of unecessary cast to XRenderInfo *

2003-05-06 09:05  branden

	* ChangeLog: Huh.  Did Keith tag xrender-0_8_2 *before* running
	cvs2cl?  Running it again.

2003-05-05 20:56  keithp

	* ChangeLog: Update ChangeLog with spiffy cvs2cl script (thanks
	Branden)

2003-05-05 20:49  keithp

	* configure.ac: Update version to 0.8.2, add some version-related
	comments

2003-05-05 20:18  branden

	* debian/: changelog, compat, control, copyright,
	libxrender-dev.install, libxrender-dev.postrm,
	libxrender-dev.preinst, libxrender1-dbg.install,
	libxrender1-dbg.postrm, libxrender1-dbg.preinst,
	libxrender1.install, libxrender1.postrm, libxrender1.preinst,
	rules: Check in Debian packaging infrastructure per Keith's
	request.  This is the stuff that corresponds to Debian's xrender
	0.8.1-1 package.

2003-05-05 19:06  keithp

	* Xrenderint.h, configure.ac: Remove bogus Xext.h include.  Fix
	Render version comparison

2003-05-03 13:00  keithp

	* Makefile.am, configure.ac: Bump to version 0.8.1, library version
	1.2.2 after extutil was removed

2003-04-26 08:52  nlevitt

	* Xrenderint.h: Get rid of reference to XMissingExtension. It's in
	libXext, which we don't link, and we don't want to print an error
	message anyway.

2003-04-23 20:29  nlevitt

	* 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, extutil.h, xrender.pc.in:
	Get rid of libXext dependency.

2003-04-22 09:59  nlevitt

	* .cvsignore: Testing syncmail.

2003-04-21 23:41  nlevitt

	* xrender.pc.in: Xrender.h #includes render.h, so it needs the
	Render CFLAGS.

2003-04-21 23:12  nlevitt

	* xrender.pc.in: s/@PACKAGE_VERSION@/@VERSION@/ (Jeff Waugh, bug
	#71)

2003-04-21 21:46  nlevitt

	* Makefile.am, Xrenderint.h, configure.ac: Use local extutil.h if
	not installed on the system.

2003-04-21 10:36  keithp

	* COPYING, ChangeLog, INSTALL, configure.ac: Fix render header
	version check to use VERSION, eliminate duplicate version numbers
	from configure.ac

2003-04-21 10:22  keithp

	* Color.c, Composite.c, Cursor.c, FillRects.c, Filter.c, Glyph.c,
	Picture.c, Poly.c, Trap.c, Tri.c, Xrender-def.cpp, Xrender.h,
	Xrenderint.h, extutil.h: Switch CVS id tags so regular CVS can cope

2003-04-21 09:47  keithp

	* Makefile.am: Xrender .so is 1.2.  switch order of dependent
	libraries

2003-04-20 23:49  nlevitt

	* FillRect.c: Testing syncmail again.

2003-04-20 23:44  nlevitt

	* Xrender.c: Testing syncmail.

2003-04-19 16:02  nlevitt

	* xrender.pc.in: Add X libs to pkg-config --libs.

2003-04-19 11:32  nlevitt

	* Makefile.am: Link with -lX11 -lXext.

2003-04-19 11:21  nlevitt

	* Makefile.am, Xrenderint.h, configure.ac: Use installed
	<X11/extenstions/extutil.h>. (Thanks, jdub). Make sure X is found
	at ./configure time. Bump .so version to 1.1.1.

2003-04-17 17:43  nlevitt

	* configure.ac: Xrender version is the same as Render.

2003-04-17 16:41  nlevitt

	* .cvsignore: Quiet, please.

2003-04-17 15:53  nlevitt

	* xrender.pc.in: Fix typo

2003-04-17 15:49  nlevitt

	* Imakefile, Makefile.am, Xrenderint.h, autogen.sh, configure.ac,
	extutil.h, region.h, xrender.pc.in: Initial automake support.

2003-03-24 20:18  dawes

	* Xrender-def.cpp:   26. Updates for building on OS/2 (#5650, Frank
	Giessler).

2002-11-24 13:46  tsi

	* Cursor.c: Warning fix

2002-11-22 18:34  keithp

	* Cursor.c, Xrender.h: Add animate cursor support, client side

2002-11-21 18:10  keithp

	* Xrender.c: Skip unexpected data in QueryFormats.  Deal with
	broken X servers a bit better

2002-11-14 13:01  tsi

	* Imakefile: First pass at imake warnings.  + some ATI driver
	formatting changes.
	
	Please ensure these changes are reflected in DRI's CVS.

2002-11-06 14:47  keithp

	* Xrender.c, Xrender.h: XRenderQueryPictIndexValues support (from
	Olivier Chapuis).  Bump Render version to 0.7

2002-11-05 15:22  keithp

	* Glyph.c, Trap.c, Tri.c, Xrenderint.h: Render uses int for 32
	bits, Xlib uses long.  This matters on alpha

2002-10-17 18:13  keithp

	* Glyph.c: Miscomputing request length for String16 and String32

2002-10-01 07:31  alanh

	* Xrender-def.cpp:  358. Enable version controlled .dll's on
	Cygwin/XFree86 (Alexander Gottwald).
	 357. Some build fixes for Cygwin/XFree86 (Alan Hourihane).

2002-09-29 16:39  keithp

	* Xrender.c, Xrender.h: Update RandR to 1.0 (library version 2.0)

2002-09-27 09:40  keithp

	* Trap.c: Obey max request length even with BIG-REQUESTS

2002-09-25 19:56  keithp

	* Filter.c, Imakefile, Picture.c, Xrender.c, Xrender.h,
	Xrenderint.h: Add image transformation and sub-pixel ordering to
	Render

2002-08-31 11:15  keithp

	* Glyph.c: Remember not to write code at 1am. 
	CompositeText{8,16,32} werent switching glyphsets at the right
	time.

2002-08-30 23:52  keithp

	* Glyph.c: CompositeGlyphs functions were re-using overwritten data
	and trashing the output buffer

2002-08-22 22:48  keithp

	* Cursor.c, Imakefile, Xrender.h: Add CreateCursor request to
	Render

2002-07-24 08:26  tsi

	* Imakefile: Make libXrender buildable in non-XFree86 environments.

2002-06-07 11:04  keithp

	* Imakefile: Get Xrender to build out of the XFree86 environment

2002-06-04 16:22  keithp

	* Poly.c: Free edges structure after drawing Render polygons

2002-05-30 23:38  keithp

	* Imakefile: Fix up support for building Xft1, Xrender and
	fontconfig out of the tree

2002-05-21 13:39  keithp

	* Poly.c: Xrender library didnt render some concave polygons right

2002-05-17 16:54  keithp

	* Xrender.c: standard 1-bit render format had incorrect depth in
	spec

2002-05-17 15:34  keithp

	* Color.c, Imakefile, Xrender.h: Add Render color parse routine for
	rgba colorspace

2002-05-16 23:54  keithp

	* Poly.c: Another tesselation fix for Rendered polygons

2002-05-16 08:28  tsi

	* Poly.c: Warning fix

2002-05-14 23:43  keithp

	* Tri.c: Fix up triangle request encodings

2002-05-14 23:42  keithp

	* Xrender.c, Xrender.h: Add XRenderFindStandardFormat

2002-05-14 23:39  keithp

	* Poly.c: Redo tesselation to match foley and vanDam

2002-05-13 00:21  keithp

	* Poly.c: Make tesselation function do something reasonable

2002-05-12 22:21  keithp

	* Imakefile, Xrender.h, Poly.c, Trap.c, Tri.c: Update render
	extension to include trapezoids

2002-02-11 23:17  keithp

	* Glyph.c: XRenderFreeGlyphs wasnt sending the glyphset

2002-01-02 11:57  tsi

	* Glyph.c, Xrender.h: Resync with today's trunk.

2001-12-26 17:16  keithp

	* Glyph.c, Xrender.h: Add Render equivalents of XPolyText*

2001-12-18 09:08  tsi

	* FillRect.c, FillRects.c, Glyph.c, Picture.c, Xrender.c,
	Xrender.h: Another resync with HEAD branch.

2001-12-16 10:27  keithp

	* FillRect.c, FillRects.c, Glyph.c, Picture.c, Xrender.c,
	Xrender.h: lib/Xrender: add a bunch of _Xconst to make c++ happier

2001-10-10 20:26  keithp

	* Xrender.c: Check malloc return for Xrender query reply temp data

2001-09-05 13:13  mvojkovi

	* Xrender.c: 
	  Missing SyncHandle() in XRenderQueryFormats.

2001-07-31 17:44  tsi

	* Xrender.h:  168. Fix 16bpp colour maps on Mach64's (Marc La
	France).
	 167. Fix Mach64 DPMS bug (Marc La France).
	 166. Fix bug that prevented hardware cursors on Mach64 CT's (Marc
	La France).
	 165. Document what a ChipAdjustFrame() function should to to
	prevent moving
	      of hardware cursors during mode switches (Marc La France).
	 164. -Wimplicit warning cleanup [`make World` >required<] (Marc La
	France).
	 163. Ensure installed headers can find the headers they, in turn,
	#include
	      (Marc La France).
	 162. Make imake pass its -W* flags to cpp (Marc La France).
	 161. More accomodations for newer GCC's (Mike A. Harris).

2001-07-06 13:46  keithp

	* Xrender.c: Fix a couple of locking bugs in Xrender library

2001-05-16 03:33  keithp

	* Xrender.c: Clean up memory leaks in Xrender library

2001-02-13 11:19  dawes

	* Xrender-def.cpp:  135. Updates for Cygwin support (#4433, Suhaib
	M. Siddiqi).
	 134. Fix a bug in the fonts.sgml doc (#4432, Juliusz Chroboczek).
	 133. Fix the xdpyinfo so that it will build when the XKB extension
	isn't
	      defined (#4422, Jim Gettys).
	 132. Fix the xdm greeter so that it will build when the XKB
	extension isn't
	      defined (#4421, Jim Gettys).
	 131. Only build setxkbmap when building the XKB lib support (based
	on #4420,
	      Jim Gettys).
	 130. Improve the mga driver messages when the HAL module isn't
	available
	      (#4451, David Woodhouse).
	 129. Add G450 support to the mga driver (#4416, Luugi Marsan
	(Matrox),
	      4449, David Woodhouse).
	 128. Mga driver updates, including HAL cleanups, add a Crtc2Ram
	option,
	      and merge with Matrox beta4 source (#4415, Antii Tapaninen,
	#4423,
	      Simon Hosie).
	 127. Fix a rounding problem in the wacom driver that was causing
	some
	      position instability (#4417, Hannes Eriksson).

2000-12-07 15:55  keithp

	* Picture.c: Xrender: missing mask field in ChangePictureAttributes
	request encoding

2000-12-04 23:42  keithp

	* Picture.c: Xft,Xrender: make clip rectangles actually work

2000-12-04 19:13  keithp

	* Picture.c, Xrender.h: Xft,Xrender,Render: c++ support, clip
	rectangles, warnings

2000-12-04 13:01  dawes

	* Xrender-def.cpp: missing ident lines

2000-12-04 10:49  dawes

	* Xrender-def.cpp: 1085. Updates for Hurd support (#A.209, Marcus
	Brinkmann).  1084. Bump the minor revisions of libXmu (UTF8_STRING)
	and libX11	 (Xutf8LookupString).  1083. Fixes for all known
	bugs in the CompoundText parser and generator,	     (#4333, Bruno
	Haible).  1082. Fix documentation for XSetOMValues() (#4332, Bruno
	Haible).  1081. Fix namespace polution in <X11/Xlib.h> introduced
	with patch #4293       (#4331, Bruno Haible).  1080. Fix a bug in
	the newly introduced Xutf8LookupString() function that	     loses
	input not representable in the locale encoding (#4330,	     Bruno
	Haible).  1079. Avoid four new gcc warnings about const in lcUTF8.c
	introduced by	    patch #4293 (#4329, Bruno Haible).	1078. Fix
	some additional cases of confusing local typedef for wchar_t	  
	(#4328, Bruno Haible).	1077. Fix some round-trip conversion errors
	in COMPOUND_TEXT -> UTF8_STRING ->	 COMPOUND_TEXT due to wrong
	tables introduced by patches #4214, 4215       (#4327, Pablo
	Saratxaga).  1076. Cygwin update for building Xrender DLL (#4326,
	Suhaib M. Siddiqi).  1075. Fix an undefined SUBDIRS in
	xc/lib/GL/mesa/src/drv/Imakefile when	    compiling on something
	other than x86, alpha or sparc (#4325,	     Brian Paul).  1074.
	Don't have the neomagic driver disable stretching when a mode that 
	     fills the panel is selected (#4324, Andrew C. Aitchison). 
	1073. Fix a bug in Xlib's _XimLocalMbLookupString() that causes a
	crash when	 a zero keycode keypress event is received (#4322,
	HIBINO Kei).

2000-12-03 15:41  keithp

	* Xrender.h: Xrender: prototype using "template" collides with
	reserved c++ word

2000-12-02 01:38  keithp

	* Glyph.c: Xrender: 16/32 bit glyph functions using wrong minor
	request code

2000-12-01 13:31  keithp

	* Glyph.c, Picture.c, Xrender.c, Xrender.h: Xrender/Xft: handle
	long strings, use unsigned int for 32-bit glyphs

2000-11-29 00:25  keithp

	* Glyph.c, Xrender.h: add 16/32 bit glyph rendering to Xrender
	library

2000-11-19 23:13  keithp

	* FillRect.c, FillRects.c, Imakefile, Picture.c, Xrender.h: Add
	component alpha to Render extension

2000-08-27 19:43  tsi

	* Composite.c, Glyph.c, Picture.c, Xrender.c, Xrender.h,
	Xrenderint.h: Ident lines

2000-08-26 09:37  keithp

	* Imakefile: Get render library to actually build and install
	correctly

2000-08-25 17:38  keithp

	* Composite.c, Glyph.c, Imakefile, Picture.c, Xrender.c, Xrender.h,
	Xrenderint.h: Add Xrender library


--- NEW FILE: INSTALL ---
Xrender is built with the traditional configure script:

	$ ./configure --prefix=/usr/X11R6

This should generate valid Makefiles, then:

        $ make
        $ make install

--- NEW FILE: NEWS ---

--- NEW FILE: README ---

--- NEW FILE: autogen.sh ---
#! /bin/sh
autoreconf -v --install || exit 1
./configure --enable-maintainer-mode "$@"

--- NEW FILE: config.h ---

--- NEW FILE: configure.ac ---
(This appears to be a binary file; contents omitted.)

--- NEW FILE: xrender.pc.in ---
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@

Name: Xrender
Description: X Render Library
Version: @VERSION@
Requires: @X_REQUIRES@
Cflags: -I${includedir} @RENDER_CFLAGS@ @X_NON_PKG_CFLAGS@
Libs: -L${libdir} -lXrender @X_NON_PKG_LIBS@

Index: Color.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Color.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Color.c	5 Mar 2004 13:39:27 -0000	1.1.4.1
+++ b/Color.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86$
  *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that

Index: Composite.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Composite.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Composite.c	5 Mar 2004 13:39:27 -0000	1.1.4.1
+++ b/Composite.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,5 +1,4 @@
 /*
- * $XFree86$
  *
  * Copyright © 2000 SuSE, Inc.
  *
@@ -40,7 +39,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: /cvs/xorg/xc/lib/Xrender/Cursor.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Cursor.c	5 Mar 2004 13:39:27 -0000	1.1.4.1
+++ b/Cursor.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86: xc/lib/Xrender/Cursor.c,v 1.2tsi Exp $
  *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -30,7 +29,7 @@
 		     unsigned int   x,
 		     unsigned int   y)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     Cursor			cid;
     xRenderCreateCursorReq	*req;
 
@@ -54,7 +53,7 @@
 			 int		ncursor,
 			 XAnimCursor	*cursors)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     Cursor			cid;
     xRenderCreateAnimCursorReq	*req;
     long			len;

Index: FillRect.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/FillRect.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FillRect.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/FillRect.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86$
  *
- * Copyright © 2000 SuSE, Inc.
+ * Copyright © 2000 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -39,7 +38,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: /cvs/xorg/xc/lib/Xrender/FillRects.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FillRects.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/FillRects.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,5 +1,4 @@
 /*
- * $XFree86$
  *
  * Copyright © 2000 SuSE, Inc.
  *
@@ -37,7 +36,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: /cvs/xorg/xc/lib/Xrender/Filter.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Filter.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Filter.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86$
  *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -27,7 +26,7 @@
 XFilters *
 XRenderQueryFilters (Display *dpy, Drawable drawable)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     XRenderInfo			*xri;
     xRenderQueryFiltersReq	*req;
     xRenderQueryFiltersReply	rep;
@@ -37,13 +36,13 @@
     int				i;
     long			nbytes, nbytesAlias, nbytesName;
     
-    if (!XextHasExtension (info))
+    if (!RenderHasExtension (info))
 	return 0;
 
     if (!XRenderQueryFormats (dpy))
 	return 0;
 
-    xri = (XRenderInfo *) info->data;
+    xri = info->info;
     if (xri->minor_version < 6)
 	return 0;
     
@@ -131,7 +130,7 @@
 			  XFixed    *params,
 			  int	    nparams)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderSetPictureFilterReq	*req;
     int				nbytes = strlen (filter);
 

Index: Glyph.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Glyph.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Glyph.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Glyph.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,5 +1,4 @@
 /*
- * $XFree86: xc/lib/Xrender/Glyph.c,v 1.11 2002/10/18 01:13:39 keithp Exp $
  *
  * Copyright © 2000 SuSE, Inc.
  *
@@ -28,7 +27,7 @@
 GlyphSet
 XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     GlyphSet			gsid;
     xRenderCreateGlyphSetReq	*req;
 
@@ -47,7 +46,7 @@
 GlyphSet
 XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing)
 {
-    XExtDisplayInfo             *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo             *info = XRenderFindDisplay (dpy);
     GlyphSet                    gsid;
     xRenderReferenceGlyphSetReq	*req;
 
@@ -66,7 +65,7 @@
 void
 XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     xRenderFreeGlyphSetReq  *req;
 
     RenderSimpleCheckExtension (dpy, info);
@@ -88,7 +87,7 @@
 		  _Xconst char		*images,
 		  int		nbyte_images)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     xRenderAddGlyphsReq	    *req;
     long		    len;
 
@@ -116,7 +115,7 @@
 		   _Xconst Glyph     *gids,
 		   int       nglyphs)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     xRenderFreeGlyphsReq    *req;
     long                    len;
 
@@ -148,7 +147,7 @@
 			 _Xconst char	    *string,
 			 int		    nchar)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderCompositeGlyphs8Req	*req;
     long			len;
     xGlyphElt			*elt;
@@ -233,7 +232,7 @@
 			  _Xconst unsigned short    *string,
 			  int		    nchar)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderCompositeGlyphs8Req	*req;
     long			len;
     xGlyphElt			*elt;
@@ -313,7 +312,7 @@
 			  _Xconst unsigned int	    *string,
 			  int		    nchar)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderCompositeGlyphs8Req	*req;
     long			len;
     xGlyphElt			*elt;
@@ -392,7 +391,7 @@
 		       _Xconst XGlyphElt8	    *elts,
 		       int			    nelt)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderCompositeGlyphs8Req	*req;
     GlyphSet			glyphset;
     long			len;
@@ -505,7 +504,7 @@
 			_Xconst XGlyphElt16	    *elts,
 			int			    nelt)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderCompositeGlyphs16Req	*req;
     GlyphSet			glyphset;
     long			len;
@@ -616,7 +615,7 @@
 			_Xconst XGlyphElt32	    *elts,
 			int			    nelt)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     xRenderCompositeGlyphs32Req	*req;
     GlyphSet			glyphset;
     long			len;

Index: Picture.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Picture.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Picture.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Picture.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,5 +1,4 @@
 /*
- * $XFree86: xc/lib/Xrender/Picture.c,v 1.6 2000/12/05 07:42:29 keithp Exp $
  *
  * Copyright © 2000 SuSE, Inc.
  *
@@ -76,7 +75,7 @@
 		      unsigned long		valuemask,
 		      _Xconst XRenderPictureAttributes	*attributes)
 {
-    XExtDisplayInfo	    *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo	    *info = XRenderFindDisplay (dpy);
     Picture		    pid;
     xRenderCreatePictureReq *req;
 
@@ -104,7 +103,7 @@
 		      unsigned long             valuemask,
 		      _Xconst XRenderPictureAttributes  *attributes)
 {
-    XExtDisplayInfo	    *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo	    *info = XRenderFindDisplay (dpy);
     xRenderChangePictureReq *req;
     
     RenderSimpleCheckExtension (dpy, info);
@@ -124,7 +123,7 @@
 
 static void
 _XRenderSetPictureClipRectangles (Display	    *dpy,
-				  XExtDisplayInfo   *info,
+				  XRenderExtDisplayInfo   *info,
 				  Picture	    picture,
 				  int		    xOrigin,
 				  int		    yOrigin,
@@ -154,7 +153,7 @@
 				 _Xconst XRectangle	*rects,
 				 int		n)
 {
-    XExtDisplayInfo	    *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo	    *info = XRenderFindDisplay (dpy);
     
     RenderSimpleCheckExtension (dpy, info);
     LockDisplay(dpy);
@@ -169,7 +168,7 @@
 			     Picture	    picture,
 			     Region	    r)
 {
-    XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
     int		    i;
     XRectangle	    *xr, *pr;
     BOX		    *pb;
@@ -200,7 +199,7 @@
 			    Picture	picture,
 			    XTransform	*transform)
 {
-    XExtDisplayInfo		    *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		    *info = XRenderFindDisplay (dpy);
     xRenderSetPictureTransformReq   *req;
     
     RenderSimpleCheckExtension (dpy, info);
@@ -227,7 +226,7 @@
 XRenderFreePicture (Display                   *dpy,
 		    Picture                   picture)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     xRenderFreePictureReq   *req;
 
     RenderSimpleCheckExtension (dpy, info);

Index: Poly.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Poly.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Poly.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Poly.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86: xc/lib/Xrender/Poly.c,v 1.6 2002/05/21 20:39:50 keithp Exp $
  *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that

Index: Trap.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Trap.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Trap.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Trap.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86: xc/lib/Xrender/Trap.c,v 1.2 2002/09/27 16:40:11 keithp Exp $
  *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -35,7 +34,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: /cvs/xorg/xc/lib/Xrender/Tri.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Tri.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Tri.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86: xc/lib/Xrender/Tri.c,v 1.2 2002/05/15 06:43:22 keithp Exp $
  *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ * Copyright © 2002 Keith Packard
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -35,7 +34,7 @@
 			   _Xconst XTriangle	*triangles,
 			   int			ntriangle)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     xRenderTrianglesReq	    *req;
     int			    n;
     long    		    len;
@@ -80,7 +79,7 @@
 			  _Xconst XPointFixed	*points,
 			  int			npoint)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     xRenderTriStripReq	    *req;
     int			    n;
     long    		    len;
@@ -125,7 +124,7 @@
 			_Xconst XPointFixed	*points,
 			int			npoint)
 {
-    XExtDisplayInfo         *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo         *info = XRenderFindDisplay (dpy);
     _Xconst XPointFixed	    *first = points;
     xPointFixed		    *p;
     xRenderTriFanReq	    *req;

Index: Xrender-def.cpp
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Xrender-def.cpp,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.3
diff -u -d -r1.1.4.2 -r1.1.4.3
--- a/Xrender-def.cpp	5 Mar 2004 13:39:28 -0000	1.1.4.2
+++ b/Xrender-def.cpp	15 Apr 2004 10:15:05 -0000	1.1.4.3
@@ -42,4 +42,3 @@
 #ifdef __UNIXOS2__
 XRenderCreateAnimCursor
 #endif
-/* $XFree86: xc/lib/Xrender/Xrender-def.cpp,v 1.4 2002/10/01 14:31:40 alanh Exp $ */

Index: Xrender.c
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Xrender.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Xrender.c	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Xrender.c	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86: xc/lib/Xrender/Xrender.c,v 1.12 2002/09/29 23:39:44 keithp Exp $
  *
- * Copyright © 2000 SuSE, Inc.
+ * Copyright © 2000 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -25,59 +24,288 @@
 
 #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;
+}
+
+/*
+ * If the server is missing support for any of the required depths on
+ * any screen, tell the application that Render is not present.
+ */
+
+#define DEPTH_MASK(d)	(1 << ((d) - 1))
+    
+/*
+ * Render requires support for depth 1, 4, 8, 24 and 32 pixmaps
+ */
+
+#define REQUIRED_DEPTHS	(DEPTH_MASK(1) | \
+			 DEPTH_MASK(4) | \
+			 DEPTH_MASK(8) | \
+			 DEPTH_MASK(24) | \
+			 DEPTH_MASK(32))
+    
+typedef struct _DepthCheckRec {
+    struct _DepthCheckRec *next;
+    Display *dpy;
+    CARD32  missing;
+    unsigned long serial;
+} DepthCheckRec, *DepthCheckPtr;
+
+static DepthCheckPtr	depthChecks;
+
+static int
+XRenderDepthCheckErrorHandler (Display *dpy, XErrorEvent *evt)
+{
+    if (evt->request_code == X_CreatePixmap && evt->error_code == BadValue)
+    {
+	DepthCheckPtr	d;
+	_XLockMutex(_Xglobal_lock);
+	for (d = depthChecks; d; d = d->next)
+	    if (d->dpy == dpy)
+	    {
+		if ((long) (evt->serial - d->serial) >= 0)
+		    d->missing |= DEPTH_MASK(evt->resourceid);
+		break;
+	    }
+	_XUnlockMutex (_Xglobal_lock);
+    }
+}
+
+static Bool
+XRenderHasDepths (Display *dpy)
+{
+    int	s;
+
+    for (s = 0; s < ScreenCount (dpy); s++)
+    {
+	CARD32		    depths = 0;
+	CARD32		    missing;
+	Screen		    *scr = ScreenOfDisplay (dpy, s);
+	int		    d;
+
+	for (d = 0; d < scr->ndepths; d++)
+	    depths |= DEPTH_MASK(scr->depths[d].depth);
+	missing = ~depths & REQUIRED_DEPTHS;
+	if (missing)
+	{
+	    DepthCheckRec   dc, **dp;
+	    XErrorHandler   previousHandler;
+
+	    /*
+	     * Ok, this is ugly.  It should be sufficient at this
+	     * point to just return False, but Xinerama is broken at
+	     * this point and only advertises depths which have an
+	     * associated visual.  Of course, the other depths still
+	     * work, but the only way to find out is to try them.
+	     */
+	    dc.dpy = dpy;
+	    dc.missing = 0;
+	    dc.serial = XNextRequest (dpy);
+	    _XLockMutex(_Xglobal_lock);
+	    dc.next = depthChecks;
+	    depthChecks = &dc;
+	    _XUnlockMutex (_Xglobal_lock);
+	    /*
+	     * I suspect this is not really thread safe, but Xlib doesn't
+	     * provide a lot of options here
+	     */
+	    previousHandler = XSetErrorHandler (XRenderDepthCheckErrorHandler);
+	    /*
+	     * Try each missing depth and see if pixmap creation succeeds
+	     */
+	    for (d = 1; d <= 32; d++)
+		/* don't check depth 1 == Xcursor recurses... */
+		if ((missing & DEPTH_MASK(d)) && d != 1)
+		{
+		    Pixmap  p;
+		    p = XCreatePixmap (dpy, RootWindow (dpy, s), 1, 1, d);
+		    XFreePixmap (dpy, p);
+		}
+	    XSync (dpy, False);
+	    XSetErrorHandler (previousHandler);
+	    /*
+	     * Unhook from the list of depth check records
+	     */
+	    _XLockMutex(_Xglobal_lock);
+	    for (dp = &depthChecks; *dp; dp = &(*dp)->next)
+	    {
+		if (*dp == &dc)
+		{
+		    *dp = dc.next;
+		    break;
+		}
+	    }
+	    _XUnlockMutex (_Xglobal_lock);
+	    if (dc.missing)
+		return False;
+	}
+    }
+    return True;
+}
+
+/*
+ * 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->info = NULL;
+
+    if (XRenderHasDepths (dpy))
+	dpyinfo->codes = XInitExtension (dpy, ext_name);
+    else
+	dpyinfo->codes = NULL;
+
+    /*
+     * 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);
-    if (info->data) XFree (info->data);
+    XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
+    if (info->info) XFree (info->info);
     
-    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,16 +319,16 @@
 			    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))
 	return 0;
     
-    xri = (XRenderInfo *) info->data; 
+    xri = info->info; 
     *major_versionp = xri->major_version;
     *minor_versionp = xri->minor_version;
     return 1;
@@ -161,7 +389,7 @@
 Status
 XRenderQueryFormats (Display *dpy)
 {
-    XExtDisplayInfo		*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo		*info = XRenderFindDisplay (dpy);
     _XAsyncHandler		async;
     _XrenderVersionState	async_state;
     xRenderQueryVersionReq	*vreq;
@@ -184,7 +412,7 @@
     
     RenderCheckExtension (dpy, info, 0);
     LockDisplay (dpy);
-    if (info->data)
+    if (info->info)
     {
 	UnlockDisplay (dpy);
 	return 1;
@@ -316,7 +544,7 @@
 	xSubpixel++;
 	screen++;
     }
-    info->data = (XPointer) xri;
+    info->info = xri;
     /*
      * Skip any extra data
      */
@@ -332,32 +560,32 @@
 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))
 	return SubPixelUnknown;
 
-    xri = (XRenderInfo *) info->data;
+    xri = info->info;
     return xri->screen[screen].subpixel;
 }
 
 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))
 	return False;
 
-    xri = (XRenderInfo *) info->data;
+    xri = info->info;
     xri->screen[screen].subpixel = subpixel;
     return True;
 }
@@ -365,7 +593,7 @@
 XRenderPictFormat *
 XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual)
 {
-    XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
     int		    nv;
     XRenderInfo	    *xri;
     XRenderVisual   *xrv;
@@ -373,7 +601,7 @@
     RenderCheckExtension (dpy, info, 0);
     if (!XRenderQueryFormats (dpy))
         return 0;
-    xri = (XRenderInfo *) info->data;
+    xri = info->info;
     for (nv = 0, xrv = xri->visual; nv < xri->nvisual; nv++, xrv++)
 	if (xrv->visual == visual)
 	    return xrv->format;
@@ -386,14 +614,14 @@
 		   _Xconst XRenderPictFormat	*template,
 		   int			count)
 {
-    XExtDisplayInfo *info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo *info = XRenderFindDisplay (dpy);
     int		    nf;
     XRenderInfo     *xri;
     
     RenderCheckExtension (dpy, info, 0);
     if (!XRenderQueryFormats (dpy))
 	return 0;
-    xri = (XRenderInfo *) info->data;
+    xri = info->info;
     for (nf = 0; nf < xri->nformat; nf++)
     {
 	if (mask & PictFormatID)
@@ -596,7 +824,7 @@
 			    _Xconst XRenderPictFormat	*format,
 			    int				*num)
 {
-    XExtDisplayInfo			*info = XRenderFindDisplay (dpy);
+    XRenderExtDisplayInfo			*info = XRenderFindDisplay (dpy);
     xRenderQueryPictIndexValuesReq	*req;
     xRenderQueryPictIndexValuesReply	rep;
     XIndexValue				*values;

Index: Xrender.h
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Xrender.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Xrender.h	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Xrender.h	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,5 +1,4 @@
 /*
- * $XFree86: xc/lib/Xrender/Xrender.h,v 1.17 2002/11/06 22:47:49 keithp Exp $
  *
  * Copyright © 2000 SuSE, Inc.
  *
@@ -28,6 +27,7 @@
 
 #include <X11/extensions/render.h>
 
+#include <X11/Xlib.h>
 #include <X11/Xfuncproto.h>
 #include <X11/Xosdefs.h>
 #include <X11/Xutil.h>

Index: Xrenderint.h
===================================================================
RCS file: /cvs/xorg/xc/lib/Xrender/Xrenderint.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/Xrenderint.h	5 Mar 2004 13:39:28 -0000	1.1.4.1
+++ b/Xrenderint.h	15 Apr 2004 10:15:05 -0000	1.1.4.2
@@ -1,7 +1,6 @@
 /*
- * $XFree86: xc/lib/Xrender/Xrenderint.h,v 1.3 2002/09/26 02:56:52 keithp Exp $
  *
- * Copyright © 2000 SuSE, Inc.
+ * Copyright © 2000 SuSE, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -26,14 +25,13 @@
 #ifndef _XRENDERINT_H_
 #define _XRENDERINT_H_
 
+#include "config.h"
 #define NEED_EVENTS
 #define NEED_REPLIES
 #include <X11/Xlibint.h>
 #include <X11/Xutil.h>
-#include "Xext.h"			/* in ../include */
-#include "extutil.h"			/* in ../include */
+#include <X11/extensions/renderproto.h>
 #include "Xrender.h"
-#include "renderproto.h"
 
 typedef struct {
     Visual		*visual;
@@ -72,17 +70,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 */
+    XRenderInfo                   *info;    /* 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)) { return val; }
 
 #define RenderSimpleCheckExtension(dpy,i) \
-  XextSimpleCheckExtension (dpy, i, XRenderExtensionName)
-
-XExtDisplayInfo *
-XRenderFindDisplay (Display *dpy);
+  if (!RenderHasExtension(i)) { return; }
 
 /*
  * Xlib uses long for 32-bit values.  Xrender uses int.  This




More information about the xorg-commit-diffs mailing list