diff options
Diffstat (limited to 'xc/lib')
1357 files changed, 25262 insertions, 6326 deletions
diff --git a/xc/lib/FS/FSClServ.c b/xc/lib/FS/FSClServ.c index 637ac6df4..78ddaaf64 100644 --- a/xc/lib/FS/FSClServ.c +++ b/xc/lib/FS/FSClServ.c @@ -1,4 +1,4 @@ -/* $TOG: FSClServ.c /main/9 1998/05/01 12:50:19 kaleb $ */ +/* $Xorg: FSClServ.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* @(#)FSClServ.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSClServ.c,v 1.3 1999/02/20 15:07:12 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSClServ.c,v 1.4 2001/01/17 19:41:27 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSCloseFt.c b/xc/lib/FS/FSCloseFt.c index a2445aeec..17962932d 100644 --- a/xc/lib/FS/FSCloseFt.c +++ b/xc/lib/FS/FSCloseFt.c @@ -1,4 +1,4 @@ -/* $TOG: FSCloseFt.c /main/7 1998/05/01 12:50:25 kaleb $ */ +/* $Xorg: FSCloseFt.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* @(#)FSCloseFt.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSConnServ.c b/xc/lib/FS/FSConnServ.c index c3f801f81..a560721da 100644 --- a/xc/lib/FS/FSConnServ.c +++ b/xc/lib/FS/FSConnServ.c @@ -1,4 +1,4 @@ -/* $TOG: FSConnServ.c /main/29 1998/05/01 11:34:29 kaleb $ */ +/* $Xorg: FSConnServ.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; @@ -46,7 +46,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/FS/FSConnServ.c,v 3.6 1998/10/03 08:41:06 dawes Exp $ */ +/* $XFree86: xc/lib/FS/FSConnServ.c,v 3.7 2001/01/17 19:41:28 dawes Exp $ */ #include <stdio.h> #include "FSlibint.h" diff --git a/xc/lib/FS/FSErrDis.c b/xc/lib/FS/FSErrDis.c index f25a9b0d7..15cf83ce3 100644 --- a/xc/lib/FS/FSErrDis.c +++ b/xc/lib/FS/FSErrDis.c @@ -1,4 +1,4 @@ -/* $TOG: FSErrDis.c /main/8 1998/05/01 12:50:29 kaleb $ */ +/* $Xorg: FSErrDis.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* @(#)FSErrDis.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSErrHndlr.c b/xc/lib/FS/FSErrHndlr.c index 355bd208b..88b4d9aa0 100644 --- a/xc/lib/FS/FSErrHndlr.c +++ b/xc/lib/FS/FSErrHndlr.c @@ -1,4 +1,4 @@ -/* $TOG: FSErrHndlr.c /main/5 1998/02/06 13:42:28 kaleb $ */ +/* $Xorg: FSErrHndlr.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* @(#)FSErrHndlr.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSErrHndlr.c,v 1.3 1999/02/20 15:07:12 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSErrHndlr.c,v 1.4 2001/01/17 19:41:28 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSFlush.c b/xc/lib/FS/FSFlush.c index 116c2250b..cb3518023 100644 --- a/xc/lib/FS/FSFlush.c +++ b/xc/lib/FS/FSFlush.c @@ -1,4 +1,4 @@ -/* $TOG: FSFlush.c /main/6 1998/05/01 11:34:38 kaleb $ */ +/* $Xorg: FSFlush.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* @(#)FSFlush.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSFontInfo.c b/xc/lib/FS/FSFontInfo.c index 986be4a13..1ca6d706c 100644 --- a/xc/lib/FS/FSFontInfo.c +++ b/xc/lib/FS/FSFontInfo.c @@ -1,4 +1,4 @@ -/* $TOG: FSFontInfo.c /main/9 1998/05/01 12:50:34 kaleb $ */ +/* $Xorg: FSFontInfo.c,v 1.3 2000/08/17 19:44:01 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation diff --git a/xc/lib/FS/FSFtNames.c b/xc/lib/FS/FSFtNames.c index b7c9d8a85..521c56c64 100644 --- a/xc/lib/FS/FSFtNames.c +++ b/xc/lib/FS/FSFtNames.c @@ -1,4 +1,4 @@ -/* $TOG: FSFtNames.c /main/7 1998/05/01 11:34:42 kaleb $ */ +/* $Xorg: FSFtNames.c,v 1.3 2000/08/17 19:44:02 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSGetCats.c b/xc/lib/FS/FSGetCats.c index 84687abc0..e1e9308b3 100644 --- a/xc/lib/FS/FSGetCats.c +++ b/xc/lib/FS/FSGetCats.c @@ -1,4 +1,4 @@ -/* $TOG: FSGetCats.c /main/4 1998/02/06 13:42:48 kaleb $ */ +/* $Xorg: FSGetCats.c,v 1.3 2000/08/17 19:44:02 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSListCats.c b/xc/lib/FS/FSListCats.c index b1520a9b7..294626e6c 100644 --- a/xc/lib/FS/FSListCats.c +++ b/xc/lib/FS/FSListCats.c @@ -1,4 +1,4 @@ -/* $TOG: FSListCats.c /main/6 1998/05/01 12:58:31 kaleb $ */ +/* $Xorg: FSListCats.c,v 1.3 2000/08/17 19:44:02 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSListExt.c b/xc/lib/FS/FSListExt.c index f781a54e0..8cd28e060 100644 --- a/xc/lib/FS/FSListExt.c +++ b/xc/lib/FS/FSListExt.c @@ -1,4 +1,4 @@ -/* $TOG: FSListExt.c /main/7 1998/05/01 11:34:51 kaleb $ */ +/* $Xorg: FSListExt.c,v 1.3 2000/08/17 19:44:02 cpqbld Exp $ */ /* @(#)FSListExt.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSMisc.c b/xc/lib/FS/FSMisc.c index 721c6c30a..8518b660c 100644 --- a/xc/lib/FS/FSMisc.c +++ b/xc/lib/FS/FSMisc.c @@ -1,4 +1,4 @@ -/* $TOG: FSMisc.c /main/5 1998/02/06 13:43:27 kaleb $ */ +/* $Xorg: FSMisc.c,v 1.3 2000/08/17 19:44:03 cpqbld Exp $ */ /* @(#)FSMisc.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSNextEv.c b/xc/lib/FS/FSNextEv.c index 131397e34..713362422 100644 --- a/xc/lib/FS/FSNextEv.c +++ b/xc/lib/FS/FSNextEv.c @@ -1,4 +1,4 @@ -/* $TOG: FSNextEv.c /main/7 1998/05/01 11:34:56 kaleb $ */ +/* $Xorg: FSNextEv.c,v 1.3 2000/08/17 19:44:03 cpqbld Exp $ */ /* @(#)FSNextEv.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSOpenFont.c b/xc/lib/FS/FSOpenFont.c index 341d2dc31..d2f43efd6 100644 --- a/xc/lib/FS/FSOpenFont.c +++ b/xc/lib/FS/FSOpenFont.c @@ -1,4 +1,4 @@ -/* $TOG: FSOpenFont.c /main/8 1998/05/17 16:30:48 kaleb $ */ +/* $Xorg: FSOpenFont.c,v 1.3 2000/08/17 19:44:04 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSOpenFont.c,v 1.4 1999/02/25 06:00:55 dawes Exp $ */ +/* $XFree86: xc/lib/FS/FSOpenFont.c,v 1.5 2001/01/17 19:41:28 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSOpenServ.c b/xc/lib/FS/FSOpenServ.c index 9c4943347..f42124253 100644 --- a/xc/lib/FS/FSOpenServ.c +++ b/xc/lib/FS/FSOpenServ.c @@ -1,4 +1,4 @@ -/* $TOG: FSOpenServ.c /main/8 1998/05/01 11:35:00 kaleb $ */ +/* $Xorg: FSOpenServ.c,v 1.3 2000/08/17 19:44:04 cpqbld Exp $ */ /* @(#)FSOpenServ.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSOpenServ.c,v 1.3 1999/02/20 15:07:13 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSOpenServ.c,v 1.4 2001/01/17 19:41:28 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSQGlyphs.c b/xc/lib/FS/FSQGlyphs.c index 7155926d0..e4f945d24 100644 --- a/xc/lib/FS/FSQGlyphs.c +++ b/xc/lib/FS/FSQGlyphs.c @@ -1,4 +1,4 @@ -/* $TOG: FSQGlyphs.c /main/7 1998/02/06 13:43:46 kaleb $ */ +/* $Xorg: FSQGlyphs.c,v 1.3 2000/08/17 19:44:04 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSQXExt.c b/xc/lib/FS/FSQXExt.c index fc4375f45..66df559d3 100644 --- a/xc/lib/FS/FSQXExt.c +++ b/xc/lib/FS/FSQXExt.c @@ -1,4 +1,4 @@ -/* $TOG: FSQXExt.c /main/7 1998/02/06 13:43:56 kaleb $ */ +/* $Xorg: FSQXExt.c,v 1.3 2000/08/17 19:44:04 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSQXExt.c,v 1.3 1999/02/20 15:07:13 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSQXExt.c,v 1.4 2001/01/17 19:41:28 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSQXInfo.c b/xc/lib/FS/FSQXInfo.c index 67c6ff50e..140fc62a4 100644 --- a/xc/lib/FS/FSQXInfo.c +++ b/xc/lib/FS/FSQXInfo.c @@ -1,4 +1,4 @@ -/* $TOG: FSQXInfo.c /main/6 1998/02/06 13:44:01 kaleb $ */ +/* $Xorg: FSQXInfo.c,v 1.3 2000/08/17 19:44:04 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSQuExt.c b/xc/lib/FS/FSQuExt.c index 0710a33a8..d0affd1f7 100644 --- a/xc/lib/FS/FSQuExt.c +++ b/xc/lib/FS/FSQuExt.c @@ -1,4 +1,4 @@ -/* $TOG: FSQuExt.c /main/5 1998/02/06 13:43:52 kaleb $ */ +/* $Xorg: FSQuExt.c,v 1.3 2000/08/17 19:44:05 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSServName.c b/xc/lib/FS/FSServName.c index b966470f7..2dc59567d 100644 --- a/xc/lib/FS/FSServName.c +++ b/xc/lib/FS/FSServName.c @@ -1,4 +1,4 @@ -/* $TOG: FSServName.c /main/6 1998/02/06 13:44:07 kaleb $ */ +/* $Xorg: FSServName.c,v 1.3 2000/08/17 19:44:05 cpqbld Exp $ */ /* @(#)FSServName.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSSetCats.c b/xc/lib/FS/FSSetCats.c index 6a8d8f43f..36ef1b90a 100644 --- a/xc/lib/FS/FSSetCats.c +++ b/xc/lib/FS/FSSetCats.c @@ -1,4 +1,4 @@ -/* $TOG: FSSetCats.c /main/5 1998/05/17 16:30:54 kaleb $ */ +/* $Xorg: FSSetCats.c,v 1.3 2000/08/17 19:44:05 cpqbld Exp $ */ /* @(#)FSFlush.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSSetCats.c,v 1.3 1999/03/14 03:20:36 dawes Exp $ */ +/* $XFree86: xc/lib/FS/FSSetCats.c,v 1.4 2001/01/17 19:41:28 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSSync.c b/xc/lib/FS/FSSync.c index 4f82c97dc..8f2d893a1 100644 --- a/xc/lib/FS/FSSync.c +++ b/xc/lib/FS/FSSync.c @@ -1,4 +1,4 @@ -/* $TOG: FSSync.c /main/7 1998/05/01 11:35:05 kaleb $ */ +/* $Xorg: FSSync.c,v 1.3 2000/08/17 19:44:05 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; diff --git a/xc/lib/FS/FSSynchro.c b/xc/lib/FS/FSSynchro.c index fee61bc77..045a9ae90 100644 --- a/xc/lib/FS/FSSynchro.c +++ b/xc/lib/FS/FSSynchro.c @@ -1,4 +1,4 @@ -/* $TOG: FSSynchro.c /main/7 1998/05/01 12:50:38 kaleb $ */ +/* $Xorg: FSSynchro.c,v 1.3 2000/08/17 19:44:05 cpqbld Exp $ */ /* @(#)FSSynchro.c 4.1 91/05/02 * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSSynchro.c,v 1.3 1999/02/20 15:07:13 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSSynchro.c,v 1.4 2001/01/17 19:41:28 dawes Exp $ */ /* diff --git a/xc/lib/FS/FSlib.h b/xc/lib/FS/FSlib.h index 0bdd39b4e..5bd5c2c29 100644 --- a/xc/lib/FS/FSlib.h +++ b/xc/lib/FS/FSlib.h @@ -1,4 +1,4 @@ -/* $TOG: FSlib.h /main/10 1998/02/06 13:43:12 kaleb $ */ +/* $Xorg: FSlib.h,v 1.4 2000/08/17 19:44:05 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; @@ -24,7 +24,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/FS/FSlib.h,v 1.3 1999/02/20 15:07:14 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSlib.h,v 1.4 2001/01/17 19:41:28 dawes Exp $ */ /* @@ -55,8 +55,8 @@ in this Software without prior written authorization from The Open Group. #ifndef _FSLIB_H_ #define _FSLIB_H_ -#include <FS.h> -#include <FSproto.h> +#include <X11/fonts/FS.h> +#include <X11/fonts/FSproto.h> #define Bool int #define Status int @@ -74,19 +74,9 @@ in this Software without prior written authorization from The Open Group. #define FSAuthorizationData(svr) ((svr)->auth_data) #define FSAlternateServers(svr) ((svr)->alternate_servers) #define FSNumAlternateServers(svr) ((svr)->num_alternates) - -#ifdef QLength -#undef QLength -#endif -#define QLength(svr) ((svr)->qlen) -#ifdef NextRequest -#undef NextRequest -#endif -#define NextRequest(svr) ((svr)->request + 1) -#ifdef LastKnownRequestProcessed -#undef LastKnownRequestProcessed -#endif -#define LastKnownRequestProcessed(svr) ((svr)->last_request_read) +#define FSQLength(svr) ((svr)->qlen) +#define FSNextRequest(svr) ((svr)->request + 1) +#define FSLastKnownRequestProcessed(svr) ((svr)->last_request_read) #define FSAllocID(svr) ((*(svr)->resource_alloc)((svr))) diff --git a/xc/lib/FS/FSlibInt.c b/xc/lib/FS/FSlibInt.c index 654ed0785..7ccdf8b0c 100644 --- a/xc/lib/FS/FSlibInt.c +++ b/xc/lib/FS/FSlibInt.c @@ -1,4 +1,4 @@ -/* $TOG: FSlibInt.c /main/23 1998/05/01 11:42:57 kaleb $ */ +/* $Xorg: FSlibInt.c,v 1.4 2000/08/17 19:44:05 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; @@ -46,7 +46,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/FS/FSlibInt.c,v 3.7 1999/12/27 00:39:20 robin Exp $ */ +/* $XFree86: xc/lib/FS/FSlibInt.c,v 3.8 2001/01/17 19:41:28 dawes Exp $ */ /* * FSlibInt.c - Internal support routines for the C subroutine @@ -946,7 +946,6 @@ _SysErrorMsg(n) * _FSDefaultIOError - Default fatal system error reporting routine. Called * when an X internal system error is encountered. */ -int _FSDefaultIOError(svr) FSServer *svr; { @@ -961,8 +960,8 @@ _FSDefaultIOError(svr) FSServerString(svr)); (void) fprintf(stderr, " after %lu requests (%lu known processed) with %d events remaining.\r\n", - NextRequest(svr) - 1, LastKnownRequestProcessed(svr), - QLength(svr)); + FSNextRequest(svr) - 1, FSLastKnownRequestProcessed(svr), + FSQLength(svr)); if (ECHECK(EPIPE)) { (void) fprintf(stderr, diff --git a/xc/lib/FS/FSlibint.h b/xc/lib/FS/FSlibint.h index bb4fc9745..47754703e 100644 --- a/xc/lib/FS/FSlibint.h +++ b/xc/lib/FS/FSlibint.h @@ -1,4 +1,4 @@ -/* $TOG: FSlibint.h /main/17 1998/05/01 12:50:43 kaleb $ */ +/* $Xorg: FSlibint.h,v 1.3 2000/08/17 19:44:06 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; @@ -46,7 +46,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/FS/FSlibint.h,v 3.4 1999/02/19 21:26:52 hohndel Exp $ */ +/* $XFree86: xc/lib/FS/FSlibint.h,v 3.5 2001/01/17 19:41:28 dawes Exp $ */ /* * FSlib internal decls diff --git a/xc/lib/FS/FSlibos.h b/xc/lib/FS/FSlibos.h index 962738b67..eec21b592 100644 --- a/xc/lib/FS/FSlibos.h +++ b/xc/lib/FS/FSlibos.h @@ -1,4 +1,4 @@ -/* $TOG: FSlibos.h /main/24 1998/02/06 13:43:07 kaleb $ */ +/* $Xorg: FSlibos.h,v 1.3 2000/08/17 19:44:06 cpqbld Exp $ */ /* @(#)FSlibos.h 4.1 91/05/02 * Copyright 1990 Network Computing Devices; @@ -46,7 +46,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/FS/FSlibos.h,v 3.5 1999/12/27 00:39:21 robin Exp $ */ +/* $XFree86: xc/lib/FS/FSlibos.h,v 3.6 2001/01/17 19:41:28 dawes Exp $ */ /* * FSlib networking & os include file diff --git a/xc/lib/FS/Imakefile b/xc/lib/FS/Imakefile index a391d0d24..e297d0d22 100644 --- a/xc/lib/FS/Imakefile +++ b/xc/lib/FS/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/20 1996/09/28 16:32:46 rws $ -XCOMM $XFree86: xc/lib/FS/Imakefile,v 3.4 1999/02/19 21:26:52 hohndel Exp $ +XCOMM $Xorg: Imakefile,v 1.4 2000/08/17 19:44:07 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/FS/Imakefile,v 3.5 2001/01/17 19:41:28 dawes Exp $ + #define DoNormalLib NormalLibFS #define DoSharedLib SharedLibFS #define DoExtraLib SharedLibFS diff --git a/xc/lib/GL/Imakefile b/xc/lib/GL/Imakefile index d7cf1884a..1dbb7b114 100644 --- a/xc/lib/GL/Imakefile +++ b/xc/lib/GL/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/Imakefile,v 1.34 2000/12/12 23:24:26 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/Imakefile,v 1.35 2001/01/08 01:07:16 martin Exp $ #include <Threads.tmpl> @@ -129,13 +129,14 @@ XCOMM nothing GAMMAPOBJS = mesa/src/drv/gamma/profiled/?*.o GAMMADONES = mesa/src/drv/gamma/DONE - DRVOBJS = $(GAMMAOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVOBJS = $(GAMMAOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) DRVUOBJS = $(GAMMAUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) DRVDOBJS = $(GAMMADOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) DRVPOBJS = $(GAMMAPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) DRVDONES = $(GAMMADONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/gamma + DRVSUBDIRS = mesa/src/drv/gamma + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInTdfx @@ -145,7 +146,7 @@ XCOMM nothing TDFXPOBJS = mesa/src/drv/tdfx/profiled/?*.o TDFXDONES = mesa/src/drv/tdfx/DONE - DRVOBJS = $(TDFXOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVOBJS = $(TDFXOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) DRVUOBJS = $(TDFXUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) DRVDOBJS = $(TDFXDOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) DRVPOBJS = $(TDFXPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) @@ -153,7 +154,8 @@ XCOMM nothing REQUIREDLIBS += -lglide3 -ldl - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/tdfx + DRVSUBDIRS = mesa/src/drv/tdfx + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInI810 @@ -163,13 +165,14 @@ REQUIREDLIBS += -lglide3 -ldl I810POBJS = mesa/src/drv/i810/profiled/?*.o I810DONES = mesa/src/drv/i810/DONE - DRVOBJS = $(I810OBJS) $(COMMONOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVOBJS = $(I810OBJS) $(COMMONOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) DRVUOBJS = $(I810UOBJS) $(COMMONUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) DRVDOBJS = $(I810DOBJS) $(COMMONDOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) DRVPOBJS = $(I810POBJS) $(COMMONPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) DRVDONES = $(I810DONES) $(COMMONDONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/i810 + DRVSUBDIRS = mesa/src/drv/i810 + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInMga @@ -179,13 +182,14 @@ REQUIREDLIBS += -lglide3 -ldl MGAPOBJS = mesa/src/drv/mga/profiled/?*.o MGADONES = mesa/src/drv/mga/DONE - DRVOBJS = $(MGAOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVOBJS = $(MGAOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) DRVUOBJS = $(MGAUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) DRVDOBJS = $(MGADOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) DRVPOBJS = $(MGAPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) DRVDONES = $(MGADONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/mga + DRVSUBDIRS = mesa/src/drv/mga + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInR128 @@ -195,13 +199,31 @@ REQUIREDLIBS += -lglide3 -ldl R128POBJS = mesa/src/drv/r128/profiled/?*.o R128DONES = mesa/src/drv/r128/DONE - DRVOBJS = $(R128OBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) - DRVUOBJS = $(R128UOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) - DRVDOBJS = $(R128DOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) - DRVPOBJS = $(R128POBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) - DRVDONES = $(R128DONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) + DRVOBJS = $(R128OBJS) $(COMMONOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVUOBJS = $(R128UOBJS) $(COMMONUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) + DRVDOBJS = $(R128DOBJS) $(COMMONDOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) + DRVPOBJS = $(R128POBJS) $(COMMONPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) + DRVDONES = $(R128DONES) $(COMMONDONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/r128 + DRVSUBDIRS = mesa/src/drv/common mesa/src/drv/r128 + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) + +#elif GlxBuiltInRadeon + + RADEONOBJS = mesa/src/drv/radeon/?*.o + RADEONUOBJS = mesa/src/drv/radeon/unshared/?*.o + RADEONDOBJS = mesa/src/drv/radeon/debugger/?*.o + RADEONPOBJS = mesa/src/drv/radeon/profiled/?*.o + RADEONDONES = mesa/src/drv/radeon/DONE + + DRVOBJS = $(RADEONOBJS) $(COMMONOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVUOBJS = $(RADEONUOBJS) $(COMMONUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) + DRVDOBJS = $(RADEONDOBJS) $(COMMONDOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) + DRVPOBJS = $(RADEONPOBJS) $(COMMONPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) + DRVDONES = $(RADEONDONES) $(COMMONDONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) + + DRVSUBDIRS = mesa/src/drv/common mesa/src/drv/radeon + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInFfb @@ -217,7 +239,8 @@ REQUIREDLIBS += -lglide3 -ldl DRVPOBJS = $(FFBPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) DRVDONES = $(FFBDONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/ffb + DRVSUBDIRS = mesa/src/drv/ffb + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInSIS @@ -227,13 +250,14 @@ REQUIREDLIBS += -lglide3 -ldl SISPOBJS = mesa/src/drv/sis/profiled/?*.o SISDONES = mesa/src/drv/sis/DONE - DRVOBJS = $(SISOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) + DRVOBJS = $(SISOBJS) $(MESAOBJS) $(DRIMESAOBJS) $(DRMOBJS) DRVUOBJS = $(SISUOBJS) $(MESAUOBJS) $(DRIMESAUOBJS) $(DRMUOBJS) DRVDOBJS = $(SISDOBJS) $(MESADOBJS) $(DRIMESADOBJS) $(DRMDOBJS) DRVPOBJS = $(SISPOBJS) $(MESAPOBJS) $(DRIMESAPOBJS) $(DRMPOBJS) DRVDONES = $(SISDONES) $(MESADONES) $(DRIMESADONES) $(DRMDONES) - GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src mesa/src/drv/sis + DRVSUBDIRS = mesa/src/drv/sis + GLXSUBDIRS = glx dri mesa/dri mesa/include/GL mesa/src $(DRVSUBDIRS) #elif GlxBuiltInMesa @@ -343,6 +367,7 @@ XCOMM libGL has now been made, continue with building the drivers. !GlxBuiltInI810 && \ !GlxBuiltInMga && \ !GlxBuiltInR128 && \ + !GlxBuiltInRadeon && \ !GlxBuiltInFfb && \ !GlxBuiltInSIS && \ !GlxBuiltInMesa diff --git a/xc/lib/GL/dri/drm/Imakefile b/xc/lib/GL/dri/drm/Imakefile index ba7b73fea..7b60a2c23 100644 --- a/xc/lib/GL/dri/drm/Imakefile +++ b/xc/lib/GL/dri/drm/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/dri/drm/Imakefile,v 1.10 2000/09/24 13:51:00 alanh Exp $ +XCOMM $XFree86: xc/lib/GL/dri/drm/Imakefile,v 1.11 2001/01/08 01:07:17 martin Exp $ #define DoNormalLib NormalLibGlx #define DoSharedLib SharedLibGlx @@ -16,9 +16,9 @@ ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL -I$(XF86OSSRC)/$(OS_SUBDIR)/drm/kernel \ -I$(XF86OSSRC) SRCS = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c \ - xf86drmR128.c + xf86drmR128.c xf86drmRadeon.c OBJS = xf86drm.o xf86drmHash.o xf86drmRandom.o xf86drmSL.o \ - xf86drmR128.o + xf86drmR128.o xf86drmRadeon.o #if defined(LinuxArchitecture) OS_SUBDIR = linux @@ -34,15 +34,22 @@ OS_SUBDIR2 = cygwin #endif LinkSourceFile(xf86drm.c,$(XF86OSSRC)/$(OS_SUBDIR)/drm) + LinkSourceFile(xf86drmHash.c,$(XF86OSSRC)/$(OS_SUBDIR2)/drm) LinkSourceFile(xf86drmRandom.c,$(XF86OSSRC)/$(OS_SUBDIR2)/drm) LinkSourceFile(xf86drmSL.c,$(XF86OSSRC)/$(OS_SUBDIR2)/drm) LinkSourceFile(xf86drmR128.c,$(XF86OSSRC)/$(OS_SUBDIR2)/drm) +LinkSourceFile(xf86drmRadeon.c,$(XF86OSSRC)/$(OS_SUBDIR2)/drm) + +LinkSourceFile(xf86drm.h,$(XF86OSSRC)) +LinkSourceFile(xf86drmR128.h,$(XF86OSSRC)) +LinkSourceFile(xf86drmRadeon.h,$(XF86OSSRC)) LinkSourceFile(drm.h,$(XF86OSSRC)/$(OS_SUBDIR2)/drm/kernel) LinkSourceFile(i810_drm.h,$(XF86OSSRC)/$(OS_SUBDIR2)/drm/kernel) LinkSourceFile(mga_drm.h,$(XF86OSSRC)/$(OS_SUBDIR2)/drm/kernel) LinkSourceFile(r128_drm.h,$(XF86OSSRC)/$(OS_SUBDIR2)/drm/kernel) +LinkSourceFile(radeon_drm.h,$(XF86OSSRC)/$(OS_SUBDIR2)/drm/kernel) LinkSourceFile(sis_drm.h,$(XF86OSSRC)/$(OS_SUBDIR2)/drm/kernel) #include <Library.tmpl> diff --git a/xc/lib/GL/dri/xf86dristr.h b/xc/lib/GL/dri/xf86dristr.h index d2e42a3e3..d27860b35 100644 --- a/xc/lib/GL/dri/xf86dristr.h +++ b/xc/lib/GL/dri/xf86dristr.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.7 2000/12/07 20:26:02 dawes Exp $ */ +/* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.8 2000/12/21 12:22:55 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -43,7 +43,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define XF86DRINAME "XFree86-DRI" #define XF86DRI_MAJOR_VERSION 3 /* current version numbers */ -#define XF86DRI_MINOR_VERSION 0 +#define XF86DRI_MINOR_VERSION 1 #define XF86DRI_PATCH_VERSION 0 typedef struct _XF86DRIQueryVersion { diff --git a/xc/lib/GL/glx/glxext.c b/xc/lib/GL/glx/glxext.c index 4e7f0dd60..b1fcd38a6 100644 --- a/xc/lib/GL/glx/glxext.c +++ b/xc/lib/GL/glx/glxext.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/glx/glxext.c,v 1.9 2000/12/07 20:26:03 dawes Exp $ */ +/* $XFree86: xc/lib/GL/glx/glxext.c,v 1.10 2001/01/16 05:10:55 martin Exp $ */ /* ** The contents of this file are subject to the GLX Public License Version 1.0 @@ -211,7 +211,7 @@ static void FreeScreenConfigs(__GLXdisplayPrivate *priv) psc->configs = 0; /* NOTE: just for paranoia */ } -#if 0 /* GLX_DIRECT_RENDERING */ +#if GLX_DIRECT_RENDERING /* Free the direct rendering per screen data */ if (psc->driScreen.private) (*psc->driScreen.destroyScreen)(priv->dpy, i, diff --git a/xc/lib/GL/mesa/dri/dri_mesa.c b/xc/lib/GL/mesa/dri/dri_mesa.c index 3254bf877..cfdbb2799 100644 --- a/xc/lib/GL/mesa/dri/dri_mesa.c +++ b/xc/lib/GL/mesa/dri/dri_mesa.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/dri/dri_mesa.c,v 1.13 2000/12/07 20:26:04 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/dri/dri_mesa.c,v 1.14 2001/01/16 05:10:57 martin Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -927,10 +927,16 @@ static void driMesaDestroyScreen(Display *dpy, int scrn, void *private) __DRIscreenPrivate *psp = (__DRIscreenPrivate *)private; if (psp) { +#if 0 + /* + ** NOT_DONE: For the same reason as that listed below, we cannot + ** call the X server here to destroy the dummy context. + */ if (psp->dummyContextPriv.driScreenPriv) { (void)XF86DRIDestroyContext(dpy, scrn, psp->dummyContextPriv.contextID); } +#endif if (psp->MesaAPI.ResetDriver) (*psp->MesaAPI.ResetDriver)(psp); while (--psp->numVisuals >= 0) { diff --git a/xc/lib/GL/mesa/src/drv/Imakefile b/xc/lib/GL/mesa/src/drv/Imakefile index 88b259502..6639512c2 100644 --- a/xc/lib/GL/mesa/src/drv/Imakefile +++ b/xc/lib/GL/mesa/src/drv/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/Imakefile,v 1.16 2000/12/04 18:54:13 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/Imakefile,v 1.17 2001/01/08 01:07:17 martin Exp $ #define DoNormalLib NormalLibGlx #define DoSharedLib SharedLibGlx @@ -23,7 +23,10 @@ DRIVER += common mga DRIVER += common i810 #endif #if GlxBuiltInR128 -DRIVER += r128 +DRIVER += common r128 +#endif +#if GlxBuiltInRadeon +DRIVER += common radeon #endif #if GlxBuiltInFfb DRIVER += ffb @@ -43,17 +46,19 @@ SUBDIRS += gamma SUBDIRS += mga SUBDIRS += i810 SUBDIRS += r128 +SUBDIRS += radeon SUBDIRS += sis #if HasGlide3 SUBDIRS += tdfx #endif -#elif defined(AlphaArchitecture) +#elif defined(AlphaArchitecture) SUBDIRS += common SUBDIRS += gamma SUBDIRS += mga SUBDIRS += r128 +SUBDIRS += radeon #if HasGlide3 SUBDIRS += tdfx #endif @@ -64,7 +69,7 @@ SUBDIRS += ffb #else -SUBDIRS = +SUBDIRS = #endif /* architecture */ diff --git a/xc/lib/GL/mesa/src/drv/ffb/Imakefile b/xc/lib/GL/mesa/src/drv/ffb/Imakefile index d66bc2bfb..fdb762ec8 100644 --- a/xc/lib/GL/mesa/src/drv/ffb/Imakefile +++ b/xc/lib/GL/mesa/src/drv/ffb/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/ffb/Imakefile,v 1.6 2000/10/20 12:57:22 alanh Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/ffb/Imakefile,v 1.7 2001/02/16 01:26:09 dawes Exp $ #include <Threads.tmpl> @@ -227,7 +227,7 @@ NormalLintTarget($(SRCS)) LIBNAME = ffb_dri.so ALL_OBJS = $(OBJS) ALL_DEPS = DONE -SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +SharedDriModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) #endif diff --git a/xc/lib/GL/mesa/src/drv/gamma/Imakefile b/xc/lib/GL/mesa/src/drv/gamma/Imakefile index 95a1b6450..cfe2f0af3 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/Imakefile +++ b/xc/lib/GL/mesa/src/drv/gamma/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/gamma/Imakefile,v 1.16 2000/12/12 23:24:27 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/gamma/Imakefile,v 1.18 2001/02/16 01:26:10 dawes Exp $ #include <Threads.tmpl> @@ -64,7 +64,7 @@ MESA_INCLUDES = -I. -I.. -I../../include \ gamma_matrix.c \ gamma_inithw.c \ gamma_texture.c \ - /* gamma_dlist.c */ + gamma_dlist.c GAMMAOBJS = gamma_gl.o \ gamma_xmesa.o \ @@ -72,7 +72,7 @@ MESA_INCLUDES = -I. -I.. -I../../include \ gamma_matrix.o \ gamma_inithw.o \ gamma_texture.o \ - /* gamma_dlist.o */ + gamma_dlist.o MESASRCS = ../../aatriangle.c \ ../../accum.c \ @@ -346,7 +346,7 @@ NormalLintTarget($(SRCS)) LIBNAME = gamma_dri.so ALL_OBJS = $(OBJS) ALL_DEPS = DONE -SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +SharedDriModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) #ifdef GlxSoProf diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.c b/xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.c new file mode 100644 index 000000000..f0e39a678 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.c @@ -0,0 +1,3314 @@ +/* + * Mesa 3-D graphics library + * Version: 3.0 + * Copyright (C) 1995-1998 Brian Paul + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* + * Pinched from Mesa v3.0 to glue into gamma driver + * then glued up, to match some of the Mesa v3.3 back end. + * Alan Hourihane <alanh@fairlite.demon.co.uk> + */ + +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.c,v 1.3 2001/02/12 01:11:24 tsi Exp $*/ + +#ifdef PC_HEADER +#include "all.h" +#else +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "accum.h" +#include "alpha.h" +#include "attrib.h" +#include "bitmap.h" +#include "blend.h" +#include "clip.h" +#include "colortab.h" +#include "context.h" +#include "copypix.h" +#include "depth.h" +#include "drawpix.h" +#include "enable.h" +#include "eval.h" +#include "feedback.h" +#include "fog.h" +#include "hash.h" +#include "image.h" +#include "light.h" +#include "lines.h" +#include "logic.h" +#include "macros.h" +#include "masking.h" +#include "matrix.h" +#include "mem.h" +#include "pixel.h" +#include "points.h" +#include "polygon.h" +#include "rastpos.h" +#include "rect.h" +#include "scissor.h" +#include "stencil.h" +#include "texobj.h" +#include "teximage.h" +#include "texstate.h" +#include "types.h" +#include "vb.h" +#include "vbfill.h" +#include "winpos.h" +#endif + +#include "gamma_gl.h" +#include "gamma_init.h" +#include "gamma_dlist.h" + + +/* +Functions which aren't compiled but executed immediately: + glIsList + glGenLists + glDeleteLists + glEndList + glFeedbackBuffer + glSelectBuffer + glRenderMode + glReadPixels + glPixelStore + glFlush + glFinish + glIsEnabled + glGet* + +Functions which cause errors if called while compiling a display list: + glNewList +*/ + + + +/* + * Display list instructions are stored as sequences of "nodes". Nodes + * are allocated in blocks. Each block has BLOCK_SIZE nodes. Blocks + * are linked together with a pointer. + */ + + +/* How many nodes to allocate at a time: */ +#define BLOCK_SIZE 500 + + +/* + * Display list opcodes. + * + * The fact that these identifiers are assigned consecutive + * integer values starting at 0 is very important, see InstSize array usage) + */ +typedef enum { + OPCODE_ACCUM, + OPCODE_ALPHA_FUNC, + OPCODE_BEGIN, + OPCODE_BIND_TEXTURE, + OPCODE_BITMAP, + OPCODE_BLEND_FUNC, + OPCODE_CALL_LIST, + OPCODE_CALL_LIST_OFFSET, + OPCODE_CLEAR, + OPCODE_CLEAR_ACCUM, + OPCODE_CLEAR_COLOR, + OPCODE_CLEAR_DEPTH, + OPCODE_CLEAR_INDEX, + OPCODE_CLEAR_STENCIL, + OPCODE_CLIP_PLANE, + OPCODE_COLOR_3F, + OPCODE_COLOR_4F, + OPCODE_COLOR_4UB, + OPCODE_COLOR_MASK, + OPCODE_COLOR_MATERIAL, + OPCODE_COPY_PIXELS, + OPCODE_COPY_TEX_IMAGE1D, + OPCODE_COPY_TEX_IMAGE2D, + OPCODE_COPY_TEX_SUB_IMAGE1D, + OPCODE_COPY_TEX_SUB_IMAGE2D, + OPCODE_CULL_FACE, + OPCODE_DEPTH_FUNC, + OPCODE_DEPTH_MASK, + OPCODE_DEPTH_RANGE, + OPCODE_DISABLE, + OPCODE_DRAW_BUFFER, + OPCODE_DRAW_PIXELS, + OPCODE_EDGE_FLAG, + OPCODE_ENABLE, + OPCODE_END, + OPCODE_EVALCOORD1, + OPCODE_EVALCOORD2, + OPCODE_EVALMESH1, + OPCODE_EVALMESH2, + OPCODE_EVALPOINT1, + OPCODE_EVALPOINT2, + OPCODE_FOG, + OPCODE_FRONT_FACE, + OPCODE_FRUSTUM, + OPCODE_HINT, + OPCODE_INDEX, + OPCODE_INDEX_MASK, + OPCODE_INIT_NAMES, + OPCODE_LIGHT, + OPCODE_LIGHT_MODEL, + OPCODE_LINE_STIPPLE, + OPCODE_LINE_WIDTH, + OPCODE_LIST_BASE, + OPCODE_LOAD_IDENTITY, + OPCODE_LOAD_MATRIX, + OPCODE_LOAD_NAME, + OPCODE_LOGIC_OP, + OPCODE_MAP1, + OPCODE_MAP2, + OPCODE_MAPGRID1, + OPCODE_MAPGRID2, + OPCODE_MATERIAL, + OPCODE_MATRIX_MODE, + OPCODE_MULT_MATRIX, + OPCODE_NORMAL, + OPCODE_ORTHO, + OPCODE_PASSTHROUGH, + OPCODE_PIXEL_MAP, + OPCODE_PIXEL_TRANSFER, + OPCODE_PIXEL_ZOOM, + OPCODE_POINT_SIZE, + OPCODE_POLYGON_MODE, + OPCODE_POLYGON_STIPPLE, + OPCODE_POLYGON_OFFSET, + OPCODE_POP_ATTRIB, + OPCODE_POP_MATRIX, + OPCODE_POP_NAME, + OPCODE_PRIORITIZE_TEXTURE, + OPCODE_PUSH_ATTRIB, + OPCODE_PUSH_MATRIX, + OPCODE_PUSH_NAME, + OPCODE_RASTER_POS, + OPCODE_RECTF, + OPCODE_READ_BUFFER, + OPCODE_SCALE, + OPCODE_SCISSOR, + OPCODE_SHADE_MODEL, + OPCODE_STENCIL_FUNC, + OPCODE_STENCIL_MASK, + OPCODE_STENCIL_OP, + OPCODE_TEXCOORD2, + OPCODE_TEXCOORD4, + OPCODE_TEXENV, + OPCODE_TEXGEN, + OPCODE_TEXPARAMETER, + OPCODE_TEX_IMAGE1D, + OPCODE_TEX_IMAGE2D, + OPCODE_TEX_IMAGE3D, + OPCODE_TEX_SUB_IMAGE1D, + OPCODE_TEX_SUB_IMAGE2D, + OPCODE_TRANSLATE, + OPCODE_VERTEX2, + OPCODE_VERTEX3, + OPCODE_VERTEX4, + OPCODE_VIEWPORT, + /* The following two are meta instructions */ + OPCODE_CONTINUE, + OPCODE_END_OF_LIST +} OpCode; + + +/* + * Each instruction in the display list is stored as a sequence of + * contiguous nodes in memory. + * Each node is the union of a variety of datatypes. + */ +union node { + OpCode opcode; + GLboolean b; + GLbitfield bf; + GLubyte ub; + GLshort s; + GLushort us; + GLint i; + GLuint ui; + GLenum e; + GLfloat f; + GLvoid *data; + void *next; /* If prev node's opcode==OPCODE_CONTINUE */ +}; + + + +/* Number of nodes of storage needed for each instruction: */ +static GLuint InstSize[ OPCODE_END_OF_LIST+1 ]; + + + +/**********************************************************************/ +/***** Private *****/ +/**********************************************************************/ + + +/* + * Allocate space for a display list instruction. + * Input: opcode - type of instruction + * argcount - number of arguments following the instruction + * Return: pointer to first node in the instruction + */ +static Node *alloc_instruction( OpCode opcode, GLint argcount ) +{ + Node *n, *newblock; + GLuint count = InstSize[opcode]; + + assert( (GLint) count == argcount+1 ); + + if (gCCPriv->CurrentPos + count + 2 > BLOCK_SIZE) { + /* This block is full. Allocate a new block and chain to it */ + n = gCCPriv->CurrentBlock + gCCPriv->CurrentPos; + n[0].opcode = OPCODE_CONTINUE; + newblock = (Node *) malloc( sizeof(Node) * BLOCK_SIZE ); + if (!newblock) { + gamma_error( GL_OUT_OF_MEMORY, "Building display list" ); + return NULL; + } + n[1].next = (Node *) newblock; + gCCPriv->CurrentBlock = newblock; + gCCPriv->CurrentPos = 0; + } + + n = gCCPriv->CurrentBlock + gCCPriv->CurrentPos; + gCCPriv->CurrentPos += count; + + n[0].opcode = opcode; + + return n; +} + + + +/* + * Make an empty display list. This is used by glGenLists() to + * reserver display list IDs. + */ +static Node *make_empty_list( void ) +{ + Node *n = (Node *) malloc( sizeof(Node) ); + n[0].opcode = OPCODE_END_OF_LIST; + return n; +} + + + +/* + * Destroy all nodes in a display list. + * Input: list - display list number + */ +void gamma_destroy_list( GLuint list ) +{ + Node *n, *block; + GLboolean done; + + block = (Node *) _mesa_HashLookup(gCCPriv->DisplayList, list); + n = block; + + done = block ? GL_FALSE : GL_TRUE; + while (!done) { + switch (n[0].opcode) { + /* special cases first */ + case OPCODE_MAP1: + free( n[6].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_MAP2: + free( n[10].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_DRAW_PIXELS: + free( n[5].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_BITMAP: + free( n[7].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_POLYGON_STIPPLE: + free( n[1].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_TEX_IMAGE1D: + free( n[8].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_TEX_IMAGE2D: + free( n[9].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_TEX_SUB_IMAGE1D: + free( n[7].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_TEX_SUB_IMAGE2D: + free( n[9].data ); + n += InstSize[n[0].opcode]; + break; + case OPCODE_CONTINUE: + n = (Node *) n[1].next; + free( block ); + block = n; + break; + case OPCODE_END_OF_LIST: + free( block ); + done = GL_TRUE; + break; + default: + /* Most frequent case */ + n += InstSize[n[0].opcode]; + break; + } + } + + _mesa_HashRemove(gCCPriv->DisplayList, list); +} + + + +/* + * Translate the nth element of list from type to GLuint. + */ +static GLuint translate_id( GLsizei n, GLenum type, const GLvoid *list ) +{ + GLbyte *bptr; + GLubyte *ubptr; + GLshort *sptr; + GLushort *usptr; + GLint *iptr; + GLuint *uiptr; + GLfloat *fptr; + + switch (type) { + case GL_BYTE: + bptr = (GLbyte *) list; + return (GLuint) *(bptr+n); + case GL_UNSIGNED_BYTE: + ubptr = (GLubyte *) list; + return (GLuint) *(ubptr+n); + case GL_SHORT: + sptr = (GLshort *) list; + return (GLuint) *(sptr+n); + case GL_UNSIGNED_SHORT: + usptr = (GLushort *) list; + return (GLuint) *(usptr+n); + case GL_INT: + iptr = (GLint *) list; + return (GLuint) *(iptr+n); + case GL_UNSIGNED_INT: + uiptr = (GLuint *) list; + return (GLuint) *(uiptr+n); + case GL_FLOAT: + fptr = (GLfloat *) list; + return (GLuint) *(fptr+n); + case GL_2_BYTES: + ubptr = ((GLubyte *) list) + 2*n; + return (GLuint) *ubptr * 256 + (GLuint) *(ubptr+1); + case GL_3_BYTES: + ubptr = ((GLubyte *) list) + 3*n; + return (GLuint) *ubptr * 65536 + + (GLuint) *(ubptr+1) * 256 + + (GLuint) *(ubptr+2); + case GL_4_BYTES: + ubptr = ((GLubyte *) list) + 4*n; + return (GLuint) *ubptr * 16777216 + + (GLuint) *(ubptr+1) * 65536 + + (GLuint) *(ubptr+2) * 256 + + (GLuint) *(ubptr+3); + default: + return 0; + } +} + + + + +/**********************************************************************/ +/***** Public *****/ +/**********************************************************************/ + +void gamma_init_lists( void ) +{ + static int init_flag = 0; + + if (init_flag==0) { + InstSize[OPCODE_ACCUM] = 3; + InstSize[OPCODE_ALPHA_FUNC] = 3; + InstSize[OPCODE_BEGIN] = 2; + InstSize[OPCODE_BIND_TEXTURE] = 3; + InstSize[OPCODE_BITMAP] = 8; + InstSize[OPCODE_BLEND_FUNC] = 3; + InstSize[OPCODE_CALL_LIST] = 2; + InstSize[OPCODE_CALL_LIST_OFFSET] = 2; + InstSize[OPCODE_CLEAR] = 2; + InstSize[OPCODE_CLEAR_ACCUM] = 5; + InstSize[OPCODE_CLEAR_COLOR] = 5; + InstSize[OPCODE_CLEAR_DEPTH] = 2; + InstSize[OPCODE_CLEAR_INDEX] = 2; + InstSize[OPCODE_CLEAR_STENCIL] = 2; + InstSize[OPCODE_CLIP_PLANE] = 6; + InstSize[OPCODE_COLOR_3F] = 4; + InstSize[OPCODE_COLOR_4F] = 5; + InstSize[OPCODE_COLOR_4UB] = 5; + InstSize[OPCODE_COLOR_MASK] = 5; + InstSize[OPCODE_COLOR_MATERIAL] = 3; + InstSize[OPCODE_COPY_PIXELS] = 6; + InstSize[OPCODE_COPY_TEX_IMAGE1D] = 8; + InstSize[OPCODE_COPY_TEX_IMAGE2D] = 9; + InstSize[OPCODE_COPY_TEX_SUB_IMAGE1D] = 7; + InstSize[OPCODE_COPY_TEX_SUB_IMAGE2D] = 9; + InstSize[OPCODE_CULL_FACE] = 2; + InstSize[OPCODE_DEPTH_FUNC] = 2; + InstSize[OPCODE_DEPTH_MASK] = 2; + InstSize[OPCODE_DEPTH_RANGE] = 3; + InstSize[OPCODE_DISABLE] = 2; + InstSize[OPCODE_DRAW_BUFFER] = 2; + InstSize[OPCODE_DRAW_PIXELS] = 2; + InstSize[OPCODE_ENABLE] = 2; + InstSize[OPCODE_EDGE_FLAG] = 2; + InstSize[OPCODE_END] = 1; + InstSize[OPCODE_EVALCOORD1] = 2; + InstSize[OPCODE_EVALCOORD2] = 3; + InstSize[OPCODE_EVALMESH1] = 4; + InstSize[OPCODE_EVALMESH2] = 6; + InstSize[OPCODE_EVALPOINT1] = 2; + InstSize[OPCODE_EVALPOINT2] = 3; + InstSize[OPCODE_FOG] = 6; + InstSize[OPCODE_FRONT_FACE] = 2; + InstSize[OPCODE_FRUSTUM] = 7; + InstSize[OPCODE_HINT] = 3; + InstSize[OPCODE_INDEX] = 2; + InstSize[OPCODE_INDEX_MASK] = 2; + InstSize[OPCODE_INIT_NAMES] = 1; + InstSize[OPCODE_LIGHT] = 7; + InstSize[OPCODE_LIGHT_MODEL] = 6; + InstSize[OPCODE_LINE_STIPPLE] = 3; + InstSize[OPCODE_LINE_WIDTH] = 2; + InstSize[OPCODE_LIST_BASE] = 2; + InstSize[OPCODE_LOAD_IDENTITY] = 1; + InstSize[OPCODE_LOAD_MATRIX] = 17; + InstSize[OPCODE_LOAD_NAME] = 2; + InstSize[OPCODE_LOGIC_OP] = 2; + InstSize[OPCODE_MAP1] = 7; + InstSize[OPCODE_MAP2] = 11; + InstSize[OPCODE_MAPGRID1] = 4; + InstSize[OPCODE_MAPGRID2] = 7; + InstSize[OPCODE_MATERIAL] = 7; + InstSize[OPCODE_MATRIX_MODE] = 2; + InstSize[OPCODE_MULT_MATRIX] = 17; + InstSize[OPCODE_NORMAL] = 4; + InstSize[OPCODE_ORTHO] = 7; + InstSize[OPCODE_PASSTHROUGH] = 2; + InstSize[OPCODE_PIXEL_MAP] = 4; + InstSize[OPCODE_PIXEL_TRANSFER] = 3; + InstSize[OPCODE_PIXEL_ZOOM] = 3; + InstSize[OPCODE_POINT_SIZE] = 2; + InstSize[OPCODE_POLYGON_MODE] = 3; + InstSize[OPCODE_POLYGON_STIPPLE] = 2; + InstSize[OPCODE_POLYGON_OFFSET] = 3; + InstSize[OPCODE_POP_ATTRIB] = 1; + InstSize[OPCODE_POP_MATRIX] = 1; + InstSize[OPCODE_POP_NAME] = 1; + InstSize[OPCODE_PRIORITIZE_TEXTURE] = 3; + InstSize[OPCODE_PUSH_ATTRIB] = 2; + InstSize[OPCODE_PUSH_MATRIX] = 1; + InstSize[OPCODE_PUSH_NAME] = 2; + InstSize[OPCODE_RASTER_POS] = 5; + InstSize[OPCODE_RECTF] = 5; + InstSize[OPCODE_READ_BUFFER] = 2; + InstSize[OPCODE_SCALE] = 4; + InstSize[OPCODE_SCISSOR] = 5; + InstSize[OPCODE_STENCIL_FUNC] = 4; + InstSize[OPCODE_STENCIL_MASK] = 2; + InstSize[OPCODE_STENCIL_OP] = 4; + InstSize[OPCODE_SHADE_MODEL] = 2; + InstSize[OPCODE_TEXCOORD2] = 3; + InstSize[OPCODE_TEXCOORD4] = 5; + InstSize[OPCODE_TEXENV] = 7; + InstSize[OPCODE_TEXGEN] = 7; + InstSize[OPCODE_TEXPARAMETER] = 7; + InstSize[OPCODE_TEX_IMAGE1D] = 9; + InstSize[OPCODE_TEX_IMAGE2D] = 10; + InstSize[OPCODE_TEX_IMAGE3D] = 11; + InstSize[OPCODE_TEX_SUB_IMAGE1D] = 8; + InstSize[OPCODE_TEX_SUB_IMAGE2D] = 10; + InstSize[OPCODE_TRANSLATE] = 4; + InstSize[OPCODE_VERTEX2] = 3; + InstSize[OPCODE_VERTEX3] = 4; + InstSize[OPCODE_VERTEX4] = 5; + InstSize[OPCODE_VIEWPORT] = 5; + InstSize[OPCODE_CONTINUE] = 2; + InstSize[OPCODE_END_OF_LIST] = 1; + } + init_flag = 1; +} + + +/* + * Display List compilation functions + */ + + +void gl_save_Accum( GLenum op, GLfloat value ) +{ + Node *n = alloc_instruction( OPCODE_ACCUM, 2 ); + if (n) { + n[1].e = op; + n[2].f = value; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Accum( op, value ); + } +} + + +void gl_save_AlphaFunc( GLenum func, GLclampf ref ) +{ + Node *n = alloc_instruction( OPCODE_ALPHA_FUNC, 2 ); + if (n) { + n[1].e = func; + n[2].f = (GLfloat) ref; + } + if (gCCPriv->ExecuteFlag) { + _gamma_AlphaFunc( func, ref ); + } +} + +void gl_save_ArrayElement( GLint i ) +{ + if (gCCPriv->Array.NormalEnabled) { + GLbyte *p = (GLbyte*) gCCPriv->Array.NormalPtr + + i * gCCPriv->Array.NormalStrideB; + switch (gCCPriv->Array.NormalType) { + case GL_BYTE: + (*gCCPriv->API->Normal3bv)( (GLbyte*) p ); + break; + case GL_SHORT: + (*gCCPriv->API->Normal3sv)( (GLshort*) p ); + break; + case GL_INT: + (*gCCPriv->API->Normal3iv)( (GLint*) p ); + break; + case GL_FLOAT: + (*gCCPriv->API->Normal3fv)( (GLfloat*) p ); + break; + case GL_DOUBLE: + (*gCCPriv->API->Normal3dv)( (GLdouble*) p ); + break; + default: +#if 0 + gl_problem("Bad normal type in gl_save_ArrayElement"); +#endif + return; + } + } + + if (gCCPriv->Array.ColorEnabled) { + GLbyte *p = (GLbyte*) gCCPriv->Array.ColorPtr + i * gCCPriv->Array.ColorStrideB; + switch (gCCPriv->Array.ColorType) { + case GL_BYTE: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3bv)( (GLbyte*) p ); break; + case 4: (*gCCPriv->API->Color4bv)( (GLbyte*) p ); break; + } + break; + case GL_UNSIGNED_BYTE: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3ubv)( (GLubyte*) p ); break; + case 4: (*gCCPriv->API->Color4ubv)( (GLubyte*) p ); break; + } + break; + case GL_SHORT: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3sv)( (GLshort*) p ); break; + case 4: (*gCCPriv->API->Color4sv)( (GLshort*) p ); break; + } + break; + case GL_UNSIGNED_SHORT: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3usv)( (GLushort*) p ); break; + case 4: (*gCCPriv->API->Color4usv)( (GLushort*) p ); break; + } + break; + case GL_INT: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3iv)( (GLint*) p ); break; + case 4: (*gCCPriv->API->Color4iv)( (GLint*) p ); break; + } + break; + case GL_UNSIGNED_INT: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3uiv)( (GLuint*) p ); break; + case 4: (*gCCPriv->API->Color4uiv)( (GLuint*) p ); break; + } + break; + case GL_FLOAT: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3fv)( (GLfloat*) p ); break; + case 4: (*gCCPriv->API->Color4fv)( (GLfloat*) p ); break; + } + break; + case GL_DOUBLE: + switch (gCCPriv->Array.ColorSize) { + case 3: (*gCCPriv->API->Color3dv)( (GLdouble*) p ); break; + case 4: (*gCCPriv->API->Color4dv)( (GLdouble*) p ); break; + } + break; + default: +#if 0 + gl_problem("Bad color type in gl_save_ArrayElement"); +#endif + return; + } + } + + if (gCCPriv->Array.IndexEnabled) { + GLbyte *p = (GLbyte*) gCCPriv->Array.IndexPtr + i * gCCPriv->Array.IndexStrideB; + switch (gCCPriv->Array.IndexType) { + case GL_SHORT: + (*gCCPriv->API->Indexsv)( (GLshort*) p ); + break; + case GL_INT: + (*gCCPriv->API->Indexiv)( (GLint*) p ); + break; + case GL_FLOAT: + (*gCCPriv->API->Indexfv)( (GLfloat*) p ); + break; + case GL_DOUBLE: + (*gCCPriv->API->Indexdv)( (GLdouble*) p ); + break; + default: +#if 0 + gl_problem("Bad index type in gl_save_ArrayElement"); +#endif + return; + } + } + + if (gCCPriv->Array.EdgeFlagEnabled) { + GLbyte *b = (GLbyte*) gCCPriv->Array.EdgeFlagPtr + i * gCCPriv->Array.EdgeFlagStrideB; + (*gCCPriv->API->EdgeFlagv)( (GLboolean*) b ); + } + + if (gCCPriv->Array.VertexEnabled) { + GLbyte *b = (GLbyte*) gCCPriv->Array.VertexPtr + + i * gCCPriv->Array.VertexStrideB; + switch (gCCPriv->Array.VertexType) { + case GL_SHORT: + switch (gCCPriv->Array.VertexSize) { + case 2: (*gCCPriv->API->Vertex2sv)( (GLshort*) b ); break; + case 3: (*gCCPriv->API->Vertex3sv)( (GLshort*) b ); break; + case 4: (*gCCPriv->API->Vertex4sv)( (GLshort*) b ); break; + } + break; + case GL_INT: + switch (gCCPriv->Array.VertexSize) { + case 2: (*gCCPriv->API->Vertex2iv)( (GLint*) b ); break; + case 3: (*gCCPriv->API->Vertex3iv)( (GLint*) b ); break; + case 4: (*gCCPriv->API->Vertex4iv)( (GLint*) b ); break; + } + break; + case GL_FLOAT: + switch (gCCPriv->Array.VertexSize) { + case 2: (*gCCPriv->API->Vertex2fv)( (GLfloat*) b ); break; + case 3: (*gCCPriv->API->Vertex3fv)( (GLfloat*) b ); break; + case 4: (*gCCPriv->API->Vertex4fv)( (GLfloat*) b ); break; + } + break; + case GL_DOUBLE: + switch (gCCPriv->Array.VertexSize) { + case 2: (*gCCPriv->API->Vertex2dv)( (GLdouble*) b ); break; + case 3: (*gCCPriv->API->Vertex3dv)( (GLdouble*) b ); break; + case 4: (*gCCPriv->API->Vertex4dv)( (GLdouble*) b ); break; + } + break; + default: +#if 0 + gl_problem("Bad vertex type in gl_save_ArrayElement"); +#endif + return; + } + } +} + + +void gl_save_Begin( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_BEGIN, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Begin( mode ); + } +} + + +void gl_save_BindTexture( GLenum target, GLuint texture ) +{ + Node *n = alloc_instruction( OPCODE_BIND_TEXTURE, 2 ); + if (n) { + n[1].e = target; + n[2].ui = texture; + } + if (gCCPriv->ExecuteFlag) { + _gamma_BindTexture( target, texture ); + } +} + + +void gl_save_Bitmap( + GLsizei width, GLsizei height, + GLfloat xorig, GLfloat yorig, + GLfloat xmove, GLfloat ymove, + const GLubyte *bitmap ) +{ + GLvoid *image = _mesa_unpack_bitmap(width, height, bitmap, &gCCPriv->Unpack); + Node *n = alloc_instruction( OPCODE_BITMAP, 7 ); + if (n) { + n[1].i = (GLint) width; + n[2].i = (GLint) height; + n[3].f = xorig; + n[4].f = yorig; + n[5].f = xmove; + n[6].f = ymove; + n[7].data = image; + } else + if (image) { + free(image); + } + if (gCCPriv->ExecuteFlag) { + _gamma_Bitmap( width, height, + xorig, yorig, xmove, ymove, bitmap ); + } +} + + +void gl_save_BlendFunc( GLenum sfactor, GLenum dfactor ) +{ + Node *n = alloc_instruction( OPCODE_BLEND_FUNC, 2 ); + if (n) { + n[1].e = sfactor; + n[2].e = dfactor; + } + if (gCCPriv->ExecuteFlag) { + _gamma_BlendFunc( sfactor, dfactor ); + } +} + +void gl_save_CallList( GLuint list ) +{ + Node *n = alloc_instruction( OPCODE_CALL_LIST, 1 ); + if (n) { + n[1].ui = list; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CallList( list ); + } +} + + +void gl_save_CallLists( + GLsizei n, GLenum type, const GLvoid *lists ) +{ + GLint i; + + for (i=0;i<n;i++) { + GLuint list = translate_id( i, type, lists ); + Node *n = alloc_instruction( OPCODE_CALL_LIST_OFFSET, 1 ); + if (n) { + n[1].ui = list; + } + } + if (gCCPriv->ExecuteFlag) { + _gamma_CallLists( n, type, lists ); + } +} + + +void gl_save_Clear( GLbitfield mask ) +{ + Node *n = alloc_instruction( OPCODE_CLEAR, 1 ); + if (n) { + n[1].bf = mask; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Clear( mask ); + } +} + + +void gl_save_ClearAccum( GLfloat red, GLfloat green, + GLfloat blue, GLfloat alpha ) +{ + Node *n = alloc_instruction( OPCODE_CLEAR_ACCUM, 4 ); + if (n) { + n[1].f = red; + n[2].f = green; + n[3].f = blue; + n[4].f = alpha; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ClearAccum( red, green, blue, alpha ); + } +} + + +void gl_save_ClearColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ) +{ + Node *n = alloc_instruction( OPCODE_CLEAR_COLOR, 4 ); + if (n) { + n[1].f = red; + n[2].f = green; + n[3].f = blue; + n[4].f = alpha; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ClearColor( red, green, blue, alpha ); + } +} + + +void gl_save_ClearDepth( GLclampd depth ) +{ + Node *n = alloc_instruction( OPCODE_CLEAR_DEPTH, 1 ); + if (n) { + n[1].f = (GLfloat) depth; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ClearDepth( depth ); + } +} + + +void gl_save_ClearIndex( GLfloat c ) +{ + Node *n = alloc_instruction( OPCODE_CLEAR_INDEX, 1 ); + if (n) { + n[1].f = c; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ClearIndex( c ); + } +} + + +void gl_save_ClearStencil( GLint s ) +{ + Node *n = alloc_instruction( OPCODE_CLEAR_STENCIL, 1 ); + if (n) { + n[1].i = s; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ClearStencil( s ); + } +} + + +void gl_save_ClipPlane( GLenum plane, const GLdouble *equ ) +{ + Node *n = alloc_instruction( OPCODE_CLIP_PLANE, 5 ); + if (n) { + n[1].e = plane; + n[2].f = equ[0]; + n[3].f = equ[1]; + n[4].f = equ[2]; + n[5].f = equ[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ClipPlane( plane, equ ); + } +} + + +void gl_save_Color3f( GLfloat r, GLfloat g, GLfloat b ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_3F, 3 ); + if (n) { + n[1].f = r; + n[2].f = g; + n[3].f = b; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Color3f( r, g, b ); + } +} + + +void gl_save_Color3fv( const GLfloat *c ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_3F, 3 ); + if (n) { + n[1].f = c[0]; + n[2].f = c[1]; + n[3].f = c[2]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Color3fv( c ); + } +} + + +void gl_save_Color4f( GLfloat r, GLfloat g, + GLfloat b, GLfloat a ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_4F, 4 ); + if (n) { + n[1].f = r; + n[2].f = g; + n[3].f = b; + n[4].f = a; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Color4f( r, g, b, a ); + } +} + + +void gl_save_Color4fv( const GLfloat *c ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_4F, 4 ); + if (n) { + n[1].f = c[0]; + n[2].f = c[1]; + n[3].f = c[2]; + n[4].f = c[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Color4fv( c ); + } +} + + +void gl_save_Color4ub( GLubyte r, GLubyte g, + GLubyte b, GLubyte a ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_4UB, 4 ); + if (n) { + n[1].ub = r; + n[2].ub = g; + n[3].ub = b; + n[4].ub = a; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Color4ub( r, g, b, a ); + } +} + + +void gl_save_Color4ubv( const GLubyte *c ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_4UB, 4 ); + if (n) { + n[1].ub = c[0]; + n[2].ub = c[1]; + n[3].ub = c[2]; + n[4].ub = c[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Color4ubv( c ); + } +} + + +void gl_save_ColorMask( GLboolean red, GLboolean green, + GLboolean blue, GLboolean alpha ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_MASK, 4 ); + if (n) { + n[1].b = red; + n[2].b = green; + n[3].b = blue; + n[4].b = alpha; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ColorMask( red, green, blue, alpha ); + } +} + + +void gl_save_ColorMaterial( GLenum face, GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_COLOR_MATERIAL, 2 ); + if (n) { + n[1].e = face; + n[2].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ColorMaterial( face, mode ); + } +} + + +void gl_save_CopyPixels( GLint x, GLint y, + GLsizei width, GLsizei height, GLenum type ) +{ + Node *n = alloc_instruction( OPCODE_COPY_PIXELS, 5 ); + if (n) { + n[1].i = x; + n[2].i = y; + n[3].i = (GLint) width; + n[4].i = (GLint) height; + n[5].e = type; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CopyPixels( x, y, width, height, type ); + } +} + + + +void gl_save_CopyTexImage1D( + GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, GLsizei width, + GLint border ) +{ + Node *n = alloc_instruction( OPCODE_COPY_TEX_IMAGE1D, 7 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].e = internalformat; + n[4].i = x; + n[5].i = y; + n[6].i = width; + n[7].i = border; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CopyTexImage1D( target, level, internalformat, + x, y, width, border ); + } +} + + +void gl_save_CopyTexImage2D( + GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, GLsizei width, + GLsizei height, GLint border ) +{ + Node *n = alloc_instruction( OPCODE_COPY_TEX_IMAGE2D, 8 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].e = internalformat; + n[4].i = x; + n[5].i = y; + n[6].i = width; + n[7].i = height; + n[8].i = border; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CopyTexImage2D( target, level, internalformat, + x, y, width, height, border ); + } +} + + + +void gl_save_CopyTexSubImage1D( + GLenum target, GLint level, + GLint xoffset, GLint x, GLint y, + GLsizei width ) +{ + Node *n = alloc_instruction( OPCODE_COPY_TEX_SUB_IMAGE1D, 6 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].i = xoffset; + n[4].i = x; + n[5].i = y; + n[6].i = width; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CopyTexSubImage1D( target, level, xoffset, x, y, width ); + } +} + + +void gl_save_CopyTexSubImage2D( + GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint x, GLint y, + GLsizei width, GLint height ) +{ + Node *n = alloc_instruction( OPCODE_COPY_TEX_SUB_IMAGE2D, 8 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].i = xoffset; + n[4].i = yoffset; + n[5].i = x; + n[6].i = y; + n[7].i = width; + n[8].i = height; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CopyTexSubImage2D( target, level, xoffset, yoffset, + x, y, width, height ); + } +} + + +void gl_save_CullFace( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_CULL_FACE, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_CullFace( mode ); + } +} + + +void gl_save_DepthFunc( GLenum func ) +{ + Node *n = alloc_instruction( OPCODE_DEPTH_FUNC, 1 ); + if (n) { + n[1].e = func; + } + if (gCCPriv->ExecuteFlag) { + _gamma_DepthFunc( func ); + } +} + + +void gl_save_DepthMask( GLboolean mask ) +{ + Node *n = alloc_instruction( OPCODE_DEPTH_MASK, 1 ); + if (n) { + n[1].b = mask; + } + if (gCCPriv->ExecuteFlag) { + _gamma_DepthMask( mask ); + } +} + + +void gl_save_DepthRange( GLclampd nearval, GLclampd farval ) +{ + Node *n = alloc_instruction( OPCODE_DEPTH_RANGE, 2 ); + if (n) { + n[1].f = (GLfloat) nearval; + n[2].f = (GLfloat) farval; + } + if (gCCPriv->ExecuteFlag) { + _gamma_DepthRange( nearval, farval ); + } +} + + +void gl_save_Disable( GLenum cap ) +{ + Node *n = alloc_instruction( OPCODE_DISABLE, 1 ); + if (n) { + n[1].e = cap; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Disable( cap ); + } +} + +void gl_save_DrawArrays( + GLenum mode, GLint first, GLsizei count ) +{ + GLint i; + +#if 0 + if (INSIDE_BEGIN_END(ctx)) { + gamma_error( GL_INVALID_OPERATION, "glDrawArrays" ); + return; + } +#endif + if (count<0) { + gamma_error( GL_INVALID_VALUE, "glDrawArrays(count)" ); + return; + } + switch (mode) { + case GL_POINTS: + case GL_LINES: + case GL_LINE_STRIP: + case GL_LINE_LOOP: + case GL_TRIANGLES: + case GL_TRIANGLE_STRIP: + case GL_TRIANGLE_FAN: + case GL_QUADS: + case GL_QUAD_STRIP: + case GL_POLYGON: + /* OK */ + break; + default: + gamma_error( GL_INVALID_ENUM, "glDrawArrays(mode)" ); + return; + } + + /* Note: this will do compile AND execute if needed */ + gl_save_Begin( mode ); + for (i=0;i<count;i++) { + gl_save_ArrayElement( first+i ); + } + gl_save_End( ); +} + + +void gl_save_DrawBuffer( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_DRAW_BUFFER, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_DrawBuffer( mode ); + } +} + + +void gl_save_DrawElements( + GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices ) +{ + switch (type) { + case GL_UNSIGNED_BYTE: + { + GLubyte *ub_indices = (GLubyte *) indices; + GLint i; + gl_save_Begin( mode ); + for (i=0;i<count;i++) { + gl_save_ArrayElement( (GLint) ub_indices[i] ); + } + gl_save_End( ); + } + break; + case GL_UNSIGNED_SHORT: + { + GLushort *us_indices = (GLushort *) indices; + GLint i; + gl_save_Begin( mode ); + for (i=0;i<count;i++) { + gl_save_ArrayElement( (GLint) us_indices[i] ); + } + gl_save_End( ); + } + break; + case GL_UNSIGNED_INT: + { + GLuint *ui_indices = (GLuint *) indices; + GLint i; + gl_save_Begin( mode ); + for (i=0;i<count;i++) { + gl_save_ArrayElement( (GLint) ui_indices[i] ); + } + gl_save_End( ); + } + break; + default: + gamma_error( GL_INVALID_ENUM, "glDrawElements(type)" ); + return; + } +} + + +void gl_save_DrawPixels( GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ) +{ + GLvoid *image = _mesa_unpack_image(width, height, 1, format, type, + pixels, &gCCPriv->Unpack); + Node *n = alloc_instruction( OPCODE_DRAW_PIXELS, 5 ); + if (n) { + n[1].i = width; + n[2].i = height; + n[3].e = format; + n[4].e = type; + n[5].data = image; + } else + if (image) { + free(image); + } + if (gCCPriv->ExecuteFlag) { + _gamma_DrawPixels( width, height, format, type, pixels ); + } +} + + +void gl_save_EdgeFlag( GLboolean flag ) +{ + Node *n = alloc_instruction( OPCODE_EDGE_FLAG, 1 ); + if (n) { + n[1].b = flag; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EdgeFlag( flag ); + } +} + + +void gl_save_Enable( GLenum cap ) +{ + Node *n = alloc_instruction( OPCODE_ENABLE, 1 ); + if (n) { + n[1].e = cap; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Enable( cap ); + } +} + + +void gl_save_End( void ) +{ + (void) alloc_instruction( OPCODE_END, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_End( ); + } +} + + +void gl_save_EvalCoord1f( GLfloat u ) +{ + Node *n = alloc_instruction( OPCODE_EVALCOORD1, 1 ); + if (n) { + n[1].f = u; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EvalCoord1f( u ); + } +} + + +void gl_save_EvalCoord2f( GLfloat u, GLfloat v ) +{ + Node *n = alloc_instruction( OPCODE_EVALCOORD2, 2 ); + if (n) { + n[1].f = u; + n[2].f = v; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EvalCoord2f( u, v ); + } +} + + +void gl_save_EvalMesh1( + GLenum mode, GLint i1, GLint i2 ) +{ + Node *n = alloc_instruction( OPCODE_EVALMESH1, 3 ); + if (n) { + n[1].e = mode; + n[2].i = i1; + n[3].i = i2; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EvalMesh1( mode, i1, i2 ); + } +} + + +void gl_save_EvalMesh2( + GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ) +{ + Node *n = alloc_instruction( OPCODE_EVALMESH2, 5 ); + if (n) { + n[1].e = mode; + n[2].i = i1; + n[3].i = i2; + n[4].i = j1; + n[5].i = j2; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EvalMesh2( mode, i1, i2, j1, j2 ); + } +} + + +void gl_save_EvalPoint1( GLint i ) +{ + Node *n = alloc_instruction( OPCODE_EVALPOINT1, 1 ); + if (n) { + n[1].i = i; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EvalPoint1( i ); + } +} + + +void gl_save_EvalPoint2( GLint i, GLint j ) +{ + Node *n = alloc_instruction( OPCODE_EVALPOINT2, 2 ); + if (n) { + n[1].i = i; + n[2].i = j; + } + if (gCCPriv->ExecuteFlag) { + _gamma_EvalPoint2( i, j ); + } +} + + +void gl_save_Fogfv( GLenum pname, const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_FOG, 5 ); + if (n) { + n[1].e = pname; + n[2].f = params[0]; + n[3].f = params[1]; + n[4].f = params[2]; + n[5].f = params[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Fogfv( pname, params ); + } +} + + +void gl_save_FrontFace( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_FRONT_FACE, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_FrontFace( mode ); + } +} + + +void gl_save_Frustum( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble nearval, GLdouble farval ) +{ + Node *n = alloc_instruction( OPCODE_FRUSTUM, 6 ); + if (n) { + n[1].f = left; + n[2].f = right; + n[3].f = bottom; + n[4].f = top; + n[5].f = nearval; + n[6].f = farval; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Frustum( left, right, bottom, top, nearval, farval ); + } +} + + +void gl_save_Hint( GLenum target, GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_HINT, 2 ); + if (n) { + n[1].e = target; + n[2].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Hint( target, mode ); + } +} + + +void gl_save_Indexi( GLint index ) +{ + Node *n = alloc_instruction( OPCODE_INDEX, 1 ); + if (n) { + n[1].i = index; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Indexi( index ); + } +} + + +void gl_save_Indexf( GLfloat index ) +{ + Node *n = alloc_instruction( OPCODE_INDEX, 1 ); + if (n) { + n[1].i = (GLint) index; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Indexf( index ); + } +} + + +void gl_save_IndexMask( GLuint mask ) +{ + Node *n = alloc_instruction( OPCODE_INDEX_MASK, 1 ); + if (n) { + n[1].ui = mask; + } + if (gCCPriv->ExecuteFlag) { + _gamma_IndexMask( mask ); + } +} + + +void gl_save_InitNames( void ) +{ + (void) alloc_instruction( OPCODE_INIT_NAMES, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_InitNames( ); + } +} + + +void gl_save_Lightfv( GLenum light, GLenum pname, + const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_LIGHT, 6 ); + if (OPCODE_LIGHT) { + GLint i, nParams; + n[1].e = light; + n[2].e = pname; + switch (pname) { + case GL_AMBIENT: + nParams = 4; + break; + case GL_DIFFUSE: + nParams = 4; + break; + case GL_SPECULAR: + nParams = 4; + break; + case GL_POSITION: + nParams = 4; + break; + case GL_SPOT_DIRECTION: + nParams = 3; + break; + case GL_SPOT_EXPONENT: + nParams = 1; + break; + case GL_SPOT_CUTOFF: + nParams = 1; + break; + case GL_CONSTANT_ATTENUATION: + nParams = 1; + break; + case GL_LINEAR_ATTENUATION: + nParams = 1; + break; + case GL_QUADRATIC_ATTENUATION: + nParams = 1; + break; + default: + nParams = 0; + } + for (i = 0; i < nParams; i++) { + n[3+i].f = params[i]; + } + } + if (gCCPriv->ExecuteFlag) { + _gamma_Lightfv( light, pname, params ); + } +} + + +void gl_save_LightModelfv( + GLenum pname, const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_LIGHT_MODEL, 5 ); + if (n) { + n[1].e = pname; + n[2].f = params[0]; + n[3].f = params[1]; + n[4].f = params[2]; + n[5].f = params[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_LightModelfv( pname, params ); + } +} + + +void gl_save_LineStipple( GLint factor, GLushort pattern ) +{ + Node *n = alloc_instruction( OPCODE_LINE_STIPPLE, 2 ); + if (n) { + n[1].i = factor; + n[2].us = pattern; + } + if (gCCPriv->ExecuteFlag) { + _gamma_LineStipple( factor, pattern ); + } +} + + +void gl_save_LineWidth( GLfloat width ) +{ + Node *n = alloc_instruction( OPCODE_LINE_WIDTH, 1 ); + if (n) { + n[1].f = width; + } + if (gCCPriv->ExecuteFlag) { + _gamma_LineWidth( width ); + } +} + + +void gl_save_ListBase( GLuint base ) +{ + Node *n = alloc_instruction( OPCODE_LIST_BASE, 1 ); + if (n) { + n[1].ui = base; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ListBase( base ); + } +} + + +void gl_save_LoadIdentity( void ) +{ + (void) alloc_instruction( OPCODE_LOAD_IDENTITY, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_LoadIdentity( ); + } +} + + +void gl_save_LoadMatrixf( const GLfloat *m ) +{ + Node *n = alloc_instruction( OPCODE_LOAD_MATRIX, 16 ); + if (n) { + GLuint i; + for (i=0;i<16;i++) { + n[1+i].f = m[i]; + } + } + if (gCCPriv->ExecuteFlag) { + _gamma_LoadMatrixf( m ); + } +} + + +void gl_save_LoadName( GLuint name ) +{ + Node *n = alloc_instruction( OPCODE_LOAD_NAME, 1 ); + if (n) { + n[1].ui = name; + } + if (gCCPriv->ExecuteFlag) { + _gamma_LoadName( name ); + } +} + + +void gl_save_LogicOp( GLenum opcode ) +{ + Node *n = alloc_instruction( OPCODE_LOGIC_OP, 1 ); + if (n) { + n[1].e = opcode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_LogicOp( opcode ); + } +} + + +void gl_save_Map1f( + GLenum target, GLfloat u1, GLfloat u2, GLint stride, + GLint order, const GLfloat *points ) +{ + Node *n = alloc_instruction( OPCODE_MAP1, 6 ); + if (n) { + GLfloat *pnts = gl_copy_map_points1f( target, stride, order, points ); + n[1].e = target; + n[2].f = u1; + n[3].f = u2; + n[4].i = _mesa_evaluator_components(target); /* stride */ + n[5].i = order; + n[6].data = (void *) pnts; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Map1f( target, u1, u2, stride, order, points ); + } +} + + +void gl_save_Map2f( GLenum target, + GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, + GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, + const GLfloat *points ) +{ + Node *n = alloc_instruction( OPCODE_MAP2, 10 ); + if (n) { + GLfloat *pnts = gl_copy_map_points2f( target, ustride, uorder, + vstride, vorder, points ); + n[1].e = target; + n[2].f = u1; + n[3].f = u2; + n[4].f = v1; + n[5].f = v2; + /* XXX verify these strides are correct */ + n[6].i = _mesa_evaluator_components(target) * vorder; /*ustride*/ + n[7].i = _mesa_evaluator_components(target); /*vstride*/ + n[8].i = uorder; + n[9].i = vorder; + n[10].data = (void *) pnts; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Map2f( target, + u1, u2, ustride, uorder, + v1, v2, vstride, vorder, points ); + } +} + + +void gl_save_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 ) +{ + Node *n = alloc_instruction( OPCODE_MAPGRID1, 3 ); + if (n) { + n[1].i = un; + n[2].f = u1; + n[3].f = u2; + } + if (gCCPriv->ExecuteFlag) { + _gamma_MapGrid1f( un, u1, u2 ); + } +} + + +void gl_save_MapGrid2f( + GLint un, GLfloat u1, GLfloat u2, + GLint vn, GLfloat v1, GLfloat v2 ) +{ + Node *n = alloc_instruction( OPCODE_MAPGRID2, 6 ); + if (n) { + n[1].i = un; + n[2].f = u1; + n[3].f = u2; + n[4].i = vn; + n[5].f = v1; + n[6].f = v2; + } + if (gCCPriv->ExecuteFlag) { + _gamma_MapGrid2f( un, u1, u2, vn, v1, v2 ); + } +} + + +void gl_save_Materialfv( + GLenum face, GLenum pname, const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_MATERIAL, 6 ); + if (n) { + n[1].e = face; + n[2].e = pname; + n[3].f = params[0]; + n[4].f = params[1]; + n[5].f = params[2]; + n[6].f = params[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Materialfv( face, pname, params ); + } +} + + +void gl_save_MatrixMode( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_MATRIX_MODE, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_MatrixMode( mode ); + } +} + + +void gl_save_MultMatrixf( const GLfloat *m ) +{ + Node *n = alloc_instruction( OPCODE_MULT_MATRIX, 16 ); + if (n) { + GLuint i; + for (i=0;i<16;i++) { + n[1+i].f = m[i]; + } + } + if (gCCPriv->ExecuteFlag) { + _gamma_MultMatrixf( m ); + } +} + + +void gl_save_NewList( GLuint list, GLenum mode ) +{ + /* It's an error to call this function while building a display list */ + gamma_error( GL_INVALID_OPERATION, "glNewList" ); + (void) list; + (void) mode; +} + + +void gl_save_Normal3fv( const GLfloat norm[3] ) +{ + Node *n = alloc_instruction( OPCODE_NORMAL, 3 ); + if (n) { + n[1].f = norm[0]; + n[2].f = norm[1]; + n[3].f = norm[2]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Normal3fv( norm ); + } +} + + +void gl_save_Normal3f( GLfloat nx, GLfloat ny, GLfloat nz ) +{ + Node *n = alloc_instruction( OPCODE_NORMAL, 3 ); + if (n) { + n[1].f = nx; + n[2].f = ny; + n[3].f = nz; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Normal3f( nx, ny, nz ); + } +} + + +void gl_save_Ortho( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble nearval, GLdouble farval ) +{ + Node *n = alloc_instruction( OPCODE_ORTHO, 6 ); + if (n) { + n[1].f = left; + n[2].f = right; + n[3].f = bottom; + n[4].f = top; + n[5].f = nearval; + n[6].f = farval; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Ortho( left, right, bottom, top, nearval, farval ); + } +} + + +void gl_save_PixelMapfv( + GLenum map, GLint mapsize, const GLfloat *values ) +{ + Node *n = alloc_instruction( OPCODE_PIXEL_MAP, 3 ); + if (n) { + n[1].e = map; + n[2].i = mapsize; + n[3].data = (void *) malloc( mapsize * sizeof(GLfloat) ); + MEMCPY( n[3].data, (void *) values, mapsize * sizeof(GLfloat) ); + } + if (gCCPriv->ExecuteFlag) { + _gamma_PixelMapfv( map, mapsize, values ); + } +} + + +void gl_save_PixelTransferf( GLenum pname, GLfloat param ) +{ + Node *n = alloc_instruction( OPCODE_PIXEL_TRANSFER, 2 ); + if (n) { + n[1].e = pname; + n[2].f = param; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PixelTransferf( pname, param ); + } +} + + +void gl_save_PixelZoom( GLfloat xfactor, GLfloat yfactor ) +{ + Node *n = alloc_instruction( OPCODE_PIXEL_ZOOM, 2 ); + if (n) { + n[1].f = xfactor; + n[2].f = yfactor; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PixelZoom( xfactor, yfactor ); + } +} + + +void gl_save_PointSize( GLfloat size ) +{ + Node *n = alloc_instruction( OPCODE_POINT_SIZE, 1 ); + if (n) { + n[1].f = size; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PointSize( size ); + } +} + + +void gl_save_PolygonMode( GLenum face, GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_POLYGON_MODE, 2 ); + if (n) { + n[1].e = face; + n[2].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PolygonMode( face, mode ); + } +} + + +/* + * Polygon stipple must have been upacked already! + */ +void gl_save_PolygonStipple( const GLubyte *pattern ) +{ + Node *n = alloc_instruction( OPCODE_POLYGON_STIPPLE, 1 ); + if (n) { + void *data; + n[1].data = malloc( 32 * 4 ); + data = n[1].data; /* This needed for Acorn compiler */ + MEMCPY( data, pattern, 32 * 4 ); + } + if (gCCPriv->ExecuteFlag) { + _gamma_PolygonStipple( pattern ); + } +} + + +void gl_save_PolygonOffset( GLfloat factor, GLfloat units ) +{ + Node *n = alloc_instruction( OPCODE_POLYGON_OFFSET, 2 ); + if (n) { + n[1].f = factor; + n[2].f = units; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PolygonOffset( factor, units ); + } +} + + +void gl_save_PopAttrib( void ) +{ + (void) alloc_instruction( OPCODE_POP_ATTRIB, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_PopAttrib( ); + } +} + + +void gl_save_PopMatrix( void ) +{ + (void) alloc_instruction( OPCODE_POP_MATRIX, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_PopMatrix( ); + } +} + + +void gl_save_PopName( void ) +{ + (void) alloc_instruction( OPCODE_POP_NAME, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_PopName( ); + } +} + + +void gl_save_PrioritizeTextures( + GLsizei num, const GLuint *textures, + const GLclampf *priorities ) +{ + GLint i; + + for (i=0;i<num;i++) { + Node *n = alloc_instruction( OPCODE_PRIORITIZE_TEXTURE, 2 ); + if (n) { + n[1].ui = textures[i]; + n[2].f = priorities[i]; + } + } + if (gCCPriv->ExecuteFlag) { + _gamma_PrioritizeTextures( num, textures, priorities ); + } +} + + +void gl_save_PushAttrib( GLbitfield mask ) +{ + Node *n = alloc_instruction( OPCODE_PUSH_ATTRIB, 1 ); + if (n) { + n[1].bf = mask; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PushAttrib( mask ); + } +} + + +void gl_save_PushMatrix( void ) +{ + (void) alloc_instruction( OPCODE_PUSH_MATRIX, 0 ); + if (gCCPriv->ExecuteFlag) { + _gamma_PushMatrix( ); + } +} + + +void gl_save_PushName( GLuint name ) +{ + Node *n = alloc_instruction( OPCODE_PUSH_NAME, 1 ); + if (n) { + n[1].ui = name; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PushName( name ); + } +} + + +void gl_save_RasterPos4f( + GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +{ + Node *n = alloc_instruction( OPCODE_RASTER_POS, 4 ); + if (n) { + n[1].f = x; + n[2].f = y; + n[3].f = z; + n[4].f = w; + } + if (gCCPriv->ExecuteFlag) { + _gamma_RasterPos4f( x, y, z, w ); + } +} + + +void gl_save_PassThrough( GLfloat token ) +{ + Node *n = alloc_instruction( OPCODE_PASSTHROUGH, 1 ); + if (n) { + n[1].f = token; + } + if (gCCPriv->ExecuteFlag) { + _gamma_PassThrough( token ); + } +} + + +void gl_save_ReadBuffer( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_READ_BUFFER, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ReadBuffer( mode ); + } +} + + +void gl_save_Rectf( + GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ) +{ + Node *n = alloc_instruction( OPCODE_RECTF, 4 ); + if (n) { + n[1].f = x1; + n[2].f = y1; + n[3].f = x2; + n[4].f = y2; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Rectf( x1, y1, x2, y2 ); + } +} + + +void gl_save_Rotatef( GLfloat angle, + GLfloat x, GLfloat y, GLfloat z ) +{ + GLfloat m[16]; + gl_rotation_matrix( angle, x, y, z, m ); + gl_save_MultMatrixf( m ); /* save and maybe execute */ +} + + +void gl_save_Scalef( GLfloat x, GLfloat y, GLfloat z ) +{ + Node *n = alloc_instruction( OPCODE_SCALE, 3 ); + if (n) { + n[1].f = x; + n[2].f = y; + n[3].f = z; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Scalef( x, y, z ); + } +} + + +void gl_save_Scissor( + GLint x, GLint y, GLsizei width, GLsizei height ) +{ + Node *n = alloc_instruction( OPCODE_SCISSOR, 4 ); + if (n) { + n[1].i = x; + n[2].i = y; + n[3].i = width; + n[4].i = height; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Scissor( x, y, width, height ); + } +} + + +void gl_save_ShadeModel( GLenum mode ) +{ + Node *n = alloc_instruction( OPCODE_SHADE_MODEL, 1 ); + if (n) { + n[1].e = mode; + } + if (gCCPriv->ExecuteFlag) { + _gamma_ShadeModel( mode ); + } +} + + +void gl_save_StencilFunc( GLenum func, GLint ref, GLuint mask ) +{ + Node *n = alloc_instruction( OPCODE_STENCIL_FUNC, 3 ); + if (n) { + n[1].e = func; + n[2].i = ref; + n[3].ui = mask; + } + if (gCCPriv->ExecuteFlag) { + _gamma_StencilFunc( func, ref, mask ); + } +} + + +void gl_save_StencilMask( GLuint mask ) +{ + Node *n = alloc_instruction( OPCODE_STENCIL_MASK, 1 ); + if (n) { + n[1].ui = mask; + } + if (gCCPriv->ExecuteFlag) { + _gamma_StencilMask( mask ); + } +} + + +void gl_save_StencilOp( + GLenum fail, GLenum zfail, GLenum zpass ) +{ + Node *n = alloc_instruction( OPCODE_STENCIL_OP, 3 ); + if (n) { + n[1].e = fail; + n[2].e = zfail; + n[3].e = zpass; + } + if (gCCPriv->ExecuteFlag) { + _gamma_StencilOp( fail, zfail, zpass ); + } +} + + +void gl_save_TexCoord2f( GLfloat s, GLfloat t ) +{ + Node *n = alloc_instruction( OPCODE_TEXCOORD2, 2 ); + if (n) { + n[1].f = s; + n[2].f = t; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexCoord2f( s, t ); + } +} + +void gl_save_TexCoord2fv( const GLfloat *v ) +{ + Node *n = alloc_instruction( OPCODE_TEXCOORD2, 2 ); + if (n) { + n[1].f = v[0]; + n[2].f = v[1]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexCoord2f( n[1].f, n[2].f ); + } +} + +void gl_save_TexCoord3fv( const GLfloat *v ) +{ + Node *n = alloc_instruction( OPCODE_TEXCOORD4, 4 ); + if (n) { + n[1].f = v[0]; + n[2].f = v[1]; + n[1].f = v[2]; + n[2].f = 1.0f; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexCoord4f( n[1].f, n[2].f, n[3].f, n[4].f ); + } +} + +void gl_save_TexCoord4f( GLfloat s, GLfloat t, + GLfloat r, GLfloat q ) +{ + Node *n = alloc_instruction( OPCODE_TEXCOORD4, 4 ); + if (n) { + n[1].f = s; + n[2].f = t; + n[3].f = r; + n[4].f = q; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexCoord4f( s, t, r, q ); + } +} + + +void gl_save_TexEnvfv( + GLenum target, GLenum pname, const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_TEXENV, 6 ); + if (n) { + n[1].e = target; + n[2].e = pname; + n[3].f = params[0]; + n[4].f = params[1]; + n[5].f = params[2]; + n[6].f = params[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexEnvfv( target, pname, params ); + } +} + + +void gl_save_TexGenfv( + GLenum coord, GLenum pname, const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_TEXGEN, 6 ); + if (n) { + n[1].e = coord; + n[2].e = pname; + n[3].f = params[0]; + n[4].f = params[1]; + n[5].f = params[2]; + n[6].f = params[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexGenfv( coord, pname, params ); + } +} + + +void gl_save_TexParameterfv( GLenum target, + GLenum pname, const GLfloat *params ) +{ + Node *n = alloc_instruction( OPCODE_TEXPARAMETER, 6 ); + if (n) { + n[1].e = target; + n[2].e = pname; + n[3].f = params[0]; + n[4].f = params[1]; + n[5].f = params[2]; + n[6].f = params[3]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexParameterfv( target, pname, params ); + } +} + + +void gl_save_TexImage1D( GLenum target, + GLint level, GLint components, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ) +{ + if (target == GL_PROXY_TEXTURE_1D) { + /* don't compile, execute immediately */ + _gamma_TexImage1D( target, level, components, width, + border, format, type, pixels ); + } + else { + GLvoid *image = _mesa_unpack_image(width, 1, 1, format, type, + pixels, &gCCPriv->Unpack); + Node *n; + n = alloc_instruction( OPCODE_TEX_IMAGE1D, 8 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].i = components; + n[4].i = (GLint) width; + n[5].i = border; + n[6].e = format; + n[7].e = type; + n[8].data = image; + } + else if (image) { + FREE(image); + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexImage1D( target, level, components, width, + border, format, type, pixels ); + } + } +} + + +void gl_save_TexImage2D( GLenum target, + GLint level, GLint components, + GLsizei width, GLsizei height, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ) +{ + if (target == GL_PROXY_TEXTURE_2D) { + /* don't compile, execute immediately */ + _gamma_TexImage2D( target, level, components, width, + height, border, format, type, pixels ); + } + else { + GLvoid *image = _mesa_unpack_image(width, height, 1, format, type, + pixels, &gCCPriv->Unpack); + Node *n; + n = alloc_instruction( OPCODE_TEX_IMAGE2D, 9 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].i = components; + n[4].i = (GLint) width; + n[5].i = (GLint) height; + n[6].i = border; + n[7].e = format; + n[8].e = type; + n[9].data = image; + } + else if (image) { + FREE(image); + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexImage2D( target, level, components, width, + height, border, format, type, pixels ); + } + } +} + + +void gl_save_TexSubImage1D( + GLenum target, GLint level, GLint xoffset, + GLsizei width, GLenum format, GLenum type, + const GLvoid *pixels ) +{ + GLvoid *image = _mesa_unpack_image(width, 1, 1, format, type, + pixels, &gCCPriv->Unpack); + Node *n = alloc_instruction( OPCODE_TEX_SUB_IMAGE1D, 7 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].i = xoffset; + n[4].i = (GLint) width; + n[5].e = format; + n[6].e = type; + n[7].data = image; + } else + if (image) { + free(image); + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexSubImage1D( target, level, xoffset, width, + format, type, image ); + } +} + + +void gl_save_TexSubImage2D( + GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ) +{ + GLvoid *image = _mesa_unpack_image(width, height, 1, format, type, + pixels, &gCCPriv->Unpack); + Node *n = alloc_instruction( OPCODE_TEX_SUB_IMAGE2D, 9 ); + if (n) { + n[1].e = target; + n[2].i = level; + n[3].i = xoffset; + n[4].i = yoffset; + n[5].i = (GLint) width; + n[6].i = (GLint) height; + n[7].e = format; + n[8].e = type; + n[9].data = image; + } else + if (image) { + free(image); + } + if (gCCPriv->ExecuteFlag) { + _gamma_TexSubImage2D( target, level, xoffset, yoffset, + width, height, format, type, image ); + } +} + + +void gl_save_Translatef( GLfloat x, GLfloat y, GLfloat z ) +{ + Node *n = alloc_instruction( OPCODE_TRANSLATE, 3 ); + if (n) { + n[1].f = x; + n[2].f = y; + n[3].f = z; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Translatef( x, y, z ); + } +} + + +void gl_save_Vertex2f( GLfloat x, GLfloat y ) +{ + Node *n = alloc_instruction( OPCODE_VERTEX2, 2 ); + if (n) { + n[1].f = x; + n[2].f = y; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Vertex2f( x, y ); + } +} + + +void gl_save_Vertex3f( GLfloat x, GLfloat y, GLfloat z ) +{ + Node *n = alloc_instruction( OPCODE_VERTEX3, 3 ); + + if (n) { + n[1].f = x; + n[2].f = y; + n[3].f = z; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Vertex3f( x, y, z ); + } +} + + +void gl_save_Vertex4f( + GLfloat x, GLfloat y, GLfloat z, GLfloat w ) +{ + Node *n = alloc_instruction( OPCODE_VERTEX4, 4 ); + if (n) { + n[1].f = x; + n[2].f = y; + n[3].f = z; + n[4].f = w; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Vertex4f( x, y, z, w ); + } +} + + +void gl_save_Vertex3fv( const GLfloat v[3] ) +{ + Node *n = alloc_instruction( OPCODE_VERTEX3, 3 ); + if (n) { + n[1].f = v[0]; + n[2].f = v[1]; + n[3].f = v[2]; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Vertex3fv( v ); + } +} + + +void gl_save_Viewport( + GLint x, GLint y, GLsizei width, GLsizei height ) +{ + Node *n = alloc_instruction( OPCODE_VIEWPORT, 4 ); + if (n) { + n[1].i = x; + n[2].i = y; + n[3].i = (GLint) width; + n[4].i = (GLint) height; + } + if (gCCPriv->ExecuteFlag) { + _gamma_Viewport( x, y, width, height ); + } +} + + +/**********************************************************************/ +/* Display list execution */ +/**********************************************************************/ + + +/* + * Execute a display list. Note that the ListBase offset must have already + * been added before calling this function. I.e. the list argument is + * the absolute list number, not relative to ListBase. + * Input: list - display list number + */ +static void execute_list( GLuint list ) +{ + Node *n; + GLboolean done; + OpCode opcode; + + if (!_gamma_IsList(list)) + return; + + gCCPriv->CallDepth++; + + n = (Node *) _mesa_HashLookup(gCCPriv->DisplayList, list); + + done = GL_FALSE; + while (!done) { + opcode = n[0].opcode; + + switch (opcode) { + /* Frequently called functions: */ + case OPCODE_VERTEX2: + _gamma_Vertex2f( n[1].f, n[2].f ); + break; + case OPCODE_VERTEX3: + _gamma_Vertex3f( n[1].f, n[2].f, n[3].f ); + break; + case OPCODE_VERTEX4: + _gamma_Vertex4f( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_NORMAL: + _gamma_Normal3f( n[1].f, n[2].f, n[3].f ); +#if 0 /* NOT_DONE */ + gCCPriv->VB->MonoNormal = GL_FALSE; +#endif + break; + case OPCODE_COLOR_4UB: + _gamma_Color4ub( n[1].ub, n[2].ub, n[3].ub, n[4].ub ); + break; + case OPCODE_COLOR_3F: + _gamma_Color3f( n[1].f, n[2].f, n[3].f ); + break; + case OPCODE_COLOR_4F: + _gamma_Color4f( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_INDEX: + gCCPriv->Current.Index = n[1].ui; +#if 0 /* NOT_DONE */ + gCCPriv->VB->MonoColor = GL_FALSE; +#endif + break; + case OPCODE_BEGIN: + _gamma_Begin( n[1].e ); + break; + case OPCODE_END: + _gamma_End( ); + break; + case OPCODE_TEXCOORD2: + _gamma_TexCoord2f( n[1].f, n[2].f ); + break; + case OPCODE_TEXCOORD4: + _gamma_TexCoord4f( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_ACCUM: + _gamma_Accum( n[1].e, n[2].f ); + break; + case OPCODE_ALPHA_FUNC: + _gamma_AlphaFunc( n[1].e, n[2].f ); + break; + case OPCODE_BIND_TEXTURE: + _gamma_BindTexture( n[1].e, n[2].ui ); + break; + case OPCODE_BITMAP: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_Bitmap( (GLsizei) n[1].i, (GLsizei) n[2].i, + n[3].f, n[4].f, n[5].f, n[6].f, (const GLubyte *) n[7].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_BLEND_FUNC: + _gamma_BlendFunc( n[1].e, n[2].e ); + break; + case OPCODE_CALL_LIST: + /* Generated by glCallList(), don't add ListBase */ + if (gCCPriv->CallDepth<MAX_LIST_NESTING) { + execute_list( n[1].ui ); + } + break; + case OPCODE_CALL_LIST_OFFSET: + /* Generated by glCallLists() so we must add ListBase */ + if (gCCPriv->CallDepth<MAX_LIST_NESTING) { + execute_list( gCCPriv->List.ListBase + n[1].ui ); + } + break; + case OPCODE_CLEAR: + _gamma_Clear( n[1].bf ); + break; + case OPCODE_CLEAR_COLOR: + _gamma_ClearColor( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_CLEAR_ACCUM: + _gamma_ClearAccum( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_CLEAR_DEPTH: + _gamma_ClearDepth( (GLclampd) n[1].f ); + break; + case OPCODE_CLEAR_INDEX: + _gamma_ClearIndex( n[1].ui ); + break; + case OPCODE_CLEAR_STENCIL: + _gamma_ClearStencil( n[1].i ); + break; + case OPCODE_CLIP_PLANE: + { + GLdouble equ[4]; + equ[0] = n[2].f; + equ[1] = n[3].f; + equ[2] = n[4].f; + equ[3] = n[5].f; + _gamma_ClipPlane( n[1].e, equ ); + } + break; + case OPCODE_COLOR_MASK: + _gamma_ColorMask( n[1].b, n[2].b, n[3].b, n[4].b ); + break; + case OPCODE_COLOR_MATERIAL: + _gamma_ColorMaterial( n[1].e, n[2].e ); + break; + case OPCODE_COPY_PIXELS: + _gamma_CopyPixels( n[1].i, n[2].i, + (GLsizei) n[3].i, (GLsizei) n[4].i, n[5].e ); + break; + case OPCODE_COPY_TEX_IMAGE1D: + _gamma_CopyTexImage1D( n[1].e, n[2].i, n[3].e, n[4].i, + n[5].i, n[6].i, n[7].i ); + break; + case OPCODE_COPY_TEX_IMAGE2D: + _gamma_CopyTexImage2D( n[1].e, n[2].i, n[3].e, n[4].i, + n[5].i, n[6].i, n[7].i, n[8].i ); + break; + case OPCODE_COPY_TEX_SUB_IMAGE1D: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_TexSubImage1D( n[1].e, n[2].i, n[3].i, + n[4].i, n[5].e, + n[6].e, n[7].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_COPY_TEX_SUB_IMAGE2D: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_TexSubImage2D( n[1].e, n[2].i, n[3].i, + n[4].i, n[5].e, + n[6].i, n[7].e, n[8].e, n[9].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_CULL_FACE: + _gamma_CullFace( n[1].e ); + break; + case OPCODE_DEPTH_FUNC: + _gamma_DepthFunc( n[1].e ); + break; + case OPCODE_DEPTH_MASK: + _gamma_DepthMask( n[1].b ); + break; + case OPCODE_DEPTH_RANGE: + _gamma_DepthRange( (GLclampd) n[1].f, (GLclampd) n[2].f ); + break; + case OPCODE_DISABLE: + _gamma_Disable( n[1].e ); + break; + case OPCODE_DRAW_BUFFER: + _gamma_DrawBuffer( n[1].e ); + break; + case OPCODE_DRAW_PIXELS: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_DrawPixels( n[1].i, n[2].i, n[3].e, n[4].e, + n[5].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_EDGE_FLAG: + gCCPriv->Current.EdgeFlag = n[1].b; + break; + case OPCODE_ENABLE: + _gamma_Enable( n[1].e ); + break; + case OPCODE_EVALCOORD1: + _gamma_EvalCoord1f( n[1].f ); + break; + case OPCODE_EVALCOORD2: + _gamma_EvalCoord2f( n[1].f, n[2].f ); + break; + case OPCODE_EVALMESH1: + _gamma_EvalMesh1( n[1].e, n[2].i, n[3].i ); + break; + case OPCODE_EVALMESH2: + _gamma_EvalMesh2( n[1].e, n[2].i, n[3].i, n[4].i, n[5].i ); + break; + case OPCODE_EVALPOINT1: + _gamma_EvalPoint1( n[1].i ); + break; + case OPCODE_EVALPOINT2: + _gamma_EvalPoint2( n[1].i, n[2].i ); + break; + case OPCODE_FOG: + { + GLfloat p[4]; + p[0] = n[2].f; + p[1] = n[3].f; + p[2] = n[4].f; + p[3] = n[5].f; + _gamma_Fogfv( n[1].e, p ); + } + break; + case OPCODE_FRONT_FACE: + _gamma_FrontFace( n[1].e ); + break; + case OPCODE_FRUSTUM: + _gamma_Frustum( n[1].f, n[2].f, n[3].f, n[4].f, n[5].f, n[6].f ); + break; + case OPCODE_HINT: + _gamma_Hint( n[1].e, n[2].e ); + break; + case OPCODE_INDEX_MASK: + _gamma_IndexMask( n[1].ui ); + break; + case OPCODE_INIT_NAMES: + _gamma_InitNames( ); + break; + case OPCODE_LIGHT: + { + GLfloat p[4]; + p[0] = n[3].f; + p[1] = n[4].f; + p[2] = n[5].f; + p[3] = n[6].f; + _gamma_Lightfv( n[1].e, n[2].e, p ); + } + break; + case OPCODE_LIGHT_MODEL: + { + GLfloat p[4]; + p[0] = n[2].f; + p[1] = n[3].f; + p[2] = n[4].f; + p[3] = n[5].f; + _gamma_LightModelfv( n[1].e, p ); + } + break; + case OPCODE_LINE_STIPPLE: + _gamma_LineStipple( n[1].i, n[2].us ); + break; + case OPCODE_LINE_WIDTH: + _gamma_LineWidth( n[1].f ); + break; + case OPCODE_LIST_BASE: + _gamma_ListBase( n[1].ui ); + break; + case OPCODE_LOAD_IDENTITY: + _gamma_LoadIdentity( ); + break; + case OPCODE_LOAD_MATRIX: + if (sizeof(Node)==sizeof(GLfloat)) { + _gamma_LoadMatrixf( &n[1].f ); + } + else { + GLfloat m[16]; + GLuint i; + for (i=0;i<16;i++) { + m[i] = n[1+i].f; + } + _gamma_LoadMatrixf( m ); + } + break; + case OPCODE_LOAD_NAME: + _gamma_LoadName( n[1].ui ); + break; + case OPCODE_LOGIC_OP: + _gamma_LogicOp( n[1].e ); + break; + case OPCODE_MAP1: + _gamma_Map1f( n[1].e, n[2].f, n[3].f, + n[4].i, n[5].i, (GLfloat *) n[6].data ); + break; + case OPCODE_MAP2: + _gamma_Map2f( n[1].e, + n[2].f, n[3].f, /* u1, u2 */ + n[6].i, n[8].i, /* ustride, uorder */ + n[4].f, n[5].f, /* v1, v2 */ + n[7].i, n[9].i, /* vstride, vorder */ + (GLfloat *) n[10].data); + break; + case OPCODE_MAPGRID1: + _gamma_MapGrid1f( n[1].i, n[2].f, n[3].f ); + break; + case OPCODE_MAPGRID2: + _gamma_MapGrid2f( n[1].i, n[2].f, n[3].f, n[4].i, n[5].f, n[6].f); + break; + case OPCODE_MATERIAL: + { + GLfloat params[4]; + params[0] = n[3].f; + params[1] = n[4].f; + params[2] = n[5].f; + params[3] = n[6].f; + _gamma_Materialfv( n[1].e, n[2].e, params ); + } + break; + case OPCODE_MATRIX_MODE: + _gamma_MatrixMode( n[1].e ); + break; + case OPCODE_MULT_MATRIX: + if (sizeof(Node)==sizeof(GLfloat)) { + _gamma_MultMatrixf( &n[1].f ); + } + else { + GLfloat m[16]; + GLuint i; + for (i=0;i<16;i++) { + m[i] = n[1+i].f; + } + _gamma_MultMatrixf( m ); + } + break; + case OPCODE_ORTHO: + _gamma_Ortho( n[1].f, n[2].f, n[3].f, n[4].f, n[5].f, n[6].f ); + break; + case OPCODE_PASSTHROUGH: + _gamma_PassThrough( n[1].f ); + break; + case OPCODE_PIXEL_MAP: + _gamma_PixelMapfv( n[1].e, n[2].i, (GLfloat *) n[3].data ); + break; + case OPCODE_PIXEL_TRANSFER: + _gamma_PixelTransferf( n[1].e, n[2].f ); + break; + case OPCODE_PIXEL_ZOOM: + _gamma_PixelZoom( n[1].f, n[2].f ); + break; + case OPCODE_POINT_SIZE: + _gamma_PointSize( n[1].f ); + break; + case OPCODE_POLYGON_MODE: + _gamma_PolygonMode( n[1].e, n[2].e ); + break; + case OPCODE_POLYGON_STIPPLE: + _gamma_PolygonStipple( (GLubyte *) n[1].data ); + break; + case OPCODE_POLYGON_OFFSET: + _gamma_PolygonOffset( n[1].f, n[2].f ); + break; + case OPCODE_POP_ATTRIB: + _gamma_PopAttrib( ); + break; + case OPCODE_POP_MATRIX: + _gamma_PopMatrix( ); + break; + case OPCODE_POP_NAME: + _gamma_PopName( ); + break; + case OPCODE_PRIORITIZE_TEXTURE: + _gamma_PrioritizeTextures( 1, &n[1].ui, &n[2].f ); + break; + case OPCODE_PUSH_ATTRIB: + _gamma_PushAttrib( n[1].bf ); + break; + case OPCODE_PUSH_MATRIX: + _gamma_PushMatrix( ); + break; + case OPCODE_PUSH_NAME: + _gamma_PushName( n[1].ui ); + break; + case OPCODE_RASTER_POS: + _gamma_RasterPos4f( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_READ_BUFFER: + _gamma_ReadBuffer( n[1].e ); + break; + case OPCODE_RECTF: + _gamma_Rectf( n[1].f, n[2].f, n[3].f, n[4].f ); + break; + case OPCODE_SCALE: + _gamma_Scalef( n[1].f, n[2].f, n[3].f ); + break; + case OPCODE_SCISSOR: + _gamma_Scissor( n[1].i, n[2].i, n[3].i, n[4].i ); + break; + case OPCODE_SHADE_MODEL: + _gamma_ShadeModel( n[1].e ); + break; + case OPCODE_STENCIL_FUNC: + _gamma_StencilFunc( n[1].e, n[2].i, n[3].ui ); + break; + case OPCODE_STENCIL_MASK: + _gamma_StencilMask( n[1].ui ); + break; + case OPCODE_STENCIL_OP: + _gamma_StencilOp( n[1].e, n[2].e, n[3].e ); + break; + case OPCODE_TEXENV: + { + GLfloat params[4]; + params[0] = n[3].f; + params[1] = n[4].f; + params[2] = n[5].f; + params[3] = n[6].f; + _gamma_TexEnvfv( n[1].e, n[2].e, params ); + } + break; + case OPCODE_TEXGEN: + { + GLfloat params[4]; + params[0] = n[3].f; + params[1] = n[4].f; + params[2] = n[5].f; + params[3] = n[6].f; + _gamma_TexGenfv( n[1].e, n[2].e, params ); + } + break; + case OPCODE_TEXPARAMETER: + { + GLfloat params[4]; + params[0] = n[3].f; + params[1] = n[4].f; + params[2] = n[5].f; + params[3] = n[6].f; + _gamma_TexParameterfv( n[1].e, n[2].e, params ); + } + break; + case OPCODE_TEX_IMAGE1D: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_TexImage1D( n[1].e, /* target */ + n[2].i, /* level */ + n[3].i, /* components */ + n[4].i, /* width */ + n[5].e, /* border */ + n[6].e, /* format */ + n[7].e, /* type */ + n[8].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_TEX_IMAGE2D: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_TexImage2D( n[1].e, /* target */ + n[2].i, /* level */ + n[3].i, /* components */ + n[4].i, /* width */ + n[5].i, /* height */ + n[6].e, /* border */ + n[7].e, /* format */ + n[8].e, /* type */ + n[9].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_TEX_SUB_IMAGE1D: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_TexSubImage1D( n[1].e, n[2].i, n[3].i, + n[4].i, n[5].e, + n[6].e, n[7].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_TEX_SUB_IMAGE2D: + { + struct gl_pixelstore_attrib save = gCCPriv->Unpack; + gCCPriv->Unpack = _mesa_native_packing; + _gamma_TexSubImage2D( n[1].e, n[2].i, n[3].i, + n[4].i, n[5].e, + n[6].i, n[7].e, n[8].e, n[9].data ); + gCCPriv->Unpack = save; /* restore */ + } + break; + case OPCODE_TRANSLATE: + _gamma_Translatef( n[1].f, n[2].f, n[3].f ); + break; + case OPCODE_VIEWPORT: + _gamma_Viewport( n[1].i, n[2].i, (GLsizei) n[3].i, (GLsizei) n[4].i ); + break; + case OPCODE_CONTINUE: + n = (Node *) n[1].next; + break; + case OPCODE_END_OF_LIST: + done = GL_TRUE; + break; + default: + { + char msg[1000]; + sprintf(msg, "Error in execute_list: opcode=%d", (int) opcode); +#if 0 + gl_problem( msg ); +#endif + } + done = GL_TRUE; + } + + /* increment n to point to next compiled command */ + if (opcode!=OPCODE_CONTINUE) { + n += InstSize[opcode]; + } + + } + gCCPriv->CallDepth--; +} + + + +/**********************************************************************/ +/* GL functions */ +/**********************************************************************/ + + + +/* + * Test if a display list number is valid. + */ +GLboolean _gamma_IsList( GLuint list ) +{ + if (list > 0 && _mesa_HashLookup(gCCPriv->DisplayList, list)) { + return GL_TRUE; + } + else { + return GL_FALSE; + } +} + + + +/* + * Delete a sequence of consecutive display lists. + */ +void _gamma_DeleteLists( GLuint list, GLsizei range ) +{ + GLuint i; + +#if 0 + if (INSIDE_BEGIN_END(ctx)) { + gamma_error( GL_INVALID_OPERATION, "glDeleteLists" ); + return; + } +#endif + if (range<0) { + gamma_error( GL_INVALID_VALUE, "glDeleteLists" ); + return; + } + for (i=list;i<list+range;i++) { + gamma_destroy_list( i ); + } +} + + + +/* + * Return a display list number, n, such that lists n through n+range-1 + * are free. + */ +GLuint _gamma_GenLists( GLsizei range ) +{ + GLuint base; + +#if 0 + if (INSIDE_BEGIN_END(ctx)) { + gamma_error( GL_INVALID_OPERATION, "glGenLists" ); + return 0; + } +#endif + if (range<0) { + gamma_error( GL_INVALID_VALUE, "glGenLists" ); + return 0; + } + if (range==0) { + return 0; + } + + base = _mesa_HashFindFreeKeyBlock(gCCPriv->DisplayList, range); + if (base) { + /* reserve the list IDs by with empty/dummy lists */ + GLint i; + for (i=0; i<range; i++) { + _mesa_HashInsert(gCCPriv->DisplayList, base+i, make_empty_list()); + } + } + return base; +} + + + +/* + * Begin a new display list. + */ +void _gamma_NewList( GLuint list, GLenum mode ) +{ +#if 0 + if (INSIDE_BEGIN_END(ctx)) { + gamma_error( GL_INVALID_OPERATION, "glNewList" ); + return; + } +#endif + if (list==0) { + gamma_error( GL_INVALID_VALUE, "glNewList" ); + return; + } + if (mode!=GL_COMPILE && mode!=GL_COMPILE_AND_EXECUTE) { + gamma_error( GL_INVALID_ENUM, "glNewList" ); + return; + } + if (gCCPriv->CurrentListPtr) { + /* already compiling a display list */ + gamma_error( GL_INVALID_OPERATION, "glNewList" ); + return; + } + + /* Allocate new display list */ + gCCPriv->CurrentListNum = list; + gCCPriv->CurrentListPtr = gCCPriv->CurrentBlock = (Node *) malloc( sizeof(Node) * BLOCK_SIZE ); + gCCPriv->CurrentPos = 0; + + gCCPriv->CompileFlag = GL_TRUE; + if (mode==GL_COMPILE) { + gCCPriv->ExecuteFlag = GL_FALSE; + } + else { + /* Compile and execute */ + gCCPriv->ExecuteFlag = GL_TRUE; + } + + _glapi_set_dispatch(gCCPriv->Save); + gCCPriv->API = gCCPriv->Save; /* Switch the API function pointers */ +} + + + +/* + * End definition of current display list. + */ +void _gamma_EndList( void ) +{ + /* Check that a list is under construction */ + if (!gCCPriv->CurrentListPtr) { + gamma_error( GL_INVALID_OPERATION, "glEndList" ); + return; + } + + (void) alloc_instruction( OPCODE_END_OF_LIST, 0 ); + + /* Destroy old list, if any */ + gamma_destroy_list(gCCPriv->CurrentListNum); + /* Install the list */ + _mesa_HashInsert(gCCPriv->DisplayList, gCCPriv->CurrentListNum, gCCPriv->CurrentListPtr); + + gCCPriv->CurrentListNum = 0; + gCCPriv->CurrentListPtr = NULL; + gCCPriv->ExecuteFlag = GL_TRUE; + gCCPriv->CompileFlag = GL_FALSE; + + _glapi_set_dispatch(gCCPriv->Exec); + gCCPriv->API = gCCPriv->Exec; /* Switch the API function pointers */ +} + + + +void _gamma_CallList( GLuint list ) +{ + /* VERY IMPORTANT: Save the CompileFlag status, turn it off, */ + /* execute the display list, and restore the CompileFlag. */ + GLboolean save_compile_flag; + save_compile_flag = gCCPriv->CompileFlag; + gCCPriv->CompileFlag = GL_FALSE; + execute_list( list ); + gCCPriv->CompileFlag = save_compile_flag; + + /* also restore API function pointers to point to "save" versions */ + if (save_compile_flag) { + _glapi_set_dispatch(gCCPriv->Save); + gCCPriv->API = gCCPriv->Save; + } +} + + + +/* + * Execute glCallLists: call multiple display lists. + */ +void _gamma_CallLists( + GLsizei n, GLenum type, const GLvoid *lists ) +{ + GLuint list; + GLint i; + GLboolean save_compile_flag; + + /* Save the CompileFlag status, turn it off, execute display list, + * and restore the CompileFlag. + */ + save_compile_flag = gCCPriv->CompileFlag; + gCCPriv->CompileFlag = GL_FALSE; + + for (i=0;i<n;i++) { + list = translate_id( i, type, lists ); + execute_list( gCCPriv->List.ListBase + list ); + } + + gCCPriv->CompileFlag = save_compile_flag; + + /* also restore API function pointers to point to "save" versions */ + if (save_compile_flag) { + _glapi_set_dispatch(gCCPriv->Save); + gCCPriv->API = gCCPriv->Save; + } +} + + + +/* + * Set the offset added to list numbers in glCallLists. + */ +void _gamma_ListBase( GLuint base ) +{ +#if 0 + if (INSIDE_BEGIN_END(ctx)) { + gamma_error( GL_INVALID_OPERATION, "glListBase" ); + return; + } +#endif + gCCPriv->List.ListBase = base; +} diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.h b/xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.h new file mode 100644 index 000000000..a8523da2d --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.h @@ -0,0 +1,381 @@ +/* + * Mesa 3-D graphics library + * Version: 3.0 + * Copyright (C) 1995-1998 Brian Paul + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_dlist.h,v 1.3 2001/02/12 01:11:25 tsi Exp $ */ + + +#ifndef DLIST_H +#define DLIST_H + +#include "types.h" + +extern void gamma_init_lists( void ); + +extern void gamma_destroy_list( GLuint list ); + + + +extern void gl_CallList( GLuint list ); + +extern void gl_CallLists( + GLsizei n, GLenum type, const GLvoid *lists ); + +extern void gl_DeleteLists( GLuint list, GLsizei range ); + +extern void gl_EndList( void ); + +extern GLuint gl_GenLists( GLsizei range ); + +extern GLboolean gl_IsList( GLuint list ); + +extern void gl_ListBase( GLuint base ); + +extern void gl_NewList( GLuint list, GLenum mode ); + +extern void gl_save_Accum( GLenum op, GLfloat value ); + +extern void gl_save_AlphaFunc( GLenum func, GLclampf ref ); + +extern void gl_save_ArrayElement( GLint i ); + +extern void gl_save_BlendFunc( + GLenum sfactor, GLenum dfactor ); + +extern void gl_save_Begin( GLenum mode ); + +extern void gl_save_BindTexture( + GLenum target, GLuint texture ); + +extern void gl_save_Bitmap( GLsizei width, GLsizei height, + GLfloat xorig, GLfloat yorig, + GLfloat xmove, GLfloat ymove, + const GLubyte *bitmap ); + +extern void gl_save_CallList( GLuint list ); + +extern void gl_save_CallLists( + GLsizei n, GLenum type, const GLvoid *lists ); + +extern void gl_save_Clear( GLbitfield mask ); + +extern void gl_save_ClearAccum( GLfloat red, GLfloat green, + GLfloat blue, GLfloat alpha ); + +extern void gl_save_ClearColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ); + +extern void gl_save_ClearDepth( GLclampd depth ); + +extern void gl_save_ClearIndex( GLfloat c ); + +extern void gl_save_ClearStencil( GLint s ); + +extern void gl_save_ClipPlane( + GLenum plane, const GLdouble *equ ); + +extern void gl_save_Color3f( GLfloat r, GLfloat g, GLfloat b ); + +extern void gl_save_Color3fv( const GLfloat *c ); + +extern void gl_save_Color4f( GLfloat r, GLfloat g, + GLfloat b, GLfloat a ); + +extern void gl_save_Color4fv( const GLfloat *c ); + +extern void gl_save_Color4ub( GLubyte r, GLubyte g, + GLubyte b, GLubyte a ); + +extern void gl_save_Color4ubv( const GLubyte *c ); + +extern void gl_save_ColorMask( GLboolean red, GLboolean green, + GLboolean blue, GLboolean alpha ); + +extern void gl_save_ColorMaterial( GLenum face, GLenum mode ); + +extern void gl_save_CopyPixels( GLint x, GLint y, + GLsizei width, GLsizei height, GLenum type ); + +extern void gl_save_CopyTexImage1D( + GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, GLsizei width, + GLint border ); + +extern void gl_save_CopyTexImage2D( + GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, GLsizei width, + GLsizei height, GLint border ); + +extern void gl_save_CopyTexSubImage1D( + GLenum target, GLint level, + GLint xoffset, GLint x, GLint y, + GLsizei width ); + +extern void gl_save_CopyTexSubImage2D( + GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint x, GLint y, + GLsizei width, GLint height ); + +extern void gl_save_CullFace( GLenum mode ); + +extern void gl_save_DepthFunc( GLenum func ); + +extern void gl_save_DepthMask( GLboolean mask ); + +extern void gl_save_DepthRange( + GLclampd nearval, GLclampd farval ); + +extern void gl_save_Disable( GLenum cap ); + +extern void gl_save_DrawArrays( + GLenum mode, GLint first, GLsizei count ); + +extern void gl_save_DrawBuffer( GLenum mode ); + +extern void gl_save_DrawElements( + GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices ); + +extern void gl_save_DrawPixels( GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + +extern void gl_save_EdgeFlag( GLboolean flag ); + +extern void gl_save_Enable( GLenum cap ); + +extern void gl_save_End( void ); + +extern void gl_save_EvalCoord1f( GLfloat u ); + +extern void gl_save_EvalCoord2f( GLfloat u, GLfloat v ); + +extern void gl_save_EvalMesh1( + GLenum mode, GLint i1, GLint i2 ); + +extern void gl_save_EvalMesh2( GLenum mode, GLint i1, GLint i2, + GLint j1, GLint j2 ); + +extern void gl_save_EvalPoint1( GLint i ); + +extern void gl_save_EvalPoint2( GLint i, GLint j ); + +extern void gl_save_Fogfv( + GLenum pname, const GLfloat *params ); + +extern void gl_save_FrontFace( GLenum mode ); + +extern void gl_save_Frustum( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble nearval, GLdouble farval ); + +extern void gl_save_Hint( GLenum target, GLenum mode ); + +extern void gl_save_Indexf( GLfloat index ); + +extern void gl_save_Indexi( GLint index ); + +extern void gl_save_IndexMask( GLuint mask ); + +extern void gl_save_InitNames( void ); + +extern void gl_save_Lightfv( GLenum light, GLenum pname, + const GLfloat *params ); + +extern void gl_save_LightModelfv( GLenum pname, + const GLfloat *params ); + +extern void gl_save_LineWidth( GLfloat width ); + +extern void gl_save_LineStipple( GLint factor, + GLushort pattern ); + +extern void gl_save_ListBase( GLuint base ); + +extern void gl_save_LoadIdentity( void ); + +extern void gl_save_LoadMatrixf( const GLfloat *m ); + +extern void gl_save_LoadName( GLuint name ); + +extern void gl_save_LogicOp( GLenum opcode ); + +extern void gl_save_Map1f( GLenum target, + GLfloat u1, GLfloat u2, GLint stride, + GLint order, const GLfloat *points); + +extern void gl_save_Map2f( GLenum target, + GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, + GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, + const GLfloat *points); + +extern void gl_save_MapGrid1f( GLint un, + GLfloat u1, GLfloat u2 ); + +extern void gl_save_MapGrid2f( + GLint un, GLfloat u1, GLfloat u2, + GLint vn, GLfloat v1, GLfloat v2 ); + +extern void gl_save_Materialfv( GLenum face, GLenum pname, + const GLfloat *params ); + +extern void gl_save_MatrixMode( GLenum mode ); + +extern void gl_save_MultMatrixf( const GLfloat *m ); + +extern void gl_save_NewList( GLuint list, GLenum mode ); + +extern void gl_save_Normal3fv( const GLfloat n[3] ); + +extern void gl_save_Normal3f( + GLfloat nx, GLfloat ny, GLfloat nz ); + +extern void gl_save_Ortho( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble nearval, GLdouble farval ); + +extern void gl_save_PassThrough( GLfloat token ); + +extern void gl_save_PixelMapfv( GLenum map, GLint mapsize, + const GLfloat *values ); + +extern void gl_save_PixelTransferf( + GLenum pname, GLfloat param ); + +extern void gl_save_PixelZoom( + GLfloat xfactor, GLfloat yfactor ); + +extern void gl_save_PointParameterfvEXT( GLenum pname, + const GLfloat *params ); + +extern void gl_save_PointSize( GLfloat size ); + +extern void gl_save_PolygonMode( GLenum face, GLenum mode ); + +extern void gl_save_PolygonStipple( const GLubyte *pattern ); + +extern void gl_save_PolygonOffset( + GLfloat factor, GLfloat units ); + +extern void gl_save_PopAttrib( void ); + +extern void gl_save_PopMatrix( void ); + +extern void gl_save_PopName( void ); + +extern void gl_save_PrioritizeTextures( + GLsizei n, const GLuint *textures, + const GLclampf *priorities ); + +extern void gl_save_PushAttrib( GLbitfield mask ); + +extern void gl_save_PushMatrix( void ); + +extern void gl_save_PushName( GLuint name ); + +extern void gl_save_RasterPos4f( + GLfloat x, GLfloat y, GLfloat z, GLfloat w ); + +extern void gl_save_ReadBuffer( GLenum mode ); + +extern void gl_save_Rectf( + GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); + +extern void gl_save_Rotatef( GLfloat angle, + GLfloat x, GLfloat y, GLfloat z ); + +extern void gl_save_Scalef( GLfloat x, GLfloat y, GLfloat z ); + +extern void gl_save_Scissor( + GLint x, GLint y, GLsizei width, GLsizei height ); + +extern void gl_save_ShadeModel( GLenum mode ); + +extern void gl_save_StencilFunc( + GLenum func, GLint ref, GLuint mask ); + +extern void gl_save_StencilMask( GLuint mask ); + +extern void gl_save_StencilOp( + GLenum fail, GLenum zfail, GLenum zpass ); + +extern void gl_save_TexCoord2f( GLfloat s, GLfloat t ); + +extern void gl_save_TexCoord2fv( const GLfloat *v ); + +extern void gl_save_TexCoord3fv( const GLfloat *v ); + +extern void gl_save_TexCoord4f( GLfloat s, GLfloat t, + GLfloat r, GLfloat q ); + +extern void gl_save_TexEnvfv( GLenum target, GLenum pname, + const GLfloat *params ); + +extern void gl_save_TexParameterfv( GLenum target, + GLenum pname, const GLfloat *params ); + +extern void gl_save_TexGenfv( GLenum coord, GLenum pname, + const GLfloat *params ); + +extern void gl_save_TexImage1D( GLenum target, + GLint level, GLint components, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +extern void gl_save_TexImage2D( GLenum target, + GLint level, GLint components, + GLsizei width, GLsizei height, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +extern void gl_save_TexSubImage1D( + GLenum target, GLint level, + GLint xoffset, GLsizei width, + GLenum format, GLenum type, + const GLvoid *pixels ); + + +extern void gl_save_TexSubImage2D( + GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + +extern void gl_save_Translatef( + GLfloat x, GLfloat y, GLfloat z ); + +extern void gl_save_Vertex2f( + GLfloat x, GLfloat y ); + +extern void gl_save_Vertex3f( + GLfloat x, GLfloat y, GLfloat z ); + +extern void gl_save_Vertex4f( + GLfloat x, GLfloat y, GLfloat z, GLfloat w ); + +extern void gl_save_Vertex3fv( const GLfloat *v ); + +extern void gl_save_Viewport( GLint x, GLint y, + GLsizei width, GLsizei height ); + +#endif diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.c b/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.c index 930039fa4..d859e5d50 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.c +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_gl.c,v 1.7 2000/11/27 10:59:36 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_gl.c,v 1.9 2001/02/07 13:26:16 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -39,14 +39,89 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <math.h> #include "gamma_gl.h" #include "gamma_init.h" +#include "gamma_dlist.h" #include "glint_dri.h" -#ifdef RANDOMIZE_COLORS -#include <stdlib.h> + +/* Here for now, will change get.c to move them into macros.h later */ + +#define FLOAT_TO_BOOL(X) ( (X)==0.0F ? GL_FALSE : GL_TRUE ) +#define INT_TO_BOOL(I) ( (I)==0 ? GL_FALSE : GL_TRUE ) +#define ENUM_TO_BOOL(E) ( (E)==0 ? GL_FALSE : GL_TRUE ) + +void gamma_error( GLenum error, const char *s ) +{ + GLboolean debug; + +#ifdef DEBUG + debug = GL_TRUE; +#else + if (getenv("MESA_DEBUG")) { + debug = GL_TRUE; + } + else { + debug = GL_FALSE; + } #endif + if (debug) { + char errstr[1000]; + + switch (error) { + case GL_NO_ERROR: + strcpy( errstr, "GL_NO_ERROR" ); + break; + case GL_INVALID_VALUE: + strcpy( errstr, "GL_INVALID_VALUE" ); + break; + case GL_INVALID_ENUM: + strcpy( errstr, "GL_INVALID_ENUM" ); + break; + case GL_INVALID_OPERATION: + strcpy( errstr, "GL_INVALID_OPERATION" ); + break; + case GL_STACK_OVERFLOW: + strcpy( errstr, "GL_STACK_OVERFLOW" ); + break; + case GL_STACK_UNDERFLOW: + strcpy( errstr, "GL_STACK_UNDERFLOW" ); + break; + case GL_OUT_OF_MEMORY: + strcpy( errstr, "GL_OUT_OF_MEMORY" ); + break; + default: + strcpy( errstr, "unknown" ); + break; + } + fprintf( stderr, "Mesa user error: %s in %s\n", errstr, s ); + } + + if (gCCPriv->ErrorValue==GL_NO_ERROR) { + gCCPriv->ErrorValue = error; + } + + /* _gamma_Error( ); use hwLog or something later */ +} + + void _gamma_Accum(GLenum op, GLfloat value) { DEBUG_GLCMDS(("Accum: %d %f\n", (int)op, value)); + + switch (op) { + case GL_ACCUM: + break; + case GL_LOAD: + break; + case GL_ADD: + break; + case GL_MULT: + break; + case GL_RETURN: + break; + default: + gCCPriv->ErrorValue = GL_INVALID_ENUM; + return; + } } void _gamma_AlphaFunc(GLenum func, GLclampf ref) @@ -350,6 +425,7 @@ void _gamma_BlendFunc(GLenum sfactor, GLenum dfactor) } } +#if 0 /* Now in dlist.c */ void _gamma_CallList(GLuint list) { DEBUG_GLCMDS(("CallList: %d\n", (unsigned int)list)); @@ -359,6 +435,7 @@ void _gamma_CallLists(GLsizei n, GLenum type, const GLvoid *lists) { DEBUG_GLCMDS(("CallLists: %d %04x\n", (int)n, (int)type)); } +#endif void _gamma_Clear(GLbitfield mask) { @@ -445,7 +522,7 @@ void _gamma_Clear(GLbitfield mask) temp = (gCCPriv->LBReadMode & LBPartialProdMask) | LBWindowOriginBot; /* UGH - move this later ! */ - if (gDRIPriv->numMXDevices == 2) temp |= LBScanLineInt2; + if (gDRIPriv->numMultiDevices == 2) temp |= LBScanLineInt2; CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITE(gCCPriv->buf, LBReadMode, temp); @@ -634,28 +711,16 @@ void _gamma_ClipPlane(GLenum plane, const GLdouble *equation) void _gamma_Color3b(GLbyte red, GLbyte green, GLbyte blue) { - GLfloat r,g,b; - DEBUG_GLCMDS(("Color3b: %d %d %d\n", red, green, blue)); - r = BYTE_TO_FLOAT(red); - g = BYTE_TO_FLOAT(green); - b = BYTE_TO_FLOAT(blue); - - _gamma_Color3f(r,g,b); + _gamma_Color3f((GLfloat)red,(GLfloat)green,(GLfloat)blue); } void _gamma_Color3bv(const GLbyte *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Color3bv: %d %d %d\n", v[0], v[1], v[2])); - p[0] = BYTE_TO_FLOAT(v[0]); - p[1] = BYTE_TO_FLOAT(v[1]); - p[2] = BYTE_TO_FLOAT(v[2]); - - _gamma_Color3f(p[0],p[1],p[2]); + _gamma_Color3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); } void _gamma_Color3d(GLdouble red, GLdouble green, GLdouble blue) @@ -669,13 +734,18 @@ void _gamma_Color3dv(const GLdouble *v) { DEBUG_GLCMDS(("Color3dv: %f %f %f\n", v[0], v[1], v[2])); - _gamma_Color3fv((GLfloat*)v); + _gamma_Color3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); } void _gamma_Color3f(GLfloat red, GLfloat green, GLfloat blue) { DEBUG_GLCMDS(("Color3f: %f %f %f\n", red, green, blue)); + gCCPriv->Current.Color[0] = red; + gCCPriv->Current.Color[1] = green; + gCCPriv->Current.Color[2] = blue; + gCCPriv->Current.Color[3] = 1.0f; + CHECK_DMA_BUFFER(gCC, gCCPriv, 3); WRITEF(gCCPriv->buf, Cb, blue); WRITEF(gCCPriv->buf, Cg, green); @@ -686,62 +756,35 @@ void _gamma_Color3fv(const GLfloat *v) { DEBUG_GLCMDS(("Color3fv: %f %f %f\n", v[0], v[1], v[2])); - CHECK_DMA_BUFFER(gCC, gCCPriv, 3); - WRITEF(gCCPriv->buf, Cb, v[2]); - WRITEF(gCCPriv->buf, Cg, v[1]); - WRITEF(gCCPriv->buf, Cr3, v[0]); + _gamma_Color3f(v[0],v[1],v[2]); } void _gamma_Color3i(GLint red, GLint green, GLint blue) { - GLfloat r,g,b; - DEBUG_GLCMDS(("Color3i: %d %d %d\n", (int)red, (int)green, (int)blue)); - r = INT_TO_FLOAT(red); - g = INT_TO_FLOAT(green); - b = INT_TO_FLOAT(blue); - - _gamma_Color3f(r,g,b); + _gamma_Color3f((GLfloat)red,(GLfloat)green,(GLfloat)blue); } void _gamma_Color3iv(const GLint *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Color3iv: %d %d %d\n", (int)v[0], (int)v[1], (int)v[2])); - p[0] = INT_TO_FLOAT(v[0]); - p[1] = INT_TO_FLOAT(v[1]); - p[2] = INT_TO_FLOAT(v[2]); - - _gamma_Color3f(p[0],p[1],p[2]); + _gamma_Color3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); } void _gamma_Color3s(GLshort red, GLshort green, GLshort blue) { - GLfloat r,g,b; - DEBUG_GLCMDS(("Color3s: %d %d %d\n", red, green, blue)); - r = SHORT_TO_FLOAT(red); - g = SHORT_TO_FLOAT(green); - b = SHORT_TO_FLOAT(blue); - - _gamma_Color3f(r,g,b); + _gamma_Color3f((GLfloat)red,(GLfloat)green,(GLfloat)blue); } void _gamma_Color3sv(const GLshort *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Color3sv: %d %d %d\n", v[0], v[1], v[2])); - p[0] = SHORT_TO_FLOAT(v[0]); - p[1] = SHORT_TO_FLOAT(v[1]); - p[2] = SHORT_TO_FLOAT(v[2]); - - _gamma_Color3f(p[0],p[1],p[2]); + _gamma_Color3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); } void _gamma_Color3ub(GLubyte red, GLubyte green, GLubyte blue) @@ -770,56 +813,32 @@ void _gamma_Color3ubv(const GLubyte *v) void _gamma_Color3ui(GLuint red, GLuint green, GLuint blue) { - GLfloat r,g,b; - DEBUG_GLCMDS(("Color3ui: %d %d %d\n", (unsigned int)red, (unsigned int)green, (unsigned int)blue)); - r = UINT_TO_FLOAT(red); - g = UINT_TO_FLOAT(green); - b = UINT_TO_FLOAT(blue); - - _gamma_Color3f(r,g,b); + _gamma_Color3f((GLfloat)red,(GLfloat)green,(GLfloat)blue); } void _gamma_Color3uiv(const GLuint *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Color3uiv: %d %d %d\n", (unsigned int)v[0], (unsigned int)v[1], (unsigned int)v[2])); - p[0] = UINT_TO_FLOAT(v[0]); - p[1] = UINT_TO_FLOAT(v[1]); - p[2] = UINT_TO_FLOAT(v[2]); - - _gamma_Color3f(p[0],p[1],p[2]); + _gamma_Color3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); } void _gamma_Color3us(GLushort red, GLushort green, GLushort blue) { - GLfloat r,g,b; - DEBUG_GLCMDS(("Color3us: %d %d %d\n", red, green, blue)); - r = USHORT_TO_FLOAT(red); - g = USHORT_TO_FLOAT(green); - b = USHORT_TO_FLOAT(blue); - - _gamma_Color3f(r,g,b); + _gamma_Color3f((GLfloat)red,(GLfloat)green,(GLfloat)blue); } void _gamma_Color3usv(const GLushort *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Color3usv: %d %d %d\n", v[0], v[1], v[2])); - p[0] = USHORT_TO_FLOAT(v[0]); - p[1] = USHORT_TO_FLOAT(v[1]); - p[2] = USHORT_TO_FLOAT(v[2]); - - _gamma_Color3f(p[0],p[1],p[2]); + _gamma_Color3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); } void _gamma_Color4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha) @@ -847,7 +866,7 @@ void _gamma_Color4bv(const GLbyte *v) p[2] = BYTE_TO_FLOAT(v[2]); p[3] = BYTE_TO_FLOAT(v[3]); - _gamma_Color4f(p[0],p[1],p[2],p[3]); + _gamma_Color4fv(p); } void _gamma_Color4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) @@ -861,13 +880,18 @@ void _gamma_Color4dv(const GLdouble *v) { DEBUG_GLCMDS(("Color4dv: %f %f %f %f\n", v[0], v[1], v[2], v[3])); - _gamma_Color4fv((GLfloat*)v); + _gamma_Color4f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2],(GLfloat)v[3]); } void _gamma_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { DEBUG_GLCMDS(("Color4f: %f %f %f %f\n", red, green, blue, alpha)); + gCCPriv->Current.Color[0] = red; + gCCPriv->Current.Color[1] = green; + gCCPriv->Current.Color[2] = blue; + gCCPriv->Current.Color[3] = alpha; + CHECK_DMA_BUFFER(gCC, gCCPriv, 4); WRITEF(gCCPriv->buf, Ca, alpha); WRITEF(gCCPriv->buf, Cb, blue); @@ -879,6 +903,11 @@ void _gamma_Color4fv(const GLfloat *v) { DEBUG_GLCMDS(("Color4fv: %f %f %f %f\n", v[0], v[1], v[2], v[3])); + gCCPriv->Current.Color[0] = v[0]; + gCCPriv->Current.Color[1] = v[1]; + gCCPriv->Current.Color[2] = v[2]; + gCCPriv->Current.Color[3] = v[3]; + CHECK_DMA_BUFFER(gCC, gCCPriv, 4); WRITEF(gCCPriv->buf, Ca, v[3]); WRITEF(gCCPriv->buf, Cb, v[2]); @@ -913,7 +942,7 @@ void _gamma_Color4iv(const GLint *v) p[2] = INT_TO_FLOAT(v[2]); p[3] = INT_TO_FLOAT(v[3]); - _gamma_Color4f(p[0],p[1],p[2],p[3]); + _gamma_Color4fv(p); } void _gamma_Color4s(GLshort red, GLshort green, GLshort blue, GLshort alpha) @@ -941,7 +970,7 @@ void _gamma_Color4sv(const GLshort *v) p[2] = SHORT_TO_FLOAT(v[2]); p[3] = SHORT_TO_FLOAT(v[3]); - _gamma_Color4f(p[0],p[1],p[2],p[3]); + _gamma_Color4fv(p); } void _gamma_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) @@ -997,7 +1026,7 @@ void _gamma_Color4uiv(const GLuint *v) p[2] = UINT_TO_FLOAT(v[2]); p[3] = UINT_TO_FLOAT(v[3]); - _gamma_Color4f(p[0],p[1],p[2],p[3]); + _gamma_Color4fv(p); } void _gamma_Color4us(GLushort red, GLushort green, GLushort blue, GLushort alpha) @@ -1025,7 +1054,7 @@ void _gamma_Color4usv(const GLushort *v) p[2] = USHORT_TO_FLOAT(v[2]); p[3] = USHORT_TO_FLOAT(v[3]); - _gamma_Color4f(p[0],p[1],p[2],p[3]); + _gamma_Color4fv(p); } void _gamma_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) @@ -1037,8 +1066,7 @@ void _gamma_ColorMaterial(GLenum face, GLenum mode) { DEBUG_GLCMDS(("ColorMaterial: %04x %04x\n", (int)face, (int)mode)); - gCCPriv->MaterialMode &= ~MaterialModeEnable; - gCCPriv->ColorMaterialMode = ColorMaterialModeDisable; + gCCPriv->ColorMaterialMode &= ~ColorMaterialModeMask; switch (face) { case GL_FRONT: @@ -1070,15 +1098,56 @@ void _gamma_ColorMaterial(GLenum face, GLenum mode) break; } - CHECK_DMA_BUFFER(gCC, gCCPriv, 2); + CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITE(gCCPriv->buf, ColorMaterialMode, gCCPriv->ColorMaterialMode); - WRITE(gCCPriv->buf, MaterialMode, gCCPriv->MaterialMode); } void _gamma_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { DEBUG_GLCMDS(("ColorPointer: %d %04x %d\n", (int)size, (int)type, (int)stride)); + + if (size<3 || size>4) { + gamma_error( GL_INVALID_VALUE, "glColorPointer(size)" ); + return; + } + if (stride<0) { + gamma_error( GL_INVALID_VALUE, "glColorPointer(stride)" ); + return; + } + switch (type) { + case GL_BYTE: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLbyte); + break; + case GL_UNSIGNED_BYTE: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLubyte); + break; + case GL_SHORT: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLshort); + break; + case GL_UNSIGNED_SHORT: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLushort); + break; + case GL_INT: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLint); + break; + case GL_UNSIGNED_INT: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLuint); + break; + case GL_FLOAT: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLfloat); + break; + case GL_DOUBLE: + gCCPriv->Array.ColorStrideB = stride ? stride : size*sizeof(GLdouble); + break; + default: + gamma_error( GL_INVALID_ENUM, "glColorPointer(type)" ); + return; + } + gCCPriv->Array.ColorSize = size; + gCCPriv->Array.ColorType = type; + gCCPriv->Array.ColorStride = stride; + gCCPriv->Array.ColorPtr = (void *) pointer; } void _gamma_CopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) @@ -1140,10 +1209,12 @@ void _gamma_CullFace(GLenum mode) WRITE(gCCPriv->buf, GeometryMode, gCCPriv->GeometryMode); } +#if 0 /* Now in dlist.c */ void _gamma_DeleteLists(GLuint list, GLsizei range) { DEBUG_GLCMDS(("DeleteLists: %d %d\n", (unsigned int)list, (int)range)); } +#endif void _gamma_DeleteTextures(GLsizei n, const GLuint *textures) { @@ -1262,7 +1333,7 @@ void _gamma_Disable(GLenum cap) gCCPriv->Window &= ~W_DepthFCP; /* Turn depth mode off */ - CHECK_DMA_BUFFER(gCC, gCCPriv, 4); + CHECK_DMA_BUFFER(gCC, gCCPriv, 3); WRITE(gCCPriv->buf, DepthMode, gCCPriv->DepthMode); WRITE(gCCPriv->buf, DeltaMode, gCCPriv->DeltaMode); WRITE(gCCPriv->buf, LBReadModeAnd, ~LBReadDstEnable); @@ -1314,6 +1385,22 @@ void _gamma_Disable(GLenum cap) CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITE(gCCPriv->buf, Light1Mode, gCCPriv->Light1Mode); break; + case GL_LOGIC_OP: + gCCPriv->LogicalOpMode &= ~LogicalOpModeEnable; + CHECK_DMA_BUFFER(gCC, gCCPriv, 1); + WRITE(gCCPriv->buf, LogicalOpMode, gCCPriv->LogicalOpMode); + break; + case GL_NORMALIZE: + gCCPriv->NormalizeMode &= ~NormalizeModeEnable; + CHECK_DMA_BUFFER(gCC, gCCPriv, 2); + WRITE(gCCPriv->buf, NormalizeMode, gCCPriv->NormalizeMode); + WRITE(gCCPriv->buf, TransformModeOr, 0xc); + break; + case GL_SCISSOR_TEST: + gCCPriv->ScissorMode &= ~UserScissorEnable; + CHECK_DMA_BUFFER(gCC, gCCPriv, 1); + WRITE(gCCPriv->buf, ScissorMode, gCCPriv->ScissorMode); + break; case GL_TEXTURE_2D: gCCPriv->Texture2DEnabled = GL_FALSE; gCCPriv->Begin &= ~B_TextureEnable; @@ -1344,6 +1431,29 @@ void _gamma_Disable(GLenum cap) void _gamma_DisableClientState(GLenum array) { DEBUG_GLCMDS(("DisableClientState: %04x\n", (int)array)); + + switch (array) { + case GL_VERTEX_ARRAY: + gCCPriv->Array.VertexEnabled = GL_FALSE; + break; + case GL_NORMAL_ARRAY: + gCCPriv->Array.NormalEnabled = GL_FALSE; + break; + case GL_COLOR_ARRAY: + gCCPriv->Array.ColorEnabled = GL_FALSE; + break; + case GL_INDEX_ARRAY: + gCCPriv->Array.IndexEnabled = GL_FALSE; + break; + case GL_TEXTURE_COORD_ARRAY: + gCCPriv->Array.TexCoordEnabled = GL_FALSE; + break; + case GL_EDGE_FLAG_ARRAY: + gCCPriv->Array.EdgeFlagEnabled = GL_FALSE; + break; + default: + gamma_error( GL_INVALID_ENUM, "glEnable/DisableClientState" ); + } } void _gamma_DrawArrays(GLenum mode, GLint first, GLsizei count) @@ -1406,7 +1516,7 @@ void _gamma_Enable(GLenum cap) #endif /* Turn depth mode on */ - CHECK_DMA_BUFFER(gCC, gCCPriv, 4); + CHECK_DMA_BUFFER(gCC, gCCPriv, 3); WRITE(gCCPriv->buf, DepthMode, gCCPriv->DepthMode); WRITE(gCCPriv->buf, DeltaMode, gCCPriv->DeltaMode); WRITE(gCCPriv->buf, LBReadModeOr, LBReadDstEnable); @@ -1464,6 +1574,22 @@ void _gamma_Enable(GLenum cap) CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITE(gCCPriv->buf, Light1Mode, gCCPriv->Light1Mode); break; + case GL_LOGIC_OP: + gCCPriv->LogicalOpMode |= LogicalOpModeEnable; + CHECK_DMA_BUFFER(gCC, gCCPriv, 1); + WRITE(gCCPriv->buf, LogicalOpMode, gCCPriv->LogicalOpMode); + break; + case GL_NORMALIZE: + gCCPriv->NormalizeMode |= NormalizeModeEnable; + CHECK_DMA_BUFFER(gCC, gCCPriv, 2); + WRITE(gCCPriv->buf, NormalizeMode, gCCPriv->NormalizeMode); + WRITE(gCCPriv->buf, TransformModeAnd, 0xffffff3f); + break; + case GL_SCISSOR_TEST: + gCCPriv->ScissorMode |= UserScissorEnable; + CHECK_DMA_BUFFER(gCC, gCCPriv, 1); + WRITE(gCCPriv->buf, ScissorMode, gCCPriv->ScissorMode); + break; case GL_TEXTURE_2D: gCCPriv->Texture2DEnabled = GL_TRUE; #ifndef TURN_OFF_TEXTURES @@ -1496,6 +1622,29 @@ void _gamma_Enable(GLenum cap) void _gamma_EnableClientState(GLenum array) { DEBUG_GLCMDS(("EnableClientState: %04x\n", (int)array)); + + switch (array) { + case GL_VERTEX_ARRAY: + gCCPriv->Array.VertexEnabled = GL_TRUE; + break; + case GL_NORMAL_ARRAY: + gCCPriv->Array.NormalEnabled = GL_TRUE; + break; + case GL_COLOR_ARRAY: + gCCPriv->Array.ColorEnabled = GL_TRUE; + break; + case GL_INDEX_ARRAY: + gCCPriv->Array.IndexEnabled = GL_TRUE; + break; + case GL_TEXTURE_COORD_ARRAY: + gCCPriv->Array.TexCoordEnabled = GL_TRUE; + break; + case GL_EDGE_FLAG_ARRAY: + gCCPriv->Array.EdgeFlagEnabled = GL_TRUE; + break; + default: + gamma_error( GL_INVALID_ENUM, "glEnable/DisableClientState" ); + } } void _gamma_End(void) @@ -1519,10 +1668,12 @@ void _gamma_End(void) #endif } +#if 0 /* Now in dlist.c */ void _gamma_EndList(void) { DEBUG_GLCMDS(("EndList\n")); } +#endif void _gamma_EvalCoord1d(GLdouble u) { @@ -1620,8 +1771,10 @@ void _gamma_Fogfv(GLenum pname, const GLfloat *params) switch (pname) { case GL_FOG_COLOR: - color = ((int)params[3]<<24) | ((int)params[2]<<16) | - ((int)params[1]<<8) | ((int)params[0]); + color = (FLOAT_TO_UBYTE(params[3])<<24) | + (FLOAT_TO_UBYTE(params[2])<<16) | + (FLOAT_TO_UBYTE(params[1])<<8) | + (FLOAT_TO_UBYTE(params[0])); CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITE(gCCPriv->buf, FogColor, color); break; @@ -1704,12 +1857,14 @@ void _gamma_Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top gammaLoadHWMatrix(); } +#if 0 /* Now in dlist.c */ GLuint _gamma_GenLists(GLsizei range) { DEBUG_GLCMDS(("GenLists: %d\n", (int)range)); return GL_TRUE; } +#endif void _gamma_GenTextures(GLsizei n, GLuint *textures) { @@ -1718,7 +1873,36 @@ void _gamma_GenTextures(GLsizei n, GLuint *textures) void _gamma_GetBooleanv(GLenum val, GLboolean *b) { + int loop; + DEBUG_GLCMDS(("GetBooleanv: %04x\n", (int)val)); + + switch (val) { + case GL_CURRENT_COLOR: + b[0] = FLOAT_TO_BOOL(gCCPriv->Current.Color[0]); + b[1] = FLOAT_TO_BOOL(gCCPriv->Current.Color[1]); + b[2] = FLOAT_TO_BOOL(gCCPriv->Current.Color[2]); + b[3] = FLOAT_TO_BOOL(gCCPriv->Current.Color[3]); + break; + case GL_CURRENT_NORMAL: + b[0] = FLOAT_TO_BOOL(gCCPriv->Current.Normal[0]); + b[1] = FLOAT_TO_BOOL(gCCPriv->Current.Normal[1]); + b[2] = FLOAT_TO_BOOL(gCCPriv->Current.Normal[2]); + break; + case GL_MAX_TEXTURE_SIZE: + *b = FLOAT_TO_BOOL(GAMMA_MAX_TEXTURE_SIZE); + break; + case GL_MODELVIEW_MATRIX: + for (loop = 0; loop < 16; loop++) + b[loop] = FLOAT_TO_BOOL(gCCPriv->ModelView[loop]); + break; + case GL_CURRENT_TEXTURE_COORDS: + b[0] = FLOAT_TO_BOOL(gCCPriv->Current.TexCoord[0]); + b[1] = FLOAT_TO_BOOL(gCCPriv->Current.TexCoord[1]); + b[2] = FLOAT_TO_BOOL(gCCPriv->Current.TexCoord[2]); + b[3] = FLOAT_TO_BOOL(gCCPriv->Current.TexCoord[3]); + break; + } } void _gamma_GetClipPlane(GLenum plane, GLdouble *equation) @@ -1729,25 +1913,75 @@ void _gamma_GetClipPlane(GLenum plane, GLdouble *equation) void _gamma_GetDoublev(GLenum val, GLdouble *d) { + int loop; + DEBUG_GLCMDS(("GetDoublev: %04x\n", (int)val)); + + switch (val) { + case GL_CURRENT_COLOR: + d[0] = (GLdouble)gCCPriv->Current.Color[0]; + d[1] = (GLdouble)gCCPriv->Current.Color[1]; + d[2] = (GLdouble)gCCPriv->Current.Color[2]; + d[3] = (GLdouble)gCCPriv->Current.Color[3]; + break; + case GL_CURRENT_NORMAL: + d[0] = (GLdouble)gCCPriv->Current.Normal[0]; + d[1] = (GLdouble)gCCPriv->Current.Normal[1]; + d[2] = (GLdouble)gCCPriv->Current.Normal[2]; + break; + case GL_MAX_TEXTURE_SIZE: + *d = (GLdouble)INT_TO_FLOAT(GAMMA_MAX_TEXTURE_SIZE); + break; + case GL_MODELVIEW_MATRIX: + for (loop = 0; loop < 16; loop++) + d[loop] = (GLdouble)gCCPriv->ModelView[loop]; + break; + case GL_CURRENT_TEXTURE_COORDS: + d[0] = (GLdouble)gCCPriv->Current.TexCoord[0]; + d[1] = (GLdouble)gCCPriv->Current.TexCoord[1]; + d[2] = (GLdouble)gCCPriv->Current.TexCoord[2]; + d[3] = (GLdouble)gCCPriv->Current.TexCoord[3]; + break; + } } GLenum _gamma_GetError(void) { DEBUG_GLCMDS(("GetError\n")); - return 0; + + return gCCPriv->ErrorValue; } void _gamma_GetFloatv(GLenum val, GLfloat *f) { - int i; + int loop; DEBUG_GLCMDS(("GetFloatv: %04x\n", (int)val)); switch (val) { + case GL_CURRENT_COLOR: + f[0] = gCCPriv->Current.Color[0]; + f[1] = gCCPriv->Current.Color[1]; + f[2] = gCCPriv->Current.Color[2]; + f[3] = gCCPriv->Current.Color[3]; + break; + case GL_CURRENT_NORMAL: + f[0] = gCCPriv->Current.Normal[0]; + f[1] = gCCPriv->Current.Normal[1]; + f[2] = gCCPriv->Current.Normal[2]; + break; + case GL_MAX_TEXTURE_SIZE: + *f = INT_TO_FLOAT(GAMMA_MAX_TEXTURE_SIZE); + break; case GL_MODELVIEW_MATRIX: - for (i = 0; i < 16; i++) - f[i] = gCCPriv->ModelView[i]; + for (loop = 0; loop < 16; loop++) + f[loop] = gCCPriv->ModelView[loop]; + break; + case GL_CURRENT_TEXTURE_COORDS: + f[0] = gCCPriv->Current.TexCoord[0]; + f[1] = gCCPriv->Current.TexCoord[1]; + f[2] = gCCPriv->Current.TexCoord[2]; + f[3] = gCCPriv->Current.TexCoord[3]; break; default: break; @@ -1756,11 +1990,34 @@ void _gamma_GetFloatv(GLenum val, GLfloat *f) void _gamma_GetIntegerv(GLenum val, GLint *i) { + int loop; + DEBUG_GLCMDS(("GetIntegerv: %04x\n", (int)val)); switch (val) { + case GL_CURRENT_COLOR: + i[0] = FLOAT_TO_INT(gCCPriv->Current.Color[0]); + i[1] = FLOAT_TO_INT(gCCPriv->Current.Color[1]); + i[2] = FLOAT_TO_INT(gCCPriv->Current.Color[2]); + i[3] = FLOAT_TO_INT(gCCPriv->Current.Color[3]); + break; + case GL_CURRENT_NORMAL: + i[0] = FLOAT_TO_INT(gCCPriv->Current.Normal[0]); + i[1] = FLOAT_TO_INT(gCCPriv->Current.Normal[1]); + i[2] = FLOAT_TO_INT(gCCPriv->Current.Normal[2]); + break; case GL_MAX_TEXTURE_SIZE: - *i = 2048; + *i = GAMMA_MAX_TEXTURE_SIZE; + break; + case GL_MODELVIEW_MATRIX: + for (loop = 0; loop < 16; loop++) + i[loop] = FLOAT_TO_INT(gCCPriv->ModelView[loop]); + break; + case GL_CURRENT_TEXTURE_COORDS: + i[0] = FLOAT_TO_INT(gCCPriv->Current.TexCoord[0]); + i[1] = FLOAT_TO_INT(gCCPriv->Current.TexCoord[1]); + i[2] = FLOAT_TO_INT(gCCPriv->Current.TexCoord[2]); + i[3] = FLOAT_TO_INT(gCCPriv->Current.TexCoord[3]); break; } } @@ -1967,12 +2224,14 @@ GLboolean _gamma_IsEnabled(GLenum cap) return GL_TRUE; } +#if 0 /* Now in dlist.c */ GLboolean _gamma_IsList(GLuint list) { DEBUG_GLCMDS(("IsList: %04x\n", (unsigned int)list)); return GL_TRUE; } +#endif GLboolean _gamma_IsTexture(GLuint texture) { @@ -2001,7 +2260,7 @@ void _gamma_LightModelfv(GLenum pname, const GLfloat *params) WRITEF(gCCPriv->buf, SceneAmbientColorRed, params[0]); break; case GL_LIGHT_MODEL_LOCAL_VIEWER: - if ((int)params[0] != 0) + if (params[0] != 0.0) gCCPriv->LightingMode |= LightingModeLocalViewer; else gCCPriv->LightingMode &= ~LightingModeLocalViewer; @@ -2009,7 +2268,7 @@ void _gamma_LightModelfv(GLenum pname, const GLfloat *params) WRITE(gCCPriv->buf, LightingMode, gCCPriv->LightingMode); break; case GL_LIGHT_MODEL_TWO_SIDE: - if ((int)params[0] != 0) { + if (params[0] == 1.0f) { gCCPriv->LightingMode |= LightingModeTwoSides; gCCPriv->MaterialMode |= MaterialModeTwoSides; } else { @@ -2039,7 +2298,7 @@ void _gamma_Lightf(GLenum light, GLenum pname, GLfloat param) void _gamma_Lightfv(GLenum light, GLenum pname, const GLfloat *params) { - GLfloat l,x,y,z; + GLfloat l,x,y,z,w; DEBUG_GLCMDS(("Lightfv: %04x %04x %f\n", (int)light, (int)pname, *params)); @@ -2069,12 +2328,13 @@ void _gamma_Lightfv(GLenum light, GLenum pname, const GLfloat *params) break; case GL_POSITION: /* Normalize <x,y,z> */ - x = params[0]; y = params[1]; z = params[2]; - l = sqrt(x*x + y*y + z*z); + x = params[0]; y = params[1]; z = params[2]; w = params[3]; + l = sqrt(x*x + y*y + z*z + w*w); + w /= l; x /= l; y /= l; z /= l; - if ((int)params[3] != 0) { + if (params[3] != 0.0) { gCCPriv->Light0Mode |= Light0ModeAttenuation; gCCPriv->Light0Mode |= Light0ModeLocal; } else { @@ -2083,30 +2343,30 @@ void _gamma_Lightfv(GLenum light, GLenum pname, const GLfloat *params) } CHECK_DMA_BUFFER(gCC, gCCPriv, 5); WRITE(gCCPriv->buf, Light0Mode, gCCPriv->Light0Mode); - WRITEF(gCCPriv->buf, Light0PositionW, params[3]); + WRITEF(gCCPriv->buf, Light0PositionW, w); WRITEF(gCCPriv->buf, Light0PositionZ, z); WRITEF(gCCPriv->buf, Light0PositionY, y); WRITEF(gCCPriv->buf, Light0PositionX, x); break; case GL_SPOT_DIRECTION: CHECK_DMA_BUFFER(gCC, gCCPriv, 3); - WRITEF(gCCPriv->buf, Light0SpotlightDirectionZ, params[3]); - WRITEF(gCCPriv->buf, Light0SpotlightDirectionY, params[2]); - WRITEF(gCCPriv->buf, Light0SpotlightDirectionX, params[1]); - /* WRITEF(gCCPriv->buf, Light0SpotlightDirectionW, params[0]); */ + /* WRITEF(gCCPriv->buf, Light0SpotlightDirectionW, params[3]); */ + WRITEF(gCCPriv->buf, Light0SpotlightDirectionZ, params[2]); + WRITEF(gCCPriv->buf, Light0SpotlightDirectionY, params[1]); + WRITEF(gCCPriv->buf, Light0SpotlightDirectionX, params[0]); break; case GL_SPOT_EXPONENT: CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITEF(gCCPriv->buf, Light0SpotlightExponent, params[0]); break; case GL_SPOT_CUTOFF: - if ((int)params[0] != -1) + if (params[0] != 180.0) gCCPriv->Light0Mode |= Light0ModeSpotLight; else gCCPriv->Light0Mode &= ~Light0ModeSpotLight; CHECK_DMA_BUFFER(gCC, gCCPriv, 2); WRITE(gCCPriv->buf, Light0Mode, gCCPriv->Light0Mode); - WRITEF(gCCPriv->buf, Light0CosSpotlightCutoffAngle, params[0]); + WRITEF(gCCPriv->buf, Light0CosSpotlightCutoffAngle, cos(params[0]*DEG2RAD)); break; case GL_CONSTANT_ATTENUATION: CHECK_DMA_BUFFER(gCC, gCCPriv, 1); @@ -2152,7 +2412,7 @@ void _gamma_Lightfv(GLenum light, GLenum pname, const GLfloat *params) x /= l; y /= l; z /= l; - if ((int)params[3] != 0) { + if (params[3] != 0.0) { gCCPriv->Light1Mode |= Light1ModeAttenuation; gCCPriv->Light1Mode |= Light1ModeLocal; } else { @@ -2168,23 +2428,23 @@ void _gamma_Lightfv(GLenum light, GLenum pname, const GLfloat *params) break; case GL_SPOT_DIRECTION: CHECK_DMA_BUFFER(gCC, gCCPriv, 3); - WRITEF(gCCPriv->buf, Light1SpotlightDirectionZ, params[3]); - WRITEF(gCCPriv->buf, Light1SpotlightDirectionY, params[2]); - WRITEF(gCCPriv->buf, Light1SpotlightDirectionX, params[1]); - /* WRITEF(gCCPriv->buf, Light1SpotlightDirectionW, params[0]); */ + /* WRITEF(gCCPriv->buf, Light1SpotlightDirectionW, params[3]); */ + WRITEF(gCCPriv->buf, Light1SpotlightDirectionZ, params[2]); + WRITEF(gCCPriv->buf, Light1SpotlightDirectionY, params[1]); + WRITEF(gCCPriv->buf, Light1SpotlightDirectionX, params[0]); break; case GL_SPOT_EXPONENT: CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITEF(gCCPriv->buf, Light1SpotlightExponent, params[0]); break; case GL_SPOT_CUTOFF: - if ((int)params[0] != -1) + if (params[0] != 180.0) gCCPriv->Light1Mode |= Light1ModeSpotLight; else gCCPriv->Light1Mode &= ~Light1ModeSpotLight; CHECK_DMA_BUFFER(gCC, gCCPriv, 2); WRITE(gCCPriv->buf, Light1Mode, gCCPriv->Light1Mode); - WRITEF(gCCPriv->buf, Light1CosSpotlightCutoffAngle, params[0]); + WRITEF(gCCPriv->buf, Light1CosSpotlightCutoffAngle, cos(params[0]*DEG2RAD)); break; case GL_CONSTANT_ATTENUATION: CHECK_DMA_BUFFER(gCC, gCCPriv, 1); @@ -2220,10 +2480,12 @@ void _gamma_LineWidth(GLfloat width) DEBUG_GLCMDS(("LineWidth: %f\n", width)); } +#if 0 /* Now in dlist.c */ void _gamma_ListBase(GLuint base) { DEBUG_GLCMDS(("ListBase: %d\n", (unsigned int)base)); } +#endif void _gamma_LoadIdentity(void) { @@ -2261,6 +2523,13 @@ void _gamma_LoadName(GLuint name) void _gamma_LogicOp(GLenum opcode) { DEBUG_GLCMDS(("LogicOp: %04x\n", (int)opcode)); + + gCCPriv->LogicalOpMode &= ~LogicalOpModeMask; + + gCCPriv->LogicalOpMode |= (opcode & 0x0f) << 1; + + CHECK_DMA_BUFFER(gCC, gCCPriv, 1); + WRITE(gCCPriv->buf, LogicalOpMode, gCCPriv->LogicalOpMode); } void _gamma_Map1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *pnts) @@ -2318,6 +2587,8 @@ void _gamma_MapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GL void _gamma_Materialf(GLenum face, GLenum pname, GLfloat param) { DEBUG_GLCMDS(("Materialf: %04x %04x %f\n", (int)face, (int)pname, param)); + + _gamma_Materialfv(face, pname, ¶m); } void _gamma_Materialfv(GLenum face, GLenum pname, const GLfloat *params) @@ -2453,7 +2724,6 @@ void _gamma_MatrixMode(GLenum mode) /* ERROR!!! */ break; } - } void _gamma_MultMatrixd(const GLdouble *m) @@ -2476,15 +2746,15 @@ void _gamma_MultMatrixf(const GLfloat *m) gammaLoadHWMatrix(); } +#if 0 /* Now in dlist.c */ void _gamma_NewList(GLuint list, GLenum mode) { DEBUG_GLCMDS(("NewList: %d %04x\n", (unsigned int)list, (int)mode)); } +#endif void _gamma_Normal3b(GLbyte nx, GLbyte ny, GLbyte nz) { - GLfloat x,y,z; - DEBUG_GLCMDS(("Normal3b: %d %d %d\n", nx, ny, nz)); _gamma_Normal3f((GLfloat)nx,(GLfloat)ny,(GLfloat)nz); @@ -2492,8 +2762,6 @@ void _gamma_Normal3b(GLbyte nx, GLbyte ny, GLbyte nz) void _gamma_Normal3bv(const GLbyte *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Normal3bv: %d %d %d\n", v[0], v[1], v[2])); _gamma_Normal3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); @@ -2517,6 +2785,10 @@ void _gamma_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz) { DEBUG_GLCMDS(("Normal3f: %f %f %f\n", nx, ny, nz)); + gCCPriv->Current.Normal[0] = nx; + gCCPriv->Current.Normal[1] = ny; + gCCPriv->Current.Normal[2] = nz; + CHECK_DMA_BUFFER(gCC, gCCPriv, 3); WRITEF(gCCPriv->buf, Nz, nz); WRITEF(gCCPriv->buf, Ny, ny); @@ -2532,8 +2804,6 @@ void _gamma_Normal3fv(const GLfloat *v) void _gamma_Normal3i(GLint nx, GLint ny, GLint nz) { - GLfloat x,y,z; - DEBUG_GLCMDS(("Normal3i: %d %d %d\n", (int)nx, (int)ny, (int)nz)); _gamma_Normal3f((GLfloat)nx,(GLfloat)ny,(GLfloat)nz); @@ -2541,8 +2811,6 @@ void _gamma_Normal3i(GLint nx, GLint ny, GLint nz) void _gamma_Normal3iv(const GLint *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Normal3iv: %d %d %d\n", (int)v[0], (int)v[1], (int)v[2])); _gamma_Normal3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); @@ -2550,8 +2818,6 @@ void _gamma_Normal3iv(const GLint *v) void _gamma_Normal3s(GLshort nx, GLshort ny, GLshort nz) { - GLfloat x,y,z; - DEBUG_GLCMDS(("Normal3s: %d %d %d\n", nx, ny, nz)); _gamma_Normal3f((GLfloat)nx,(GLfloat)ny,(GLfloat)nz); @@ -2559,8 +2825,6 @@ void _gamma_Normal3s(GLshort nx, GLshort ny, GLshort nz) void _gamma_Normal3sv(const GLshort *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Normal3sv: %d %d %d\n", v[0], v[1], v[2])); _gamma_Normal3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); @@ -2569,6 +2833,34 @@ void _gamma_Normal3sv(const GLshort *v) void _gamma_NormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) { DEBUG_GLCMDS(("NormalPointer: %04x %d\n", (int)type, (int)stride)); + + if (stride<0) { + gamma_error( GL_INVALID_VALUE, "glNormalPointer(stride)" ); + return; + } + switch (type) { + case GL_BYTE: + gCCPriv->Array.NormalStrideB = stride ? stride : 3*sizeof(GLbyte); + break; + case GL_SHORT: + gCCPriv->Array.NormalStrideB = stride ? stride : 3*sizeof(GLshort); + break; + case GL_INT: + gCCPriv->Array.NormalStrideB = stride ? stride : 3*sizeof(GLint); + break; + case GL_FLOAT: + gCCPriv->Array.NormalStrideB = stride ? stride : 3*sizeof(GLfloat); + break; + case GL_DOUBLE: + gCCPriv->Array.NormalStrideB = stride ? stride : 3*sizeof(GLdouble); + break; + default: + gamma_error( GL_INVALID_ENUM, "glNormalPointer(type)" ); + return; + } + gCCPriv->Array.NormalType = type; + gCCPriv->Array.NormalStride = stride; + gCCPriv->Array.NormalPtr = (void *) pointer; } void _gamma_Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) @@ -2844,22 +3136,38 @@ void _gamma_PushName(GLuint name) void _gamma_RasterPos2d(GLdouble x, GLdouble y) { + DEBUG_GLCMDS(("RasterPos2d: %f %f\n", x, y)); + + _gamma_RasterPos2f((GLfloat)x,(GLfloat)y); } void _gamma_RasterPos2dv(const GLdouble *v) { + _gamma_RasterPos2f((GLfloat)v[0],(GLfloat)v[1]); } void _gamma_RasterPos2f(GLfloat x, GLfloat y) { + DEBUG_GLCMDS(("RasterPos2f: %f %f\n", x, y)); + + gCCPriv->Current.RasterPos[0] = x; + gCCPriv->Current.RasterPos[1] = y; + gCCPriv->Current.RasterPos[2] = 0.0f; + gCCPriv->Current.RasterPos[3] = 1.0f; + + CHECK_DMA_BUFFER(gCC, gCCPriv, 2); + WRITEF(gCCPriv->buf, RPy, y); + WRITEF(gCCPriv->buf, RPx2, x); } void _gamma_RasterPos2fv(const GLfloat *v) { + _gamma_RasterPos2f(v[0],v[1]); } void _gamma_RasterPos2i(GLint x, GLint y) { + _gamma_RasterPos2f((GLfloat)x,(GLfloat)y); } void _gamma_RasterPos2iv(const GLint *v) @@ -3118,8 +3426,21 @@ void _gamma_Scalef(GLfloat x, GLfloat y, GLfloat z) void _gamma_Scissor(GLint x, GLint y, GLsizei width, GLsizei height) { + GLint x1, y1, x2, y2; + DEBUG_GLCMDS(("Scissor: %d %d %d %d\n", (int)x, (int)y, (int)width, (int)height)); + + x1 = gCC->driDrawablePriv->x + x; + y1 = gCC->driScreenPriv->fbHeight - + (gCC->driDrawablePriv->y + + gCC->driDrawablePriv->h) + y; + x2 = x1 + width; + y2 = y1 + height; + + CHECK_DMA_BUFFER(gCC, gCCPriv, 2); + WRITE(gCCPriv->buf, ScissorMinXY, (y1&0xffff)<<16 | (x1&0xffff)); + WRITE(gCCPriv->buf, ScissorMaxXY, (y2&0xffff)<<16 | (x2&0xffff)); } void _gamma_SelectBuffer(GLsizei numnames, GLuint *buffer) @@ -3188,6 +3509,11 @@ void _gamma_TexCoord1f(GLfloat s) { DEBUG_GLCMDS(("TexCoord1f: %f\n", s)); + gCCPriv->Current.TexCoord[0] = s; + gCCPriv->Current.TexCoord[1] = 0.0f; + gCCPriv->Current.TexCoord[2] = 0.0f; + gCCPriv->Current.TexCoord[3] = 1.0f; + WRITEF(gCCPriv->buf, Ts1, s); } @@ -3195,6 +3521,11 @@ void _gamma_TexCoord1fv(const GLfloat *v) { DEBUG_GLCMDS(("TexCoord1fv: %f\n", *v)); + gCCPriv->Current.TexCoord[0] = v[0]; + gCCPriv->Current.TexCoord[1] = 0.0f; + gCCPriv->Current.TexCoord[2] = 0.0f; + gCCPriv->Current.TexCoord[3] = 1.0f; + WRITEF(gCCPriv->buf, Ts1, v[0]); } @@ -3260,6 +3591,11 @@ void _gamma_TexCoord2f(GLfloat s, GLfloat t) { DEBUG_GLCMDS(("TexCoord2f: %f %f\n", s, t)); + gCCPriv->Current.TexCoord[0] = s; + gCCPriv->Current.TexCoord[1] = t; + gCCPriv->Current.TexCoord[2] = 0.0f; + gCCPriv->Current.TexCoord[3] = 1.0f; + CHECK_DMA_BUFFER(gCC, gCCPriv, 2); WRITEF(gCCPriv->buf, Tt2, t); WRITEF(gCCPriv->buf, Ts2, s); @@ -3269,6 +3605,11 @@ void _gamma_TexCoord2fv(const GLfloat *v) { DEBUG_GLCMDS(("TexCoord2fv: %f %f\n", v[0], v[1])); + gCCPriv->Current.TexCoord[0] = v[0]; + gCCPriv->Current.TexCoord[1] = v[1]; + gCCPriv->Current.TexCoord[2] = 0.0f; + gCCPriv->Current.TexCoord[3] = 1.0f; + CHECK_DMA_BUFFER(gCC, gCCPriv, 2); WRITEF(gCCPriv->buf, Tt2, v[1]); WRITEF(gCCPriv->buf, Ts2, v[0]); @@ -3429,6 +3770,11 @@ void _gamma_TexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q) { DEBUG_GLCMDS(("TexCoord4f: %f %f %f %f\n", s, t, r, q)); + gCCPriv->Current.TexCoord[0] = s; + gCCPriv->Current.TexCoord[1] = t; + gCCPriv->Current.TexCoord[2] = t; + gCCPriv->Current.TexCoord[3] = q; + CHECK_DMA_BUFFER(gCC, gCCPriv, 4); WRITEF(gCCPriv->buf, Tq4, q); WRITEF(gCCPriv->buf, Tr4, r); @@ -3440,6 +3786,11 @@ void _gamma_TexCoord4fv(const GLfloat *v) { DEBUG_GLCMDS(("TexCoord4fv: %f %f %f %f\n", v[0], v[1], v[2], v[3])); + gCCPriv->Current.TexCoord[0] = v[0]; + gCCPriv->Current.TexCoord[1] = v[1]; + gCCPriv->Current.TexCoord[2] = v[2]; + gCCPriv->Current.TexCoord[3] = v[3]; + CHECK_DMA_BUFFER(gCC, gCCPriv, 4); WRITEF(gCCPriv->buf, Tq4, v[3]); WRITEF(gCCPriv->buf, Tr4, v[2]); @@ -3508,6 +3859,36 @@ void _gamma_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoi { DEBUG_GLCMDS(("TexCoordPointer: %d %04x %d\n", (int)size, (int)type, (int)stride)); + + if (size<1 || size>4) { + gamma_error( GL_INVALID_VALUE, "glTexCoordPointer(size)" ); + return; + } + if (stride<0) { + gamma_error( GL_INVALID_VALUE, "glTexCoordPointer(stride)" ); + return; + } + switch (type) { + case GL_SHORT: + gCCPriv->Array.TexCoordStrideB = stride ? stride : size*sizeof(GLshort); + break; + case GL_INT: + gCCPriv->Array.TexCoordStrideB = stride ? stride : size*sizeof(GLint); + break; + case GL_FLOAT: + gCCPriv->Array.TexCoordStrideB = stride ? stride : size*sizeof(GLfloat); + break; + case GL_DOUBLE: + gCCPriv->Array.TexCoordStrideB = stride ? stride : size*sizeof(GLdouble); + break; + default: + gamma_error( GL_INVALID_ENUM, "glTexCoordPointer(type)" ); + return; + } + gCCPriv->Array.TexCoordSize = size; + gCCPriv->Array.TexCoordType = type; + gCCPriv->Array.TexCoordStride = stride; + gCCPriv->Array.TexCoordPtr = (void *) pointer; } void _gamma_TexEnvf(GLenum target, GLenum pname, GLfloat param) @@ -4158,8 +4539,6 @@ void _gamma_Vertex2fv(const GLfloat *v) void _gamma_Vertex2i(GLint x, GLint y) { - GLfloat a,b; - DEBUG_GLCMDS(("Vertex2i: %d %d\n", (int)x, (int)y)); _gamma_Vertex2f((GLfloat)x,(GLfloat)y); @@ -4167,8 +4546,6 @@ void _gamma_Vertex2i(GLint x, GLint y) void _gamma_Vertex2iv(const GLint *v) { - GLfloat p[2]; - DEBUG_GLCMDS(("Vertex2iv: %d %d\n", (int)v[0], (int)v[1])); _gamma_Vertex2f((GLfloat)v[0],(GLfloat)v[1]); @@ -4176,8 +4553,6 @@ void _gamma_Vertex2iv(const GLint *v) void _gamma_Vertex2s(GLshort x, GLshort y) { - GLfloat a,b; - DEBUG_GLCMDS(("Vertex2s: %d %d\n", x, y)); _gamma_Vertex2f((GLfloat)x,(GLfloat)y); @@ -4185,8 +4560,6 @@ void _gamma_Vertex2s(GLshort x, GLshort y) void _gamma_Vertex2sv(const GLshort *v) { - GLfloat p[2]; - DEBUG_GLCMDS(("Vertex2sv: %d %d\n", v[0], v[1])); _gamma_Vertex2f((GLfloat)v[0],(GLfloat)v[1]); @@ -4225,8 +4598,6 @@ void _gamma_Vertex3fv(const GLfloat *v) void _gamma_Vertex3i(GLint x, GLint y, GLint z) { - GLfloat a,b,c; - DEBUG_GLCMDS(("Vertex3i: %d %d %d\n", (int)x, (int)y, (int)z)); _gamma_Vertex3f((GLfloat)x,(GLfloat)y,(GLfloat)z); @@ -4234,8 +4605,6 @@ void _gamma_Vertex3i(GLint x, GLint y, GLint z) void _gamma_Vertex3iv(const GLint *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Vertex3iv: %d %d %d\n", (int)v[0], (int)v[1], (int)v[2])); _gamma_Vertex3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); @@ -4243,8 +4612,6 @@ void _gamma_Vertex3iv(const GLint *v) void _gamma_Vertex3s(GLshort x, GLshort y, GLshort z) { - GLfloat a,b,c; - DEBUG_GLCMDS(("Vertex3s: %d %d %d\n", x, y, z)); _gamma_Vertex3f((GLfloat)x,(GLfloat)y,(GLfloat)z); @@ -4252,8 +4619,6 @@ void _gamma_Vertex3s(GLshort x, GLshort y, GLshort z) void _gamma_Vertex3sv(const GLshort *v) { - GLfloat p[3]; - DEBUG_GLCMDS(("Vertex3sv: %d %d %d\n", v[0], v[1], v[2])); _gamma_Vertex3f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2]); @@ -4293,8 +4658,6 @@ void _gamma_Vertex4fv(const GLfloat *v) void _gamma_Vertex4i(GLint x, GLint y, GLint z, GLint w) { - GLfloat a,b,c,d; - DEBUG_GLCMDS(("Vertex4i: %d %d %d %d\n", (int)x, (int)y, (int)z, (int)w)); _gamma_Vertex4f((GLfloat)x,(GLfloat)y,(GLfloat)z,(GLfloat)w); @@ -4302,8 +4665,6 @@ void _gamma_Vertex4i(GLint x, GLint y, GLint z, GLint w) void _gamma_Vertex4iv(const GLint *v) { - GLfloat p[4]; - DEBUG_GLCMDS(("Vertex4iv: %d %d %d %d\n", (int)v[0], (int)v[1], (int)v[2], (int)v[3])); @@ -4312,8 +4673,6 @@ void _gamma_Vertex4iv(const GLint *v) void _gamma_Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w) { - GLfloat a,b,c,d; - DEBUG_GLCMDS(("Vertex4s: %d %d %d %d\n", x, y, z, w)); _gamma_Vertex4f((GLfloat)x,(GLfloat)y,(GLfloat)z,(GLfloat)w); @@ -4321,8 +4680,6 @@ void _gamma_Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w) void _gamma_Vertex4sv(const GLshort *v) { - GLfloat p[4]; - DEBUG_GLCMDS(("Vertex4sv: %d %d %d %d\n", v[0], v[1], v[2], v[3])); _gamma_Vertex4f((GLfloat)v[0],(GLfloat)v[1],(GLfloat)v[2],(GLfloat)v[3]); @@ -4332,6 +4689,36 @@ void _gamma_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid { DEBUG_GLCMDS(("VertexPointer: %d %04x %d\n", (int)size, (int)type, (int)stride)); + + if (size<2 || size>4) { + gamma_error( GL_INVALID_VALUE, "glVertexPointer(size)" ); + return; + } + if (stride<0) { + gamma_error( GL_INVALID_VALUE, "glVertexPointer(stride)" ); + return; + } + switch (type) { + case GL_SHORT: + gCCPriv->Array.VertexStrideB = stride ? stride : size*sizeof(GLshort); + break; + case GL_INT: + gCCPriv->Array.VertexStrideB = stride ? stride : size*sizeof(GLint); + break; + case GL_FLOAT: + gCCPriv->Array.VertexStrideB = stride ? stride : size*sizeof(GLfloat); + break; + case GL_DOUBLE: + gCCPriv->Array.VertexStrideB = stride ? stride : size*sizeof(GLdouble); + break; + default: + gamma_error( GL_INVALID_ENUM, "glVertexPointer(type)" ); + return; + } + gCCPriv->Array.VertexSize = size; + gCCPriv->Array.VertexType = type; + gCCPriv->Array.VertexStride = stride; + gCCPriv->Array.VertexPtr = (void *) pointer; } void _gamma_Viewport(GLint x, GLint y, GLsizei width, GLsizei height) @@ -4357,10 +4744,10 @@ void _gamma_Viewport(GLint x, GLint y, GLsizei width, GLsizei height) oy = y + sy; CHECK_DMA_BUFFER(gCC, gCCPriv, 4); - WRITEF(gCCPriv->buf, ViewPortScaleX, sx); - WRITEF(gCCPriv->buf, ViewPortScaleY, sy); WRITEF(gCCPriv->buf, ViewPortOffsetX, ox); WRITEF(gCCPriv->buf, ViewPortOffsetY, oy); + WRITEF(gCCPriv->buf, ViewPortScaleX, sx); + WRITEF(gCCPriv->buf, ViewPortScaleY, sy); #if 1 /* Err - this shouldn't be needed, but something isn't flushing */ FLUSH_DMA_BUFFER(gCC,gCCPriv); #endif @@ -4395,7 +4782,7 @@ init_no_op_table(struct _glapi_table *table) void -_gamma_init_dispatch(struct _glapi_table *dispatch) +_gamma_init_exec(struct _glapi_table *dispatch) { init_no_op_table(dispatch); @@ -4710,7 +5097,7 @@ _gamma_init_dispatch(struct _glapi_table *dispatch) /* 1.1 */ dispatch->AreTexturesResident = _gamma_AreTexturesResident; - dispatch->ArrayElement = _gamma_ArrayElement; + dispatch->ArrayElement = gl_save_ArrayElement; /*_gamma_ArrayElement;*/ dispatch->BindTexture = _gamma_BindTexture; dispatch->ColorPointer = _gamma_ColorPointer; dispatch->CopyTexImage1D = _gamma_CopyTexImage1D; @@ -4740,5 +5127,186 @@ _gamma_init_dispatch(struct _glapi_table *dispatch) dispatch->VertexPointer = _gamma_VertexPointer; } - +void +_gamma_init_save(struct _glapi_table *table) +{ + init_no_op_table(table); + + table->Accum = gl_save_Accum; + table->AlphaFunc = gl_save_AlphaFunc; + table->AreTexturesResident = _gamma_AreTexturesResident; /* NOT SAVED */ + table->ArrayElement = gl_save_ArrayElement; + table->Begin = gl_save_Begin; + table->BindTexture = gl_save_BindTexture; + table->Bitmap = gl_save_Bitmap; + table->BlendFunc = gl_save_BlendFunc; + table->CallList = gl_save_CallList; + table->CallLists = gl_save_CallLists; + table->Clear = gl_save_Clear; + table->ClearAccum = gl_save_ClearAccum; + table->ClearColor = gl_save_ClearColor; + table->ClearDepth = gl_save_ClearDepth; + table->ClearIndex = gl_save_ClearIndex; + table->ClearStencil = gl_save_ClearStencil; + table->ClipPlane = gl_save_ClipPlane; + table->Color3f = gl_save_Color3f; + table->Color3fv = gl_save_Color3fv; + table->Color4f = gl_save_Color4f; + table->Color4fv = gl_save_Color4fv; + table->Color4ub = gl_save_Color4ub; + table->Color4ubv = gl_save_Color4ubv; + table->ColorMask = gl_save_ColorMask; + table->ColorMaterial = gl_save_ColorMaterial; + table->ColorPointer = _gamma_ColorPointer; /* NOT SAVED */ + table->CopyPixels = gl_save_CopyPixels; + table->CopyTexImage1D = gl_save_CopyTexImage1D; + table->CopyTexImage2D = gl_save_CopyTexImage2D; + table->CopyTexSubImage1D = gl_save_CopyTexSubImage1D; + table->CopyTexSubImage2D = gl_save_CopyTexSubImage2D; + table->CullFace = gl_save_CullFace; + table->DeleteLists = _gamma_DeleteLists; /* NOT SAVED */ + table->DeleteTextures = _gamma_DeleteTextures; /* NOT SAVED */ + table->DepthFunc = gl_save_DepthFunc; + table->DepthMask = gl_save_DepthMask; + table->DepthRange = gl_save_DepthRange; + table->Disable = gl_save_Disable; + table->DisableClientState = _gamma_DisableClientState; /* NOT SAVED */ + table->DrawArrays = gl_save_DrawArrays; + table->DrawBuffer = gl_save_DrawBuffer; + table->DrawElements = gl_save_DrawElements; + table->DrawPixels = gl_save_DrawPixels; + table->EdgeFlag = gl_save_EdgeFlag; + table->EdgeFlagPointer = _gamma_EdgeFlagPointer; /* NOT SAVED */ + table->Enable = gl_save_Enable; + table->EnableClientState = _gamma_EnableClientState; /* NOT SAVED */ + table->End = gl_save_End; + table->EndList = _gamma_EndList; /* NOT SAVED */ + table->EvalCoord1f = gl_save_EvalCoord1f; + table->EvalCoord2f = gl_save_EvalCoord2f; + table->EvalMesh1 = gl_save_EvalMesh1; + table->EvalMesh2 = gl_save_EvalMesh2; + table->EvalPoint1 = gl_save_EvalPoint1; + table->EvalPoint2 = gl_save_EvalPoint2; + table->FeedbackBuffer = _gamma_FeedbackBuffer; /* NOT SAVED */ + table->Finish = _gamma_Finish; /* NOT SAVED */ + table->Flush = _gamma_Flush; /* NOT SAVED */ + table->Fogfv = gl_save_Fogfv; + table->FrontFace = gl_save_FrontFace; + table->Frustum = gl_save_Frustum; + table->GenLists = _gamma_GenLists; /* NOT SAVED */ + table->GenTextures = _gamma_GenTextures; /* NOT SAVED */ + + /* NONE OF THESE COMMANDS ARE COMPILED INTO DISPLAY LISTS */ + table->GetBooleanv = _gamma_GetBooleanv; + table->GetClipPlane = _gamma_GetClipPlane; + table->GetDoublev = _gamma_GetDoublev; + table->GetError = _gamma_GetError; + table->GetFloatv = _gamma_GetFloatv; + table->GetIntegerv = _gamma_GetIntegerv; + table->GetString = _gamma_GetString; + table->GetLightfv = _gamma_GetLightfv; + table->GetLightiv = _gamma_GetLightiv; + table->GetMapdv = _gamma_GetMapdv; + table->GetMapfv = _gamma_GetMapfv; + table->GetMapiv = _gamma_GetMapiv; + table->GetMaterialfv = _gamma_GetMaterialfv; + table->GetMaterialiv = _gamma_GetMaterialiv; + table->GetPixelMapfv = _gamma_GetPixelMapfv; + table->GetPixelMapuiv = _gamma_GetPixelMapuiv; + table->GetPixelMapusv = _gamma_GetPixelMapusv; + table->GetPointerv = _gamma_GetPointerv; + table->GetPolygonStipple = _gamma_GetPolygonStipple; + table->GetTexEnvfv = _gamma_GetTexEnvfv; + table->GetTexEnviv = _gamma_GetTexEnviv; + table->GetTexGendv = _gamma_GetTexGendv; + table->GetTexGenfv = _gamma_GetTexGenfv; + table->GetTexGeniv = _gamma_GetTexGeniv; + table->GetTexImage = _gamma_GetTexImage; + table->GetTexLevelParameterfv = _gamma_GetTexLevelParameterfv; + table->GetTexLevelParameteriv = _gamma_GetTexLevelParameteriv; + table->GetTexParameterfv = _gamma_GetTexParameterfv; + table->GetTexParameteriv = _gamma_GetTexParameteriv; + + table->Hint = gl_save_Hint; + table->IndexMask = gl_save_IndexMask; + table->Indexf = gl_save_Indexf; + table->Indexi = gl_save_Indexi; + table->IndexPointer = _gamma_IndexPointer; /* NOT SAVED */ + table->InitNames = gl_save_InitNames; + table->InterleavedArrays = _gamma_InterleavedArrays; /* NOT SAVED */ + table->IsEnabled = _gamma_IsEnabled; /* NOT SAVED */ + table->IsTexture = _gamma_IsTexture; /* NOT SAVED */ + table->IsList = _gamma_IsList; /* NOT SAVED */ + table->LightModelfv = gl_save_LightModelfv; + table->Lightfv = gl_save_Lightfv; + table->LineStipple = gl_save_LineStipple; + table->LineWidth = gl_save_LineWidth; + table->ListBase = gl_save_ListBase; + table->LoadIdentity = gl_save_LoadIdentity; + table->LoadMatrixf = gl_save_LoadMatrixf; + table->LoadName = gl_save_LoadName; + table->LogicOp = gl_save_LogicOp; + table->Map1f = gl_save_Map1f; + table->Map2f = gl_save_Map2f; + table->MapGrid1f = gl_save_MapGrid1f; + table->MapGrid2f = gl_save_MapGrid2f; + table->Materialfv = gl_save_Materialfv; + table->MatrixMode = gl_save_MatrixMode; + table->MultMatrixf = gl_save_MultMatrixf; + table->NewList = gl_save_NewList; + table->Normal3f = gl_save_Normal3f; + table->Normal3fv = gl_save_Normal3fv; + table->NormalPointer = _gamma_NormalPointer; /* NOT SAVED */ + table->Ortho = gl_save_Ortho; + table->PassThrough = gl_save_PassThrough; + table->PixelMapfv = gl_save_PixelMapfv; + table->PixelStorei = _gamma_PixelStorei; /* NOT SAVED */ + table->PixelTransferf = gl_save_PixelTransferf; + table->PixelZoom = gl_save_PixelZoom; + table->PointSize = gl_save_PointSize; + table->PolygonMode = gl_save_PolygonMode; + table->PolygonOffset = gl_save_PolygonOffset; + table->PolygonStipple = gl_save_PolygonStipple; + table->PopAttrib = gl_save_PopAttrib; + table->PopClientAttrib = _gamma_PopClientAttrib; /* NOT SAVED */ + table->PopMatrix = gl_save_PopMatrix; + table->PopName = gl_save_PopName; + table->PrioritizeTextures = gl_save_PrioritizeTextures; + table->PushAttrib = gl_save_PushAttrib; + table->PushClientAttrib = _gamma_PushClientAttrib; /* NOT SAVED */ + table->PushMatrix = gl_save_PushMatrix; + table->PushName = gl_save_PushName; + table->RasterPos4f = gl_save_RasterPos4f; + table->ReadBuffer = gl_save_ReadBuffer; + table->ReadPixels = _gamma_ReadPixels; /* NOT SAVED */ + table->Rectf = gl_save_Rectf; + table->RenderMode = _gamma_RenderMode; /* NOT SAVED */ + table->Rotatef = gl_save_Rotatef; + table->Scalef = gl_save_Scalef; + table->Scissor = gl_save_Scissor; + table->SelectBuffer = _gamma_SelectBuffer; /* NOT SAVED */ + table->ShadeModel = gl_save_ShadeModel; + table->StencilFunc = gl_save_StencilFunc; + table->StencilMask = gl_save_StencilMask; + table->StencilOp = gl_save_StencilOp; + table->TexCoord2f = gl_save_TexCoord2f; + table->TexCoord2fv = gl_save_TexCoord2fv; + table->TexCoord3fv = gl_save_TexCoord3fv; + table->TexCoord4f = gl_save_TexCoord4f; + table->TexCoordPointer = _gamma_TexCoordPointer; /* NOT SAVED */ + table->TexEnvfv = gl_save_TexEnvfv; + table->TexGenfv = gl_save_TexGenfv; + table->TexImage1D = gl_save_TexImage1D; + table->TexImage2D = gl_save_TexImage2D; + table->TexSubImage1D = gl_save_TexSubImage1D; + table->TexSubImage2D = gl_save_TexSubImage2D; + table->TexParameterfv = gl_save_TexParameterfv; + table->Translatef = gl_save_Translatef; + table->Vertex2f = gl_save_Vertex2f; + table->Vertex3f = gl_save_Vertex3f; + table->Vertex4f = gl_save_Vertex4f; + table->Vertex3fv = gl_save_Vertex3fv; + table->VertexPointer = _gamma_VertexPointer; /* NOT SAVED */ + table->Viewport = gl_save_Viewport; +} #endif diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.h b/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.h index 37fd75eca..212f91895 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.h +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_gl.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_gl.h,v 1.4 2000/03/02 16:07:36 martin Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_gl.h,v 1.5 2001/02/07 13:26:16 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -38,6 +38,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "GL/gl.h" #include "glapi.h" +extern void gamma_error(GLenum error, const char *s); + extern void _gamma_Accum(GLenum op, GLfloat value); extern void _gamma_AlphaFunc(GLenum func, GLclampf ref); extern GLboolean _gamma_AreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); @@ -376,6 +378,7 @@ extern void _gamma_VertexPointer(GLint size, GLenum type, GLsizei stride, const extern void _gamma_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); -extern void _gamma_init_dispatch(struct _glapi_table *dispatch); +extern void _gamma_init_exec(struct _glapi_table *dispatch); +extern void _gamma_init_save(struct _glapi_table *dispatch); #endif /* _GAMMA_GL_H_ */ diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_init.h b/xc/lib/GL/mesa/src/drv/gamma/gamma_init.h index 6714bbc26..ecf33b959 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/gamma_init.h +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_init.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_init.h,v 1.3 2000/06/17 00:02:56 martin Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_init.h,v 1.4 2001/02/07 13:26:16 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -63,11 +63,69 @@ typedef union { #define GAMMA_STENCIL_BUFFER 0x00000008 #define GAMMA_ACCUM_BUFFER 0x00000010 +#define GAMMA_MAX_TEXTURE_SIZE 2048 + /* These are the minimum requirements and should probably be increased */ #define MAX_MODELVIEW_STACK 16 #define MAX_PROJECTION_STACK 2 #define MAX_TEXTURE_STACK 2 +struct gamma_current_attrib { +/* GLubyte ByteColor[4]; old */ /* Current RGBA color */ + GLuint Index; /* Current color index */ + GLfloat Color[4]; /* Current RGBA color */ + GLfloat Normal[3]; /* Current normal vector */ + GLfloat TexCoord[4]; /* points into MultiTexCoord */ + GLfloat RasterPos[4]; /* Current raster position */ + GLfloat RasterDistance; /* Current raster distance */ + GLfloat RasterColor[4]; /* Current raster color */ + GLuint RasterIndex; /* Current raster index */ + GLfloat *RasterTexCoord; /* Current raster texcoord*/ + GLboolean RasterPosValid; /* Raster po valid flag */ + GLboolean EdgeFlag; /* Current edge flag */ +}; + +struct gamma_array_attrib { + GLint VertexSize; + GLenum VertexType; + GLsizei VertexStride; /* user-specified stride */ + GLsizei VertexStrideB; /* actual stride in bytes */ + void *VertexPtr; + GLboolean VertexEnabled; + + GLenum NormalType; + GLsizei NormalStride; /* user-specified stride */ + GLsizei NormalStrideB; /* actual stride in bytes */ + void *NormalPtr; + GLboolean NormalEnabled; + + GLint ColorSize; + GLenum ColorType; + GLsizei ColorStride; /* user-specified stride */ + GLsizei ColorStrideB; /* actual stride in bytes */ + void *ColorPtr; + GLboolean ColorEnabled; + + GLenum IndexType; + GLsizei IndexStride; /* user-specified stride */ + GLsizei IndexStrideB; /* actual stride in bytes */ + void *IndexPtr; + GLboolean IndexEnabled; + + GLsizei EdgeFlagStride; /* user-specified stride */ + GLsizei EdgeFlagStrideB; /* actual stride in bytes */ + GLboolean *EdgeFlagPtr; + GLboolean EdgeFlagEnabled; + + GLint TexCoordSize; + GLenum TexCoordType; + GLsizei TexCoordStride; /* user-specified stride */ + GLsizei TexCoordStrideB; /* actual stride in bytes */ + void *TexCoordPtr; + GLboolean TexCoordEnabled; + GLint TexCoordInterleaveFactor; +}; + typedef struct { drmContext hHWContext; @@ -91,11 +149,34 @@ typedef struct { int EnabledFlags; int DepthSize; int Begin; + GLenum ErrorValue; + + struct _glapi_table *Exec; + struct _glapi_table *Save; + struct _glapi_table *API; + + struct _mesa_HashTable *DisplayList; + + struct gl_list_attrib List; + struct gl_pixelstore_attrib Unpack; /* Pixel unpacking */ + + struct gamma_array_attrib Array; /* From Mesa v3.0 */ + struct gamma_current_attrib Current; /* From Mesa v3.0 */ + + /* Display lists */ + GLuint CallDepth; /* Current recursion calling depth */ + GLboolean ExecuteFlag; /* Execute GL commands? */ + GLboolean CompileFlag; /* Compile GL commands into display list? */ + Node *CurrentListPtr; /* Head of list being compiled */ + GLuint CurrentListNum; /* Number of the list being compiled */ + Node *CurrentBlock; /* Pointer to current block of nodes */ + GLuint CurrentPos; /* Index into current block of nodes */ float ClearColor[4]; float ClearDepth; int MatrixMode; int DepthMode; + int TransformMode; float zNear, zFar; int LBReadMode; int FBReadMode; @@ -110,9 +191,25 @@ typedef struct { int DeltaMode; int ColorMaterialMode; int MaterialMode; + int NormalizeMode; int LightingMode; int Light0Mode; int Light1Mode; + int Light2Mode; + int Light3Mode; + int Light4Mode; + int Light5Mode; + int Light6Mode; + int Light7Mode; + int Light8Mode; + int Light9Mode; + int Light10Mode; + int Light11Mode; + int Light12Mode; + int Light13Mode; + int Light14Mode; + int Light15Mode; + int LogicalOpMode; int ScissorMode; int Window; /* GID part probably should be in draw priv */ diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_inithw.c b/xc/lib/GL/mesa/src/drv/gamma/gamma_inithw.c index 83cec4bcb..6c87559bf 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/gamma_inithw.c +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_inithw.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_inithw.c,v 1.6 2000/11/27 10:59:37 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_inithw.c,v 1.7 2001/01/31 16:15:37 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -43,7 +43,7 @@ void gammaInitHW(gammaContextPrivate *gcp) __DRIscreenPrivate *driScrnPriv = gcp->gammaScrnPriv->driScrnPriv; GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)driScrnPriv->pDevPriv; - if (gDRIPriv->numMXDevices == 2) { + if (gDRIPriv->numMultiDevices == 2) { /* Set up each MX's ScanLineOwnership for OpenGL */ CHECK_DMA_BUFFER(nullCC, gcp, 4); WRITE(gcp->buf, BroadcastMask, 1); @@ -142,7 +142,7 @@ void gammaInitHW(gammaContextPrivate *gcp) WRITE(gcp->buf, AlphaTestMode, gcp->AlphaTestMode); WRITE(gcp->buf, AlphaBlendMode, gcp->AlphaBlendMode); WRITE(gcp->buf, DitherMode, DitherModeEnable | DM_ColorOrder_RGB); - if (gDRIPriv->numMXDevices == 2) + if (gDRIPriv->numMultiDevices == 2) WRITE(gcp->buf, RasterizerMode, RM_MultiGLINT | RM_BiasCoordNearHalf); else WRITE(gcp->buf, RasterizerMode, RM_BiasCoordNearHalf); diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_regs.h b/xc/lib/GL/mesa/src/drv/gamma/gamma_regs.h index 85c2b925a..613385909 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/gamma_regs.h +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_regs.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_regs.h,v 1.3 2000/06/17 00:02:56 martin Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_regs.h,v 1.4 2001/02/07 13:26:17 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -487,8 +487,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* LightingMode */ #define LightingModeDisable 0x00000000 #define LightingModeEnable 0x00000001 -#define LightingModeTwoSides 0x00000002 +#define LightingModeTwoSides 0x00000004 #define LightingModeLocalViewer 0x00000008 +#define LightingModeSpecularEnable 0x00008000 /* Light0Mode */ #define Light0ModeDisable 0x00000000 @@ -552,6 +553,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define PM_AntialiasQuality_4x4 0x00000000 #define PM_AntialiasQuality_8x8 0x00000002 +/* LogicalOpMode */ +#define LogicalOpModeDisable 0x00000000 +#define LogicalOpModeEnable 0x00000001 +#define LogicalOpModeMask 0x0000001e + /* LineMode */ #define LM_StippleDisable 0x00000000 #define LM_StippleEnable 0x00000001 @@ -577,6 +583,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define XM_XformNormals 0x00000004 #define XM_XformFaceNormals 0x00000008 #define XM_XformTexture 0x00000010 +#define XM_XMask 0x00000013 #define XM_TexGenModeS_None 0x00000000 #define XM_TexGenModeS_ObjLinear 0x00000020 #define XM_TexGenModeS_EyeLinear 0x00000040 diff --git a/xc/lib/GL/mesa/src/drv/gamma/gamma_xmesa.c b/xc/lib/GL/mesa/src/drv/gamma/gamma_xmesa.c index a442ee913..3a1fa9ae7 100644 --- a/xc/lib/GL/mesa/src/drv/gamma/gamma_xmesa.c +++ b/xc/lib/GL/mesa/src/drv/gamma/gamma_xmesa.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_xmesa.c,v 1.8 2000/12/07 20:26:05 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/gamma/gamma_xmesa.c,v 1.11 2001/02/07 13:26:17 alanh Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -40,28 +40,28 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "gamma_gl.h" #include "glapi.h" #include "glint_dri.h" +#include "gamma_dlist.h" #include "context.h" #include "mmath.h" +#include "hash.h" __DRIcontextPrivate *nullCC = NULL; __DRIcontextPrivate *gCC = NULL; gammaContextPrivate *gCCPriv = NULL; -static struct _glapi_table *Dispatch = NULL; - - GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) { gammaScreenPrivate *gsp; +#if 0 /* Check the DRI version */ { int major, minor, patch; if (XF86DRIQueryVersion(sPriv->display, &major, &minor, &patch)) { - if (major != 3 || minor != 0 || patch < 0) { + if (major != 3 || minor != 1 || patch < 0) { char msg[1000]; - sprintf(msg, "gamma DRI driver expected DRI version 3.0.x but got version %d.%d.%d", major, minor, patch); + sprintf(msg, "gamma DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); __driMesaMessage(msg); return GL_FALSE; } @@ -87,6 +87,7 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) __driMesaMessage(msg); return GL_FALSE; } +#endif /* Allocate the private area */ gsp = (gammaScreenPrivate *)Xmalloc(sizeof(gammaScreenPrivate)); @@ -148,17 +149,25 @@ GLboolean XMesaCreateContext( Display *dpy, gammaScreenPrivate *gPriv = (gammaScreenPrivate *)driScrnPriv->private; GLINTDRIPtr gDRIPriv = (GLINTDRIPtr)driScrnPriv->pDevPriv; - if (!Dispatch) { - GLuint size = _glapi_get_dispatch_table_size() * sizeof(GLvoid *); - Dispatch = (struct _glapi_table *) malloc(size); - _gamma_init_dispatch(Dispatch); - } - cPriv = (gammaContextPrivate *)Xmalloc(sizeof(gammaContextPrivate)); if (!cPriv) { return GL_FALSE; } + if (!cPriv->Exec) { + GLuint size = _glapi_get_dispatch_table_size() * sizeof(GLvoid *); + cPriv->Exec = (struct _glapi_table *) malloc(size); + _gamma_init_exec(cPriv->Exec); + } + + cPriv->API = cPriv->Exec; + + if (!cPriv->Save) { + GLuint size = _glapi_get_dispatch_table_size() * sizeof(GLvoid *); + cPriv->Save = (struct _glapi_table *) malloc(size); + _gamma_init_save(cPriv->Save); + } + cPriv->hHWContext = driContextPriv->hHWContext; GET_FIRST_DMA(driScrnPriv->fd, cPriv->hHWContext, 1, &cPriv->bufIndex, &cPriv->bufSize, @@ -170,6 +179,54 @@ GLboolean XMesaCreateContext( Display *dpy, &cPriv->WCbuf, &cPriv->WCbufCount, gPriv); #endif + gamma_init_lists(); + + /* Display List stuff */ + cPriv->DisplayList = _mesa_NewHashTable(); + cPriv->List.ListBase = 0; + cPriv->CallDepth = 0; + cPriv->ExecuteFlag = GL_TRUE; + cPriv->CompileFlag = GL_FALSE; + cPriv->CurrentListPtr = NULL; + cPriv->CurrentBlock = NULL; + cPriv->CurrentListNum = 0; + cPriv->CurrentPos = 0; + + /* Vertex arrays */ + cPriv->Array.VertexSize = 4; + cPriv->Array.VertexType = GL_FLOAT; + cPriv->Array.VertexStride = 0; + cPriv->Array.VertexStrideB = 0; + cPriv->Array.VertexPtr = NULL; + cPriv->Array.VertexEnabled = GL_FALSE; + cPriv->Array.NormalType = GL_FLOAT; + cPriv->Array.NormalStride = 0; + cPriv->Array.NormalStrideB = 0; + cPriv->Array.NormalPtr = NULL; + cPriv->Array.NormalEnabled = GL_FALSE; + cPriv->Array.ColorSize = 4; + cPriv->Array.ColorType = GL_FLOAT; + cPriv->Array.ColorStride = 0; + cPriv->Array.ColorStrideB = 0; + cPriv->Array.ColorPtr = NULL; + cPriv->Array.ColorEnabled = GL_FALSE; + cPriv->Array.IndexType = GL_FLOAT; + cPriv->Array.IndexStride = 0; + cPriv->Array.IndexStrideB = 0; + cPriv->Array.IndexPtr = NULL; + cPriv->Array.IndexEnabled = GL_FALSE; + cPriv->Array.EdgeFlagStride = 0; + cPriv->Array.EdgeFlagStrideB = 0; + cPriv->Array.EdgeFlagPtr = NULL; + cPriv->Array.EdgeFlagEnabled = GL_FALSE; + + cPriv->Unpack.Alignment = 4; + cPriv->Unpack.RowLength = 0; + cPriv->Unpack.SkipPixels = 0; + cPriv->Unpack.SkipRows = 0; + cPriv->Unpack.SwapBytes = GL_FALSE; + cPriv->Unpack.LsbFirst = GL_FALSE; + cPriv->ClearColor[0] = 0.0; cPriv->ClearColor[1] = 0.0; cPriv->ClearColor[2] = 0.0; @@ -208,7 +265,7 @@ GLboolean XMesaCreateContext( Display *dpy, FBWindowOriginBot | gDRIPriv->pprod); - if (gDRIPriv->numMXDevices == 2) { + if (gDRIPriv->numMultiDevices == 2) { cPriv->LBReadMode |= LBScanLineInt2; cPriv->FBReadMode |= FBScanLineInt2; cPriv->FBWindowBase =driScrnPriv->fbWidth*(driScrnPriv->fbHeight/2 - 1); @@ -354,14 +411,32 @@ GLboolean XMesaCreateContext( Display *dpy, cPriv->gammaScrnPriv = gPriv; - cPriv->LightingMode = LightingModeDisable; + cPriv->LightingMode = LightingModeDisable | LightingModeSpecularEnable; cPriv->Light0Mode = LNM_Off; cPriv->Light1Mode = LNM_Off; + cPriv->Light2Mode = LNM_Off; + cPriv->Light3Mode = LNM_Off; + cPriv->Light4Mode = LNM_Off; + cPriv->Light5Mode = LNM_Off; + cPriv->Light6Mode = LNM_Off; + cPriv->Light7Mode = LNM_Off; + cPriv->Light8Mode = LNM_Off; + cPriv->Light9Mode = LNM_Off; + cPriv->Light10Mode = LNM_Off; + cPriv->Light11Mode = LNM_Off; + cPriv->Light12Mode = LNM_Off; + cPriv->Light13Mode = LNM_Off; + cPriv->Light14Mode = LNM_Off; + cPriv->Light15Mode = LNM_Off; + + cPriv->LogicalOpMode = LogicalOpModeDisable; cPriv->MaterialMode = MaterialModeDisable; cPriv->ScissorMode = UserScissorDisable | ScreenScissorDisable; + cPriv->TransformMode = XM_UseModelViewProjMatrix; + driContextPriv->driverPrivate = cPriv; /* Initialize the HW to a known state */ @@ -511,7 +586,7 @@ GLboolean XMesaMakeCurrent(__DRIcontextPrivate *driContextPriv, CHECK_DMA_BUFFER(gCC, gCCPriv, 1); WRITE(gCCPriv->buf, GLINTWindow, gCCPriv->Window); - _glapi_set_dispatch(Dispatch); + _glapi_set_dispatch(gCCPriv->API); _gamma_Viewport(0, 0, driDrawPriv->w, driDrawPriv->h); } else { diff --git a/xc/lib/GL/mesa/src/drv/i810/Imakefile b/xc/lib/GL/mesa/src/drv/i810/Imakefile index 570c1bad9..1ef237343 100644 --- a/xc/lib/GL/mesa/src/drv/i810/Imakefile +++ b/xc/lib/GL/mesa/src/drv/i810/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/i810/Imakefile,v 1.13 2000/12/12 23:24:27 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/i810/Imakefile,v 1.14 2001/02/16 01:26:10 dawes Exp $ #include <Threads.tmpl> @@ -354,7 +354,7 @@ NormalLintTarget($(SRCS)) LIBNAME = i810_dri.so ALL_OBJS = $(OBJS) ALL_DEPS = DONE -SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +SharedDriModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) #ifdef GlxSoProf diff --git a/xc/lib/GL/mesa/src/drv/i810/i810_xmesa.c b/xc/lib/GL/mesa/src/drv/i810/i810_xmesa.c index 43d1d4973..f5aecb98e 100644 --- a/xc/lib/GL/mesa/src/drv/i810/i810_xmesa.c +++ b/xc/lib/GL/mesa/src/drv/i810/i810_xmesa.c @@ -24,7 +24,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/lib/GL/mesa/src/drv/i810/i810_xmesa.c,v 1.9 2000/12/07 20:26:06 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/i810/i810_xmesa.c,v 1.11 2000/12/21 14:06:56 alanh Exp $ */ /* * Authors: @@ -135,9 +135,9 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) { int major, minor, patch; if (XF86DRIQueryVersion(sPriv->display, &major, &minor, &patch)) { - if (major != 3 || minor != 0 || patch < 0) { + if (major != 3 || minor != 1 || patch < 0) { char msg[1000]; - sprintf(msg, "i810 DRI driver expected DRI version 3.0.x but got version %d.%d.%d", major, minor, patch); + sprintf(msg, "i810 DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); __driMesaMessage(msg); return GL_FALSE; } @@ -159,7 +159,7 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) sPriv->drmMinor != 1 || sPriv->drmPatch < 0) { char msg[1000]; - sprintf(msg, "i810 DRI driver expected DRM driver version 1.0.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch); + sprintf(msg, "i810 DRI driver expected DRM driver version 1.1.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch); __driMesaMessage(msg); return GL_FALSE; } diff --git a/xc/lib/GL/mesa/src/drv/i810/i810tex.c b/xc/lib/GL/mesa/src/drv/i810/i810tex.c index 299a2ce86..5c1615128 100644 --- a/xc/lib/GL/mesa/src/drv/i810/i810tex.c +++ b/xc/lib/GL/mesa/src/drv/i810/i810tex.c @@ -194,10 +194,10 @@ static i810TextureObjectPtr i810CreateTexObj(i810ContextPtr imesa, switch( image->Format ) { case GL_RGB: case GL_LUMINANCE: - case GL_ALPHA: t->texelBytes = 2; textureFormat = MI1_FMT_16BPP | MI1_PF_16BPP_RGB565; break; + case GL_ALPHA: case GL_LUMINANCE_ALPHA: case GL_INTENSITY: case GL_RGBA: diff --git a/xc/lib/GL/mesa/src/drv/mga/Imakefile b/xc/lib/GL/mesa/src/drv/mga/Imakefile index 62fecb053..fa7af7f93 100644 --- a/xc/lib/GL/mesa/src/drv/mga/Imakefile +++ b/xc/lib/GL/mesa/src/drv/mga/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/mga/Imakefile,v 1.13 2000/12/12 23:24:28 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/mga/Imakefile,v 1.15 2001/02/16 01:26:11 dawes Exp $ #include <Threads.tmpl> @@ -63,6 +63,7 @@ MESA_INCLUDES = -I. -I.. -I../../include \ mgafastpath.c \ mgaioctl.c \ mgapipeline.c \ + mgapixel.c \ mgaspan.c \ mgastate.c \ mgatex.c \ @@ -78,6 +79,7 @@ MESA_INCLUDES = -I. -I.. -I../../include \ mgafastpath.o \ mgaioctl.o \ mgapipeline.o \ + mgapixel.o \ mgaspan.o \ mgastate.o \ mgatex.o \ @@ -362,7 +364,7 @@ NormalLintTarget($(SRCS)) LIBNAME = mga_dri.so ALL_OBJS = $(OBJS) ALL_DEPS = DONE -SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +SharedDriModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) #ifdef GlxSoProf diff --git a/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c b/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c index 7524a52a1..ddbba0eea 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c +++ b/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c,v 1.8 2000/12/07 20:26:06 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c,v 1.10 2001/01/08 01:07:18 martin Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -53,6 +53,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "mgatris.h" #include "mgapipeline.h" #include "mgabuffers.h" +#include "mgapixel.h" #include "xf86dri.h" #include "mga_xmesa.h" @@ -106,9 +107,9 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) { int major, minor, patch; if (XF86DRIQueryVersion(sPriv->display, &major, &minor, &patch)) { - if (major != 3 || minor != 0 || patch < 0) { + if (major != 3 || minor != 1 || patch < 0) { char msg[1000]; - sprintf(msg, "MGA DRI driver expected DRI version 3.0.x but got version %d.%d.%d", major, minor, patch); + sprintf(msg, "MGA DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); __driMesaMessage(msg); return GL_FALSE; } @@ -127,18 +128,21 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) /* Check that the DRM driver version is compatible */ if (sPriv->drmMajor != 2 || - sPriv->drmMinor != 0 || + sPriv->drmMinor != 1 || sPriv->drmPatch < 0) { char msg[1000]; - sprintf(msg, "MGA DRI driver expected DRM driver version 2.0.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch); + sprintf(msg, "MGA DRI driver expected DRM driver version 2.{0,1}.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch); __driMesaMessage(msg); return GL_FALSE; } + /* Allocate the private area */ mgaScreen = (mgaScreenPrivate *)MALLOC(sizeof(mgaScreenPrivate)); - if (!mgaScreen) + if (!mgaScreen) { + __driMesaMessage("Couldn't malloc screen struct"); return GL_FALSE; + } mgaScreen->sPriv = sPriv; sPriv->private = (void *)mgaScreen; @@ -147,6 +151,7 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) serverInfo->chipset != MGA_CARD_TYPE_G400) { XFree(mgaScreen); sPriv->private = NULL; + __driMesaMessage("Unrecognized chipset"); return GL_FALSE; } @@ -174,6 +179,7 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) { Xfree(mgaScreen); sPriv->private = NULL; + __driMesaMessage("Couldn't map agp region"); return GL_FALSE; } @@ -206,6 +212,7 @@ GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) /*drmUnmap(mgaScreen->agp_tex.map, mgaScreen->agp_tex.size);*/ XFree(mgaScreen); sPriv->private = NULL; + __driMesaMessage("Couldn't map dma buffers"); return GL_FALSE; } @@ -326,14 +333,6 @@ GLboolean XMesaCreateContext( Display *dpy, GLvisual *mesaVis, mmesa->hw_stencil = mesaVis->StencilBits && mesaVis->DepthBits == 24; -/* fprintf(stderr, */ -/* "mesaVis->DepthBits: %d " */ -/* "mmesa->glCtx->Visual->DepthBits: %d " */ -/* "mmesa->glCtx->Visual->DepthMax: %x\n", */ -/* mesaVis->DepthBits, */ -/* ctx->Visual->DepthBits, */ -/* ctx->Visual->DepthMax); */ - switch (mesaVis->DepthBits) { case 16: mmesa->depth_scale = 1.0/(GLdouble)0xffff; @@ -377,6 +376,7 @@ GLboolean XMesaCreateContext( Display *dpy, GLvisual *mesaVis, mgaDDInitSpanFuncs( ctx ); mgaDDInitDriverFuncs( ctx ); mgaDDInitIoctlFuncs( ctx ); + mgaDDInitPixelFuncs( ctx ); ctx->Driver.TriangleCaps = (DD_TRI_CULL| @@ -530,7 +530,8 @@ void mgaGetLock( mgaContextPtr mmesa, GLuint flags ) drmGetLock(mmesa->driFd, mmesa->hHWContext, flags); - if (*(dPriv->pStamp) != dPriv->lastStamp) { + if (*(dPriv->pStamp) != mmesa->lastStamp) { + mmesa->lastStamp = *(dPriv->pStamp); mmesa->setupdone = 0; mmesa->dirty_cliprects = (MGA_FRONT|MGA_BACK); mgaUpdateRects( mmesa, (MGA_FRONT|MGA_BACK) ); diff --git a/xc/lib/GL/mesa/src/drv/mga/mgabuffers.c b/xc/lib/GL/mesa/src/drv/mga/mgabuffers.c index 75d322c47..5568024d8 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgabuffers.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgabuffers.c @@ -24,7 +24,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgabuffers.c,v 1.4 2000/09/24 13:51:05 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgabuffers.c,v 1.5 2001/01/08 01:07:18 martin Exp $ */ /* * Authors: @@ -78,7 +78,7 @@ static void mgaXMesaSetBackClipRects( mgaContextPtr mmesa ) } - +#if 0 static void mgaUpdateRectsFromSarea( mgaContextPtr mmesa ) { __DRIdrawablePrivate *driDrawable = mmesa->driDrawable; @@ -128,7 +128,7 @@ static void mgaUpdateRectsFromSarea( mgaContextPtr mmesa ) mmesa->dirty_cliprects = (MGA_FRONT|MGA_BACK) & ~(sarea->exported_buffers); } - +#endif static void printSareaRects( mgaContextPtr mmesa ) @@ -205,45 +205,22 @@ void mgaUpdateRects( mgaContextPtr mmesa, GLuint buffers ) __DRIdrawablePrivate *driDrawable = mmesa->driDrawable; drm_mga_sarea_t *sarea = mmesa->sarea; - /* The MGA X driver will try to push one set of cliprects (back or - * front, the last active) for one drawable (the last used) into - * the sarea. See if that window was ours, else retrieve both back - * and front rects from the X server via a protocol request. - * - * If there isn't room for the cliprects in the sarea, the X server - * clears the drawable value to indicate failure. - */ - if (0) printSareaRects(mmesa); - - if (0 && - sarea->exported_drawable == driDrawable->draw && - (sarea->exported_buffers & buffers) == buffers) - { - mgaUpdateRectsFromSarea( mmesa ); - } - else - { - if(MGA_DEBUG & DEBUG_VERBOSE_MSG) - fprintf(stderr, "^"); - driDrawable->lastStamp = 0; - - XMESA_VALIDATE_DRAWABLE_INFO(mmesa->display, - mmesa->driScreen, - driDrawable); - mmesa->dirty_cliprects = 0; - } +/* fprintf(stderr, "%s\n", __FUNCTION__); */ + + XMESA_VALIDATE_DRAWABLE_INFO(mmesa->display, + mmesa->driScreen, + driDrawable); + mmesa->dirty_cliprects = 0; if (mmesa->draw_buffer == MGA_FRONT) mgaXMesaSetFrontClipRects( mmesa ); else mgaXMesaSetBackClipRects( mmesa ); - - if (0) printMmesaRects(mmesa); +/* printMmesaRects(mmesa); */ sarea->req_drawable = driDrawable->draw; sarea->req_draw_buffer = mmesa->draw_buffer; - mgaUpdateClipping( mmesa->glCtx ); diff --git a/xc/lib/GL/mesa/src/drv/mga/mgacontext.h b/xc/lib/GL/mesa/src/drv/mga/mgacontext.h index 1f6ffc6c6..46ccae02f 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgacontext.h +++ b/xc/lib/GL/mesa/src/drv/mga/mgacontext.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgacontext.h,v 1.1 2000/09/24 13:51:06 alanh Exp $*/ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgacontext.h,v 1.2 2001/01/08 01:07:18 martin Exp $*/ /* * GLX Hardware Device Driver for Matrox Millenium G200 * Copyright (C) 1999 Wittawat Yamwong @@ -117,7 +117,8 @@ typedef struct mga_texture_object_s struct mga_context_t { GLcontext *glCtx; - + GLuint lastStamp; /* fullscreen breaks dpriv->laststamp, + * need to shadow it here. */ /* Bookkeeping for texturing */ @@ -175,8 +176,8 @@ struct mga_context_t { GLuint Setup[MGA_CTX_SETUP_SIZE]; GLuint warp_pipe; GLuint vertsize; - GLushort MonoColor; - GLushort ClearColor; + GLuint MonoColor; + GLuint ClearColor; GLuint ClearDepth; GLuint poly_stipple; GLfloat depth_scale; @@ -250,6 +251,9 @@ struct mga_context_t { #define MGAPACKCOLOR565(r,g,b) \ ((((r) & 0xf8) << 8) | (((g) & 0xfc) << 3) | (((b) & 0xf8) >> 3)) +#define MGAPACKCOLOR88(l, a) \ + (((l) << 8) | (a)) + #define MGAPACKCOLOR888(r,g,b) \ (((r) << 16) | ((g) << 8) | (b)) diff --git a/xc/lib/GL/mesa/src/drv/mga/mgadd.c b/xc/lib/GL/mesa/src/drv/mga/mgadd.c index f9c3357ce..93ecfdf28 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgadd.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgadd.c @@ -23,7 +23,7 @@ * * Wittawat Yamwong <Wittawat.Yamwong@stud.uni-hannover.de> */ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgadd.c,v 1.6 2000/11/08 05:02:45 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgadd.c,v 1.7 2001/01/08 01:07:18 martin Exp $ */ @@ -114,6 +114,12 @@ void mgaDDExtensionsInit( GLcontext *ctx ) if (MGA_IS_G400(MGA_CONTEXT(ctx))) { gl_extensions_enable( ctx, "GL_EXT_texture_env_add" ); + gl_extensions_enable( ctx, "GL_MESA_packed_depth_stencil" ); + +#if defined (MESA_experimetal_agp_allocator) + if (!getenv("MGA_DISABLE_AGP_ALLOCATOR")) + gl_extensions_enable( ctx, "GL_MESA_experimental_agp_allocator" ); +#endif } /* we don't support point parameters in hardware yet */ diff --git a/xc/lib/GL/mesa/src/drv/mga/mgaioctl.c b/xc/lib/GL/mesa/src/drv/mga/mgaioctl.c index 8d31caa1d..46ff452b1 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgaioctl.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgaioctl.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaioctl.c,v 1.8 2000/11/08 05:02:45 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaioctl.c,v 1.9 2001/01/08 01:07:18 martin Exp $ */ #include <stdio.h> @@ -19,9 +19,6 @@ #include "drm.h" #include <sys/ioctl.h> -#define DEPTH_SCALE_16 ((GLfloat)0xffff) -#define DEPTH_SCALE_32 ((GLfloat)0xffffffff) - static void mga_iload_dma_ioctl(mgaContextPtr mmesa, unsigned long dest, int length) @@ -162,8 +159,6 @@ GLbitfield mgaClear( GLcontext *ctx, GLbitfield mask, GLboolean all, int i; static int nrclears; - if (0) fprintf(stderr, "clear %d: %d,%d %dx%d\n", all,cx,cy,cw,ch); - clear.flags = 0; clear.clear_color = mmesa->ClearColor; clear.clear_depth = 0; @@ -308,8 +303,6 @@ void mgaSwapBuffers( mgaContextPtr mmesa ) pbox = dPriv->pClipRects; nbox = dPriv->numClipRects; - if (0) fprintf(stderr, "swap, nbox %d\n", nbox); - for (i = 0 ; i < nbox ; ) { int nr = MIN2(i + MGA_NR_SAREA_CLIPRECTS, dPriv->numClipRects); @@ -320,20 +313,11 @@ void mgaSwapBuffers( mgaContextPtr mmesa ) for ( ; i < nr ; i++) *b++ = pbox[i]; - if (0) - fprintf(stderr, "DRM_IOCTL_MGA_SWAP\n"); - -#if 1 if((retcode = ioctl(mmesa->driFd, DRM_IOCTL_MGA_SWAP, &swap))) { printf("send swap retcode = %d\n", retcode); + UNLOCK_HARDWARE( mmesa ); exit(1); } -#else - mgaUpdateLock( mmesa, DRM_LOCK_FLUSH ); -#endif - - if (0) - fprintf(stderr, "finished swap %d\n", ++nrswaps); } tmp = GET_ENQUEUE_AGE(mmesa); @@ -371,7 +355,6 @@ void mgaDDFinish( GLcontext *ctx ) void mgaWaitAgeLocked( mgaContextPtr mmesa, int age ) { if (GET_DISPATCH_AGE(mmesa) < age) { - if (0) fprintf(stderr, "\n\n\nmgaWaitAgeLocked\n"); mgaUpdateLock( mmesa, DRM_LOCK_FLUSH ); } } @@ -382,7 +365,6 @@ void mgaWaitAge( mgaContextPtr mmesa, int age ) if (GET_DISPATCH_AGE(mmesa) < age) { LOCK_HARDWARE(mmesa); if (GET_DISPATCH_AGE(mmesa) < age) { - if (0) fprintf(stderr, "\n\n\nmgaWaitAge\n"); mgaUpdateLock( mmesa, DRM_LOCK_FLUSH ); } UNLOCK_HARDWARE(mmesa); @@ -436,14 +418,6 @@ void mgaFlushVerticesLocked( mgaContextPtr mmesa ) */ mmesa->sarea->dirty |= MGA_UPLOAD_CTX; - /* FIXME: dstorg bug - */ - if (0) - if (mmesa->lastX != mmesa->drawX || mmesa->lastY != mmesa->drawY) - fprintf(stderr, "****** last: %d,%d current: %d,%d\n", - mmesa->lastX, mmesa->lastY, - mmesa->drawX, mmesa->drawY); - vertex.idx = buffer->idx; vertex.used = buffer->used; vertex.discard = 0; @@ -454,6 +428,7 @@ void mgaFlushVerticesLocked( mgaContextPtr mmesa ) if (nbox >= MGA_NR_SAREA_CLIPRECTS) mmesa->dirty |= MGA_UPLOAD_CLIPRECTS; +#if 0 if (!vertex.used || !(mmesa->dirty & MGA_UPLOAD_CLIPRECTS)) { if (nbox == 1) @@ -469,6 +444,7 @@ void mgaFlushVerticesLocked( mgaContextPtr mmesa ) age_mmesa(mmesa, mmesa->sarea->last_enqueue); } else +#endif { for (i = 0 ; i < nbox ; ) { @@ -596,6 +572,18 @@ void mgaGetILoadBufferLocked( mgaContextPtr mmesa ) mmesa->iload_buffer = mga_get_buffer_ioctl( mmesa ); } +drmBufPtr mgaGetBufferLocked( mgaContextPtr mmesa ) +{ + return mga_get_buffer_ioctl( mmesa ); +} + +void mgaGetEltBufLocked( mgaContextPtr mmesa ) +{ + mmesa->elt_buf = mga_get_buffer_ioctl( mmesa ); +} + + + void mgaDDFlush( GLcontext *ctx ) { @@ -609,7 +597,6 @@ void mgaDDFlush( GLcontext *ctx ) */ if (1 || GET_DISPATCH_AGE( mmesa ) < mmesa->sarea->last_enqueue) { LOCK_HARDWARE( mmesa ); - if (0) fprintf(stderr, "mgaDDFlush %d %d\n", GET_DISPATCH_AGE( mmesa ), mmesa->sarea->last_enqueue); mgaUpdateLock( mmesa, DRM_LOCK_FLUSH ); UNLOCK_HARDWARE( mmesa ); } @@ -628,9 +615,6 @@ void mgaFireEltsLocked( mgaContextPtr mmesa, drm_mga_indices_t elts; int i; - - if (0) fprintf(stderr, "FireElts %d %d\n", start/4, end/4); - if (!buffer) return; @@ -662,8 +646,6 @@ void mgaFireEltsLocked( mgaContextPtr mmesa, else mmesa->sarea->nbox = nbox; - if (0) - fprintf(stderr, "Firing elts -- case a nbox %d\n", nbox); elts.discard = discard; ioctl(mmesa->driFd, DRM_IOCTL_MGA_INDICES, &elts); @@ -704,8 +686,6 @@ void mgaFireEltsLocked( mgaContextPtr mmesa, if (nr == nbox) elts.discard = discard; - if (0) - fprintf(stderr, "Firing elts -- case b nbox %d\n", nbox); mmesa->sarea->dirty |= MGA_UPLOAD_CLIPRECTS; ioctl(mmesa->driFd, DRM_IOCTL_MGA_INDICES, &elts); @@ -716,10 +696,6 @@ void mgaFireEltsLocked( mgaContextPtr mmesa, mmesa->dirty &= ~MGA_UPLOAD_CLIPRECTS; } -void mgaGetEltBufLocked( mgaContextPtr mmesa ) -{ - mmesa->elt_buf = mga_get_buffer_ioctl( mmesa ); -} void mgaReleaseBufLocked( mgaContextPtr mmesa, drmBufPtr buffer ) { diff --git a/xc/lib/GL/mesa/src/drv/mga/mgaioctl.h b/xc/lib/GL/mesa/src/drv/mga/mgaioctl.h index 869d50160..72e1fe29b 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgaioctl.h +++ b/xc/lib/GL/mesa/src/drv/mga/mgaioctl.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaioctl.h,v 1.5 2000/09/24 13:51:07 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaioctl.h,v 1.6 2001/01/08 01:07:18 martin Exp $ */ #ifndef MGA_IOCTL_H #define MGA_IOCTL_H @@ -18,6 +18,7 @@ GLuint *mgaAllocVertexDwords( mgaContextPtr mmesa, int dwords ); void mgaGetILoadBufferLocked( mgaContextPtr mmesa ); +drmBufPtr mgaGetBufferLocked( mgaContextPtr mmesa ); void mgaFireILoadLocked( mgaContextPtr mmesa, diff --git a/xc/lib/GL/mesa/src/drv/mga/mgapixel.c b/xc/lib/GL/mesa/src/drv/mga/mgapixel.c new file mode 100644 index 000000000..e28ead85b --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/mga/mgapixel.c @@ -0,0 +1,635 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgapixel.c,v 1.1 2001/01/08 01:07:18 martin Exp $ */ +/************************************************************************** + +Copyright 2000 Compaq Computer Inc. and VA Linux, Inc. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +#include "enums.h" +#include "types.h" +#include "texutil.h" +#include "mgadd.h" +#include "mgacontext.h" +#include "mgaioctl.h" +#include "mgapixel.h" +#include "mgabuffers.h" + +#include "drm.h" +#include <sys/ioctl.h> + +#define IS_AGP_MEM(mmesa, p) \ + (mmesa->mgaScreen->agp.map <= ((char *)p) && \ + mmesa->mgaScreen->agp.map + \ + mmesa->mgaScreen->agp.size > ((char *)p)) +#define AGP_OFFSET(mmesa, p) \ + (((char *)p) - mmesa->mgaScreen->agp.map ) + + +#if defined(MESA_packed_depth_stencil) +static GLboolean +check_depth_stencil_24_8( const GLcontext *ctx, GLenum type, + const struct gl_pixelstore_attrib *packing, + const void *pixels, GLint sz, + GLint pitch ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + + return (type == GL_UNSIGNED_INT_24_8_MESA && + ctx->Visual->DepthBits == 24 && + ctx->Visual->StencilBits == 8 && + mmesa->mgaScreen->cpp == 4 && + mmesa->hw_stencil && + !ctx->Pixel.IndexShift && + !ctx->Pixel.IndexOffset && + !ctx->Pixel.MapStencilFlag && + ctx->Pixel.DepthBias == 0.0 && + ctx->Pixel.DepthScale == 1.0 && + !packing->SwapBytes && + pitch % 32 == 0 && + pitch < 4096); + +} +#endif + + +static GLboolean +check_depth( const GLcontext *ctx, GLenum type, + const struct gl_pixelstore_attrib *packing, + const void *pixels, GLint sz, GLint pitch ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + + if (IS_AGP_MEM(mmesa, pixels) && + !((type == GL_UNSIGNED_INT && mmesa->mgaScreen->cpp == 4) || + (type == GL_UNSIGNED_SHORT && mmesa->mgaScreen->cpp == 2))) + return GL_FALSE; + + return (ctx->Pixel.DepthBias == 0.0 && + ctx->Pixel.DepthScale == 1.0 && + !packing->SwapBytes && + pitch % 32 == 0 && + pitch < 4096); +} + + +static GLboolean +check_color( const GLcontext *ctx, GLenum type, GLenum format, + const struct gl_pixelstore_attrib *packing, + const void *pixels, GLint sz, GLint pitch ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + GLuint cpp = mmesa->mgaScreen->cpp; + + /* Can't do conversions on agp reads/draws. + */ + if (IS_AGP_MEM(mmesa, pixels) && + !(pitch % 32 == 0 && + pitch < 4096 && + ((type == GL_UNSIGNED_BYTE && cpp == 4 && format == GL_BGRA) || + (type == GL_UNSIGNED_INT_8_8_8_8 && cpp == 4 && format == GL_BGRA) || + (type == GL_UNSIGNED_SHORT_5_6_5_REV && cpp==2 && format == GL_RGB)))) + return GL_FALSE; + + return + (ctx->ColorMatrix.type == MATRIX_IDENTITY && + !ctx->Pixel.ScaleOrBiasRGBA && + !ctx->Pixel.ScaleOrBiasRGBApcm && + !ctx->Pixel.MapColorFlag && + !ctx->Pixel.ColorTableEnabled && + !ctx->Pixel.PostColorMatrixColorTableEnabled && + !ctx->Pixel.MinMaxEnabled && + !ctx->Pixel.HistogramEnabled && + !packing->SwapBytes && + !packing->LsbFirst); +} + +static GLboolean +check_color_per_fragment_ops( const GLcontext *ctx ) +{ + return (!(ctx->RasterMask & ~(SCISSOR_BIT|WINCLIP_BIT|MULTI_DRAW_BIT)) && + ctx->Current.RasterPosValid && + ctx->Pixel.ZoomX == 1.0F && + (ctx->Pixel.ZoomY == 1.0F || ctx->Pixel.ZoomY == -1.0F)); +} + +static GLboolean +check_depth_per_fragment_ops( const GLcontext *ctx ) +{ + return (ctx->Current.RasterPosValid && + ctx->Color.ColorMask[RCOMP] == 0 && + ctx->Color.ColorMask[BCOMP] == 0 && + ctx->Color.ColorMask[GCOMP] == 0 && + ctx->Color.ColorMask[ACOMP] == 0 && + ctx->Pixel.ZoomX == 1.0F && + (ctx->Pixel.ZoomY == 1.0F || ctx->Pixel.ZoomY == -1.0F)); +} + +/* In addition to the requirements for depth: + */ +#if defined(MESA_packed_depth_stencil) +static GLboolean +check_stencil_per_fragment_ops( const GLcontext *ctx ) +{ + return (!ctx->Pixel.IndexShift && + !ctx->Pixel.IndexOffset); +} +#endif + + +static GLboolean +clip_pixelrect( const GLcontext *ctx, + const GLframebuffer *buffer, + GLint *x, GLint *y, + GLsizei *width, GLsizei *height, + GLint *skipPixels, GLint *skipRows, + GLint *size ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + + *width = MIN2(*width, MAX_WIDTH); /* redundant? */ + + /* left clipping */ + if (*x < buffer->Xmin) { + *skipPixels += (buffer->Xmin - *x); + *width -= (buffer->Xmin - *x); + *x = buffer->Xmin; + } + + /* right clipping */ + if (*x + *width > buffer->Xmax) + *width -= (*x + *width - buffer->Xmax - 1); + + if (*width <= 0) + return GL_FALSE; + + /* bottom clipping */ + if (*y < buffer->Ymin) { + *skipRows += (buffer->Ymin - *y); + *height -= (buffer->Ymin - *y); + *y = buffer->Ymin; + } + + /* top clipping */ + if (*y + *height > buffer->Ymax) + *height -= (*y + *height - buffer->Ymax - 1); + + if (*height <= 0) + return GL_FALSE; + + *size = ((*y + *height - 1) * mmesa->mgaScreen->frontPitch + + (*x + *width - 1) * mmesa->mgaScreen->cpp); + + return GL_TRUE; +} + +static GLboolean +mgaDDReadPixels( GLcontext *ctx, + GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, + const struct gl_pixelstore_attrib *pack, + GLvoid *pixels ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + drm_mga_blit_t blit; + GLint size, skipPixels, skipRows; + GLint pitch = pack->RowLength ? pack->RowLength : width; + GLboolean ok; + + if (!clip_pixelrect(ctx, ctx->ReadBuffer, + &x, &y, &width, &height, + &skipPixels, &skipRows, &size)) { + return GL_TRUE; + } + + /* Only accelerate reading to agp buffers. + */ + if ( !IS_AGP_MEM(mmesa, (char *)pixels) || + !IS_AGP_MEM(mmesa, (char *)pixels + size) ) + return GL_FALSE; + + switch (format) { +#if defined(MESA_packed_depth_stencil) + case GL_DEPTH_STENCIL_MESA: + ok = check_depth_stencil_24_8(ctx, type, pack, pixels, size, pitch); + blit.planemask = ~0; + blit.source = mmesa->mgaScreen->depthOffset; + break; +#endif + + case GL_DEPTH_COMPONENT: + ok = check_depth(ctx, type, pack, pixels, size, pitch); + + /* Can't accelerate at this depth -- planemask does the wrong + * thing; it doesn't clear the low order bits in the + * destination, instead it leaves them untouched. + * + * Could get the acclerator to solid fill the destination with + * zeros first... Or get the cpu to do it... + */ + if (ctx->Visual->DepthBits == 24) + return GL_FALSE; + + blit.planemask = ~0; + blit.source = mmesa->mgaScreen->depthOffset; + break; + + case GL_RGB: + case GL_BGRA: + ok = check_color(ctx, type, format, pack, pixels, size, pitch); + blit.planemask = ~0; + blit.source = (mmesa->draw_buffer == MGA_FRONT ? + mmesa->mgaScreen->frontOffset : + mmesa->mgaScreen->backOffset); + break; + + default: + return GL_FALSE; + } + + if (!ok) { + return GL_FALSE; + } + + + LOCK_HARDWARE( mmesa ); + + { + __DRIdrawablePrivate *dPriv = mmesa->driDrawable; + int nbox, retcode, i; + + mgaUpdateLock( mmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT ); + + if (mmesa->dirty_cliprects & MGA_FRONT) + mgaUpdateRects( mmesa, MGA_FRONT ); + + nbox = dPriv->numClipRects; + + y = dPriv->h - y - height; + x += mmesa->drawX; + y += mmesa->drawY; + + blit.dest = ((mmesa->mgaScreen->agp.handle + AGP_OFFSET(mmesa, pixels)) | + DO_dstmap_sys | DO_dstacc_agp); + blit.source_pitch = mmesa->mgaScreen->frontPitch / mmesa->mgaScreen->cpp; + blit.dest_pitch = pitch; + blit.delta_sx = 0; + blit.delta_sy = 0; + blit.delta_dx = -x; + blit.delta_dy = -y; + blit.height = 2*y + height; + blit.ydir = -1; + + if (0) fprintf(stderr, "XX doing readpixel blit src_pitch %d dst_pitch %d\n", + blit.source_pitch, blit.dest_pitch); + + + + for (i = 0 ; i < nbox ; ) + { + int nr = MIN2(i + MGA_NR_SAREA_CLIPRECTS, dPriv->numClipRects); + XF86DRIClipRectRec *box = dPriv->pClipRects; + drm_clip_rect_t *b = mmesa->sarea->boxes; + int n = 0; + + for ( ; i < nr ; i++) { + GLint bx = box[i].x1; + GLint by = box[i].y1; + GLint bw = box[i].x2 - bx; + GLint bh = box[i].y2 - by; + + if (bx < x) bw -= x - bx, bx = x; + if (by < y) bh -= y - by, by = y; + if (bx + bw > x + width) bw = x + width - bx; + if (by + bh > y + height) bh = y + height - by; + if (bw <= 0) continue; + if (bh <= 0) continue; + + b->x1 = bx; + b->y1 = by; + b->x2 = bx + bw; + b->y2 = by + bh; + b++; + n++; + } + + mmesa->sarea->nbox = n; + + if (n && (retcode = ioctl(mmesa->driFd, DRM_IOCTL_MGA_BLIT, &blit))) { + fprintf(stderr, "blit ioctl failed, retcode = %d\n", retcode); + UNLOCK_HARDWARE( mmesa ); + exit(1); + } + } + + mgaUpdateLock( mmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT ); + } + + UNLOCK_HARDWARE( mmesa ); + + return GL_TRUE; +} + + + +static void do_draw_pix( GLcontext *ctx, + GLint x, GLint y, GLsizei width, GLsizei height, + GLint pitch, + const void *pixels, + GLuint dest, GLuint planemask) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + drm_mga_blit_t blit; + __DRIdrawablePrivate *dPriv = mmesa->driDrawable; + XF86DRIClipRectPtr pbox = dPriv->pClipRects; + int nbox = dPriv->numClipRects; + int retcode, i; + + y = dPriv->h - y - height; + x += mmesa->drawX; + y += mmesa->drawY; + + blit.dest = dest; + blit.planemask = planemask; + blit.source = ((mmesa->mgaScreen->agp.handle + AGP_OFFSET(mmesa, pixels)) + | SO_srcmap_sys | SO_srcacc_agp); + blit.dest_pitch = mmesa->mgaScreen->frontPitch / mmesa->mgaScreen->cpp; + blit.source_pitch = pitch; + blit.delta_sx = -x; + blit.delta_sy = -y; + blit.delta_dx = 0; + blit.delta_dy = 0; + if (ctx->Pixel.ZoomY == -1) { + blit.height = height; + blit.ydir = 1; + } else { + blit.height = height; + blit.ydir = -1; + } + + if (0) fprintf(stderr, + "doing drawpixel blit src_pitch %d dst_pitch %d\n", + blit.source_pitch, blit.dest_pitch); + + for (i = 0 ; i < nbox ; ) + { + int nr = MIN2(i + MGA_NR_SAREA_CLIPRECTS, dPriv->numClipRects); + XF86DRIClipRectRec *box = mmesa->pClipRects; + drm_clip_rect_t *b = mmesa->sarea->boxes; + int n = 0; + + for ( ; i < nr ; i++) { + GLint bx = box[i].x1; + GLint by = box[i].y1; + GLint bw = box[i].x2 - bx; + GLint bh = box[i].y2 - by; + + if (bx < x) bw -= x - bx, bx = x; + if (by < y) bh -= y - by, by = y; + if (bx + bw > x + width) bw = x + width - bx; + if (by + bh > y + height) bh = y + height - by; + if (bw <= 0) continue; + if (bh <= 0) continue; + + b->x1 = bx; + b->y1 = by; + b->x2 = bx + bw; + b->y2 = by + bh; + b++; + n++; + } + + mmesa->sarea->nbox = n; + + if (n && (retcode = ioctl(mmesa->driFd, DRM_IOCTL_MGA_BLIT, &blit))) { + fprintf(stderr, "blit ioctl failed, retcode = %d\n", retcode); + UNLOCK_HARDWARE( mmesa ); + exit(1); + } + } +} + + + + +static GLboolean +mgaDDDrawPixels( GLcontext *ctx, + GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, + const struct gl_pixelstore_attrib *unpack, + const GLvoid *pixels ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + GLint size, skipPixels, skipRows; + GLint pitch = unpack->RowLength ? unpack->RowLength : width; + GLuint dest, planemask; + GLuint cpp = mmesa->mgaScreen->cpp; + + if (!clip_pixelrect(ctx, ctx->DrawBuffer, + &x, &y, &width, &height, + &skipPixels, &skipRows, &size)) { + return GL_TRUE; + } + + + switch (format) { +#if defined(MESA_packed_depth_stencil) + case GL_DEPTH_STENCIL_MESA: + dest = mmesa->mgaScreen->depthOffset; + planemask = ~0; + if (!check_depth_stencil_24_8(ctx, type, unpack, pixels, size, pitch) || + !check_depth_per_fragment_ops(ctx) || + !check_stencil_per_fragment_ops(ctx)) + return GL_FALSE; + break; +#endif + + case GL_DEPTH_COMPONENT: + dest = mmesa->mgaScreen->depthOffset; + + if (ctx->Visual->DepthBits == 24) + planemask = ~0xff; + else + planemask = ~0; + + if (!check_depth(ctx, type, unpack, pixels, size, pitch) || + !check_depth_per_fragment_ops(ctx)) + return GL_FALSE; + break; + + case GL_RGB: + case GL_BGRA: + dest = (mmesa->draw_buffer == MGA_FRONT ? + mmesa->mgaScreen->frontOffset : + mmesa->mgaScreen->backOffset); + + planemask = mgaPackColor(cpp, + ctx->Color.ColorMask[RCOMP], + ctx->Color.ColorMask[GCOMP], + ctx->Color.ColorMask[BCOMP], + ctx->Color.ColorMask[ACOMP]); + + if (cpp == 2) + planemask |= planemask << 16; + + if (!check_color(ctx, type, format, unpack, pixels, size, pitch)) { + return GL_FALSE; + } + if (!check_color_per_fragment_ops(ctx)) { + return GL_FALSE; + } + break; + + default: + return GL_FALSE; + } + + LOCK_HARDWARE( mmesa ); + mgaUpdateLock( mmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT ); + + if (mmesa->dirty_cliprects & MGA_FRONT) + mgaUpdateRects( mmesa, MGA_FRONT ); + + if ( IS_AGP_MEM(mmesa, (char *)pixels) && + IS_AGP_MEM(mmesa, (char *)pixels + size) ) + { + do_draw_pix( ctx, x, y, width, height, pitch, pixels, + dest, planemask ); + mgaUpdateLock( mmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT ); + } + else + { + /* Pixels is in regular memory -- get dma buffers and perform + * upload through them. + */ +/* drmBufPtr buf = mgaGetBufferLocked(mmesa); */ + GLuint bufferpitch = (width*cpp+31)&~31; + char *address = mmesa->mgaScreen->agp.map; + + do { +/* GLuint rows = MIN2( height, MGA_DMA_BUF_SZ / bufferpitch ); */ + GLuint rows = height; + + + if (0) fprintf(stderr, "trying to upload %d rows (pitch %d)\n", + rows, bufferpitch); + + /* The texture conversion code is so slow that there is only + * negligble speedup when the buffers/images don't exactly + * match: + */ +#if 1 + if (cpp == 2) { + if (!_mesa_convert_teximage( MESA_R5_G6_B5, + width, rows, + address, bufferpitch, + width, rows, + format, type, + pixels, unpack )) { +/* mgaReleaseBufLocked( mmesa, buf ); */ + UNLOCK_HARDWARE(mmesa); + return GL_FALSE; + } + } else { + if (!_mesa_convert_teximage( MESA_A8_R8_G8_B8, + width, rows, + address, bufferpitch, + width, rows, + format, type, + pixels, unpack )) { +/* mgaReleaseBufLocked( mmesa, buf ); */ + UNLOCK_HARDWARE(mmesa); + return GL_FALSE; + } + } +#else + MEMCPY( address, pixels, rows*bufferpitch ); +#endif + + do_draw_pix( ctx, x, y, width, rows, + bufferpitch/cpp, address, dest, planemask ); + + /* Fix me -- use multiple buffers to avoid flush. + */ + mgaUpdateLock( mmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT ); + + pixels = (void *)((char *) pixels + rows * pitch); + height -= rows; + y += rows; + } while (height); + +/* mgaReleaseBufLocked( mmesa, buf ); */ + } + + UNLOCK_HARDWARE( mmesa ); + mmesa->dirty |= MGA_UPLOAD_CLIPRECTS; + + return GL_TRUE; +} + + + + +/* Stub functions - not a real allocator, always returns pointer to + * the same block of agp space which isn't used for anything else at + * present. + */ +#if defined(MESA_hacked_agp_allocator) +static void mgaDDFreeAgpMemory( GLcontext *ctx, void *ptr ) +{ + (void) ptr; +} + +static void *mgaDDAllocateAgpMemory( GLcontext *ctx, GLsizei size ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + + if (size < mmesa->mgaScreen->textureSize[MGA_AGP_HEAP]) + return mmesa->mgaScreen->texVirtual[MGA_AGP_HEAP]; + else + return 0; +} + +static GLint mgaDDGetAgpOffset( GLcontext *ctx, const void *ptr ) +{ + mgaContextPtr mmesa = MGA_CONTEXT(ctx); + + if (!IS_AGP_MEM(mmesa, ptr)) + return -1; + + return AGP_OFFSET(mmesa, ptr); +} +#endif + + +void mgaDDInitPixelFuncs( GLcontext *ctx ) +{ +#if defined (MESA_hacked_agp_allocator) + ctx->Driver.AllocateAgpMemory = mgaDDAllocateAgpMemory; + ctx->Driver.GetAgpOffset = mgaDDGetAgpOffset; + ctx->Driver.FreeAgpMemory = mgaDDFreeAgpMemory; +#endif + if (getenv("MGA_BLIT_PIXELS")) { + ctx->Driver.ReadPixels = mgaDDReadPixels; /* requires agp dest */ + ctx->Driver.DrawPixels = mgaDDDrawPixels; /* works with agp/normal mem */ + } +} diff --git a/xc/lib/GL/mesa/src/drv/mga/mgapixel.h b/xc/lib/GL/mesa/src/drv/mga/mgapixel.h new file mode 100644 index 000000000..a413467e4 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/mga/mgapixel.h @@ -0,0 +1,36 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgapixel.h,v 1.1 2001/01/08 01:07:18 martin Exp $ */ +/************************************************************************** + +Copyright 2000 Compaq Computer Inc. and VA Linux, Inc. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +#ifndef MGA_PIXELS_H +#define MGA_PIXELS_H + +#include "types.h" + +extern void mgaDDInitPixelFuncs( GLcontext *ctx ); + +#endif + diff --git a/xc/lib/GL/mesa/src/drv/mga/mgaregs.h b/xc/lib/GL/mesa/src/drv/mga/mgaregs.h index 3842ee258..6e381a9cc 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgaregs.h +++ b/xc/lib/GL/mesa/src/drv/mga/mgaregs.h @@ -1048,6 +1048,8 @@ #define TMC_tformat_tw16 0x3 /* val 3, shift 0 */ #define TMC_tformat_tw12 0x4 /* val 4, shift 0 */ #define TMC_tformat_tw32 0x6 /* val 6, shift 0 */ + #define TMC_tformat_tw8a 0x7 /* val 7, shift 0 */ + #define TMC_tformat_tw8al 0x8 /* val 8, shift 0 */ #define TMC_tformat_tw422 0xa /* val 10, shift 0 */ #define TMC_tpitchlin_MASK 0xfffffeff /* bit 8 */ #define TMC_tpitchlin_disable 0x0 @@ -1162,6 +1164,7 @@ #define TO_texorgacc_MASK 0xfffffffd /* bit 1 */ #define TO_texorgacc_pci 0x0 #define TO_texorgacc_agp 0x2 + #define TO_texorgoffsetsel 0x4 #define TO_texorg_MASK 0x1f /* bits 5-31 */ #define TO_texorg_SHIFT 5 diff --git a/xc/lib/GL/mesa/src/drv/mga/mgaspan.c b/xc/lib/GL/mesa/src/drv/mga/mgaspan.c index 3df15ddce..0b9893175 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgaspan.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgaspan.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaspan.c,v 1.5 2000/09/24 13:51:07 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaspan.c,v 1.6 2001/01/08 01:07:18 martin Exp $ */ #include "types.h" #include "mgadd.h" @@ -23,7 +23,7 @@ mmesa->drawOffset + \ dPriv->x * mgaScreen->cpp + \ dPriv->y * pitch); \ - GLushort p = MGA_CONTEXT( ctx )->MonoColor; \ + GLuint p = MGA_CONTEXT( ctx )->MonoColor; \ (void) read_buf; (void) buf; (void) p @@ -36,7 +36,7 @@ GLuint height = dPriv->h; \ char *buf = (char *)(sPriv->pFB + \ mgaScreen->depthOffset + \ - dPriv->x * 2 + \ + dPriv->x * mgaScreen->cpp + \ dPriv->y * pitch) #define LOCAL_STENCIL_VARS LOCAL_DEPTH_VARS @@ -174,7 +174,7 @@ do { \ } #define READ_DEPTH( d, _x, _y ) \ - d = *(GLuint *)(buf + _x*4 + _y*pitch) >> 8; + d = *(GLuint *)(buf + _x*4 + _y*pitch) & ~0xff; #define TAG(x) mga##x##_24_8 @@ -225,7 +225,7 @@ void mgaDDInitSpanFuncs( GLcontext *ctx ) ctx->Driver.ReadRGBASpan = mgaReadRGBASpan_8888; ctx->Driver.ReadRGBAPixels = mgaReadRGBAPixels_8888; - if (mmesa->hw_stencil) { + if (!mmesa->hw_stencil) { ctx->Driver.ReadDepthSpan = mgaReadDepthSpan_32; ctx->Driver.WriteDepthSpan = mgaWriteDepthSpan_32; ctx->Driver.ReadDepthPixels = mgaReadDepthPixels_32; @@ -243,13 +243,4 @@ void mgaDDInitSpanFuncs( GLcontext *ctx ) } break; } - - - ctx->Driver.WriteCI8Span = 0; - ctx->Driver.WriteCI32Span = 0; - ctx->Driver.WriteMonoCISpan = 0; - ctx->Driver.WriteCI32Pixels = 0; - ctx->Driver.WriteMonoCIPixels = 0; - ctx->Driver.ReadCI32Span = 0; - ctx->Driver.ReadCI32Pixels = 0; } diff --git a/xc/lib/GL/mesa/src/drv/mga/mgastate.c b/xc/lib/GL/mesa/src/drv/mga/mgastate.c index 06b69554d..f790adc9a 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgastate.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgastate.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgastate.c,v 1.6 2000/11/08 05:02:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgastate.c,v 1.7 2001/01/08 01:07:18 martin Exp $ */ #include <stdio.h> @@ -834,16 +834,8 @@ void mgaEmitHwStateLocked( mgaContextPtr mmesa ) mmesa->sarea->WarpPipe = mmesa->warp_pipe; mmesa->sarea->vertexsize = mmesa->vertsize; -/* mmesa->sarea->vertexsize = 10; */ mmesa->sarea->dirty |= mmesa->dirty; -#if 0 - if (mmesa->dirty & MGA_UPLOAD_PIPE) - mgaPrintSetupFlags("warp pipe", mmesa->sarea->WarpPipe); -/* fprintf(stderr, "in mgaEmitHwStateLocked: dirty now %x\n", */ -/* mmesa->sarea->dirty); */ -#endif - mmesa->dirty &= (MGA_UPLOAD_CLIPRECTS|MGA_WAIT_AGE); } @@ -1051,9 +1043,6 @@ void mgaDDUpdateState( GLcontext *ctx ) if (mmesa->new_state & MGA_NEW_TEXTURE) mgaDDUpdateHwState( ctx ); - if (0) fprintf(stderr, "fallback %x indirect %x\n", mmesa->Fallback, - mmesa->IndirectTriangles); - if (!mmesa->Fallback) { ctx->IndirectTriangles &= ~DD_SW_RASTERIZE; ctx->IndirectTriangles |= mmesa->IndirectTriangles; diff --git a/xc/lib/GL/mesa/src/drv/mga/mgatex.c b/xc/lib/GL/mesa/src/drv/mga/mgatex.c index 5039750de..629dbfed1 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgatex.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgatex.c @@ -25,7 +25,7 @@ * 9/20/99 rewrite by John Carmack <johnc@idsoftware.com> * 13/1/00 port to DRI by Keith Whitwell <keithw@precisioninsight.com> */ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatex.c,v 1.7 2000/11/08 05:02:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatex.c,v 1.8 2001/01/08 01:07:18 martin Exp $ */ #include <stdlib.h> #include <stdio.h> @@ -625,24 +625,14 @@ static void mgaDDTexSubImage( GLcontext *ctx, GLenum target, mgaTextureObjectPtr t; t = (mgaTextureObjectPtr) tObj->DriverData; - - - /* just free the mga texture if it exists, it will be recreated at - mgaUpdateTextureState time. */ - t = (mgaTextureObjectPtr) tObj->DriverData; - if ( t ) { + if (t) { if (t->bound) FLUSH_BATCH(mmesa); - /* if this is the current object, it will force an update */ - mgaDestroyTexObj( mmesa, t ); - mmesa->new_state |= MGA_NEW_TEXTURE; + LOCK_HARDWARE( mmesa ); + /* the texture currently exists, so directly update it */ + mgaUploadSubImageLocked( mmesa, t, level, + xoffset, yoffset, width, height ); + UNLOCK_HARDWARE( mmesa ); } - - - -#if 0 - /* the texture currently exists, so directly update it */ - mgaUploadSubImage( t, level, xoffset, yoffset, width, height ); -#endif } diff --git a/xc/lib/GL/mesa/src/drv/mga/mgatex.h b/xc/lib/GL/mesa/src/drv/mga/mgatex.h index 02e95f59f..bd977f1e8 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgatex.h +++ b/xc/lib/GL/mesa/src/drv/mga/mgatex.h @@ -24,7 +24,7 @@ * John Carmack <johnc@idsoftware.com> * Keith Whitwell <keithw@precisioninsight.com> */ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatex.h,v 1.4 2000/09/24 13:51:07 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatex.h,v 1.5 2001/01/08 01:07:19 martin Exp $ */ #ifndef MGATEX_INC #define MGATEX_INC @@ -40,14 +40,15 @@ typedef struct mga_texture_object_s *mgaTextureObjectPtr; */ void mgaUpdateTextureState( GLcontext *ctx ); - -/* Driver functions which are called directly from mesa */ - void mgaConvertTexture( GLuint *dest, int texelBytes, struct gl_texture_image *image, int x, int y, int width, int height ); +void mgaUploadSubImageLocked( mgaContextPtr mmesa, + mgaTextureObjectPtr t, + int level, + int x, int y, int width, int height ); int mgaUploadTexImages( mgaContextPtr mmesa, mgaTextureObjectPtr t ); diff --git a/xc/lib/GL/mesa/src/drv/mga/mgatexmem.c b/xc/lib/GL/mesa/src/drv/mga/mgatexmem.c index 9d328f064..2390429d0 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgatexmem.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgatexmem.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatexmem.c,v 1.1 2000/09/24 13:51:08 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatexmem.c,v 1.2 2001/01/08 01:07:19 martin Exp $ */ #include <stdlib.h> #include <stdio.h> @@ -257,10 +257,10 @@ void mgaAgeTextures( mgaContextPtr mmesa, int heap ) * * Performed with the hardware lock held. */ -static void mgaUploadSubImageLocked( mgaContextPtr mmesa, - mgaTextureObjectPtr t, - int level, - int x, int y, int width, int height ) +void mgaUploadSubImageLocked( mgaContextPtr mmesa, + mgaTextureObjectPtr t, + int level, + int x, int y, int width, int height ) { int x2; int dwords; @@ -387,13 +387,12 @@ static void mgaUploadTexLevel( mgaContextPtr mmesa, mgaTextureObjectPtr t, int l ) { -/* return; */ - mgaUploadSubImageLocked( mmesa, - t, - l, - 0, 0, - t->tObj->Image[l]->Width, - t->tObj->Image[l]->Height); + mgaUploadSubImageLocked( mmesa, + t, + l, + 0, 0, + t->tObj->Image[l]->Width, + t->tObj->Image[l]->Height); } @@ -435,16 +434,14 @@ int mgaUploadTexImages( mgaContextPtr mmesa, mgaTextureObjectPtr t ) break; if (mmesa->TexObjList[heap].prev->bound) { - fprintf(stderr, - "Hit bound texture in upload\n"); + fprintf(stderr, "Hit bound texture in upload\n"); return -1; } if (mmesa->TexObjList[heap].prev == &(mmesa->TexObjList[heap])) { - fprintf(stderr, "Failed to upload texture, " - "sz %d\n", t->totalSize); + fprintf(stderr, "Failed to upload texture, sz %d\n", t->totalSize); mmDumpMemInfo( mmesa->texHeap[heap] ); return -1; } diff --git a/xc/lib/GL/mesa/src/drv/mga/mgatris.c b/xc/lib/GL/mesa/src/drv/mga/mgatris.c index d842e5252..4344003af 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgatris.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgatris.c @@ -23,7 +23,7 @@ * * Wittawat Yamwong <Wittawat.Yamwong@stud.uni-hannover.de> */ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatris.c,v 1.5 2000/09/24 13:51:08 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatris.c,v 1.6 2001/01/08 01:07:19 martin Exp $ */ #include <stdio.h> #include <math.h> @@ -129,7 +129,7 @@ void mgaDDTrifuncInit() -#define ALL_FALLBACK (DD_MULTIDRAW | DD_SELECT | DD_FEEDBACK) +#define ALL_FALLBACK (DD_SELECT | DD_FEEDBACK) #define POINT_FALLBACK (ALL_FALLBACK | DD_POINT_SMOOTH) #define LINE_FALLBACK (ALL_FALLBACK | DD_LINE_SMOOTH | DD_LINE_STIPPLE) #define TRI_FALLBACK (ALL_FALLBACK | DD_TRI_SMOOTH | DD_TRI_UNFILLED) diff --git a/xc/lib/GL/mesa/src/drv/mga/mgatris.h b/xc/lib/GL/mesa/src/drv/mga/mgatris.h index 0c27ab43d..03f95ddf3 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgatris.h +++ b/xc/lib/GL/mesa/src/drv/mga/mgatris.h @@ -23,7 +23,7 @@ * * Wittawat Yamwong <Wittawat.Yamwong@stud.uni-hannover.de> */ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatris.h,v 1.5 2000/09/24 13:51:08 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgatris.h,v 1.6 2001/01/08 01:07:19 martin Exp $ */ #ifndef MGATIS_INC #define MGATIS_INC @@ -41,92 +41,15 @@ extern void mgaDDTrifuncInit( void ); #define MGA_NODRAW_BIT 0x8 #define MGA_FALLBACK_BIT 0x10 -extern int nrswaps; - - -#define VERTSIZE vertsize - -/* static float _v0[] = { */ -/* 242.202515, */ -/* 250.469604, */ -/* 0.961081, */ -/* 0.013503, */ -/* 0, */ -/* 0.000000, */ -/* 2.600000, */ -/* 0.000000, */ -/* 1.000000, */ -/* 0.600000 */ -/* }; */ - -/* static float _v1[] = { */ -/* 246.448914, */ -/* 54.697876, */ -/* 0.953817, */ -/* 0.014156, */ -/* 0, */ -/* 0.000000, */ -/* 2.600000, */ -/* 2.000000, */ -/* 1.000000, */ -/* 1.600000 */ -/* }; */ - -/* static float _v2[] = { */ -/* 55.999474, */ -/* 85.196106, */ -/* 0.942609, */ -/* 0.015165, */ -/* 0, */ -/* 0.000000, */ -/* 0.600000, */ -/* 2.000000, */ -/* 0.000000, */ -/* 1.600000, */ -/* }; */ - static __inline void mga_draw_triangle( mgaContextPtr mmesa, mgaVertex *v0, mgaVertex *v1, mgaVertex *v2 ) { GLuint vertsize = mmesa->vertsize; - GLuint *wv = mgaAllocVertexDwordsInline( mmesa, 3 * VERTSIZE ); + GLuint *wv = mgaAllocVertexDwordsInline( mmesa, 3 * vertsize ); int j; - (void) vertsize; - -/* for (j = 0 ; j < vertsize ; j++) */ -/* fprintf(stderr, "v0 %d: %f 0x%x\n", j, v0->f[j], v0->ui[j]); */ - -/* for (j = 0 ; j < vertsize ; j++) */ -/* fprintf(stderr, "v1 %d: %f 0x%x\n", j, v1->f[j], v1->ui[j]); */ - -/* for (j = 0 ; j < vertsize ; j++) */ -/* fprintf(stderr, "v2 %d: %f 0x%x\n", j, v2->f[j], v2->ui[j]); */ - -/* v0 = (mgaVertex *)_v0; */ -/* v1 = (mgaVertex *)_v1; */ -/* v2 = (mgaVertex *)_v2; */ - - -/* if (v0->v.x < 0 || v0->v.x > 1920 || */ -/* v0->v.y < 0 || v0->v.y > 1440 || */ -/* v0->v.z < 0 || v0->v.z > 1) */ -/* fprintf(stderr, "v0 %f %f %f %f\n", v0->v.x, v0->v.y, v0->v.z, v0->v.rhw); */ - - -/* if (v1->v.x < 0 || v1->v.x > 1920 || */ -/* v1->v.y < 0 || v1->v.y > 1440 || */ -/* v1->v.z < 0 || v1->v.z > 1) */ -/* fprintf(stderr, "v1 %f %f %f %f\n", v1->v.x, v1->v.y, v1->v.z, v1->v.rhw); */ - -/* if (v2->v.x < 0 || v2->v.x > 1920 || */ -/* v2->v.y < 0 || v2->v.y > 1440 || */ -/* v2->v.z < 0 || v2->v.z > 1) */ -/* fprintf(stderr, "v2 %f %f %f %f\n", v2->v.x, v2->v.y, v2->v.z, v2->v.rhw); */ - - #if defined (USE_X86_ASM) /* GTH: We can safely assume the vertex stride is some number of * dwords, and thus a "rep movsd" is okay. The vb pointer is @@ -135,26 +58,26 @@ static __inline void mga_draw_triangle( mgaContextPtr mmesa, */ __asm__ __volatile__( "rep ; movsl" : "=%c" (j) - : "0" (VERTSIZE), "D" ((long)wv), "S" ((long)v0) + : "0" (vertsize), "D" ((long)wv), "S" ((long)v0) : "memory" ); __asm__ __volatile__( "rep ; movsl" : "=%c" (j) - : "0" (VERTSIZE), "S" ((long)v1) + : "0" (vertsize), "S" ((long)v1) : "memory" ); __asm__ __volatile__( "rep ; movsl" : "=%c" (j) - : "0" (VERTSIZE), "S" ((long)v2) + : "0" (vertsize), "S" ((long)v2) : "memory" ); #else { for (j = 0 ; j < vertsize ; j++) wv[j] = v0->ui[j]; - wv += VERTSIZE; + wv += vertsize; for (j = 0 ; j < vertsize ; j++) wv[j] = v1->ui[j]; - wv += VERTSIZE; + wv += vertsize; for (j = 0 ; j < vertsize ; j++) wv[j] = v2->ui[j]; } @@ -166,38 +89,38 @@ static __inline void mga_draw_point( mgaContextPtr mmesa, mgaVertex *tmp, float sz ) { GLuint vertsize = mmesa->vertsize; - GLuint *wv = mgaAllocVertexDwords( mmesa, 6*VERTSIZE); + GLuint *wv = mgaAllocVertexDwords( mmesa, 6*vertsize); int j; *(float *)&wv[0] = tmp->v.x - sz; *(float *)&wv[1] = tmp->v.y - sz; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp->v.x + sz; *(float *)&wv[1] = tmp->v.y - sz; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp->v.x + sz; *(float *)&wv[1] = tmp->v.y + sz; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp->v.x + sz; *(float *)&wv[1] = tmp->v.y + sz; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp->v.x - sz; *(float *)&wv[1] = tmp->v.y + sz; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp->v.x - sz; *(float *)&wv[1] = tmp->v.y - sz; @@ -212,7 +135,7 @@ static __inline void mga_draw_line( mgaContextPtr mmesa, float width ) { GLuint vertsize = mmesa->vertsize; - GLuint *wv = mgaAllocVertexDwords( mmesa, 6 * VERTSIZE ); + GLuint *wv = mgaAllocVertexDwords( mmesa, 6 * vertsize ); float dx, dy, ix, iy; int j; @@ -232,37 +155,37 @@ static __inline void mga_draw_line( mgaContextPtr mmesa, *(float *)&wv[1] = tmp0->v.y - iy; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp0->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp1->v.x + ix; *(float *)&wv[1] = tmp1->v.y + iy; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp1->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp0->v.x + ix; *(float *)&wv[1] = tmp0->v.y + iy; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp0->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp0->v.x - ix; *(float *)&wv[1] = tmp0->v.y - iy; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp0->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp1->v.x - ix; *(float *)&wv[1] = tmp1->v.y - iy; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp1->ui[j]; - wv += VERTSIZE; + wv += vertsize; *(float *)&wv[0] = tmp1->v.x + ix; *(float *)&wv[1] = tmp1->v.y + iy; for (j = 2 ; j < vertsize ; j++) wv[j] = tmp1->ui[j]; - wv += VERTSIZE; + wv += vertsize; } diff --git a/xc/lib/GL/mesa/src/drv/mga/mgavb.c b/xc/lib/GL/mesa/src/drv/mga/mgavb.c index 75073a8c6..d804814e0 100644 --- a/xc/lib/GL/mesa/src/drv/mga/mgavb.c +++ b/xc/lib/GL/mesa/src/drv/mga/mgavb.c @@ -23,7 +23,7 @@ * * Wittawat Yamwong <Wittawat.Yamwong@stud.uni-hannover.de> */ -/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgavb.c,v 1.7 2000/11/08 05:02:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgavb.c,v 1.8 2001/01/08 01:07:19 martin Exp $ */ #include "mgacontext.h" #include "mgavb.h" @@ -297,11 +297,6 @@ void mgaChooseRasterSetupFunc(GLcontext *ctx) mmesa->tmu_source[0] = 1; mmesa->tex_dest[1] = MGA_TEX0_BIT; - /* This doesn't work for non-RGBA textures - if (ctx->Texture.Unit[1].EnvMode == GL_REPLACE) - funcindex &= ~MGA_RGBA_BIT; - */ - if (ctx->Texture.Unit[0].EnvMode == GL_BLEND && mmesa->envcolor) { @@ -315,15 +310,6 @@ void mgaChooseRasterSetupFunc(GLcontext *ctx) } } -/* if (mmesa->multitex == 0) { */ -/* mmesa->tmu_source[1] = mmesa->tmu_source[0]; */ -/* mmesa->tex_dest[1] = mmesa->tex_dest[0]; */ -/* mmesa->vertsize = 10; */ -/* mmesa->multitex = 1; */ -/* funcindex |= MGA_TEX0_BIT|MGA_TEX1_BIT; */ -/* } */ - -/* mmesa->vertsize = 10; */ if (multi != mmesa->multitex) mmesa->new_state |= MGA_NEW_WARP; @@ -424,7 +410,7 @@ void mgaDDDoRasterSetup( struct vertex_buffer *VB ) /* Can't lock, won't lock */ - REFRESH_DRAWABLE_INFO( mmesa ); +/* REFRESH_DRAWABLE_INFO( mmesa ); */ if (VB->Type == VB_CVA_PRECALC) mgaDDPartialRasterSetup( VB ); diff --git a/xc/lib/GL/mesa/src/drv/r128/Imakefile b/xc/lib/GL/mesa/src/drv/r128/Imakefile index 7e15a1074..9832bc2c3 100644 --- a/xc/lib/GL/mesa/src/drv/r128/Imakefile +++ b/xc/lib/GL/mesa/src/drv/r128/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/r128/Imakefile,v 1.11 2000/12/12 23:24:28 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/r128/Imakefile,v 1.12 2001/02/16 01:26:11 dawes Exp $ #include <Threads.tmpl> @@ -373,7 +373,7 @@ NormalLintTarget($(SRCS)) LIBNAME = r128_dri.so ALL_OBJS = $(OBJS) ALL_DEPS = DONE -SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +SharedDriModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) #ifdef GlxSoProf diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_context.c b/xc/lib/GL/mesa/src/drv/r128/r128_context.c index e11a47a47..f0749ff10 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_context.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_context.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_context.c,v 1.4 2000/12/12 17:17:06 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_context.c,v 1.5 2001/01/08 01:07:20 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -60,188 +60,176 @@ int R128_DEBUG = (0 ); #endif -/* Create the device specific context */ -GLboolean r128CreateContext(Display *dpy, GLvisual *glVisual, - __DRIcontextPrivate *driContextPriv) +/* Create the device specific context. + */ +GLboolean r128CreateContext( Display *dpy, GLvisual *glVisual, + __DRIcontextPrivate *driContextPriv ) { - r128ContextPtr r128ctx; - r128ScreenPtr r128scrn; - GLcontext *ctx = driContextPriv->mesaContext; - int i; - char *v; - __DRIscreenPrivate *sPriv = driContextPriv->driScreenPriv; - - r128ctx = (r128ContextPtr)Xcalloc(1, sizeof(*r128ctx)); - if (!r128ctx) return GL_FALSE; - - /* Initialize r128Context */ - r128ctx->glCtx = ctx; - r128ctx->display = dpy; - - r128ctx->driContext = driContextPriv; - r128ctx->driScreen = sPriv; - r128ctx->driDrawable = NULL; /* Set by XMesaMakeCurrent */ - - r128ctx->hHWContext = driContextPriv->hHWContext; - r128ctx->driFd = sPriv->fd; - r128ctx->driHwLock = &sPriv->pSAREA->lock; + GLcontext *ctx = driContextPriv->mesaContext; + __DRIscreenPrivate *sPriv = driContextPriv->driScreenPriv; + r128ContextPtr rmesa; + r128ScreenPtr r128scrn; + int i; + + rmesa = (r128ContextPtr) CALLOC( sizeof(*rmesa) ); + if ( !rmesa ) return GL_FALSE; + + rmesa->glCtx = ctx; + rmesa->display = dpy; + + rmesa->driContext = driContextPriv; + rmesa->driScreen = sPriv; + rmesa->driDrawable = NULL; /* Set by XMesaMakeCurrent */ + + rmesa->hHWContext = driContextPriv->hHWContext; + rmesa->driHwLock = &sPriv->pSAREA->lock; + rmesa->driFd = sPriv->fd; + + r128scrn = rmesa->r128Screen = (r128ScreenPtr)(sPriv->private); + + rmesa->sarea = (R128SAREAPrivPtr)((char *)sPriv->pSAREA + + sizeof(XF86DRISAREARec)); + + rmesa->tmp_matrix = (GLfloat *) ALIGN_MALLOC( 16 * sizeof(GLfloat), 16 ); + if ( !rmesa->tmp_matrix ) { + FREE( rmesa ); + return GL_FALSE; + } + + rmesa->CurrentTexObj[0] = NULL; + rmesa->CurrentTexObj[1] = NULL; + + make_empty_list( &rmesa->SwappedOut ); + + for ( i = 0 ; i < r128scrn->numTexHeaps ; i++ ) { + make_empty_list( &rmesa->TexObjList[i] ); + rmesa->texHeap[i] = mmInit( 0, r128scrn->texSize[i] ); + rmesa->lastTexAge[i] = -1; + } + rmesa->lastTexHeap = r128scrn->numTexHeaps; + + rmesa->RenderIndex = -1; /* Impossible value */ + rmesa->OnFastPath = 0; + + rmesa->vert_buf = NULL; + rmesa->num_verts = 0; + + rmesa->elt_buf = NULL; + rmesa->retained_buf = NULL; + rmesa->vert_heap = r128scrn->buffers->list->address; + + /* KW: Set the maximum texture size small enough that we can + * guarentee that both texture units can bind a maximal texture + * and have them both in on-card memory at once. (Kevin or + * Gareth: Please check these numbers are OK) + */ + if ( r128scrn->texSize[0] < 2*1024*1024 ) { + ctx->Const.MaxTextureLevels = 9; + ctx->Const.MaxTextureSize = (1 << 8); + } else if ( r128scrn->texSize[0] < 8*1024*1024 ) { + ctx->Const.MaxTextureLevels = 10; + ctx->Const.MaxTextureSize = (1 << 9); + } else { + ctx->Const.MaxTextureLevels = 11; + ctx->Const.MaxTextureSize = (1 << 10); + } + + ctx->Const.MaxTextureUnits = 2; - r128scrn = r128ctx->r128Screen = (r128ScreenPtr)(sPriv->private); - - r128ctx->sarea = (R128SAREAPriv *)((char *)sPriv->pSAREA + - sizeof(XF86DRISAREARec)); - - r128ctx->CurrentTexObj[0] = NULL; - r128ctx->CurrentTexObj[1] = NULL; - make_empty_list(&r128ctx->SwappedOut); - for (i = 0; i < r128scrn->NRTexHeaps; i++) { - make_empty_list(&r128ctx->TexObjList[i]); - r128ctx->texHeap[i] = mmInit(0, r128scrn->texSize[i]); - r128ctx->lastTexAge[i] = -1; - } - r128ctx->lastTexHeap = r128scrn->NRTexHeaps; - - r128ctx->DepthSize = glVisual->DepthBits; - r128ctx->StencilSize = glVisual->StencilBits; - - r128ctx->useFastPath = GL_FALSE; - r128ctx->lod_bias = 0x3f; +#if ENABLE_PERF_BOXES + if ( getenv( "LIBGL_PERFORMANCE_BOXES" ) ) { + rmesa->boxes = 1; + } else { + rmesa->boxes = 0; + } +#endif - r128ctx->num_verts = 0; - r128ctx->vert_buf = NULL; + ctx->DriverCtx = (void *)rmesa; - r128ctx->elt_buf = NULL; - r128ctx->retained_buf = NULL; - r128ctx->vert_heap = r128ctx->r128Screen->buffers->list->address; + r128DDInitExtensions( ctx ); -#if 0 - r128ctx->CCEbuf= (CARD32 *)MALLOC(sizeof(*r128ctx->CCEbuf) * - r128scrn->ringEntries); - r128ctx->CCEcount = 0; -#endif + r128DDInitDriverFuncs( ctx ); + r128DDInitIoctlFuncs( ctx ); + r128DDInitStateFuncs( ctx ); + r128DDInitSpanFuncs( ctx ); + r128DDInitTextureFuncs( ctx ); - if ((v = getenv("LIBGL_CCE_TIMEOUT"))) - r128ctx->CCEtimeout = strtoul(v, NULL, 10); - else - r128ctx->CCEtimeout = (R128_DEFAULT_TOTAL_CCE_TIMEOUT / - R128_DEFAULT_CCE_TIMEOUT); - if (r128ctx->CCEtimeout <= 0) r128ctx->CCEtimeout = 1; - - /* Initialize GLcontext */ - ctx->DriverCtx = (void *)r128ctx; - - r128DDInitExtensions(ctx); - - r128DDInitDriverFuncs(ctx); - r128DDInitIoctlFuncs(ctx); - r128DDInitStateFuncs(ctx); - r128DDInitSpanFuncs(ctx); - r128DDInitTextureFuncs(ctx); - - ctx->Driver.TriangleCaps = (DD_TRI_CULL - | DD_TRI_LIGHT_TWOSIDE - | DD_TRI_OFFSET); - - /* Ask Mesa to clip fog coordinates for us - */ - ctx->TriangleCaps |= DD_CLIP_FOG_COORD; - - /* Reset Mesa's current 2D texture pointers to the driver's textures */ - ctx->Shared->DefaultD[2][0].DriverData = NULL; - ctx->Shared->DefaultD[2][1].DriverData = NULL; - - /* KW: Set the maximum texture size small enough that we can - * guarentee that both texture units can bind a maximal texture - * and have them both in on-card memory at once. (Kevin or - * Gareth: Please check these numbers are OK) - */ - if (r128scrn->texSize[0] < 2*1024*1024) { - ctx->Const.MaxTextureLevels = 9; - ctx->Const.MaxTextureSize = 1<<8; - } else if (r128scrn->texSize[0] < 8*1024*1024) { - ctx->Const.MaxTextureLevels = 10; - ctx->Const.MaxTextureSize = 1<<9; - } else { - ctx->Const.MaxTextureLevels = 11; - ctx->Const.MaxTextureSize = 1<<10; - } - - ctx->Const.MaxTextureUnits = 2; + ctx->Driver.TriangleCaps = (DD_TRI_CULL | + DD_TRI_LIGHT_TWOSIDE | + DD_TRI_STIPPLE | + DD_TRI_OFFSET); -#if ENABLE_PERF_BOXES - if (getenv("LIBGL_PERFORMANCE_BOXES")) - r128ctx->boxes = 1; - else - r128ctx->boxes = 0; -#endif + /* Ask Mesa to clip fog coordinates for us. + */ + ctx->TriangleCaps |= DD_CLIP_FOG_COORD; - /* If Mesa has current a vertex buffer, make sure the driver's VB - data is up to date */ - if (ctx->VB) r128DDRegisterVB(ctx->VB); + if ( ctx->VB ) + r128DDRegisterVB( ctx->VB ); - /* Register the fast path */ - if (ctx->NrPipelineStages) - ctx->NrPipelineStages = - r128DDRegisterPipelineStages(ctx->PipelineStage, - ctx->PipelineStage, - ctx->NrPipelineStages); + if ( ctx->NrPipelineStages ) { + ctx->NrPipelineStages = + r128DDRegisterPipelineStages( ctx->PipelineStage, + ctx->PipelineStage, + ctx->NrPipelineStages ); + } - r128DDInitState(r128ctx); + r128DDInitState( rmesa ); - driContextPriv->driverPrivate = (void *)r128ctx; + driContextPriv->driverPrivate = (void *)rmesa; - return GL_TRUE; + return GL_TRUE; } -/* Destroy the device specific context */ -void r128DestroyContext(r128ContextPtr r128ctx) +/* Destroy the device specific context. + */ +void r128DestroyContext( r128ContextPtr rmesa ) { - if (r128ctx) { - r128TexObjPtr t, next_t; - int i; + if ( rmesa ) { + r128TexObjPtr t, next_t; + int i; -#if 0 - FREE( r128ctx->CCEbuf ); -#endif + for ( i = 0 ; i < rmesa->r128Screen->numTexHeaps ; i++ ) { + foreach_s ( t, next_t, &rmesa->TexObjList[i] ) { + r128DestroyTexObj( rmesa, t ); + } + mmDestroy( rmesa->texHeap[i] ); + } - for (i = 0; i < r128ctx->r128Screen->NRTexHeaps; i++) { - foreach_s (t, next_t, &r128ctx->TexObjList[i]) - r128DestroyTexObj(r128ctx, t); - } + foreach_s ( t, next_t, &rmesa->SwappedOut ) { + r128DestroyTexObj( rmesa, t ); + } - foreach_s (t, next_t, &r128ctx->SwappedOut) - r128DestroyTexObj(r128ctx, t); - - Xfree(r128ctx); - } + ALIGN_FREE( rmesa->tmp_matrix ); + FREE( rmesa ); + } #if 0 - glx_fini_prof(); + /* Use this to force shared object profiling. */ + glx_fini_prof(); #endif } /* Load the device specific context into the hardware. The actual - setting of the hardware state is done in the r128UpdateHWState(). */ -r128ContextPtr r128MakeCurrent(r128ContextPtr oldCtx, - r128ContextPtr newCtx, - __DRIdrawablePrivate *dPriv) + * setting of the hardware state is done in the r128UpdateHWState(). + */ +r128ContextPtr r128MakeCurrent( r128ContextPtr oldCtx, + r128ContextPtr newCtx, + __DRIdrawablePrivate *dPriv ) { - if (oldCtx) { - if (!R128CCE_USE_RING_BUFFER(newCtx->r128Screen->CCEMode)) - newCtx->dirty |= R128_REQUIRE_QUIESCENCE; - if (oldCtx != newCtx) { - newCtx->new_state |= R128_NEW_CONTEXT; - newCtx->dirty = R128_UPLOAD_ALL; - } - if (oldCtx->driDrawable != dPriv) { - newCtx->new_state |= R128_NEW_WINDOW; - } - } else { - newCtx->new_state |= R128_NEW_CONTEXT; - newCtx->dirty = R128_UPLOAD_ALL; - } - - newCtx->driDrawable = dPriv; - - return newCtx; + if ( oldCtx ) { + if ( oldCtx != newCtx ) { + newCtx->new_state |= R128_NEW_CONTEXT; + newCtx->dirty = R128_UPLOAD_ALL; + } + if ( oldCtx->driDrawable != dPriv ) { + newCtx->new_state |= R128_NEW_WINDOW | R128_NEW_CLIP; + } + } else { + newCtx->new_state |= R128_NEW_CONTEXT; + newCtx->dirty = R128_UPLOAD_ALL; + } + + newCtx->driDrawable = dPriv; + + return newCtx; } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_context.h b/xc/lib/GL/mesa/src/drv/r128/r128_context.h index a6f5b31ae..8c5e2fdfc 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_context.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_context.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_context.h,v 1.4 2000/12/12 17:17:06 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_context.h,v 1.5 2001/01/08 01:07:20 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -33,8 +33,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. * */ -#ifndef _R128_CONTEXT_H_ -#define _R128_CONTEXT_H_ +#ifndef __R128_CONTEXT_H__ +#define __R128_CONTEXT_H__ #ifdef GLX_DIRECT_RENDERING @@ -67,7 +67,7 @@ typedef struct r128_context *r128ContextPtr; #define R128_NEW_CLIP 0x0008 #define R128_NEW_CULL 0x0010 #define R128_NEW_MASKS 0x0020 -#define R128_NEW_RENDER 0x0040 +#define R128_NEW_RENDER_NOT 0x0040 #define R128_NEW_WINDOW 0x0080 #define R128_NEW_TEXTURE 0x0100 #define R128_NEW_CONTEXT 0x0200 @@ -101,168 +101,155 @@ typedef void (*r128_interp_func)( GLfloat t, struct r128_elt_tab { void (*emit_unclipped_verts)( struct vertex_buffer *VB ); - void (*build_tri_verts)( r128ContextPtr r128ctx, + void (*build_tri_verts)( r128ContextPtr rmesa, struct vertex_buffer *VB, GLfloat *O, GLuint *elt ); void (*interp)( GLfloat t, GLfloat *O, const GLfloat *I, const GLfloat *J ); - void (*project_and_emit_verts)( r128ContextPtr r128ctx, + void (*project_and_emit_verts)( r128ContextPtr rmesa, const GLfloat *verts, GLuint *elts, - int nr ); + GLuint nr ); }; struct r128_context { - GLcontext *glCtx; /* Mesa context */ + GLcontext *glCtx; /* Mesa context */ /* Driver and hardware state management */ - GLuint new_state; - GLuint dirty; /* Hardware state to be updated */ - r128_context_regs_t setup; + GLuint new_state; + GLuint dirty; /* Hardware state to be updated */ + r128_context_regs_t setup; - GLuint vertsize; - CARD32 vc_format; - GLfloat depth_scale; + GLuint vertsize; + GLuint vc_format; + GLfloat depth_scale; - CARD32 Color; /* Current draw color */ - CARD32 ClearColor; /* Color used to clear color buffer */ - CARD32 ClearDepth; /* Value used to clear depth buffer */ - CARD32 ClearStencil; /* Value used to clear stencil */ + CARD32 Color; /* Current draw color */ + CARD32 ClearColor; /* Color used to clear color buffer */ + CARD32 ClearDepth; /* Value used to clear depth buffer */ + CARD32 ClearStencil; /* Value used to clear stencil */ /* Map GL texture units onto hardware */ - GLint multitex; - GLint tmu_source[2]; - GLint tex_dest[2]; - GLuint blend_flags; - CARD32 env_color; - GLint lod_bias; + GLint multitex; + GLint tmu_source[2]; + GLint tex_dest[2]; + GLuint tex_combine[2]; + GLuint blend_flags; + GLuint env_color; /* Texture object bookkeeping */ - r128TexObjPtr CurrentTexObj[2]; - r128TexObj TexObjList[R128_NR_TEX_HEAPS]; - r128TexObj SwappedOut; - memHeap_t *texHeap[R128_NR_TEX_HEAPS]; - GLint lastTexAge[R128_NR_TEX_HEAPS]; - GLint lastTexHeap; + r128TexObjPtr CurrentTexObj[2]; + r128TexObj TexObjList[R128_NR_TEX_HEAPS]; + r128TexObj SwappedOut; + memHeap_t *texHeap[R128_NR_TEX_HEAPS]; + GLint lastTexAge[R128_NR_TEX_HEAPS]; + GLint lastTexHeap; /* Current rendering state, fallbacks */ - points_func PointsFunc; - line_func LineFunc; - triangle_func TriangleFunc; - quad_func QuadFunc; + points_func PointsFunc; + line_func LineFunc; + triangle_func TriangleFunc; + quad_func QuadFunc; - CARD32 IndirectTriangles; - CARD32 Fallback; + GLuint IndirectTriangles; + GLuint Fallback; /* Fast path */ - GLuint useFastPath; - GLuint SetupIndex; - GLuint SetupDone; - GLuint RenderIndex; - r128_interp_func interp; + GLuint SetupIndex; + GLuint SetupDone; + GLuint RenderIndex; + GLuint OnFastPath; + r128_interp_func interp; + GLfloat *tmp_matrix; /* Vertex buffers */ - drmBufPtr vert_buf; - GLuint num_verts; + drmBufPtr vert_buf; + GLuint num_verts; /* Elt path */ - drmBufPtr elt_buf, retained_buf; - GLushort *first_elt, *next_elt; - GLfloat *next_vert, *vert_heap; - GLushort next_vert_index; - GLushort first_vert_index; - GLuint elt_vertsize; - struct r128_elt_tab *elt_tab; - GLfloat device_matrix[16]; - - /* CCE command packets + drmBufPtr elt_buf, retained_buf; + GLushort *first_elt, *next_elt; + GLfloat *next_vert, *vert_heap; + GLushort next_vert_index; + GLushort first_vert_index; + GLuint elt_vertsize; + struct r128_elt_tab *elt_tab; + GLfloat device_matrix[16]; + + /* Page flipping */ -#if 0 - CARD32 *CCEbuf; /* buffer to submit to CCE */ - GLuint CCEcount; /* number of dwords in CCEbuf */ -#endif - GLint CCEtimeout; /* number of times to loop - before exiting */ + GLuint doPageFlip; + GLuint currentPage; - /* Visual, drawable, cliprect and scissor information + /* Drawable, cliprect and scissor information */ - GLint DepthSize; /* Bits in depth buffer */ - GLint StencilSize; /* Bits in stencil buffer */ - - GLenum DrawBuffer; /* Optimize draw buffer update */ - GLint drawOffset, drawPitch; - GLint drawX, drawY; - GLint readOffset, readPitch; - GLint readX, readY; + GLenum DrawBuffer; /* Optimize draw buffer update */ + GLint drawOffset, drawPitch; + GLint readOffset, readPitch; - GLuint numClipRects; /* Cliprects for the draw buffer */ - XF86DRIClipRectPtr pClipRects; + GLuint numClipRects; /* Cliprects for the draw buffer */ + XF86DRIClipRectPtr pClipRects; - GLuint scissor; - XF86DRIClipRectRec ScissorRect; /* Current software scissor */ + GLuint scissor; + XF86DRIClipRectRec ScissorRect; /* Current software scissor */ /* Mirrors of some DRI state */ - Display *display; /* X server display */ + Display *display; /* X server display */ __DRIcontextPrivate *driContext; /* DRI context */ __DRIscreenPrivate *driScreen; /* DRI screen */ __DRIdrawablePrivate *driDrawable; /* DRI drawable bound to this ctx */ - drmContext hHWContext; - drmLock *driHwLock; - int driFd; + drmContext hHWContext; + drmLock *driHwLock; + int driFd; - r128ScreenPtr r128Screen; /* Screen private DRI data */ - R128SAREAPriv *sarea; /* Private SAREA data */ + r128ScreenPtr r128Screen; /* Screen private DRI data */ + R128SAREAPrivPtr sarea; /* Private SAREA data */ /* Performance counters - */ - GLuint boxes; /* Draw performance boxes */ - GLuint hardwareWentIdle; - GLuint c_clears; - GLuint c_drawWaits; - GLuint c_textureSwaps; - GLuint c_textureBytes; - GLuint c_vertexBuffers; + */ + GLuint boxes; /* Draw performance boxes */ + GLuint hardwareWentIdle; + GLuint c_clears; + GLuint c_drawWaits; + GLuint c_textureSwaps; + GLuint c_textureBytes; + GLuint c_vertexBuffers; }; #define R128_CONTEXT(ctx) ((r128ContextPtr)(ctx->DriverCtx)) -#define R128_MESACTX(r128ctx) ((r128ctx)->glCtx) -#define R128_DRIDRAWABLE(r128ctx) ((r128ctx)->driDrawable) -#define R128_DRISCREEN(r128ctx) ((r128ctx)->r128Screen->driScreen) - -#define R128_IS_PLAIN( r128ctx ) \ - (r128ctx->r128Screen->chipset == R128_CARD_TYPE_R128) -#define R128_IS_PRO( r128ctx ) \ - (r128ctx->r128Screen->chipset == R128_CARD_TYPE_R128_PRO) -#define R128_IS_MOBILITY( r128ctx ) \ - (r128ctx->r128Screen->chipset == R128_CARD_TYPE_R128_MOBILITY) +#define R128_IS_PLAIN( rmesa ) \ + (rmesa->r128Screen->chipset == R128_CARD_TYPE_R128) +#define R128_IS_PRO( rmesa ) \ + (rmesa->r128Screen->chipset == R128_CARD_TYPE_R128_PRO) +#define R128_IS_MOBILITY( rmesa ) \ + (rmesa->r128Screen->chipset == R128_CARD_TYPE_R128_MOBILITY) -extern GLboolean r128CreateContext(Display *dpy, GLvisual *glVisual, - __DRIcontextPrivate *driContextPriv); -extern void r128DestroyContext(r128ContextPtr r128ctx); -extern r128ContextPtr r128MakeCurrent(r128ContextPtr oldCtx, - r128ContextPtr newCtx, - __DRIdrawablePrivate *dPriv); +extern GLboolean r128CreateContext( Display *dpy, GLvisual *glVisual, + __DRIcontextPrivate *driContextPriv ); +extern void r128DestroyContext( r128ContextPtr rmesa ); +extern r128ContextPtr r128MakeCurrent( r128ContextPtr oldCtx, + r128ContextPtr newCtx, + __DRIdrawablePrivate *dPriv ); /* ================================================================ * Debugging: */ #define DEBUG 0 -#define DEBUG_LOCKING 0 #define ENABLE_PERF_BOXES 0 #if DEBUG @@ -280,4 +267,4 @@ extern int R128_DEBUG; #define DEBUG_VERBOSE_2D 0x40 #endif -#endif /* _R128_CONTEXT_H_ */ +#endif /* __R128_CONTEXT_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_dd.c b/xc/lib/GL/mesa/src/drv/r128/r128_dd.c index a16b04276..8d9473093 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_dd.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_dd.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_dd.c,v 1.6 2000/12/15 22:48:38 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_dd.c,v 1.9 2001/01/11 03:36:54 tsi Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,8 +28,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -45,51 +45,56 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "X86/common_x86_asm.h" #endif -#define R128_DATE "20001215" +#define R128_DATE "20010101" -/* Return the current color buffer size */ + +/* Return the width and height of the current color buffer. + */ static void r128DDGetBufferSize( GLcontext *ctx, GLuint *width, GLuint *height ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - *width = r128ctx->driDrawable->w; - *height = r128ctx->driDrawable->h; + LOCK_HARDWARE( rmesa ); + *width = rmesa->driDrawable->w; + *height = rmesa->driDrawable->h; + UNLOCK_HARDWARE( rmesa ); } -/* Return various strings for glGetString() */ +/* Return various strings for glGetString(). + */ static const GLubyte *r128DDGetString( GLcontext *ctx, GLenum name ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); static GLubyte buffer[128]; switch ( name ) { case GL_VENDOR: - return (const GLubyte *)"VA Linux Systems, Inc."; + return (GLubyte *)"VA Linux Systems, Inc."; case GL_RENDERER: sprintf((void *)buffer, "Mesa DRI Rage128 " R128_DATE ); /* Append any chipset-specific information. */ - if ( R128_IS_PRO( r128ctx ) ) { - strncat( buffer, " Pro", 4 ); + if ( R128_IS_PRO( rmesa ) ) { + strncat( (pointer)buffer, " Pro", 4 ); } - if ( R128_IS_MOBILITY( r128ctx ) ) { - strncat( buffer, " M3", 3 ); + if ( R128_IS_MOBILITY( rmesa ) ) { + strncat( (pointer)buffer, " M3", 3 ); } /* Append any AGP-specific information. */ - switch ( r128ctx->r128Screen->AGPMode ) { + switch ( rmesa->r128Screen->AGPMode ) { case 1: - strncat( buffer, " AGP 1x", 7 ); + strncat( (pointer)buffer, " AGP 1x", 7 ); break; case 2: - strncat( buffer, " AGP 2x", 7 ); + strncat( (pointer)buffer, " AGP 2x", 7 ); break; case 4: - strncat( buffer, " AGP 4x", 7 ); + strncat( (pointer)buffer, " AGP 4x", 7 ); break; } @@ -97,17 +102,17 @@ static const GLubyte *r128DDGetString( GLcontext *ctx, GLenum name ) */ #ifdef USE_X86_ASM if ( gl_x86_cpu_features ) { - strncat( buffer, " x86", 4 ); + strncat( (pointer)buffer, " x86", 4 ); } #endif #ifdef USE_3DNOW_ASM if ( cpu_has_3dnow ) { - strncat( buffer, "/3DNow!", 7 ); + strncat( (pointer)buffer, "/3DNow!", 7 ); } #endif #ifdef USE_KATMAI_ASM if ( cpu_has_xmm ) { - strncat( buffer, "/SSE", 4 ); + strncat( (pointer)buffer, "/SSE", 4 ); } #endif return buffer; @@ -124,19 +129,19 @@ static const GLubyte *r128DDGetString( GLcontext *ctx, GLenum name ) */ static void r128DDFlush( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); #if ENABLE_PERF_BOXES - if ( r128ctx->boxes ) { - LOCK_HARDWARE( r128ctx ); - r128PerformanceBoxesLocked( r128ctx ); - UNLOCK_HARDWARE( r128ctx ); + if ( rmesa->boxes ) { + LOCK_HARDWARE( rmesa ); + r128PerformanceBoxesLocked( rmesa ); + UNLOCK_HARDWARE( rmesa ); } /* Log the performance counters if necessary */ - r128PerformanceCounters( r128ctx ); + r128PerformanceCounters( rmesa ); #endif } @@ -145,21 +150,22 @@ static void r128DDFlush( GLcontext *ctx ) */ static void r128DDFinish( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); #if ENABLE_PERF_BOXES /* Bump the performance counter */ - r128ctx->c_drawWaits++; + rmesa->c_drawWaits++; #endif r128DDFlush( ctx ); - r128WaitForIdle( r128ctx ); + r128WaitForIdle( rmesa ); } -/* Return various parameters requested by Mesa (this is deprecated) */ +/* Return various parameters requested by Mesa (this is deprecated). + */ static GLint r128DDGetParameteri( const GLcontext *ctx, GLint param ) { - switch (param) { + switch ( param ) { case DD_HAVE_HARDWARE_FOG: return 1; default: @@ -167,45 +173,49 @@ static GLint r128DDGetParameteri( const GLcontext *ctx, GLint param ) } } -/* Initialize the extensions supported by this driver */ +/* Initialize the extensions supported by this driver. + */ void r128DDInitExtensions( GLcontext *ctx ) { - /* FIXME: Are there other extensions to enable/disable??? */ - gl_extensions_disable( ctx, "GL_EXT_shared_texture_palette" ); - gl_extensions_disable( ctx, "GL_EXT_paletted_texture" ); - gl_extensions_disable( ctx, "GL_EXT_point_parameters" ); - gl_extensions_disable( ctx, "ARB_imaging" ); - gl_extensions_disable( ctx, "GL_EXT_blend_minmax" ); + gl_extensions_disable( ctx, "GL_ARB_imaging" ); + gl_extensions_disable( ctx, "GL_ARB_texture_compression" ); + gl_extensions_disable( ctx, "GL_ARB_texture_cube_map" ); + + gl_extensions_disable( ctx, "GL_EXT_blend_color" ); gl_extensions_disable( ctx, "GL_EXT_blend_logic_op" ); + gl_extensions_disable( ctx, "GL_EXT_blend_minmax" ); gl_extensions_disable( ctx, "GL_EXT_blend_subtract" ); - gl_extensions_disable( ctx, "GL_INGR_blend_func_separate" ); + gl_extensions_disable( ctx, "GL_EXT_convolution" ); + gl_extensions_disable( ctx, "GL_EXT_paletted_texture" ); + gl_extensions_disable( ctx, "GL_EXT_point_parameters" ); + gl_extensions_disable( ctx, "GL_EXT_shared_texture_palette" ); + gl_extensions_disable( ctx, "GL_EXT_texture_env_combine" ); - if ( getenv( "LIBGL_NO_MULTITEXTURE" ) ) - gl_extensions_disable( ctx, "GL_ARB_multitexture" ); + gl_extensions_disable( ctx, "GL_HP_occlusion_test" ); + + gl_extensions_disable( ctx, "GL_INGR_blend_func_separate" ); gl_extensions_disable( ctx, "GL_SGI_color_matrix" ); gl_extensions_disable( ctx, "GL_SGI_color_table" ); gl_extensions_disable( ctx, "GL_SGIX_pixel_texture" ); - gl_extensions_disable( ctx, "GL_ARB_texture_cube_map" ); - gl_extensions_disable( ctx, "GL_ARB_texture_compression" ); - gl_extensions_disable( ctx, "GL_EXT_convolution" ); } -/* Initialize the driver's misc functions */ +/* Initialize the driver's misc functions. + */ void r128DDInitDriverFuncs( GLcontext *ctx ) { - ctx->Driver.GetBufferSize = r128DDGetBufferSize; - ctx->Driver.GetString = r128DDGetString; - ctx->Driver.Finish = r128DDFinish; - ctx->Driver.Flush = r128DDFlush; + ctx->Driver.GetBufferSize = r128DDGetBufferSize; + ctx->Driver.GetString = r128DDGetString; + ctx->Driver.Finish = r128DDFinish; + ctx->Driver.Flush = r128DDFlush; - ctx->Driver.Error = NULL; - ctx->Driver.GetParameteri = r128DDGetParameteri; + ctx->Driver.Error = NULL; + ctx->Driver.GetParameteri = r128DDGetParameteri; - ctx->Driver.DrawPixels = NULL; - ctx->Driver.Bitmap = NULL; + ctx->Driver.DrawPixels = NULL; + ctx->Driver.Bitmap = NULL; - ctx->Driver.RegisterVB = r128DDRegisterVB; - ctx->Driver.UnregisterVB = r128DDUnregisterVB; - ctx->Driver.BuildPrecalcPipeline = r128DDBuildPrecalcPipeline; + ctx->Driver.RegisterVB = r128DDRegisterVB; + ctx->Driver.UnregisterVB = r128DDUnregisterVB; + ctx->Driver.BuildPrecalcPipeline = r128DDBuildPrecalcPipeline; } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_dd.h b/xc/lib/GL/mesa/src/drv/r128/r128_dd.h index 447745c43..17061f332 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_dd.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_dd.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_dd.h,v 1.2 2000/12/04 19:21:45 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_dd.h,v 1.3 2001/01/08 01:07:20 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,18 +28,18 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_DD_H_ -#define _R128_DD_H_ +#ifndef __R128_DD_H__ +#define __R128_DD_H__ #ifdef GLX_DIRECT_RENDERING -extern void r128DDInitExtensions(GLcontext *ctx); -extern void r128DDInitDriverFuncs(GLcontext *ctx); +extern void r128DDInitExtensions( GLcontext *ctx ); +extern void r128DDInitDriverFuncs( GLcontext *ctx ); #endif -#endif /* _R128_DD_H_ */ +#endif diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_eltpath.c b/xc/lib/GL/mesa/src/drv/r128/r128_eltpath.c index 02085932a..25548c649 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_eltpath.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_eltpath.c @@ -1,25 +1,35 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_eltpath.c,v 1.2 2000/12/07 20:26:08 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_eltpath.c,v 1.3 2001/01/08 01:07:20 martin Exp $ */ +/************************************************************************** + +Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., + Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + /* - * GLX Hardware Device Driver for Matrox G400 - * Copyright (C) 1999 Keith Whitwell - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * Authors: + * Gareth Hughes <gareth@valinux.com> + * Keith Whitwell <keithw@valinux.com> * */ @@ -39,193 +49,168 @@ #include "mmath.h" #include "xform.h" -#define DEBUG_ELTPATH 0 /* Always use a full-sized stride for vertices. [FIXME] * Stride in the buffers must be a quadword multiple. */ #define CLIP_STRIDE 10 -static void fire_elts( r128ContextPtr r128ctx ) +static void fire_elts( r128ContextPtr rmesa ) { - int vertsize = r128ctx->vertsize; + GLuint vertsize = rmesa->vertsize; - LOCK_HARDWARE( r128ctx ); - - if ( DEBUG_ELTPATH ) - fprintf( stderr, "\n%s: elt=%p ret=%p vs=%d\n", - __FUNCTION__, r128ctx->elt_buf, - r128ctx->retained_buf, vertsize ); + LOCK_HARDWARE( rmesa ); /* Fire queued elements and discard that buffer if its contents * won't be referenced by future elements. */ - if ( r128ctx->elt_buf ) + if ( rmesa->elt_buf ) { - GLuint retain = (r128ctx->elt_buf == r128ctx->retained_buf); - - if ( r128ctx->first_elt != r128ctx->next_elt ) { - r128FireEltsLocked( r128ctx, - ((GLuint)r128ctx->first_elt - - (GLuint)r128ctx->elt_buf->address), - ((GLuint)r128ctx->next_elt - - (GLuint)r128ctx->elt_buf->address), + GLuint retain = (rmesa->elt_buf == rmesa->retained_buf); + + if ( rmesa->first_elt != rmesa->next_elt ) { + r128FireEltsLocked( rmesa, + ((GLuint)rmesa->first_elt - + (GLuint)rmesa->elt_buf->address), + ((GLuint)rmesa->next_elt - + (GLuint)rmesa->elt_buf->address), !retain ); } else if ( !retain ) { - r128ReleaseBufLocked( r128ctx, r128ctx->elt_buf ); + r128ReleaseBufLocked( rmesa, rmesa->elt_buf ); } - r128ctx->elt_buf = 0; + rmesa->elt_buf = 0; } - else if ( r128ctx->vert_buf ) + else if ( rmesa->vert_buf ) { - r128FlushVerticesLocked( r128ctx ); + r128FlushVerticesLocked( rmesa ); } - r128GetEltBufLocked( r128ctx ); + r128GetEltBufLocked( rmesa ); - UNLOCK_HARDWARE( r128ctx ); + UNLOCK_HARDWARE( rmesa ); /* Give the compiler a chance to optimize the divisions. */ switch ( vertsize ) { case 8: - r128ctx->next_vert_index = (GLushort) - (((r128ctx->elt_buf->idx + 1) * + rmesa->next_vert_index = (GLushort) + (((rmesa->elt_buf->idx + 1) * R128_BUFFER_SIZE / (8 * sizeof(GLuint))) - 1); - r128ctx->next_vert = (GLfloat *) - ((GLuint)r128ctx->vert_heap + - r128ctx->next_vert_index * 8 * sizeof(GLfloat)); + rmesa->next_vert = (GLfloat *) + ((GLuint)rmesa->vert_heap + + rmesa->next_vert_index * 8 * sizeof(GLfloat)); break; case 10: - r128ctx->next_vert_index = (GLushort) - (((r128ctx->elt_buf->idx + 1) * + rmesa->next_vert_index = (GLushort) + (((rmesa->elt_buf->idx + 1) * R128_BUFFER_SIZE / (10 * sizeof(GLuint))) - 1); - r128ctx->next_vert = (GLfloat *) - ((GLuint)r128ctx->vert_heap + - r128ctx->next_vert_index * 10 * sizeof(GLfloat)); + rmesa->next_vert = (GLfloat *) + ((GLuint)rmesa->vert_heap + + rmesa->next_vert_index * 10 * sizeof(GLfloat)); break; } - r128ctx->first_elt = r128ctx->next_elt = (GLushort *) - ((GLubyte *)r128ctx->elt_buf->address + R128_INDEX_PRIM_OFFSET); - - r128ctx->elt_vertsize = vertsize; - - if ( DEBUG_ELTPATH ) - fprintf( stderr, "new elt=%p idx=%d tot=%d next=%p idx=%d\n\n", - r128ctx->elt_buf, r128ctx->elt_buf->idx, - r128ctx->elt_buf->total, - r128ctx->next_vert, r128ctx->next_vert_index ); + rmesa->first_elt = rmesa->next_elt = (GLushort *) + ((GLubyte *)rmesa->elt_buf->address + R128_INDEX_PRIM_OFFSET); - { - GLint space = (GLint)((GLuint)r128ctx->next_vert - - (GLuint)r128ctx->next_elt); - if ( DEBUG_ELTPATH ) - fprintf( stderr, " new nv=%p ne=%p space=%d\n", - r128ctx->next_vert, r128ctx->next_elt, space ); - } + rmesa->elt_vertsize = vertsize; } -static void release_bufs( r128ContextPtr r128ctx ) +static void release_bufs( r128ContextPtr rmesa ) { - if ( DEBUG_ELTPATH ) - fprintf( stderr, "%s: %d idx=%d\n", - __FUNCTION__, - r128ctx->retained_buf && - r128ctx->retained_buf != r128ctx->elt_buf, - r128ctx->retained_buf ? r128ctx->retained_buf->idx : -1 ); - - if ( r128ctx->retained_buf && r128ctx->retained_buf != r128ctx->elt_buf ) + if ( rmesa->retained_buf && rmesa->retained_buf != rmesa->elt_buf ) { - LOCK_HARDWARE( r128ctx ); - if ( r128ctx->first_elt != r128ctx->next_elt ) { - r128FireEltsLocked( r128ctx, - ((GLuint)r128ctx->first_elt - - (GLuint)r128ctx->elt_buf->address), - ((GLuint)r128ctx->next_elt - - (GLuint)r128ctx->elt_buf->address), + LOCK_HARDWARE( rmesa ); + if ( rmesa->first_elt != rmesa->next_elt ) { + r128FireEltsLocked( rmesa, + ((GLuint)rmesa->first_elt - + (GLuint)rmesa->elt_buf->address), + ((GLuint)rmesa->next_elt - + (GLuint)rmesa->elt_buf->address), 0 ); - ALIGN_NEXT_ELT( r128ctx ); - r128ctx->first_elt = r128ctx->next_elt; + ALIGN_NEXT_ELT( rmesa ); + rmesa->first_elt = rmesa->next_elt; } - r128ReleaseBufLocked( r128ctx, r128ctx->retained_buf ); - UNLOCK_HARDWARE( r128ctx ); + r128ReleaseBufLocked( rmesa, rmesa->retained_buf ); + UNLOCK_HARDWARE( rmesa ); } - r128ctx->retained_buf = 0; + rmesa->retained_buf = 0; } -#define NEGATIVE(f) (f < 0) -#define DIFFERENT_SIGNS(a,b) ((a*b) < 0) -#define LINTERP( T, A, B ) ( (A) + (T) * ( (B) - (A) ) ) +#define NEGATIVE( f ) (f < 0) +#define DIFFERENT_SIGNS( a, b ) ((a * b) < 0) +#define LINTERP( T, A, B ) ((A) + (T) * ((B) - (A))) -#define INTERP_RGBA(t, out, a, b) { \ - int i; \ - for (i = 0; i < 4; i++) { \ - GLfloat fa = UBYTE_COLOR_TO_FLOAT_COLOR(a[i]); \ - GLfloat fb = UBYTE_COLOR_TO_FLOAT_COLOR(b[i]); \ - GLfloat fo = LINTERP(t, fa, fb); \ - FLOAT_COLOR_TO_UBYTE_COLOR(out[i], fo); \ - } \ +#define INTERP_RGBA( t, out, a, b ) { \ + GLuint i; \ + for ( i = 0 ; i < 4 ; i++ ) { \ + GLfloat fa = UBYTE_COLOR_TO_FLOAT_COLOR( a[i] ); \ + GLfloat fb = UBYTE_COLOR_TO_FLOAT_COLOR( b[i] ); \ + GLfloat fo = LINTERP( t, fa, fb ); \ + FLOAT_COLOR_TO_UBYTE_COLOR( out[i], fo ); \ + } \ } -#define CLIP(SGN,V,PLANE) \ -if (mask & PLANE) { \ - GLuint *indata = inlist[in]; \ - GLuint *outdata = inlist[in ^= 1]; \ - GLuint nr = n; \ - GLfloat *J = verts[indata[nr-1]]; \ - GLfloat dpJ = (SGN J[V]) + J[3]; \ - \ - for (i = n = 0 ; i < nr ; i++) { \ - GLuint elt_i = indata[i]; \ - GLfloat *I = verts[elt_i]; \ - GLfloat dpI = (SGN I[V]) + I[3]; \ - \ - if (DIFFERENT_SIGNS(dpI, dpJ)) { \ - GLfloat *O = verts[next_vert]; \ - outdata[n++] = next_vert++; \ - \ - if (NEGATIVE(dpI)) { \ - GLfloat t = dpI / (dpI - dpJ); \ - interp(t, O, I, J); \ - } \ - else \ - { \ - GLfloat t = dpJ / (dpJ - dpI); \ - interp(t, O, J, I); \ - } \ - } \ - \ - if (!NEGATIVE(dpI)) \ - outdata[n++] = elt_i; \ - \ - J = I; \ - dpJ = dpI; \ - } \ - \ - if (n < 3) return; \ -} +#define CLIP( SGN, V, PLANE ) \ +do { \ + if ( mask & PLANE ) { \ + GLuint *indata = inlist[in]; \ + GLuint *outdata = inlist[in ^= 1]; \ + GLuint nr = n; \ + GLfloat *J = verts[indata[nr-1]]; \ + GLfloat dpJ = (SGN J[V]) + J[3]; \ + \ + for ( i = n = 0 ; i < nr ; i++ ) { \ + GLuint elt_i = indata[i]; \ + GLfloat *I = verts[elt_i]; \ + GLfloat dpI = (SGN I[V]) + I[3]; \ + \ + if ( DIFFERENT_SIGNS( dpI, dpJ ) ) { \ + GLfloat *O = verts[next_vert]; \ + outdata[n++] = next_vert++; \ + \ + if ( NEGATIVE( dpI ) ) { \ + GLfloat t = dpI / (dpI - dpJ); \ + interp( t, O, I, J ); \ + } \ + else \ + { \ + GLfloat t = dpJ / (dpJ - dpI); \ + interp( t, O, J, I ); \ + } \ + } \ + \ + if ( !NEGATIVE( dpI ) ) \ + outdata[n++] = elt_i; \ + \ + J = I; \ + dpJ = dpI; \ + } \ + \ + if ( n < 3 ) return; \ + } \ +} while (0) -static void r128_tri_clip( r128ContextPtr r128ctx, +static void r128_tri_clip( r128ContextPtr rmesa, struct vertex_buffer *VB, GLuint *elt, GLubyte mask ) { - struct r128_elt_tab *tab = r128ctx->elt_tab; + struct r128_elt_tab *tab = rmesa->elt_tab; r128_interp_func interp = tab->interp; - GLint vertsize = r128ctx->vertsize; + GLuint vertsize = rmesa->vertsize; GLuint inlist[2][VB_MAX_CLIPPED_VERTS]; GLuint in = 0; GLuint n = 3, next_vert = 3; @@ -235,55 +220,44 @@ static void r128_tri_clip( r128ContextPtr r128ctx, /* Build temporary vertices in clipspace. This is the potential * downside to this path. */ - tab->build_tri_verts( r128ctx, VB, (GLfloat *)verts, elt ); + tab->build_tri_verts( rmesa, VB, (GLfloat *)verts, elt ); inlist[0][0] = 0; inlist[0][1] = 1; inlist[0][2] = 2; - CLIP(-,0,CLIP_RIGHT_BIT); - CLIP(+,0,CLIP_LEFT_BIT); - CLIP(-,1,CLIP_TOP_BIT); - CLIP(+,1,CLIP_BOTTOM_BIT); - CLIP(-,2,CLIP_FAR_BIT); - CLIP(+,2,CLIP_NEAR_BIT); + CLIP( -, 0, CLIP_RIGHT_BIT ); + CLIP( +, 0, CLIP_LEFT_BIT ); + CLIP( -, 1, CLIP_TOP_BIT ); + CLIP( +, 1, CLIP_BOTTOM_BIT ); + CLIP( -, 2, CLIP_FAR_BIT ); + CLIP( +, 2, CLIP_NEAR_BIT ); { GLuint *out = inlist[in]; - GLint space = (GLint)((GLuint)r128ctx->next_vert - - (GLuint)r128ctx->next_elt); + GLint space = (GLint)((GLuint)rmesa->next_vert - + (GLuint)rmesa->next_elt); - if ( DEBUG_ELTPATH ) - fprintf( stderr, " clip nv=%p ne=%p space=%d thresh=%d %d\n", - r128ctx->next_vert, r128ctx->next_elt, - space, (GLint)n * (vertsize + 2) * (GLint)sizeof(GLuint), - space < (GLint)n * (vertsize + 2) * (GLint)sizeof(GLuint) ); - - /* GH: Why the hell do we explicitly have to test the sign of the - * available space here? - */ - if ( space < (GLint)n * (vertsize + 2) * (GLint)sizeof(GLuint) ) { - fire_elts( r128ctx ); + if ( space < (GLint)(n * (vertsize + 2) * sizeof(GLuint)) ) { + fire_elts( rmesa ); } /* Project the new vertices and emit to dma buffers. Translate * out values to physical addresses for setup dma. */ - tab->project_and_emit_verts( r128ctx, (GLfloat *)verts, out, n ); + tab->project_and_emit_verts( rmesa, (GLfloat *)verts, out, n ); /* Convert the planar polygon to a list of triangles and emit to * elt buffers. */ - for (i = 2 ; i < n ; i++) { - r128ctx->next_elt[0] = (GLushort) out[0]; - r128ctx->next_elt[1] = (GLushort) out[i-1]; - r128ctx->next_elt[2] = (GLushort) out[i]; - r128ctx->next_elt += 3; + for ( i = 2 ; i < n ; i++ ) { + rmesa->next_elt[0] = (GLushort) out[0]; + rmesa->next_elt[1] = (GLushort) out[i-1]; + rmesa->next_elt[2] = (GLushort) out[i]; + rmesa->next_elt += 3; } } - if ( DEBUG_ELTPATH ) - fflush( stderr ); } @@ -295,37 +269,22 @@ static void r128_tri_clip( r128ContextPtr r128ctx, * unclipped primitives from the original list. */ -#define INIT(x) +#define INIT( x ) #define TRI_THRESHOLD (GLint)(2 * sizeof(GLuint)) -#define UNCLIPPED_VERT(x) (GLushort)(r128ctx->first_vert_index - x) +#define UNCLIPPED_VERT( x ) (GLushort)(rmesa->first_vert_index - x) #define TRIANGLE( e2, e1, e0 ) \ do { \ - if ( DEBUG_ELTPATH ) \ - fprintf( stderr, " tri nv=%p ne=%p space=%d thresh=%d %d\n", \ - r128ctx->next_vert, r128ctx->next_elt, \ - (GLint)((GLuint)r128ctx->next_vert - \ - (GLuint)r128ctx->next_elt), TRI_THRESHOLD, \ - ( (GLint)((GLuint)r128ctx->next_vert - \ - (GLuint)r128ctx->next_elt) < TRI_THRESHOLD ) );\ - if ( (GLint)((GLuint)r128ctx->next_vert - \ - (GLuint)r128ctx->next_elt) < TRI_THRESHOLD ) { \ - if ( DEBUG_ELTPATH ) \ - fprintf( stderr, " firing elts...\n" ); \ - fire_elts( r128ctx ); \ + if ( (GLint)((GLuint)rmesa->next_vert - \ + (GLuint)rmesa->next_elt) < TRI_THRESHOLD ) { \ + fire_elts( rmesa ); \ } \ - r128ctx->next_elt[0] = UNCLIPPED_VERT( e2 ); \ - r128ctx->next_elt[1] = UNCLIPPED_VERT( e1 ); \ - r128ctx->next_elt[2] = UNCLIPPED_VERT( e0 ); \ - if ( 0 ) \ - fprintf( stderr, " tri %d,%d,%d -> %hd,%hd,%hd\n", \ - e2, e1, e0, r128ctx->next_elt[0], \ - r128ctx->next_elt[1], r128ctx->next_elt[2]); \ - r128ctx->next_elt += 3; \ - if ( DEBUG_ELTPATH ) \ - fflush( stderr ); \ + rmesa->next_elt[0] = UNCLIPPED_VERT( e2 ); \ + rmesa->next_elt[1] = UNCLIPPED_VERT( e1 ); \ + rmesa->next_elt[2] = UNCLIPPED_VERT( e0 ); \ + rmesa->next_elt += 3; \ } while (0) #define CLIP_TRIANGLE( e2, e1, e0 ) \ @@ -337,16 +296,16 @@ do { \ out[0] = e2; \ out[1] = e1; \ out[2] = e0; \ - r128_tri_clip( r128ctx, VB, out, ormask ); \ + r128_tri_clip( rmesa, VB, out, ormask ); \ } \ } while (0) #define LOCAL_VARS \ - r128ContextPtr r128ctx = R128_CONTEXT( VB->ctx ); \ + r128ContextPtr rmesa = R128_CONTEXT(VB->ctx); \ GLuint *elt = VB->EltPtr->data; \ GLuint out[VB_MAX_CLIPPED_VERTS]; \ GLubyte *mask = VB->ClipMask; \ - (void) mask; (void) out; (void) elt; (void) r128ctx; + (void) mask; (void) out; (void) elt; (void) rmesa; @@ -355,7 +314,7 @@ do { \ #define RENDER_TRI( i2, i1, i0, pv, parity ) \ do { \ GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ - if (parity) e2 = elt[i1], e1 = elt[i2]; \ + if ( parity ) e2 = elt[i1], e1 = elt[i2]; \ CLIP_TRIANGLE( e2, e1, e0 ); \ } while (0) @@ -369,20 +328,20 @@ do { \ #define LOCAL_VARS \ - r128ContextPtr r128ctx = R128_CONTEXT( VB->ctx ); \ + r128ContextPtr rmesa = R128_CONTEXT(VB->ctx); \ GLuint *elt = VB->EltPtr->data; \ - (void) elt; (void) r128ctx; + (void) elt; (void) rmesa; #define RENDER_POINTS( start, count ) #define RENDER_LINE( i1, i0 ) #define RENDER_TRI( i2, i1, i0, pv, parity ) \ do { \ GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ - if (parity) e2 = elt[i1], e1 = elt[i2]; \ + if ( parity ) e2 = elt[i1], e1 = elt[i2]; \ TRIANGLE( e2, e1, e0 ); \ } while (0) -#define RENDER_QUAD(i3, i2, i1, i0, pv ) \ +#define RENDER_QUAD( i3, i2, i1, i0, pv ) \ TRIANGLE( elt[i3], elt[i2], elt[i0] ); \ TRIANGLE( elt[i2], elt[i1], elt[i0] ) @@ -394,16 +353,16 @@ do { \ static void refresh_projection_matrix( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT(ctx); + r128ContextPtr rmesa = R128_CONTEXT(ctx); GLmatrix *mat = &ctx->Viewport.WindowMap; - GLfloat *m = r128ctx->device_matrix; + GLfloat *m = rmesa->device_matrix; m[MAT_SX] = mat->m[MAT_SX]; m[MAT_TX] = mat->m[MAT_TX]; m[MAT_SY] = -mat->m[MAT_SY]; - m[MAT_TY] = -mat->m[MAT_TY] + r128ctx->driDrawable->h; - m[MAT_SZ] = mat->m[MAT_SZ] * r128ctx->depth_scale; - m[MAT_TZ] = mat->m[MAT_TZ] * r128ctx->depth_scale; + m[MAT_TY] = -mat->m[MAT_TY] + rmesa->driDrawable->h; + m[MAT_SZ] = mat->m[MAT_SZ] * rmesa->depth_scale; + m[MAT_TZ] = mat->m[MAT_TZ] * rmesa->depth_scale; } #define CLIP_UBYTE_B 0 @@ -439,7 +398,7 @@ static void refresh_projection_matrix( GLcontext *ctx ) /* Very sparsely popluated array - fix the indices. */ -static struct r128_elt_tab r128EltTab[0x80]; +static struct r128_elt_tab r128EltTab[R128_MAX_SETUPFUNC]; void r128DDEltPathInit( void ) { @@ -451,7 +410,9 @@ void r128DDEltPathInit( void ) r128_init_eltpath_TEX0( &r128EltTab[R128_TEX0_BIT] ); r128_init_eltpath_RGBA_TEX0( &r128EltTab[R128_RGBA_BIT|R128_TEX0_BIT] ); r128_init_eltpath_TEX0_TEX1( &r128EltTab[R128_TEX0_BIT|R128_TEX1_BIT] ); - r128_init_eltpath_RGBA_TEX0_TEX1( &r128EltTab[R128_RGBA_BIT|R128_TEX0_BIT|R128_TEX1_BIT] ); + r128_init_eltpath_RGBA_TEX0_TEX1( &r128EltTab[(R128_RGBA_BIT | + R128_TEX0_BIT | + R128_TEX1_BIT)] ); } #define VALID_SETUP (R128_RGBA_BIT|R128_TEX0_BIT|R128_TEX1_BIT) @@ -473,17 +434,11 @@ void r128DDEltPath( struct vertex_buffer *VB ) { GLcontext *ctx = VB->ctx; GLenum prim = ctx->CVA.elt_mode; - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - struct r128_elt_tab *tab = &r128EltTab[r128ctx->SetupIndex & VALID_SETUP]; - GLint vertsize = r128ctx->vertsize; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + struct r128_elt_tab *tab = &r128EltTab[rmesa->SetupIndex & VALID_SETUP]; + GLuint vertsize = rmesa->vertsize; GLint space; - if ( DEBUG_ELTPATH ) - fprintf( stderr, "\n\n\n%s: count=%d space=%d\n", - __FUNCTION__, VB->Count, - (GLint)((GLuint)r128ctx->next_vert - - (GLuint)r128ctx->next_elt) ); - VB->ClipPtr = TransformRaw( &VB->Clip, &ctx->ModelProjectMatrix, VB->ObjPtr ); @@ -498,40 +453,27 @@ void r128DDEltPath( struct vertex_buffer *VB ) &VB->ClipOrMask, &VB->ClipAndMask ); - if ( VB->ClipAndMask ) { - if ( DEBUG_ELTPATH ) - fprintf( stderr, " clipped, returning...\n" ); + if ( VB->ClipAndMask ) return; - } - if ( r128ctx->vert_buf ) { - r128FlushVertices( r128ctx ); - } - if ( r128ctx->new_state ) { + + if ( rmesa->vert_buf ) + r128FlushVertices( rmesa ); + + if ( rmesa->new_state ) r128DDUpdateHWState( ctx ); - } - space = (GLint)((GLuint)r128ctx->next_vert - - (GLuint)r128ctx->next_elt); + space = (GLint)((GLuint)rmesa->next_vert - + (GLuint)rmesa->next_elt); /* Allocate a single buffer to hold unclipped vertices. All * unclipped vertices must be contiguous. */ - if ( DEBUG_ELTPATH ) - fprintf( stderr, " top nv=%p ne=%p space=%d reqd=%d count=%d clip=0x%x\n\n", - r128ctx->next_vert, r128ctx->next_elt, space, - (GLint)VB->Count * vertsize * sizeof(GLuint), - VB->Count, VB->ClipOrMask ); - - /* Because we need to adjust the next_elt pointer to accomodate the - * CCE packet header, we can sometimes go past the next_vert pointer - * and thus have negative space. - */ - if ( space < (GLint)VB->Count * vertsize * (GLint)sizeof(GLuint) || - r128ctx->vertsize != r128ctx->elt_vertsize ) { - fire_elts( r128ctx ); + if ( space < (GLint)(VB->Count * vertsize * sizeof(GLuint)) || + rmesa->vertsize != rmesa->elt_vertsize ) { + fire_elts( rmesa ); } - r128ctx->retained_buf = r128ctx->elt_buf; + rmesa->retained_buf = rmesa->elt_buf; /* Emit unclipped vertices to the buffer. */ @@ -540,7 +482,7 @@ void r128DDEltPath( struct vertex_buffer *VB ) /* Emit indices and clipped vertices to one or more buffers. */ if ( VB->ClipOrMask ) { - r128ctx->elt_tab = tab; + rmesa->elt_tab = tab; r128_render_tab_elt[prim]( VB, 0, VB->EltPtr->count, 0 ); } else { r128_render_tab_elt_unclipped[prim]( VB, 0, VB->EltPtr->count, 0 ); @@ -548,20 +490,10 @@ void r128DDEltPath( struct vertex_buffer *VB ) /* Send to hardware and release the elt buffer. */ - release_bufs( r128ctx ); + release_bufs( rmesa ); /* This indicates that there is no cached data to reuse. */ VB->pipeline->data_valid = 0; VB->pipeline->new_state = 0; - - if ( DEBUG_ELTPATH ) { - FLUSH_BATCH( r128ctx ); - - LOCK_HARDWARE( r128ctx ); - drmR128WaitForIdleCCE( r128ctx->driFd ); - UNLOCK_HARDWARE( r128ctx ); - - __asm__ __volatile__ ( "int $3" ); - } } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_elttmp.h b/xc/lib/GL/mesa/src/drv/r128/r128_elttmp.h index ba82a261f..11e30fbfe 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_elttmp.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_elttmp.h @@ -1,25 +1,35 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_elttmp.h,v 1.1 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_elttmp.h,v 1.2 2001/01/08 01:07:20 martin Exp $ */ +/************************************************************************** + +Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., + Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + /* - * DRI Hardware Device Driver for G200/G400 - * Copyright (C) 1999 Keith Whitwell - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * Authors: + * Keith Whitwell <keithw@valinux.com> + * Gareth Hughes <gareth@valinux.com> * */ @@ -34,8 +44,7 @@ */ static void TAG(emit_unclipped_verts)( struct vertex_buffer *VB ) { - GLuint i; - r128ContextPtr r128ctx = R128_CONTEXT(VB->ctx); + r128ContextPtr rmesa = R128_CONTEXT(VB->ctx); GLfloat *dev = VB->Projected->start; GLubyte *color = VB->ColorPtr->start; GLfloat *tex0_data = VB->TexCoordPtr[0]->start; @@ -43,45 +52,38 @@ static void TAG(emit_unclipped_verts)( struct vertex_buffer *VB ) GLuint color_stride = VB->ColorPtr->stride; GLuint tex0_stride = VB->TexCoordPtr[0]->stride; GLuint tex1_stride = VB->TexCoordPtr[1]->stride; - GLuint buffer_stride = r128ctx->vertsize; + GLuint buffer_stride = rmesa->vertsize; - GLfloat *f = r128ctx->next_vert; + GLfloat *f = rmesa->next_vert; GLuint count = VB->Count; GLubyte *clipmask = VB->ClipMask; - const GLfloat *m = r128ctx->device_matrix; + const GLfloat *m = rmesa->device_matrix; const GLfloat sx = m[0], sy = m[5], sz = m[10]; const GLfloat tx = m[12], ty = m[13], tz = m[14]; + GLuint i; - if ( 0 ) - fprintf( stderr, "%s: stride=%d\n", __FUNCTION__, buffer_stride ); - - r128ctx->retained_buf = r128ctx->elt_buf; - r128ctx->first_vert_index = r128ctx->next_vert_index; + rmesa->retained_buf = rmesa->elt_buf; + rmesa->first_vert_index = rmesa->next_vert_index; for ( i = 0 ; i < count ; f -= buffer_stride, i++ ) { if ( !clipmask[i] ) { - if ( 0 ) - fprintf( stderr, "vert=%d addr=%p space=0x%x\n", - i, f, (GLuint)f - (GLuint)r128ctx->elt_buf->address ); - f[0] = sx * dev[0] + tx; f[1] = sy * dev[1] + ty; f[2] = sz * dev[2] + tz; f[3] = dev[3]; - if (TYPE & R128_RGBA_BIT) { + if ( TYPE & R128_RGBA_BIT ) { #if 0 /*defined(USE_X86_ASM)*/ - __asm__ ( - "movl (%%edx),%%eax \n" - "bswap %%eax \n" - "rorl $8,%%eax \n" - "movl %%eax,16(%%edi) \n" - : - : "d" (color), "D" (f) - : "%eax" ); + __asm__ ( "movl (%%edx),%%eax \n" + "bswap %%eax \n" + "rorl $8,%%eax \n" + "movl %%eax,16(%%edi) \n" + : + : "d" (color), "D" (f) + : "%eax" ); #else GLubyte *b = (GLubyte *)&f[4]; b[CLIP_UBYTE_B] = color[2]; @@ -91,25 +93,25 @@ static void TAG(emit_unclipped_verts)( struct vertex_buffer *VB ) #endif } - if (TYPE & R128_TEX0_BIT) { - *(int*)&f[6] = *(int*)&tex0_data[0]; - *(int*)&f[7] = *(int*)&tex0_data[1]; + if ( TYPE & R128_TEX0_BIT ) { + *(GLuint *)&f[6] = *(GLuint *)&tex0_data[0]; + *(GLuint *)&f[7] = *(GLuint *)&tex0_data[1]; } - if (TYPE & R128_TEX1_BIT) { - *(int*)&f[8] = *(int*)&tex1_data[0]; - *(int*)&f[9] = *(int*)&tex1_data[1]; + if ( TYPE & R128_TEX1_BIT ) { + *(GLuint *)&f[8] = *(GLuint *)&tex1_data[0]; + *(GLuint *)&f[9] = *(GLuint *)&tex1_data[1]; } } - STRIDE_F(dev, 16); - if (TYPE & R128_RGBA_BIT) color += color_stride; - if (TYPE & R128_TEX0_BIT) STRIDE_F(tex0_data, tex0_stride); - if (TYPE & R128_TEX1_BIT) STRIDE_F(tex1_data, tex1_stride); + STRIDE_F( dev, 16 ); + if ( TYPE & R128_RGBA_BIT ) color += color_stride; + if ( TYPE & R128_TEX0_BIT ) STRIDE_F( tex0_data, tex0_stride ); + if ( TYPE & R128_TEX1_BIT ) STRIDE_F( tex1_data, tex1_stride ); } - r128ctx->next_vert = f; - r128ctx->next_vert_index -= count; + rmesa->next_vert = f; + rmesa->next_vert_index -= count; } @@ -117,12 +119,12 @@ static void TAG(emit_unclipped_verts)( struct vertex_buffer *VB ) * Recreate from the VB data rather than trying to read back from * uncached memory. */ -static void TAG(build_tri_verts)( r128ContextPtr r128ctx, +static void TAG(build_tri_verts)( r128ContextPtr rmesa, struct vertex_buffer *VB, GLfloat *O, GLuint *elt ) { - int i; + GLint i; for ( i = 0 ; i < 3 ; i++, O += CLIP_STRIDE ) { GLfloat *clip = VB->Clip.start + elt[i]*4; @@ -132,8 +134,8 @@ static void TAG(build_tri_verts)( r128ContextPtr r128ctx, O[2] = clip[2]; O[3] = clip[3]; - if (TYPE & R128_RGBA_BIT) { - GLubyte *col = VEC_ELT(VB->ColorPtr, GLubyte, elt[i]); + if ( TYPE & R128_RGBA_BIT ) { + GLubyte *col = VEC_ELT( VB->ColorPtr, GLubyte, elt[i] ); GLubyte *b = (GLubyte *)&O[4]; b[CLIP_UBYTE_R] = col[0]; b[CLIP_UBYTE_G] = col[1]; @@ -141,22 +143,16 @@ static void TAG(build_tri_verts)( r128ContextPtr r128ctx, b[CLIP_UBYTE_A] = col[3]; } - if ( 0 ) - fprintf(stderr, - "build_tri_vert elt[%d]=%d index=0x%x (first_index=0x%x)\n", - i, elt[i], (GLuint)UNCLIPPED_VERT(elt[i]), - (GLuint)r128ctx->first_vert_index); - *(GLuint *)&O[5] = UNCLIPPED_VERT(elt[i]); - if (TYPE & R128_TEX0_BIT) { - GLfloat *tex0_data = VEC_ELT(VB->TexCoordPtr[0], GLfloat, elt[i]); + if ( TYPE & R128_TEX0_BIT ) { + GLfloat *tex0_data = VEC_ELT( VB->TexCoordPtr[0], GLfloat, elt[i] ); *(int*)&O[6] = *(int*)&tex0_data[0]; *(int*)&O[7] = *(int*)&tex0_data[1]; } - if (TYPE & R128_TEX1_BIT) { - GLfloat *tex1_data = VEC_ELT(VB->TexCoordPtr[1], GLfloat, elt[i]); + if ( TYPE & R128_TEX1_BIT ) { + GLfloat *tex1_data = VEC_ELT( VB->TexCoordPtr[1], GLfloat, elt[i] ); *(int*)&O[8] = *(int*)&tex1_data[0]; *(int*)&O[9] = *(int*)&tex1_data[1]; } @@ -171,30 +167,28 @@ static void TAG(interp)( GLfloat t, const GLfloat *I, const GLfloat *J ) { - O[0] = LINTERP(t, I[0], J[0]); - O[1] = LINTERP(t, I[1], J[1]); - O[2] = LINTERP(t, I[2], J[2]); - O[3] = LINTERP(t, I[3], J[3]); - - if (TYPE & R128_RGBA_BIT) { - INTERP_RGBA(t, - ((GLubyte *)&(O[4])), - ((GLubyte *)&(I[4])), - ((GLubyte *)&(J[4]))); + O[0] = LINTERP( t, I[0], J[0] ); + O[1] = LINTERP( t, I[1], J[1] ); + O[2] = LINTERP( t, I[2], J[2] ); + O[3] = LINTERP( t, I[3], J[3] ); + + if ( TYPE & R128_RGBA_BIT ) { + INTERP_RGBA( t, + ((GLubyte *)&(O[4])), + ((GLubyte *)&(I[4])), + ((GLubyte *)&(J[4])) ); } - if (0) fprintf(stderr, "setting 0x%x to ~0\n", (GLuint)&O[5]); - *(GLuint *)&O[5] = ~0; /* note that this is a new vertex */ - if (TYPE & R128_TEX0_BIT) { - O[6] = LINTERP(t, I[6], J[6]); - O[7] = LINTERP(t, I[7], J[7]); + if ( TYPE & R128_TEX0_BIT ) { + O[6] = LINTERP( t, I[6], J[6] ); + O[7] = LINTERP( t, I[7], J[7] ); } - if (TYPE & R128_TEX1_BIT) { - O[8] = LINTERP(t, I[8], J[8]); - O[9] = LINTERP(t, I[9], J[9]); + if ( TYPE & R128_TEX1_BIT ) { + O[8] = LINTERP( t, I[8], J[8] ); + O[9] = LINTERP( t, I[9], J[9] ); } } @@ -204,30 +198,26 @@ static void TAG(interp)( GLfloat t, * new ones to dma buffers. Update the element list to a format * suitable for sending to hardware. */ -static void TAG(project_and_emit_verts)( r128ContextPtr r128ctx, +static void TAG(project_and_emit_verts)( r128ContextPtr rmesa, const GLfloat *verts, GLuint *elt, - int nr) + GLuint nr) { - GLfloat *O = r128ctx->next_vert; - GLushort index = r128ctx->next_vert_index; - GLuint buffer_stride = r128ctx->vertsize; + GLfloat *O = rmesa->next_vert; + GLushort index = rmesa->next_vert_index; + GLuint buffer_stride = rmesa->vertsize; - const GLfloat *m = r128ctx->device_matrix; + const GLfloat *m = rmesa->device_matrix; const GLfloat sx = m[0], sy = m[5], sz = m[10]; const GLfloat tx = m[12], ty = m[13], tz = m[14]; GLuint i; - for (i = 0 ; i < nr ; i++) { + for ( i = 0 ; i < nr ; i++ ) { const GLfloat *I = &verts[elt[i] * CLIP_STRIDE]; GLuint tmp = *(GLuint *)&I[5]; - if (0) fprintf(stderr, "elt[%d] (tmp 0x%x %d) %d --> ", - i, (GLuint)&I[5], tmp, elt[i]); - - if ((elt[i] = tmp) == ~0) - { - GLfloat oow = 1.0/I[3]; + if ( (elt[i] = tmp) == ~0 ) { + GLfloat oow = 1.0 / I[3]; elt[i] = index--; @@ -236,37 +226,36 @@ static void TAG(project_and_emit_verts)( r128ContextPtr r128ctx, O[2] = sz * I[2] * oow + tz; O[3] = oow; - if (TYPE & R128_RGBA_BIT) { - *(int*)&O[4] = *(int*)&I[4]; + if ( TYPE & R128_RGBA_BIT ) { + *(GLuint *)&O[4] = *(GLuint *)&I[4]; } - if (TYPE & R128_TEX0_BIT) { - *(int*)&O[6] = *(int*)&I[6]; - *(int*)&O[7] = *(int*)&I[7]; + if ( TYPE & R128_TEX0_BIT ) { + *(GLuint *)&O[6] = *(GLuint *)&I[6]; + *(GLuint *)&O[7] = *(GLuint *)&I[7]; } - if (TYPE & R128_TEX1_BIT) { - *(int*)&O[8] = *(int*)&I[8]; - *(int*)&O[9] = *(int*)&I[9]; + if ( TYPE & R128_TEX1_BIT ) { + *(GLuint *)&O[8] = *(GLuint *)&I[8]; + *(GLuint *)&O[9] = *(GLuint *)&I[9]; } O -= buffer_stride; } - if (0) fprintf(stderr, "0x%x\n", elt[i]); } - r128ctx->next_vert = O; - r128ctx->next_vert_index = index; + rmesa->next_vert = O; + rmesa->next_vert_index = index; } static void TAG(r128_init_eltpath)( struct r128_elt_tab *tab ) { - tab->emit_unclipped_verts = TAG(emit_unclipped_verts); - tab->build_tri_verts = TAG(build_tri_verts); - tab->interp = TAG(interp); - tab->project_and_emit_verts = TAG(project_and_emit_verts); + tab->emit_unclipped_verts = TAG(emit_unclipped_verts); + tab->build_tri_verts = TAG(build_tri_verts); + tab->interp = TAG(interp); + tab->project_and_emit_verts = TAG(project_and_emit_verts); } #undef TYPE diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_fastpath.c b/xc/lib/GL/mesa/src/drv/r128/r128_fastpath.c index 57dab53a9..44c996125 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_fastpath.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_fastpath.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_fastpath.c,v 1.4 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_fastpath.c,v 1.5 2001/01/08 01:07:20 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -29,8 +29,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: * Keith Whitwell <keithw@valinux.com> - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -44,67 +44,58 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "cva.h" #include "vertices.h" -/* HACK: Declare this global for now */ -static GLfloat m[16] __attribute__ ((aligned (16))); - -/* FIXME: These routines were copied from the i810 driver, and were only - slightly modified for the Rage 128. They still need to be optmizied - and cleaned up. Also, support for USE_RHW2 needs to be added. - - KW: The fastpath never does projective texturing, so RHW2 support - isn't necesary here. -*/ struct r128_fast_tab { void (*build_vertices)( struct vertex_buffer *VB, GLuint do_cliptest ); void (*interp)( GLfloat t, GLfloat *O, const GLfloat *I, const GLfloat *J ); }; -#define POINT(x) r128_draw_point( r128ctx, &vert[x], psize ) -#define LINE(x,y) r128_draw_line( r128ctx, &vert[x], &vert[y], lwidth ) -#define TRI(x,y,z) r128_draw_triangle( r128ctx, &vert[x], &vert[y], &vert[z] ) +#define POINT(x) r128_draw_point( rmesa, &vert[x], psize ) +#define LINE(x,y) r128_draw_line( rmesa, &vert[x], &vert[y], lwidth ) +#define TRI(x,y,z) r128_draw_triangle( rmesa, &vert[x], &vert[y], &vert[z] ) /* Direct, and no clipping required. The clip funcs have not been - written yet, so this is only useful for the fast path. */ -#define RENDER_POINTS(start, count) \ + * written yet, so this is only useful for the fast path. + */ +#define RENDER_POINTS( start, count ) \ do { \ GLuint e; \ - for (e = start; e < count; e++) \ - POINT(elt[e]); \ + for ( e = start ; e < count ; e++ ) \ + POINT( elt[e] ); \ } while (0) -#define RENDER_LINE(i1, i) \ +#define RENDER_LINE( i1, i ) \ do { \ GLuint e1 = elt[i1], e = elt[i]; \ - LINE(e1, e); \ + LINE( e1, e ); \ } while (0) -#define RENDER_TRI(i2, i1, i, pv, parity) \ +#define RENDER_TRI( i2, i1, i, pv, parity ) \ do { \ GLuint e2 = elt[i2], e1 = elt[i1], e = elt[i]; \ - if (parity) { \ + if ( parity ) { \ GLuint tmp = e2; \ e2 = e1; \ e1 = tmp; \ } \ - TRI(e2, e1, e); \ + TRI( e2, e1, e ); \ } while (0) -#define RENDER_QUAD(i3, i2, i1, i, pv) \ +#define RENDER_QUAD( i3, i2, i1, i, pv ) \ do { \ GLuint e3 = elt[i3], e2 = elt[i2], e1 = elt[i1], e = elt[i]; \ - TRI(e3, e2, e); \ - TRI(e2, e1, e); \ + TRI( e3, e2, e ); \ + TRI( e2, e1, e ); \ } while (0) #define LOCAL_VARS \ - r128VertexPtr vert = R128_DRIVER_DATA(VB)->verts; \ - const GLuint *elt = VB->EltPtr->data; \ - GLcontext *ctx = VB->ctx; \ - r128ContextPtr r128ctx = R128_CONTEXT(ctx); \ - const GLfloat lwidth = ctx->Line.Width; \ - const GLfloat psize = ctx->Point.Size; \ + r128VertexPtr vert = R128_DRIVER_DATA(VB)->verts; \ + const GLuint *elt = VB->EltPtr->data; \ + GLcontext *ctx = VB->ctx; \ + r128ContextPtr rmesa = R128_CONTEXT(ctx); \ + const GLfloat lwidth = ctx->Line.Width; \ + const GLfloat psize = ctx->Point.Size; \ (void) lwidth; (void) psize; (void) vert; #define TAG(x) r128_##x##_smooth_indirect @@ -112,12 +103,12 @@ do { \ -#define NEGATIVE(f) (f < 0) -#define DIFFERENT_SIGNS(a,b) ((a*b) < 0) -#define LINTERP(T, A, B) ((A) + (T) * ((B) - (A))) +#define NEGATIVE( f ) (f < 0) +#define DIFFERENT_SIGNS( a, b ) ((a * b) < 0) +#define LINTERP( T, A, B ) ((A) + (T) * ((B) - (A))) -#define INTERP_RGBA(t, out, a, b) \ +#define INTERP_RGBA( t, out, a, b ) \ do { \ int i; \ for (i = 0; i < 4; i++) { \ @@ -129,9 +120,9 @@ do { \ } while (0) -#define CLIP(SGN, V, PLANE) \ +#define CLIP( SGN, V, PLANE ) \ do { \ - if (mask & PLANE) { \ + if ( mask & PLANE ) { \ GLuint *indata = inlist[in]; \ GLuint *outdata = inlist[in ^= 1]; \ GLuint nr = n; \ @@ -139,16 +130,16 @@ do { \ GLfloat dpJ = (SGN J[V]) + J[3]; \ \ inlist[0] = vlist1; \ - for (i = n = 0 ; i < nr ; i++) { \ + for ( i = n = 0 ; i < nr ; i++ ) { \ GLuint elt_i = indata[i]; \ GLfloat *I = verts[elt_i].f; \ GLfloat dpI = (SGN I[V]) + I[3]; \ \ - if (DIFFERENT_SIGNS(dpI, dpJ)) { \ + if ( DIFFERENT_SIGNS( dpI, dpJ ) ) { \ GLfloat *O = verts[next_vert].f; \ GLfloat t, *in, *out; \ \ - if (NEGATIVE(dpI)) { \ + if ( NEGATIVE( dpI ) ) { \ t = dpI / (dpI - dpJ); \ in = I; \ out = J; \ @@ -158,7 +149,7 @@ do { \ out = I; \ } \ \ - interp(t, O, in, out); \ + interp( t, O, in, out ); \ \ clipmask[next_vert] = 0; \ outdata[n++] = next_vert++; \ @@ -166,7 +157,7 @@ do { \ \ clipmask[elt_i] |= PLANE; /* don't set up */ \ \ - if (!NEGATIVE(dpI)) { \ + if ( !NEGATIVE( dpI ) ) { \ outdata[n++] = elt_i; \ clipmask[elt_i] &= ~PLANE; /* set up after all */ \ } \ @@ -175,25 +166,25 @@ do { \ dpJ = dpI; \ } \ \ - if (n < 3) return; \ + if ( n < 3 ) return; \ } \ } while (0) -#define LINE_CLIP(x,y,z,w,PLANE) \ +#define LINE_CLIP( x, y, z, w, PLANE ) \ do { \ - if (mask & PLANE) { \ - GLfloat dpI = DOT4V(I,x,y,z,w); \ - GLfloat dpJ = DOT4V(J,x,y,z,w); \ + if ( mask & PLANE ) { \ + GLfloat dpI = DOT4V( I, x, y, z, w ); \ + GLfloat dpJ = DOT4V( J, x, y, z, w ); \ \ - if (DIFFERENT_SIGNS(dpI, dpJ)) { \ + if ( DIFFERENT_SIGNS( dpI, dpJ ) ) { \ GLfloat *O = verts[next_vert].f; \ GLfloat t = dpI / (dpI - dpJ); \ \ - interp(t, O, I, J); \ + interp( t, O, I, J ); \ \ clipmask[next_vert] = 0; \ \ - if (NEGATIVE(dpI)) { \ + if ( NEGATIVE( dpI ) ) { \ clipmask[elts[0]] |= PLANE; \ I = O; \ elts[0] = next_vert++; \ @@ -202,13 +193,13 @@ do { \ J = O; \ elts[1] = next_vert++; \ } \ - } else if (NEGATIVE(dpI)) return; \ + } else if ( NEGATIVE( dpI ) ) return; \ } \ } while (0) static __inline void r128_tri_clip( GLuint **p_elts, - r128Vertex *verts, + r128VertexPtr verts, GLubyte *clipmask, GLuint *p_next_vert, GLubyte mask, @@ -237,7 +228,7 @@ static __inline void r128_tri_clip( GLuint **p_elts, /* Convert the planar polygon to a list of triangles */ out = inlist[in]; - for (i = 2 ; i < n ; i++) { + for ( i = 2 ; i < n ; i++ ) { elts[0] = out[0]; elts[1] = out[i-1]; elts[2] = out[i]; @@ -250,7 +241,7 @@ static __inline void r128_tri_clip( GLuint **p_elts, static __inline void r128_line_clip( GLuint **p_elts, - r128Vertex *verts, + r128VertexPtr verts, GLubyte *clipmask, GLuint *p_next_vert, GLubyte mask, @@ -274,26 +265,27 @@ static __inline void r128_line_clip( GLuint **p_elts, -#define CLIP_POINT(e) \ +#define CLIP_POINT( e ) \ do { \ if (mask[e]) *out++ = e; \ } while (0) -#define CLIP_LINE(e1, e0) \ +#define CLIP_LINE( e1, e0 ) \ do { \ GLubyte ormask = mask[e0] | mask[e1]; \ out[0] = e1; \ out[1] = e0; \ out += 2; \ - if (ormask) { \ + if ( ormask ) { \ out-=2; \ - if (!(mask[e0] & mask[e1])) { \ - r128_line_clip(&out, verts, mask, &next_vert, ormask, interp); \ + if ( !(mask[e0] & mask[e1]) ) { \ + r128_line_clip( &out, verts, mask, \ + &next_vert, ormask, interp ); \ } \ } \ } while (0) -#define CLIP_TRIANGLE(e2, e1, e0) \ +#define CLIP_TRIANGLE( e2, e1, e0 ) \ do { \ GLubyte ormask; \ out[0] = e2; \ @@ -301,10 +293,11 @@ do { \ out[2] = e0; \ out += 3; \ ormask = mask[e2] | mask[e1] | mask[e0]; \ - if (ormask) { \ + if ( ormask ) { \ out -= 3; \ - if (!(mask[e2] & mask[e1] & mask[e0])) { \ - r128_tri_clip(&out, verts, mask, &next_vert, ormask, interp); \ + if ( !(mask[e2] & mask[e1] & mask[e0]) ) { \ + r128_tri_clip( &out, verts, mask, \ + &next_vert, ormask, interp ); \ } \ } \ } while (0) @@ -316,47 +309,47 @@ do { \ * ie (points, lines, triangles) containing all the clipped and * unclipped primitives from the original list. */ -#define LOCAL_VARS \ - r128ContextPtr r128ctx = R128_CONTEXT(VB->ctx); \ - r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); \ - GLuint *elt = VB->EltPtr->data; \ - r128Vertex *verts = r128VB->verts; \ - GLuint next_vert = r128VB->last_vert; \ - GLuint *out = r128VB->clipped_elements.data; \ - GLubyte *mask = VB->ClipMask; \ - r128_interp_func interp = r128ctx->interp; \ +#define LOCAL_VARS \ + r128ContextPtr rmesa = R128_CONTEXT(VB->ctx); \ + r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); \ + GLuint *elt = VB->EltPtr->data; \ + r128VertexPtr verts = r128VB->verts; \ + GLuint next_vert = r128VB->last_vert; \ + GLuint *out = r128VB->clipped_elements.data; \ + GLubyte *mask = VB->ClipMask; \ + r128_interp_func interp = rmesa->interp; \ (void) interp; (void) verts; -#define POSTFIX \ - r128VB->clipped_elements.count = out - r128VB->clipped_elements.data; \ +#define POSTFIX \ + r128VB->clipped_elements.count = out - r128VB->clipped_elements.data;\ r128VB->last_vert = next_vert; -#define INIT(x) +#define INIT( x ) -#define RENDER_POINTS(start, count) \ -do { \ - GLuint i; \ - for (i = start; i < count; i++) \ - CLIP_POINT(elt[i]); \ +#define RENDER_POINTS( start, count ) \ +do { \ + GLuint i; \ + for ( i = start ; i < count ; i++ ) \ + CLIP_POINT( elt[i] ); \ } while (0) -#define RENDER_LINE(i1, i0) \ -do { \ - CLIP_LINE(elt[i1], elt[i0]); \ +#define RENDER_LINE( i1, i0 ) \ +do { \ + CLIP_LINE( elt[i1], elt[i0] ); \ } while (0) -#define RENDER_TRI(i2, i1, i0, pv, parity) \ -do { \ - GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ - if (parity) e2 = elt[i1], e1 = elt[i2]; \ - CLIP_TRIANGLE(e2, e1, e0); \ +#define RENDER_TRI( i2, i1, i0, pv, parity ) \ +do { \ + GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ + if ( parity ) e2 = elt[i1], e1 = elt[i2]; \ + CLIP_TRIANGLE( e2, e1, e0 ); \ } while (0) -#define RENDER_QUAD(i3, i2, i1, i0, pv) \ -do { \ - CLIP_TRIANGLE(elt[i3], elt[i2], elt[i0]); \ - CLIP_TRIANGLE(elt[i2], elt[i1], elt[i0]); \ +#define RENDER_QUAD( i3, i2, i1, i0, pv ) \ +do { \ + CLIP_TRIANGLE( elt[i3], elt[i2], elt[i0] ); \ + CLIP_TRIANGLE( elt[i2], elt[i1], elt[i0] ); \ } while (0) #define TAG(x) r128_##x##_clip_elt @@ -406,17 +399,16 @@ do { \ -/* Render elements directly from original list of vertices. */ static void r128_render_elements_direct( struct vertex_buffer *VB ) { - GLcontext *ctx = VB->ctx; - r128ContextPtr r128ctx = R128_CONTEXT(ctx); - GLenum prim = ctx->CVA.elt_mode; - GLuint nr = VB->EltPtr->count; - render_func func = r128_render_tab_smooth_indirect[prim]; - GLuint p = 0; - - if ( r128ctx->new_state ) + GLcontext *ctx = VB->ctx; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + GLenum prim = ctx->CVA.elt_mode; + GLuint nr = VB->EltPtr->count; + render_func func = r128_render_tab_smooth_indirect[prim]; + GLuint p = 0; + + if ( rmesa->new_state ) r128DDUpdateHWState( ctx ); do { @@ -425,20 +417,20 @@ static void r128_render_elements_direct( struct vertex_buffer *VB ) ctx->Driver.MultipassFunc( VB, ++p ) ); } -/* Project vertices from clip to device space */ static void r128_project_vertices( struct vertex_buffer *VB ) { - GLcontext *ctx = VB->ctx; - GLmatrix *mat = &ctx->Viewport.WindowMap; - r128ContextPtr r128ctx = R128_CONTEXT(ctx); - r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); + GLcontext *ctx = VB->ctx; + GLmatrix *mat = &ctx->Viewport.WindowMap; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); + GLfloat *m = rmesa->tmp_matrix; m[MAT_SX] = mat->m[MAT_SX]; m[MAT_TX] = mat->m[MAT_TX]; m[MAT_SY] = -mat->m[MAT_SY]; - m[MAT_TY] = -mat->m[MAT_TY] + r128ctx->driDrawable->h; - m[MAT_SZ] = mat->m[MAT_SZ] * r128ctx->depth_scale; - m[MAT_TZ] = mat->m[MAT_TZ] * r128ctx->depth_scale; + m[MAT_TY] = -mat->m[MAT_TY] + rmesa->driDrawable->h; + m[MAT_SZ] = mat->m[MAT_SZ] * rmesa->depth_scale; + m[MAT_TZ] = mat->m[MAT_TZ] * rmesa->depth_scale; gl_project_v16( r128VB->verts[VB->CopyStart].f, r128VB->verts[r128VB->last_vert].f, @@ -446,20 +438,20 @@ static void r128_project_vertices( struct vertex_buffer *VB ) 16 * 4 ); } -/* Project clipped vertices from clip to device space */ static void r128_project_clipped_vertices( struct vertex_buffer *VB ) { - GLcontext *ctx = VB->ctx; - GLmatrix *mat = &ctx->Viewport.WindowMap; - r128ContextPtr r128ctx = R128_CONTEXT(ctx); - r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); + GLcontext *ctx = VB->ctx; + GLmatrix *mat = &ctx->Viewport.WindowMap; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); + GLfloat *m = rmesa->tmp_matrix; m[MAT_SX] = mat->m[MAT_SX]; m[MAT_TX] = mat->m[MAT_TX]; m[MAT_SY] = -mat->m[MAT_SY]; - m[MAT_TY] = -mat->m[MAT_TY] + r128ctx->driDrawable->h; - m[MAT_SZ] = mat->m[MAT_SZ] * r128ctx->depth_scale; - m[MAT_TZ] = mat->m[MAT_TZ] * r128ctx->depth_scale; + m[MAT_TY] = -mat->m[MAT_TY] + rmesa->driDrawable->h; + m[MAT_SZ] = mat->m[MAT_SZ] * rmesa->depth_scale; + m[MAT_TZ] = mat->m[MAT_TZ] * rmesa->depth_scale; gl_project_clipped_v16( r128VB->verts[VB->CopyStart].f, r128VB->verts[r128VB->last_vert].f, @@ -468,9 +460,8 @@ static void r128_project_clipped_vertices( struct vertex_buffer *VB ) VB->ClipMask + VB->CopyStart ); } -static struct r128_fast_tab r128FastTab[0x80]; +static struct r128_fast_tab r128FastTab[R128_MAX_SETUPFUNC]; -/* Initialize the table of fast path support functions */ void r128DDFastPathInit( void ) { r128_render_init_clip_elt(); @@ -481,25 +472,26 @@ void r128DDFastPathInit( void ) r128_init_fastpath_TEX0( &r128FastTab[R128_TEX0_BIT] ); r128_init_fastpath_RGBA_TEX0( &r128FastTab[R128_RGBA_BIT|R128_TEX0_BIT] ); r128_init_fastpath_TEX0_TEX1( &r128FastTab[R128_TEX0_BIT|R128_TEX1_BIT] ); - r128_init_fastpath_RGBA_TEX0_TEX1( &r128FastTab[R128_RGBA_BIT|R128_TEX0_BIT| - R128_TEX1_BIT] ); + r128_init_fastpath_RGBA_TEX0_TEX1( &r128FastTab[(R128_RGBA_BIT | + R128_TEX0_BIT | + R128_TEX1_BIT)] ); } #define VALID_SETUP (R128_RGBA_BIT | R128_TEX0_BIT | R128_TEX1_BIT) void r128DDFastPath( struct vertex_buffer *VB ) { - GLcontext *ctx = VB->ctx; + GLcontext *ctx = VB->ctx; GLenum prim = ctx->CVA.elt_mode; - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - struct r128_fast_tab *tab = &r128FastTab[r128ctx->SetupIndex & VALID_SETUP]; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + struct r128_fast_tab *tab = &r128FastTab[rmesa->SetupIndex & VALID_SETUP]; GLuint do_cliptest = 1; gl_prepare_arrays_cva( VB ); /* still need this */ if ( ( gl_reduce_prim[prim] == GL_TRIANGLES ) && ( VB->Count < (R128_BUFFER_SIZE / (10 * sizeof(GLuint))) ) && - ( ctx->ModelProjectMatrix.flags & (MAT_FLAG_GENERAL| + ( ctx->ModelProjectMatrix.flags & (MAT_FLAG_GENERAL | MAT_FLAG_PERSPECTIVE) ) ) { r128DDEltPath( VB ); @@ -514,14 +506,14 @@ void r128DDFastPath( struct vertex_buffer *VB ) tab->build_vertices( VB, do_cliptest ); /* object->clip space */ - if ( r128ctx->new_state ) + if ( rmesa->new_state ) r128DDUpdateHWState( ctx ); if ( VB->ClipOrMask ) { if ( !VB->ClipAndMask ) { render_func *clip = r128_render_tab_clip_elt; - r128ctx->interp = tab->interp; + rmesa->interp = tab->interp; clip[prim]( VB, 0, VB->EltPtr->count, 0 ); /* build new elts */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_fasttmp.h b/xc/lib/GL/mesa/src/drv/r128/r128_fasttmp.h index 8f51fe74c..4370a553c 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_fasttmp.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_fasttmp.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_fasttmp.h,v 1.2 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_fasttmp.h,v 1.3 2001/01/08 01:07:20 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -33,12 +33,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. * */ -/* FIXME: These routines were copied from the i810 driver, and were only - slightly modified for the Rage 128. They still need to be optmizied - and cleaned up. Also, support for USE_RHW2 needs to be added. */ - /* The first part of setup is applied to all vertices, clipped or - * unclipped. This data w!ill be used for clipping, and then all + * unclipped. This data will be used for clipping, and then all * vertices with a zero clipmask will be projected to device space. * * This could be split into several loops, but - it seems that the @@ -46,106 +42,107 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. * performance factor, and that multiple loops mean multiple cache * misses.... */ -static void TAG(r128_setup_full)(struct vertex_buffer *VB, GLuint do_cliptest) +static void TAG(r128_setup_full)( struct vertex_buffer *VB, + GLuint do_cliptest ) { - GLcontext *ctx = VB->ctx; - r128VertexBufferPtr r128VB = R128_DRIVER_DATA(VB); - const GLfloat *m = ctx->ModelProjectMatrix.m; - GLuint start = VB->CopyStart; - GLuint count = VB->Count; + GLcontext *ctx = VB->ctx; + r128VertexBufferPtr rvb = R128_DRIVER_DATA(VB); + const GLfloat *m = ctx->ModelProjectMatrix.m; + GLuint start = VB->CopyStart; + GLuint count = VB->Count; - gl_xform_points3_v16_general(r128VB->verts[start].f, + gl_xform_points3_v16_general( rvb->verts[start].f, m, VB->ObjPtr->start, VB->ObjPtr->stride, - count - start); - - if (do_cliptest) { - VB->ClipAndMask = ~0; - VB->ClipOrMask = 0; - gl_cliptest_points4_v16(r128VB->verts[start].f, - r128VB->verts[count].f, - &(VB->ClipOrMask), - &(VB->ClipAndMask), - VB->ClipMask + start); - } - - /* These branches are all resolved at compile time. Hopefully all - * the pointers are valid addresses even when not enabled. - */ - if (TYPE) { - GLubyte *color = VB->ColorPtr->start; - GLfloat *tex0_data = VB->TexCoordPtr[0]->start; - GLfloat *tex1_data = VB->TexCoordPtr[1]->start; - - GLuint color_stride = VB->ColorPtr->stride; - GLuint tex0_stride = VB->TexCoordPtr[0]->stride; - GLuint tex1_stride = VB->TexCoordPtr[1]->stride; - - GLfloat *f = r128VB->verts[start].f; - GLfloat *end = f + (16 * (count - start)); - - while (f != end) { - if (TYPE & R128_RGBA_BIT) { + count - start ); + + if ( do_cliptest ) { + VB->ClipAndMask = ~0; + VB->ClipOrMask = 0; + gl_cliptest_points4_v16( rvb->verts[start].f, + rvb->verts[count].f, + &(VB->ClipOrMask), + &(VB->ClipAndMask), + VB->ClipMask + start ); + } + + /* These branches are all resolved at compile time. Hopefully all + * the pointers are valid addresses even when not enabled. + */ + if ( TYPE ) { + GLubyte *color = VB->ColorPtr->start; + GLfloat *tex0_data = VB->TexCoordPtr[0]->start; + GLfloat *tex1_data = VB->TexCoordPtr[1]->start; + + GLuint color_stride = VB->ColorPtr->stride; + GLuint tex0_stride = VB->TexCoordPtr[0]->stride; + GLuint tex1_stride = VB->TexCoordPtr[1]->stride; + + GLfloat *f = rvb->verts[start].f; + GLfloat *end = f + (16 * (count - start)); + + while ( f != end ) { + if ( TYPE & R128_RGBA_BIT ) { #if defined(USE_X86_ASM) - /* GTH: I'd like to get some accurate timing data on the - * bswap instruction, but it gives a nice speedup anyway. - */ - __asm__ ("movl (%%edx),%%eax \n" + /* GH: I'd like to get some accurate timing data on the + * bswap instruction, but it gives a nice speedup anyway. + */ + __asm__ ( "movl (%%edx),%%eax \n" "bswap %%eax \n" "rorl $8,%%eax \n" "movl %%eax,16(%%edi) \n" : : "d" (color), "D" (f) - : "%eax"); + : "%eax" ); #else - GLubyte *col = color; - GLubyte *b = (GLubyte *)&f[CLIP_UBYTE_COLOR]; - b[CLIP_UBYTE_B] = col[2]; - b[CLIP_UBYTE_G] = col[1]; - b[CLIP_UBYTE_R] = col[0]; - b[CLIP_UBYTE_A] = col[3]; + GLubyte *col = color; + GLubyte *b = (GLubyte *)&f[CLIP_UBYTE_COLOR]; + b[CLIP_UBYTE_B] = col[2]; + b[CLIP_UBYTE_G] = col[1]; + b[CLIP_UBYTE_R] = col[0]; + b[CLIP_UBYTE_A] = col[3]; #endif - } - if (TYPE & R128_TEX0_BIT) { + } + if ( TYPE & R128_TEX0_BIT ) { #if defined (USE_X86_ASM) - __asm__ ("movl (%%ecx), %%eax \n" + __asm__ ( "movl (%%ecx), %%eax \n" "movl %%eax, 24(%%edi) \n" "movl 4(%%ecx), %%eax \n" "movl %%eax, 28(%%edi)" : : "c" (tex0_data), "D" (f) - : "%eax"); + : "%eax" ); #else - *(unsigned int *)(f+CLIP_S0) = *(unsigned int *)tex0_data; - *(unsigned int *)(f+CLIP_T0) = *(unsigned int *)(tex0_data+1); + *(GLuint *)(f+CLIP_S0) = *(GLuint *)tex0_data; + *(GLuint *)(f+CLIP_T0) = *(GLuint *)(tex0_data+1); #endif - } - if (TYPE & R128_TEX1_BIT) { - /* Hits a second cache line. - */ + } + if ( TYPE & R128_TEX1_BIT ) { + /* Hits a second cache line. + */ #if defined (USE_X86_ASM) - __asm__ ("movl (%%esi), %%eax \n" + __asm__ ( "movl (%%esi), %%eax \n" "movl %%eax, 32(%%edi) \n" "movl 4(%%esi), %%eax \n" "movl %%eax, 36(%%edi)" : : "S" (tex1_data), "D" (f) - : "%eax"); + : "%eax" ); #else - *(unsigned int *)(f+CLIP_S1) = *(unsigned int *)tex1_data; - *(unsigned int *)(f+CLIP_T1) = *(unsigned int *)(tex1_data+1); + *(GLuint *)(f+CLIP_S1) = *(GLuint *)tex1_data; + *(GLuint *)(f+CLIP_T1) = *(GLuint *)(tex1_data+1); #endif - } - if (TYPE & R128_RGBA_BIT) color += color_stride; - if (TYPE & R128_TEX0_BIT) STRIDE_F(tex0_data, tex0_stride); - if (TYPE & R128_TEX1_BIT) STRIDE_F(tex1_data, tex1_stride); - f += 16; - } - } - - r128VB->clipped_elements.count = start; - r128VB->last_vert = count; + } + if ( TYPE & R128_RGBA_BIT ) color += color_stride; + if ( TYPE & R128_TEX0_BIT ) STRIDE_F( tex0_data, tex0_stride ); + if ( TYPE & R128_TEX1_BIT ) STRIDE_F( tex1_data, tex1_stride ); + f += 16; + } + } + + rvb->clipped_elements.count = start; + rvb->last_vert = count; } @@ -153,39 +150,39 @@ static void TAG(r128_setup_full)(struct vertex_buffer *VB, GLuint do_cliptest) * routine into the header. Less code and better chance of doing some * of this stuff in assembly. */ -static void TAG(r128_interp_vert)(GLfloat t, - GLfloat *O, - const GLfloat *I, - const GLfloat *J) +static void TAG(r128_interp_vert)( GLfloat t, + GLfloat *O, + const GLfloat *I, + const GLfloat *J ) { - O[0] = LINTERP(t, I[0], J[0]); - O[1] = LINTERP(t, I[1], J[1]); - O[2] = LINTERP(t, I[2], J[2]); - O[3] = LINTERP(t, I[3], J[3]); - - if (TYPE & R128_RGBA_BIT) { - INTERP_RGBA(t, - ((GLubyte *)&(O[4])), - ((GLubyte *)&(I[4])), - ((GLubyte *)&(J[4]))); - } - - if (TYPE & R128_TEX0_BIT) { - O[6] = LINTERP(t, I[6], J[6]); - O[7] = LINTERP(t, I[7], J[7]); - } - - if (TYPE & R128_TEX1_BIT) { - O[8] = LINTERP(t, I[8], J[8]); - O[9] = LINTERP(t, I[9], J[9]); - } + O[0] = LINTERP( t, I[0], J[0] ); + O[1] = LINTERP( t, I[1], J[1] ); + O[2] = LINTERP( t, I[2], J[2] ); + O[3] = LINTERP( t, I[3], J[3] ); + + if ( TYPE & R128_RGBA_BIT ) { + INTERP_RGBA( t, + ((GLubyte *)&(O[4])), + ((GLubyte *)&(I[4])), + ((GLubyte *)&(J[4])) ); + } + + if ( TYPE & R128_TEX0_BIT ) { + O[6] = LINTERP( t, I[6], J[6] ); + O[7] = LINTERP( t, I[7], J[7] ); + } + + if ( TYPE & R128_TEX1_BIT ) { + O[8] = LINTERP( t, I[8], J[8] ); + O[9] = LINTERP( t, I[9], J[9] ); + } } static void TAG(r128_init_fastpath)(struct r128_fast_tab *tab) { - tab->build_vertices = TAG(r128_setup_full); - tab->interp = TAG(r128_interp_vert); + tab->build_vertices = TAG(r128_setup_full); + tab->interp = TAG(r128_interp_vert); } #undef TYPE diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c b/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c index 2ae7fe4b5..7b0fecedd 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c,v 1.2 2000/12/12 17:17:07 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_ioctl.c,v 1.3 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -38,7 +38,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "mem.h" -#define R128_TIMEOUT 2000000 +#define R128_TIMEOUT 2048 /* ============================================================= @@ -47,9 +47,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* Get a new VB from the pool of vertex buffers in AGP space. */ -drmBufPtr r128GetBufferLocked( r128ContextPtr r128ctx ) +drmBufPtr r128GetBufferLocked( r128ContextPtr rmesa ) { - int fd = r128ctx->r128Screen->driScreen->fd; + int fd = rmesa->r128Screen->driScreen->fd; int index = 0; int size = 0; drmDMAReq dma; @@ -57,7 +57,7 @@ drmBufPtr r128GetBufferLocked( r128ContextPtr r128ctx ) int to = 0; int ret; - dma.context = r128ctx->hHWContext; + dma.context = rmesa->hHWContext; dma.send_count = 0; dma.send_list = NULL; dma.send_sizes = NULL; @@ -68,15 +68,15 @@ drmBufPtr r128GetBufferLocked( r128ContextPtr r128ctx ) dma.request_sizes = &size; dma.granted_count = 0; - while ( !buf && ( to++ < r128ctx->CCEtimeout ) ) { + while ( !buf && ( to++ < R128_TIMEOUT ) ) { ret = drmDMA( fd, &dma ); if ( ret == 0 ) { - buf = &r128ctx->r128Screen->buffers->list[index]; + buf = &rmesa->r128Screen->buffers->list[index]; buf->used = 0; #if ENABLE_PERF_BOXES /* Bump the performance counter */ - r128ctx->c_vertexBuffers++; + rmesa->c_vertexBuffers++; #endif return buf; } @@ -84,6 +84,7 @@ drmBufPtr r128GetBufferLocked( r128ContextPtr r128ctx ) if ( !buf ) { drmR128EngineReset( fd ); + UNLOCK_HARDWARE( rmesa ); fprintf( stderr, "Error: Could not get new VB... exiting\n" ); exit( -1 ); } @@ -91,57 +92,50 @@ drmBufPtr r128GetBufferLocked( r128ContextPtr r128ctx ) return buf; } -void r128FlushVerticesLocked( r128ContextPtr r128ctx ) +void r128FlushVerticesLocked( r128ContextPtr rmesa ) { - XF86DRIClipRectPtr pbox = r128ctx->pClipRects; - int nbox = r128ctx->numClipRects; - drmBufPtr buffer = r128ctx->vert_buf; - int count = r128ctx->num_verts; + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + drmBufPtr buffer = rmesa->vert_buf; + int count = rmesa->num_verts; int prim = R128_TRIANGLES; - int fd = r128ctx->driScreen->fd; + int fd = rmesa->driScreen->fd; int i; - if ( 0 ) - fprintf( stderr, "%s: buf=%d count=%d\n", - __FUNCTION__, buffer ? buffer->idx : -1, count ); + rmesa->num_verts = 0; + rmesa->vert_buf = NULL; - r128ctx->num_verts = 0; - r128ctx->vert_buf = NULL; - - if ( !buffer ) { + if ( !buffer ) return; - } - if ( r128ctx->dirty & ~R128_UPLOAD_CLIPRECTS ) { - r128EmitHwStateLocked( r128ctx ); - } + if ( rmesa->dirty & ~R128_UPLOAD_CLIPRECTS ) + r128EmitHwStateLocked( rmesa ); - if ( !nbox ) { + if ( !nbox ) count = 0; - } - if ( nbox >= R128_NR_SAREA_CLIPRECTS ) { - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; - } - if ( !count || !(r128ctx->dirty & R128_UPLOAD_CLIPRECTS) ) + if ( nbox >= R128_NR_SAREA_CLIPRECTS ) + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; + + if ( !count || !(rmesa->dirty & R128_UPLOAD_CLIPRECTS) ) { if ( nbox < 3 ) { - r128ctx->sarea->nbox = 0; + rmesa->sarea->nbox = 0; } else { - r128ctx->sarea->nbox = nbox; + rmesa->sarea->nbox = nbox; } drmR128FlushVertexBuffer( fd, prim, buffer->idx, count, 1 ); } else { - for (i = 0 ; i < nbox ; ) { + for ( i = 0 ; i < nbox ; ) { int nr = MIN2( i + R128_NR_SAREA_CLIPRECTS, nbox ); - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; int discard = 0; - r128ctx->sarea->nbox = nr - i; - for ( ; i < nr ; i++) { + rmesa->sarea->nbox = nr - i; + for ( ; i < nr ; i++ ) { *b++ = pbox[i]; } @@ -151,12 +145,12 @@ void r128FlushVerticesLocked( r128ContextPtr r128ctx ) discard = 1; } - r128ctx->sarea->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->sarea->dirty |= R128_UPLOAD_CLIPRECTS; drmR128FlushVertexBuffer( fd, prim, buffer->idx, count, discard ); } } - r128ctx->dirty &= ~R128_UPLOAD_CLIPRECTS; + rmesa->dirty &= ~R128_UPLOAD_CLIPRECTS; } @@ -165,60 +159,53 @@ void r128FlushVerticesLocked( r128ContextPtr r128ctx ) * Indexed vertex buffer handling */ -void r128GetEltBufLocked( r128ContextPtr r128ctx ) +void r128GetEltBufLocked( r128ContextPtr rmesa ) { - r128ctx->elt_buf = r128GetBufferLocked( r128ctx ); + rmesa->elt_buf = r128GetBufferLocked( rmesa ); } -void r128FireEltsLocked( r128ContextPtr r128ctx, +void r128FireEltsLocked( r128ContextPtr rmesa, GLuint start, GLuint end, GLuint discard ) { - XF86DRIClipRectPtr pbox = r128ctx->pClipRects; - int nbox = r128ctx->numClipRects; - drmBufPtr buffer = r128ctx->elt_buf; + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + drmBufPtr buffer = rmesa->elt_buf; int prim = R128_TRIANGLES; - int fd = r128ctx->driScreen->fd; + int fd = rmesa->driScreen->fd; int i; - if ( 0 ) - fprintf( stderr, "%s: start=%d end=%d discard=%d\n", - __FUNCTION__, start, end, discard ); - - if ( !buffer ) { + if ( !buffer ) return; - } - if ( r128ctx->dirty & ~R128_UPLOAD_CLIPRECTS ) { - r128EmitHwStateLocked( r128ctx ); - } + if ( rmesa->dirty & ~R128_UPLOAD_CLIPRECTS ) + r128EmitHwStateLocked( rmesa ); - if ( !nbox ) { + if ( !nbox ) end = start; - } - if ( nbox >= R128_NR_SAREA_CLIPRECTS ) { - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; - } - if ( start == end || !(r128ctx->dirty & R128_UPLOAD_CLIPRECTS) ) + if ( nbox >= R128_NR_SAREA_CLIPRECTS ) + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; + + if ( start == end || !(rmesa->dirty & R128_UPLOAD_CLIPRECTS) ) { if ( nbox < 3 ) { - r128ctx->sarea->nbox = 0; + rmesa->sarea->nbox = 0; } else { - r128ctx->sarea->nbox = nbox; + rmesa->sarea->nbox = nbox; } drmR128FlushIndices( fd, prim, buffer->idx, start, end, discard ); } else { - for (i = 0 ; i < nbox ; ) { + for ( i = 0 ; i < nbox ; ) { int nr = MIN2( i + R128_NR_SAREA_CLIPRECTS, nbox ); - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; int d = 0; - r128ctx->sarea->nbox = nr - i; - for ( ; i < nr ; i++) { + rmesa->sarea->nbox = nr - i; + for ( ; i < nr ; i++ ) { *b++ = pbox[i]; } @@ -228,44 +215,40 @@ void r128FireEltsLocked( r128ContextPtr r128ctx, d = discard; } - r128ctx->sarea->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->sarea->dirty |= R128_UPLOAD_CLIPRECTS; drmR128FlushIndices( fd, prim, buffer->idx, start, end, discard ); } } if ( R128_DEBUG & DEBUG_ALWAYS_SYNC ) { - drmR128WaitForIdleCCE( r128ctx->driFd ); + drmR128WaitForIdleCCE( rmesa->driFd ); } - r128ctx->dirty &= ~R128_UPLOAD_CLIPRECTS; + rmesa->dirty &= ~R128_UPLOAD_CLIPRECTS; } -void r128FlushEltsLocked( r128ContextPtr r128ctx ) +void r128FlushEltsLocked( r128ContextPtr rmesa ) { - if ( r128ctx->first_elt != r128ctx->next_elt ) { - r128FireEltsLocked( r128ctx, - ((GLuint)r128ctx->first_elt - - (GLuint)r128ctx->elt_buf->address), - ((GLuint)r128ctx->next_elt - - (GLuint)r128ctx->elt_buf->address), + if ( rmesa->first_elt != rmesa->next_elt ) { + r128FireEltsLocked( rmesa, + ((GLuint)rmesa->first_elt - + (GLuint)rmesa->elt_buf->address), + ((GLuint)rmesa->next_elt - + (GLuint)rmesa->elt_buf->address), 0 ); - ALIGN_NEXT_ELT( r128ctx ); - r128ctx->first_elt = r128ctx->next_elt; + ALIGN_NEXT_ELT( rmesa ); + rmesa->first_elt = rmesa->next_elt; } } -void r128ReleaseBufLocked( r128ContextPtr r128ctx, drmBufPtr buffer ) +void r128ReleaseBufLocked( r128ContextPtr rmesa, drmBufPtr buffer ) { - int fd = r128ctx->driScreen->fd; - - if ( 0 ) - fprintf( stderr, "%s: buffer=%p\n", - __FUNCTION__, buffer ); + int fd = rmesa->driScreen->fd; - if ( !buffer ) { + if ( !buffer ) return; - } + drmR128FlushVertexBuffer( fd, R128_TRIANGLES, buffer->idx, 0, 1 ); } @@ -273,28 +256,28 @@ void r128ReleaseBufLocked( r128ContextPtr r128ctx, drmBufPtr buffer ) /* Allocate some space in the current vertex buffer. If the current * buffer is full, flush it and grab another one. */ -CARD32 *r128AllocVertices( r128ContextPtr r128ctx, int count ) +CARD32 *r128AllocVertices( r128ContextPtr rmesa, int count ) { - return r128AllocVerticesInline( r128ctx, count ); + return r128AllocVerticesInline( rmesa, count ); } - /* ================================================================ * Texture uploads */ -void r128FireBlitLocked( r128ContextPtr r128ctx, drmBufPtr buffer, +void r128FireBlitLocked( r128ContextPtr rmesa, drmBufPtr buffer, GLint offset, GLint pitch, GLint format, GLint x, GLint y, GLint width, GLint height ) { GLint ret; - ret = drmR128TextureBlit( r128ctx->driFd, buffer->idx, + ret = drmR128TextureBlit( rmesa->driFd, buffer->idx, offset, pitch, format, x, y, width, height ); if ( ret ) { + UNLOCK_HARDWARE( rmesa ); fprintf( stderr, "drmR128TextureBlit: return = %d\n", ret ); exit( 1 ); } @@ -317,16 +300,16 @@ static void delay( void ) { * long as we want for a frame to complete. If it never does, then * the card has locked. */ -static int r128WaitForFrameCompletion( r128ContextPtr r128ctx ) +static int r128WaitForFrameCompletion( r128ContextPtr rmesa ) { - unsigned char *R128MMIO = r128ctx->r128Screen->mmio; + unsigned char *R128MMIO = rmesa->r128Screen->mmio.map; CARD32 frame; int i; int wait = 0; while ( 1 ) { frame = INREG( R128_LAST_FRAME_REG ); - if ( r128ctx->sarea->last_frame - frame <= R128_MAX_OUTSTANDING ) { + if ( rmesa->sarea->last_frame - frame <= R128_MAX_OUTSTANDING ) { break; } @@ -340,68 +323,129 @@ static int r128WaitForFrameCompletion( r128ContextPtr r128ctx ) return wait; } -/* Copy the back color buffer to the front color buffer */ -void r128SwapBuffers( r128ContextPtr r128ctx ) +/* Copy the back color buffer to the front color buffer. + */ +void r128SwapBuffers( r128ContextPtr rmesa ) { - GLint nbox = r128ctx->numClipRects; + GLint nbox = rmesa->numClipRects; GLint i; GLint ret; if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "\n********************************\n" ); fprintf( stderr, "\n%s( %p )\n\n", - __FUNCTION__, r128ctx->glCtx ); + __FUNCTION__, rmesa->glCtx ); fflush( stderr ); } - /* Flush any outstanding vertex buffers */ - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); - LOCK_HARDWARE( r128ctx ); + LOCK_HARDWARE( rmesa ); /* Throttle the frame rate -- only allow one pending swap buffers * request at a time. */ - if ( !r128WaitForFrameCompletion( r128ctx ) ) { - r128ctx->hardwareWentIdle = 1; + if ( !r128WaitForFrameCompletion( rmesa ) ) { + rmesa->hardwareWentIdle = 1; } else { - r128ctx->hardwareWentIdle = 0; + rmesa->hardwareWentIdle = 0; } for ( i = 0 ; i < nbox ; ) { GLint nr = MIN2( i + R128_NR_SAREA_CLIPRECTS , nbox ); - XF86DRIClipRectPtr box = r128ctx->pClipRects; - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr box = rmesa->pClipRects; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; GLint n = 0; for ( ; i < nr ; i++ ) { *b++ = *(XF86DRIClipRectRec *)&box[i]; n++; } - r128ctx->sarea->nbox = n; + rmesa->sarea->nbox = n; - ret = drmR128SwapBuffers( r128ctx->driFd ); + ret = drmR128SwapBuffers( rmesa->driFd ); if ( ret ) { + UNLOCK_HARDWARE( rmesa ); fprintf( stderr, "drmR128SwapBuffers: return = %d\n", ret ); exit( 1 ); } } if ( R128_DEBUG & DEBUG_ALWAYS_SYNC ) { - drmR128WaitForIdleCCE( r128ctx->driFd ); + drmR128WaitForIdleCCE( rmesa->driFd ); } - UNLOCK_HARDWARE( r128ctx ); + UNLOCK_HARDWARE( rmesa ); - r128ctx->new_state |= R128_NEW_CONTEXT; - r128ctx->dirty |= (R128_UPLOAD_CONTEXT | - R128_UPLOAD_MASKS | - R128_UPLOAD_CLIPRECTS); + rmesa->new_state |= R128_NEW_CONTEXT; + rmesa->dirty |= (R128_UPLOAD_CONTEXT | + R128_UPLOAD_MASKS | + R128_UPLOAD_CLIPRECTS); #if ENABLE_PERF_BOXES /* Log the performance counters if necessary */ - r128PerformanceCounters( r128ctx ); + r128PerformanceCounters( rmesa ); +#endif +} + +void r128PageFlip( r128ContextPtr rmesa ) +{ + GLint ret; + + if ( R128_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "\n%s( %p ): page=%d\n\n", + __FUNCTION__, rmesa->glCtx, rmesa->currentPage ); + } + + FLUSH_BATCH( rmesa ); + + LOCK_HARDWARE( rmesa ); + + /* Throttle the frame rate -- only allow one pending swap buffers + * request at a time. + */ + if ( !r128WaitForFrameCompletion( rmesa ) ) { + rmesa->hardwareWentIdle = 1; + } else { + rmesa->hardwareWentIdle = 0; + } + + /* The kernel will have been initialized to perform page flipping + * on a swapbuffers ioctl. + */ + ret = drmR128SwapBuffers( rmesa->driFd ); + + UNLOCK_HARDWARE( rmesa ); + + if ( ret ) { + fprintf( stderr, "drmR128SwapBuffers: return = %d\n", ret ); + exit( 1 ); + } + + if ( rmesa->currentPage == 0 ) { + rmesa->drawOffset = rmesa->r128Screen->frontOffset; + rmesa->drawPitch = rmesa->r128Screen->frontPitch; + rmesa->currentPage = 1; + } else { + rmesa->drawOffset = rmesa->r128Screen->backOffset; + rmesa->drawPitch = rmesa->r128Screen->backPitch; + rmesa->currentPage = 0; + } + + rmesa->setup.dst_pitch_offset_c = (((rmesa->drawPitch/8) << 21) | + (rmesa->drawOffset >> 5)); + rmesa->new_state |= R128_NEW_WINDOW; + + /* FIXME: Do we need this anymore? */ + rmesa->new_state |= R128_NEW_CONTEXT; + rmesa->dirty |= (R128_UPLOAD_CONTEXT | + R128_UPLOAD_MASKS | + R128_UPLOAD_CLIPRECTS); + +#if ENABLE_PERF_BOXES + /* Log the performance counters if necessary */ + r128PerformanceCounters( rmesa ); #endif } @@ -413,8 +457,8 @@ void r128SwapBuffers( r128ContextPtr r128ctx ) static GLbitfield r128DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint cx, GLint cy, GLint cw, GLint ch ) { - r128ContextPtr r128ctx = R128_CONTEXT(ctx); - __DRIdrawablePrivate *dPriv = r128ctx->driDrawable; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; GLuint flags = 0; GLint i; GLint ret; @@ -423,13 +467,13 @@ static GLbitfield r128DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all, fprintf( stderr, "%s:\n", __FUNCTION__ ); } - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); /* Update and emit any new state. We need to do this here to catch * changes to the masks. * FIXME: Just update the masks? */ - if ( r128ctx->new_state ) + if ( rmesa->new_state ) r128DDUpdateHWState( ctx ); if ( mask & DD_FRONT_LEFT_BIT ) { @@ -454,24 +498,23 @@ static GLbitfield r128DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all, } #endif - if ( !flags ) { + if ( !flags ) return mask; - } /* Flip top to bottom */ cx += dPriv->x; cy = dPriv->y + dPriv->h - cy - ch; - LOCK_HARDWARE( r128ctx ); + LOCK_HARDWARE( rmesa ); - if ( r128ctx->dirty & ~R128_UPLOAD_CLIPRECTS ) { - r128EmitHwStateLocked( r128ctx ); + if ( rmesa->dirty & ~R128_UPLOAD_CLIPRECTS ) { + r128EmitHwStateLocked( rmesa ); } - for ( i = 0 ; i < r128ctx->numClipRects ; ) { - GLint nr = MIN2( i + R128_NR_SAREA_CLIPRECTS , r128ctx->numClipRects ); - XF86DRIClipRectPtr box = r128ctx->pClipRects; - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + for ( i = 0 ; i < rmesa->numClipRects ; ) { + GLint nr = MIN2( i + R128_NR_SAREA_CLIPRECTS , rmesa->numClipRects ); + XF86DRIClipRectPtr box = rmesa->pClipRects; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; GLint n = 0; if ( !all ) { @@ -502,30 +545,31 @@ static GLbitfield r128DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all, } } - r128ctx->sarea->nbox = n; + rmesa->sarea->nbox = n; if ( R128_DEBUG & DEBUG_VERBOSE_IOCTL ) { fprintf( stderr, "drmR128Clear: flag 0x%x color %x depth %x nbox %d\n", flags, - (GLuint)r128ctx->ClearColor, - (GLuint)r128ctx->ClearDepth, - r128ctx->sarea->nbox ); + (GLuint)rmesa->ClearColor, + (GLuint)rmesa->ClearDepth, + rmesa->sarea->nbox ); } - ret = drmR128Clear( r128ctx->driFd, flags, + ret = drmR128Clear( rmesa->driFd, flags, cx, cy, cw, ch, - r128ctx->ClearColor, r128ctx->ClearDepth ); + rmesa->ClearColor, rmesa->ClearDepth ); if ( ret ) { + UNLOCK_HARDWARE( rmesa ); fprintf( stderr, "drmR128Clear: return = %d\n", ret ); exit( 1 ); } } - UNLOCK_HARDWARE( r128ctx ); + UNLOCK_HARDWARE( rmesa ); - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; return mask; } @@ -535,29 +579,29 @@ static GLbitfield r128DDClear( GLcontext *ctx, GLbitfield mask, GLboolean all, * Depth spans, pixels */ -void r128WriteDepthSpanLocked( r128ContextPtr r128ctx, +void r128WriteDepthSpanLocked( r128ContextPtr rmesa, GLuint n, GLint x, GLint y, const GLdepth depth[], const GLubyte mask[] ) { - XF86DRIClipRectPtr pbox = r128ctx->pClipRects; - int nbox = r128ctx->numClipRects; - int fd = r128ctx->driScreen->fd; + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + int fd = rmesa->driScreen->fd; int i; if ( !nbox || !n ) { return; } if ( nbox >= R128_NR_SAREA_CLIPRECTS ) { - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; } - if ( !(r128ctx->dirty & R128_UPLOAD_CLIPRECTS) ) + if ( !(rmesa->dirty & R128_UPLOAD_CLIPRECTS) ) { if ( nbox < 3 ) { - r128ctx->sarea->nbox = 0; + rmesa->sarea->nbox = 0; } else { - r128ctx->sarea->nbox = nbox; + rmesa->sarea->nbox = nbox; } drmR128WriteDepthSpan( fd, n, x, y, depth, mask ); @@ -566,44 +610,44 @@ void r128WriteDepthSpanLocked( r128ContextPtr r128ctx, { for (i = 0 ; i < nbox ; ) { int nr = MIN2( i + R128_NR_SAREA_CLIPRECTS, nbox ); - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; - r128ctx->sarea->nbox = nr - i; + rmesa->sarea->nbox = nr - i; for ( ; i < nr ; i++) { *b++ = pbox[i]; } - r128ctx->sarea->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->sarea->dirty |= R128_UPLOAD_CLIPRECTS; drmR128WriteDepthSpan( fd, n, x, y, depth, mask ); } } - r128ctx->dirty &= ~R128_UPLOAD_CLIPRECTS; + rmesa->dirty &= ~R128_UPLOAD_CLIPRECTS; } -void r128WriteDepthPixelsLocked( r128ContextPtr r128ctx, GLuint n, +void r128WriteDepthPixelsLocked( r128ContextPtr rmesa, GLuint n, const GLint x[], const GLint y[], const GLdepth depth[], const GLubyte mask[] ) { - XF86DRIClipRectPtr pbox = r128ctx->pClipRects; - int nbox = r128ctx->numClipRects; - int fd = r128ctx->driScreen->fd; + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + int fd = rmesa->driScreen->fd; int i; if ( !nbox || !n ) { return; } if ( nbox >= R128_NR_SAREA_CLIPRECTS ) { - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; } - if ( !(r128ctx->dirty & R128_UPLOAD_CLIPRECTS) ) + if ( !(rmesa->dirty & R128_UPLOAD_CLIPRECTS) ) { if ( nbox < 3 ) { - r128ctx->sarea->nbox = 0; + rmesa->sarea->nbox = 0; } else { - r128ctx->sarea->nbox = nbox; + rmesa->sarea->nbox = nbox; } drmR128WriteDepthPixels( fd, n, x, y, depth, mask ); @@ -612,42 +656,42 @@ void r128WriteDepthPixelsLocked( r128ContextPtr r128ctx, GLuint n, { for (i = 0 ; i < nbox ; ) { int nr = MIN2( i + R128_NR_SAREA_CLIPRECTS, nbox ); - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; - r128ctx->sarea->nbox = nr - i; + rmesa->sarea->nbox = nr - i; for ( ; i < nr ; i++) { *b++ = pbox[i]; } - r128ctx->sarea->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->sarea->dirty |= R128_UPLOAD_CLIPRECTS; drmR128WriteDepthPixels( fd, n, x, y, depth, mask ); } } - r128ctx->dirty &= ~R128_UPLOAD_CLIPRECTS; + rmesa->dirty &= ~R128_UPLOAD_CLIPRECTS; } -void r128ReadDepthSpanLocked( r128ContextPtr r128ctx, +void r128ReadDepthSpanLocked( r128ContextPtr rmesa, GLuint n, GLint x, GLint y ) { - XF86DRIClipRectPtr pbox = r128ctx->pClipRects; - int nbox = r128ctx->numClipRects; - int fd = r128ctx->driScreen->fd; + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + int fd = rmesa->driScreen->fd; int i; if ( !nbox || !n ) { return; } if ( nbox >= R128_NR_SAREA_CLIPRECTS ) { - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; } - if ( !(r128ctx->dirty & R128_UPLOAD_CLIPRECTS) ) + if ( !(rmesa->dirty & R128_UPLOAD_CLIPRECTS) ) { if ( nbox < 3 ) { - r128ctx->sarea->nbox = 0; + rmesa->sarea->nbox = 0; } else { - r128ctx->sarea->nbox = nbox; + rmesa->sarea->nbox = nbox; } drmR128ReadDepthSpan( fd, n, x, y ); @@ -656,42 +700,42 @@ void r128ReadDepthSpanLocked( r128ContextPtr r128ctx, { for (i = 0 ; i < nbox ; ) { int nr = MIN2( i + R128_NR_SAREA_CLIPRECTS, nbox ); - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; - r128ctx->sarea->nbox = nr - i; + rmesa->sarea->nbox = nr - i; for ( ; i < nr ; i++) { *b++ = pbox[i]; } - r128ctx->sarea->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->sarea->dirty |= R128_UPLOAD_CLIPRECTS; drmR128ReadDepthSpan( fd, n, x, y ); } } - r128ctx->dirty &= ~R128_UPLOAD_CLIPRECTS; + rmesa->dirty &= ~R128_UPLOAD_CLIPRECTS; } -void r128ReadDepthPixelsLocked( r128ContextPtr r128ctx, GLuint n, +void r128ReadDepthPixelsLocked( r128ContextPtr rmesa, GLuint n, const GLint x[], const GLint y[] ) { - XF86DRIClipRectPtr pbox = r128ctx->pClipRects; - int nbox = r128ctx->numClipRects; - int fd = r128ctx->driScreen->fd; + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + int fd = rmesa->driScreen->fd; int i; if ( !nbox || !n ) { return; } if ( nbox >= R128_NR_SAREA_CLIPRECTS ) { - r128ctx->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->dirty |= R128_UPLOAD_CLIPRECTS; } - if ( !(r128ctx->dirty & R128_UPLOAD_CLIPRECTS) ) + if ( !(rmesa->dirty & R128_UPLOAD_CLIPRECTS) ) { if ( nbox < 3 ) { - r128ctx->sarea->nbox = 0; + rmesa->sarea->nbox = 0; } else { - r128ctx->sarea->nbox = nbox; + rmesa->sarea->nbox = nbox; } drmR128ReadDepthPixels( fd, n, x, y ); @@ -700,60 +744,35 @@ void r128ReadDepthPixelsLocked( r128ContextPtr r128ctx, GLuint n, { for (i = 0 ; i < nbox ; ) { int nr = MIN2( i + R128_NR_SAREA_CLIPRECTS, nbox ); - XF86DRIClipRectPtr b = r128ctx->sarea->boxes; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; - r128ctx->sarea->nbox = nr - i; + rmesa->sarea->nbox = nr - i; for ( ; i < nr ; i++) { *b++ = pbox[i]; } - r128ctx->sarea->dirty |= R128_UPLOAD_CLIPRECTS; + rmesa->sarea->dirty |= R128_UPLOAD_CLIPRECTS; drmR128ReadDepthPixels( fd, n, x, y ); } } - r128ctx->dirty &= ~R128_UPLOAD_CLIPRECTS; + rmesa->dirty &= ~R128_UPLOAD_CLIPRECTS; } -/* ================================================================ - * Deprecated function... - */ -void r128SubmitPacketLocked( r128ContextPtr r128ctx, - CARD32 *buf, GLuint count ) -{ - CARD32 *b; - int c = count; - int fd = r128ctx->r128Screen->driScreen->fd; - int to = 0; - int ret; - - do { - b = buf + (count - c); - ret = drmR128SubmitPacket( fd, b, &c, 0 ); - } while ( ( ret == -EBUSY ) && ( to++ < r128ctx->CCEtimeout ) ); - - if ( ret < 0 ) { - drmR128EngineReset( fd ); - fprintf( stderr, "Error: Could not submit packet... exiting\n" ); - exit( -1 ); - } -} - - - -void r128WaitForIdleLocked( r128ContextPtr r128ctx ) +void r128WaitForIdleLocked( r128ContextPtr rmesa ) { - int fd = r128ctx->r128Screen->driScreen->fd; + int fd = rmesa->r128Screen->driScreen->fd; int to = 0; int ret; do { ret = drmR128WaitForIdleCCE( fd ); - } while ( ( ret == -EBUSY ) && ( to++ < r128ctx->CCEtimeout ) ); + } while ( ( ret == -EBUSY ) && ( to++ < R128_TIMEOUT ) ); if ( ret < 0 ) { drmR128EngineReset( fd ); + UNLOCK_HARDWARE( rmesa ); fprintf( stderr, "Error: Rage 128 timed out... exiting\n" ); exit( -1 ); } @@ -762,5 +781,5 @@ void r128WaitForIdleLocked( r128ContextPtr r128ctx ) void r128DDInitIoctlFuncs( GLcontext *ctx ) { - ctx->Driver.Clear = r128DDClear; + ctx->Driver.Clear = r128DDClear; } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.h b/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.h index 43b77659b..76f777912 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_ioctl.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_ioctl.h,v 1.1 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_ioctl.h,v 1.2 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -44,174 +44,128 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "xf86drm.h" #include "xf86drmR128.h" -#define R128_DEFAULT_TOTAL_CCE_TIMEOUT 1000000 /* usecs */ - #define R128_BUFFER_MAX_DWORDS (R128_BUFFER_SIZE / sizeof(CARD32)) -#define FLUSH_BATCH( r128ctx ) \ -do { \ - if ( R128_DEBUG & DEBUG_VERBOSE_IOCTL ) \ - fprintf( stderr, "FLUSH_BATCH in %s\n", __FUNCTION__ ); \ - if ( r128ctx->vert_buf ) { \ - r128FlushVertices( r128ctx ); \ - } else if ( r128ctx->next_elt != r128ctx->first_elt ) { \ - r128FlushElts( r128ctx ); \ - } \ -} while (0) - -#define r128FlushVertices( r128ctx ) \ -do { \ - LOCK_HARDWARE( r128ctx ); \ - r128FlushVerticesLocked( r128ctx ); \ - UNLOCK_HARDWARE( r128ctx ); \ -} while (0) - - -extern drmBufPtr r128GetBufferLocked( r128ContextPtr r128ctx ); -extern void r128FlushVerticesLocked( r128ContextPtr r128ctx ); +extern drmBufPtr r128GetBufferLocked( r128ContextPtr rmesa ); +extern void r128FlushVerticesLocked( r128ContextPtr rmesa ); - -#define r128FlushElts( r128ctx ) \ -do { \ - LOCK_HARDWARE( r128ctx ); \ - r128FlushEltsLocked( r128ctx ); \ - UNLOCK_HARDWARE( r128ctx ); \ -} while (0) - -extern void r128GetEltBufLocked( r128ContextPtr r128ctx ); -extern void r128FlushEltsLocked( r128ContextPtr r128ctx ); -extern void r128FireEltsLocked( r128ContextPtr r128ctx, +extern void r128GetEltBufLocked( r128ContextPtr rmesa ); +extern void r128FlushEltsLocked( r128ContextPtr rmesa ); +extern void r128FireEltsLocked( r128ContextPtr rmesa, GLuint start, GLuint end, GLuint discard ); -extern void r128ReleaseBufLocked( r128ContextPtr r128ctx, drmBufPtr buffer ); - - -/* 64-bit align the next element address, and then make room for the - * next indexed prim packet header. - */ -#define ALIGN_NEXT_ELT( r128ctx ) \ -do { \ - r128ctx->next_elt = (GLushort *) \ - (((GLuint)r128ctx->next_elt + 7) & ~0x7); \ - r128ctx->next_elt = (GLushort *) \ - ((GLubyte *)r128ctx->next_elt + R128_INDEX_PRIM_OFFSET); \ -} while (0) - +extern void r128ReleaseBufLocked( r128ContextPtr rmesa, drmBufPtr buffer ); /* Make this available as both a regular and an inline function. */ -extern CARD32 *r128AllocVertices( r128ContextPtr r128ctx, int count ); +extern CARD32 *r128AllocVertices( r128ContextPtr rmesa, int count ); -static __inline CARD32 *r128AllocVerticesInline( r128ContextPtr r128ctx, +static __inline CARD32 *r128AllocVerticesInline( r128ContextPtr rmesa, int count ) { - int bytes = count * r128ctx->vertsize * sizeof(CARD32); - CARD32 *head; + int bytes = count * rmesa->vertsize * sizeof(CARD32); + CARD32 *head; - if ( !r128ctx->vert_buf ) { - LOCK_HARDWARE( r128ctx ); + if ( !rmesa->vert_buf ) { + LOCK_HARDWARE( rmesa ); - if ( r128ctx->first_elt != r128ctx->next_elt ) { - r128FlushEltsLocked( r128ctx ); - } + if ( rmesa->first_elt != rmesa->next_elt ) { + r128FlushEltsLocked( rmesa ); + } - r128ctx->vert_buf = r128GetBufferLocked( r128ctx ); + rmesa->vert_buf = r128GetBufferLocked( rmesa ); - UNLOCK_HARDWARE( r128ctx ); - } else if ( r128ctx->vert_buf->used + bytes > r128ctx->vert_buf->total ) { - LOCK_HARDWARE( r128ctx ); + UNLOCK_HARDWARE( rmesa ); + } else if ( rmesa->vert_buf->used + bytes > rmesa->vert_buf->total ) { + LOCK_HARDWARE( rmesa ); - r128FlushVerticesLocked( r128ctx ); - r128ctx->vert_buf = r128GetBufferLocked( r128ctx ); + r128FlushVerticesLocked( rmesa ); + rmesa->vert_buf = r128GetBufferLocked( rmesa ); - UNLOCK_HARDWARE( r128ctx ); - } + UNLOCK_HARDWARE( rmesa ); + } - head = (CARD32 *)((char *)r128ctx->vert_buf->address + - r128ctx->vert_buf->used); + head = (CARD32 *)((char *)rmesa->vert_buf->address + + rmesa->vert_buf->used); - r128ctx->num_verts += count; - r128ctx->vert_buf->used += bytes; - return head; + rmesa->num_verts += count; + rmesa->vert_buf->used += bytes; + return head; } - -extern void r128FireBlitLocked( r128ContextPtr r128ctx, drmBufPtr buffer, +extern void r128FireBlitLocked( r128ContextPtr rmesa, drmBufPtr buffer, GLint offset, GLint pitch, GLint format, GLint x, GLint y, GLint width, GLint height ); - -extern void r128WriteDepthSpanLocked( r128ContextPtr r128ctx, +extern void r128WriteDepthSpanLocked( r128ContextPtr rmesa, GLuint n, GLint x, GLint y, const GLdepth depth[], const GLubyte mask[] ); -extern void r128WriteDepthPixelsLocked( r128ContextPtr r128ctx, GLuint n, +extern void r128WriteDepthPixelsLocked( r128ContextPtr rmesa, GLuint n, const GLint x[], const GLint y[], const GLdepth depth[], const GLubyte mask[] ); -extern void r128ReadDepthSpanLocked( r128ContextPtr r128ctx, +extern void r128ReadDepthSpanLocked( r128ContextPtr rmesa, GLuint n, GLint x, GLint y ); -extern void r128ReadDepthPixelsLocked( r128ContextPtr r128ctx, GLuint n, +extern void r128ReadDepthPixelsLocked( r128ContextPtr rmesa, GLuint n, const GLint x[], const GLint y[] ); +extern void r128SwapBuffers( r128ContextPtr rmesa ); +extern void r128PageFlip( r128ContextPtr rmesa ); -extern void r128SwapBuffers( r128ContextPtr r128ctx ); - - -#define r128WaitForIdle( r128ctx ) \ -do { \ - LOCK_HARDWARE( r128ctx ); \ - r128WaitForIdleLocked( r128ctx ); \ - UNLOCK_HARDWARE( r128ctx ); \ -} while (0) - -extern void r128WaitForIdleLocked( r128ContextPtr r128ctx ); +extern void r128WaitForIdleLocked( r128ContextPtr rmesa ); extern void r128DDInitIoctlFuncs( GLcontext *ctx ); - /* ================================================================ - * Deprecated functions: + * Helper macros: */ -typedef union { - float f; - int i; -} floatTOint; - -/* Insert an integer value into the CCE ring buffer. */ -#define R128CCE(v) \ -do { \ - r128ctx->CCEbuf[r128ctx->CCEcount] = (v); \ - r128ctx->CCEcount++; \ +#define FLUSH_BATCH( rmesa ) \ +do { \ + if ( R128_DEBUG & DEBUG_VERBOSE_IOCTL ) \ + fprintf( stderr, "FLUSH_BATCH in %s\n", __FUNCTION__ ); \ + if ( rmesa->vert_buf ) { \ + r128FlushVertices( rmesa ); \ + } else if ( rmesa->next_elt != rmesa->first_elt ) { \ + r128FlushElts( rmesa ); \ + } \ } while (0) -/* Insert an floating point value into the CCE ring buffer. */ -#define R128CCEF(v) \ -do { \ - floatTOint fTi; \ - fTi.f = (v); \ - r128ctx->CCEbuf[r128ctx->CCEcount] = fTi.i; \ - r128ctx->CCEcount++; \ +/* 64-bit align the next element address, and then make room for the + * next indexed prim packet header. + */ +#define ALIGN_NEXT_ELT( rmesa ) \ +do { \ + rmesa->next_elt = (GLushort *) \ + (((GLuint)rmesa->next_elt + 7) & ~0x7); \ + rmesa->next_elt = (GLushort *) \ + ((GLubyte *)rmesa->next_elt + R128_INDEX_PRIM_OFFSET); \ } while (0) -/* Insert a type-[0123] packet header into the ring buffer */ -#define R128CCE0(p,r,n) R128CCE((p) | ((n) << 16) | ((r) >> 2)) -#define R128CCE1(p,r1,r2) R128CCE((p) | (((r2) >> 2) << 11) | ((r1) >> 2)) -#define R128CCE2(p) R128CCE((p)) -#define R128CCE3(p,n) R128CCE((p) | ((n) << 16)) +#define r128FlushVertices( rmesa ) \ +do { \ + LOCK_HARDWARE( rmesa ); \ + r128FlushVerticesLocked( rmesa ); \ + UNLOCK_HARDWARE( rmesa ); \ +} while (0) -#define R128CCE_SUBMIT_PACKET() \ -do { \ - r128SubmitPacketLocked( r128ctx, r128ctx->CCEbuf, r128ctx->CCEcount ); \ - r128ctx->CCEcount = 0; \ +#define r128FlushElts( rmesa ) \ +do { \ + LOCK_HARDWARE( rmesa ); \ + r128FlushEltsLocked( rmesa ); \ + UNLOCK_HARDWARE( rmesa ); \ } while (0) -extern void r128SubmitPacketLocked( r128ContextPtr r128ctx, - CARD32 *buf, GLuint count ); +#define r128WaitForIdle( rmesa ) \ + do { \ + LOCK_HARDWARE( rmesa ); \ + r128WaitForIdleLocked( rmesa ); \ + UNLOCK_HARDWARE( rmesa ); \ + } while (0) #endif #endif /* __R128_IOCTL_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_lock.c b/xc/lib/GL/mesa/src/drv/r128/r128_lock.c index 6c9331c74..90ca2d7e1 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_lock.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_lock.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_lock.c,v 1.1 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_lock.c,v 1.2 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -38,7 +38,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #if DEBUG_LOCKING char *prevLockFile = NULL; -int prevLockLine = 0; +int prevLockLine = 0; #endif @@ -50,15 +50,15 @@ int prevLockLine = 0; * the hardware lock when it changes the window state, this routine will * automatically be called after such a change. */ -void r128GetLock( r128ContextPtr r128ctx, GLuint flags ) +void r128GetLock( r128ContextPtr rmesa, GLuint flags ) { - __DRIdrawablePrivate *dPriv = r128ctx->driDrawable; - __DRIscreenPrivate *sPriv = r128ctx->driScreen; - R128SAREAPriv *sarea = r128ctx->sarea; + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; + __DRIscreenPrivate *sPriv = rmesa->driScreen; + R128SAREAPrivPtr sarea = rmesa->sarea; int stamp = dPriv->lastStamp; int i; - drmGetLock( r128ctx->driFd, r128ctx->hHWContext, flags ); + drmGetLock( rmesa->driFd, rmesa->hHWContext, flags ); /* The window might have moved, so we might need to get new clip * rects. @@ -68,26 +68,26 @@ void r128GetLock( r128ContextPtr r128ctx, GLuint flags ) * Since the hardware state depends on having the latest drawable * clip rects, all state checking must be done _after_ this call. */ - XMESA_VALIDATE_DRAWABLE_INFO( r128ctx->display, sPriv, dPriv ); + XMESA_VALIDATE_DRAWABLE_INFO( rmesa->display, sPriv, dPriv ); if ( stamp != dPriv->lastStamp ) { - r128ctx->new_state |= R128_NEW_WINDOW | R128_NEW_CLIP; - r128ctx->SetupDone = 0; + rmesa->new_state |= R128_NEW_WINDOW | R128_NEW_CLIP; + rmesa->SetupDone = 0; } - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_CLIPRECTS; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_CLIPRECTS; - r128ctx->numClipRects = dPriv->numClipRects; - r128ctx->pClipRects = dPriv->pClipRects; + rmesa->numClipRects = dPriv->numClipRects; + rmesa->pClipRects = dPriv->pClipRects; - if ( sarea->ctxOwner != r128ctx->hHWContext ) { - sarea->ctxOwner = r128ctx->hHWContext; - r128ctx->dirty = R128_UPLOAD_ALL; + if ( sarea->ctxOwner != rmesa->hHWContext ) { + sarea->ctxOwner = rmesa->hHWContext; + rmesa->dirty = R128_UPLOAD_ALL; } - for ( i = 0 ; i < r128ctx->lastTexHeap ; i++ ) { - if ( sarea->texAge[i] != r128ctx->lastTexAge[i] ) { - r128AgeTextures( r128ctx, i ); + for ( i = 0 ; i < rmesa->lastTexHeap ; i++ ) { + if ( sarea->texAge[i] != rmesa->lastTexAge[i] ) { + r128AgeTextures( rmesa, i ); } } } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_lock.h b/xc/lib/GL/mesa/src/drv/r128/r128_lock.h index 7ae5b639a..e734ba29d 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_lock.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_lock.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_lock.h,v 1.3 2000/12/07 15:43:37 tsi Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_lock.h,v 1.4 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -33,40 +33,42 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. * */ -#ifndef _R128_LOCK_H_ -#define _R128_LOCK_H_ +#ifndef __R128_LOCK_H__ +#define __R128_LOCK_H__ #ifdef GLX_DIRECT_RENDERING -extern void r128GetLock( r128ContextPtr r128ctx, GLuint flags ); +extern void r128GetLock( r128ContextPtr rmesa, GLuint flags ); +/* Turn DEBUG_LOCKING on to find locking conflicts. + */ +#define DEBUG_LOCKING 0 -/* Turn DEBUG_LOCKING on to find locking conflicts (see r128_init.h) */ -#ifdef DEBUG_LOCKING +#if DEBUG_LOCKING extern char *prevLockFile; -extern int prevLockLine; - -#define DEBUG_LOCK() \ - do { \ - prevLockFile = (__FILE__); \ - prevLockLine = (__LINE__); \ - } while (0) - -#define DEBUG_RESET() \ - do { \ - prevLockFile = 0; \ - prevLockLine = 0; \ - } while (0) - -#define DEBUG_CHECK_LOCK() \ - do { \ - if (prevLockFile) { \ - fprintf(stderr, \ - "LOCK SET!\n\tPrevious %s:%d\n\tCurrent: %s:%d\n", \ - prevLockFile, prevLockLine, __FILE__, __LINE__); \ - exit(1); \ - } \ - } while (0) +extern int prevLockLine; + +#define DEBUG_LOCK() \ + do { \ + prevLockFile = (__FILE__); \ + prevLockLine = (__LINE__); \ + } while (0) + +#define DEBUG_RESET() \ + do { \ + prevLockFile = 0; \ + prevLockLine = 0; \ + } while (0) + +#define DEBUG_CHECK_LOCK() \ + do { \ + if ( prevLockFile ) { \ + fprintf( stderr, \ + "LOCK SET!\n\tPrevious %s:%d\n\tCurrent: %s:%d\n", \ + prevLockFile, prevLockLine, __FILE__, __LINE__ ); \ + exit( 1 ); \ + } \ + } while (0) #else @@ -84,26 +86,26 @@ extern int prevLockLine; /* Lock the hardware and validate our state. */ -#define LOCK_HARDWARE( r128ctx ) \ +#define LOCK_HARDWARE( rmesa ) \ do { \ char __ret = 0; \ DEBUG_CHECK_LOCK(); \ - DRM_CAS( r128ctx->driHwLock, r128ctx->hHWContext, \ - (DRM_LOCK_HELD | r128ctx->hHWContext), __ret ); \ + DRM_CAS( rmesa->driHwLock, rmesa->hHWContext, \ + (DRM_LOCK_HELD | rmesa->hHWContext), __ret ); \ if ( __ret ) \ - r128GetLock( r128ctx, 0 ); \ + r128GetLock( rmesa, 0 ); \ DEBUG_LOCK(); \ } while (0) /* Unlock the hardware. */ -#define UNLOCK_HARDWARE( r128ctx ) \ +#define UNLOCK_HARDWARE( rmesa ) \ do { \ - DRM_UNLOCK( r128ctx->driFd, \ - r128ctx->driHwLock, \ - r128ctx->hHWContext ); \ + DRM_UNLOCK( rmesa->driFd, \ + rmesa->driHwLock, \ + rmesa->hHWContext ); \ DEBUG_RESET(); \ } while (0) #endif -#endif /* _R128_LOCK_H_ */ +#endif /* __R128_LOCK_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.c b/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.c index 4b17e5636..7c85141be 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_pipeline.c,v 1.3 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_pipeline.c,v 1.4 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -41,7 +41,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "fog.h" static struct gl_pipeline_stage r128_fast_stage = { - "R128 Fast Path", + "r128 Fast Path", (PIPE_OP_VERT_XFORM | PIPE_OP_RAST_SETUP_0 | PIPE_OP_RAST_SETUP_1 | @@ -66,10 +66,10 @@ static struct gl_pipeline_stage r128_fast_stage = { */ GLboolean r128DDBuildPrecalcPipeline( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT(ctx); + r128ContextPtr rmesa = R128_CONTEXT(ctx); struct gl_pipeline *pipe = &ctx->CVA.pre; - if ( r128ctx->RenderIndex == 0 && + if ( rmesa->RenderIndex == 0 && (ctx->Enabled & ILLEGAL_ENABLES) == 0 && (ctx->Array.Flags & (VERT_OBJ_234 | VERT_TEX0_4 | @@ -81,15 +81,15 @@ GLboolean r128DDBuildPrecalcPipeline( GLcontext *ctx ) pipe->new_inputs = ctx->RenderFlags & VERT_DATA; pipe->ops = pipe->stages[0]->ops; - r128ctx->useFastPath = GL_TRUE; + rmesa->OnFastPath = GL_TRUE; return GL_TRUE; } - if ( r128ctx->useFastPath ) { - r128ctx->useFastPath = GL_FALSE; + if ( rmesa->OnFastPath ) { + rmesa->OnFastPath = GL_FALSE; - ctx->CVA.VB->ClipOrMask = 0; - ctx->CVA.VB->ClipAndMask = CLIP_ALL_BITS; + ctx->CVA.VB->ClipOrMask = 0; + ctx->CVA.VB->ClipAndMask = CLIP_ALL_BITS; ctx->Array.NewArrayState |= ctx->Array.Summary; } @@ -123,7 +123,6 @@ static void r128DDCheckRasterSetup( GLcontext *ctx, } -/* Register the pipeline with our stages included */ GLuint r128DDRegisterPipelineStages( struct gl_pipeline_stage *out, const struct gl_pipeline_stage *in, GLuint nr ) diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.h b/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.h index 84c667240..1cfb27d44 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_pipeline.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_pipeline.h,v 1.3 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_pipeline.h,v 1.4 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,13 +28,15 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_PIPELINE_H_ -#define _R128_PIPELINE_H_ +#ifndef __R128_PIPELINE_H__ +#define __R128_PIPELINE_H__ + +#ifdef GLX_DIRECT_RENDERING extern GLboolean r128DDBuildPrecalcPipeline( GLcontext *ctx ); extern GLuint r128DDRegisterPipelineStages( struct gl_pipeline_stage *out, @@ -47,4 +49,5 @@ extern void r128DDFastPath( struct vertex_buffer *VB ); extern void r128DDEltPathInit( void ); extern void r128DDEltPath( struct vertex_buffer *VB ); -#endif /* _R128_PIPELINE_H_ */ +#endif +#endif diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_screen.c b/xc/lib/GL/mesa/src/drv/r128/r128_screen.c index 139e7fbc3..e6aff7f00 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_screen.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_screen.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_screen.c,v 1.3 2000/12/04 19:21:46 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_screen.c,v 1.4 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,8 +28,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -41,7 +41,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r128_vb.h" #include "r128_pipeline.h" -#include <sys/mman.h> +#include "mem.h" #if 1 /* Including xf86PciInfo.h introduces a bunch of errors... @@ -57,208 +57,157 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #endif -/* Create the device specific screen private data struct */ -r128ScreenPtr r128CreateScreen(__DRIscreenPrivate *sPriv) +/* Create the device specific screen private data struct. + */ +r128ScreenPtr r128CreateScreen( __DRIscreenPrivate *sPriv ) { - r128ScreenPtr r128Screen; - R128DRIPtr r128DRIPriv = (R128DRIPtr)sPriv->pDevPriv; - int cpp; - - /* Allocate the private area */ - r128Screen = (r128ScreenPtr)Xmalloc(sizeof(*r128Screen)); - if (!r128Screen) return NULL; - - /* This is first since which regions we map depends on whether or - not we are using a PCI card */ - r128Screen->IsPCI = r128DRIPriv->IsPCI; - - r128Screen->mmioRgn.handle = r128DRIPriv->registerHandle; - r128Screen->mmioRgn.size = r128DRIPriv->registerSize; - if (drmMap(sPriv->fd, - r128Screen->mmioRgn.handle, - r128Screen->mmioRgn.size, - (drmAddressPtr)&r128Screen->mmio)) { - Xfree(r128Screen); - return NULL; - } - - if (!r128Screen->IsPCI) { - r128Screen->ringRgn.handle = r128DRIPriv->ringHandle; - r128Screen->ringRgn.size = r128DRIPriv->ringMapSize; - if (drmMap(sPriv->fd, - r128Screen->ringRgn.handle, - r128Screen->ringRgn.size, - (drmAddressPtr)&r128Screen->ring)) { - drmUnmap((drmAddress)r128Screen->mmio, r128Screen->mmioRgn.size); - Xfree(r128Screen); - return NULL; - } - - r128Screen->ringReadRgn.handle = r128DRIPriv->ringReadPtrHandle; - r128Screen->ringReadRgn.size = r128DRIPriv->ringReadMapSize; - if (drmMap(sPriv->fd, - r128Screen->ringReadRgn.handle, - r128Screen->ringReadRgn.size, - (drmAddressPtr)&r128Screen->ringReadPtr)) { - drmUnmap((drmAddress)r128Screen->ring, r128Screen->ringRgn.size); - drmUnmap((drmAddress)r128Screen->mmio, r128Screen->mmioRgn.size); - Xfree(r128Screen); - return NULL; - } - - r128Screen->bufRgn.handle = r128DRIPriv->bufHandle; - r128Screen->bufRgn.size = r128DRIPriv->bufMapSize; - if (drmMap(sPriv->fd, - r128Screen->bufRgn.handle, - r128Screen->bufRgn.size, - (drmAddressPtr)&r128Screen->buf)) { - drmUnmap((drmAddress)r128Screen->ringReadPtr, - r128Screen->ringReadRgn.size); - drmUnmap((drmAddress)r128Screen->ring, r128Screen->ringRgn.size); - drmUnmap((drmAddress)r128Screen->mmio, r128Screen->mmioRgn.size); - Xfree(r128Screen); - return NULL; - } - r128Screen->bufOffset = r128DRIPriv->bufOffset; - - r128Screen->agpTexRgn.handle = r128DRIPriv->agpTexHandle; - r128Screen->agpTexRgn.size = r128DRIPriv->agpTexMapSize; - if (drmMap(sPriv->fd, - r128Screen->agpTexRgn.handle, - r128Screen->agpTexRgn.size, - (drmAddressPtr)&r128Screen->agpTex)) { - drmUnmap((drmAddress)r128Screen->buf, r128Screen->bufRgn.size); - drmUnmap((drmAddress)r128Screen->ringReadPtr, - r128Screen->ringReadRgn.size); - drmUnmap((drmAddress)r128Screen->ring, r128Screen->ringRgn.size); - drmUnmap((drmAddress)r128Screen->mmio, r128Screen->mmioRgn.size); - Xfree(r128Screen); - return NULL; - } - r128Screen->agpTexOffset = r128DRIPriv->agpTexOffset; - - if (!(r128Screen->buffers = drmMapBufs(sPriv->fd))) { - drmUnmap((drmAddress)r128Screen->agpTex, - r128Screen->agpTexRgn.size); - drmUnmap((drmAddress)r128Screen->buf, r128Screen->bufRgn.size); - drmUnmap((drmAddress)r128Screen->ringReadPtr, - r128Screen->ringReadRgn.size); - drmUnmap((drmAddress)r128Screen->ring, r128Screen->ringRgn.size); - drmUnmap((drmAddress)r128Screen->mmio, r128Screen->mmioRgn.size); - Xfree(r128Screen); - return NULL; - } - } - - /* Allow both AGP and PCI cards to use vertex buffers. PCI cards use - * the ring walker method, ie. the vertex buffer data is actually part - * of the command stream. - */ - r128Screen->bufMapSize = r128DRIPriv->bufMapSize; - - r128Screen->deviceID = r128DRIPriv->deviceID; - - r128Screen->depth = r128DRIPriv->depth; - r128Screen->bpp = r128DRIPriv->bpp; - r128Screen->pixel_code = (r128Screen->bpp != 16 ? - r128Screen->bpp : - r128Screen->depth); - - cpp = r128Screen->bpp / 8; - - r128Screen->fb = sPriv->pFB; - r128Screen->fbOffset = sPriv->fbOrigin; - r128Screen->fbStride = sPriv->fbStride; - r128Screen->fbSize = sPriv->fbSize; - - r128Screen->frontOffset = r128DRIPriv->frontOffset; - r128Screen->frontPitch = r128DRIPriv->frontPitch; - r128Screen->backOffset = r128DRIPriv->backOffset; - r128Screen->backPitch = r128DRIPriv->backPitch; - r128Screen->depthOffset = r128DRIPriv->depthOffset; - r128Screen->depthPitch = r128DRIPriv->depthPitch; - r128Screen->spanOffset = r128DRIPriv->spanOffset; - - r128Screen->texOffset[R128_LOCAL_TEX_HEAP] = r128DRIPriv->textureOffset; - r128Screen->texSize[R128_LOCAL_TEX_HEAP] = r128DRIPriv->textureSize; - r128Screen->log2TexGran[R128_LOCAL_TEX_HEAP] = r128DRIPriv->log2TexGran; - - if (r128Screen->IsPCI) { - r128Screen->texOffset[R128_AGP_TEX_HEAP] = 0; - r128Screen->texSize[R128_AGP_TEX_HEAP] = 0; - r128Screen->log2TexGran[R128_AGP_TEX_HEAP] = 0; - r128Screen->NRTexHeaps = R128_NR_TEX_HEAPS-1; - } else { - r128Screen->texOffset[R128_AGP_TEX_HEAP] = 0; - r128Screen->texSize[R128_AGP_TEX_HEAP] = - r128DRIPriv->agpTexMapSize; - r128Screen->log2TexGran[R128_AGP_TEX_HEAP] = - r128DRIPriv->log2AGPTexGran; - r128Screen->NRTexHeaps = R128_NR_TEX_HEAPS; - } - - r128Screen->AGPMode = r128DRIPriv->AGPMode; - - r128Screen->CCEMode = r128DRIPriv->CCEMode; - r128Screen->CCEFifoSize = r128DRIPriv->CCEFifoSize; - - r128Screen->ringEntries = r128DRIPriv->ringSize/sizeof(CARD32); - if (!r128Screen->IsPCI) { - r128Screen->ringStartPtr = (int *)r128Screen->ring; - r128Screen->ringEndPtr = (int *)(r128Screen->ring - + r128DRIPriv->ringSize); - } - - r128Screen->MMIOFifoSlots = 0; - r128Screen->CCEFifoSlots = 0; - - r128Screen->CCEFifoAddr = R128_PM4_FIFO_DATA_EVEN; - - r128Screen->driScreen = sPriv; - - switch ( r128DRIPriv->deviceID ) { - case PCI_CHIP_RAGE128RE: - case PCI_CHIP_RAGE128RF: - case PCI_CHIP_RAGE128RK: - case PCI_CHIP_RAGE128RL: - r128Screen->chipset = R128_CARD_TYPE_R128; - break; - case PCI_CHIP_RAGE128PF: - r128Screen->chipset = R128_CARD_TYPE_R128_PRO; - break; - case PCI_CHIP_RAGE128LE: - case PCI_CHIP_RAGE128LF: - r128Screen->chipset = R128_CARD_TYPE_R128_MOBILITY; - break; - default: - r128Screen->chipset = R128_CARD_TYPE_R128; - break; - } - - r128DDFastPathInit(); - r128DDEltPathInit(); - r128DDTriangleFuncsInit(); - r128DDSetupInit(); - - return r128Screen; + r128ScreenPtr r128Screen; + R128DRIPtr r128DRIPriv = (R128DRIPtr)sPriv->pDevPriv; + + /* Check the DRI version */ + { + int major, minor, patch; + if ( XF86DRIQueryVersion( sPriv->display, &major, &minor, &patch ) ) { + if ( major != 3 || minor != 1 || patch < 0 ) { + char msg[128]; + sprintf( msg, "r128 DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch ); + __driMesaMessage( msg ); + return GL_FALSE; + } + } + } + + /* Check that the DDX driver version is compatible */ + if ( sPriv->ddxMajor != 4 || + sPriv->ddxMinor != 0 || + sPriv->ddxPatch < 0 ) { + char msg[128]; + sprintf( msg, "r128 DRI driver expected DDX driver version 4.0.x but got version %d.%d.%d", sPriv->ddxMajor, sPriv->ddxMinor, sPriv->ddxPatch ); + __driMesaMessage( msg ); + return GL_FALSE; + } + + /* Check that the DRM driver version is compatible */ + if ( sPriv->drmMajor != 2 || + sPriv->drmMinor != 1 || + sPriv->drmPatch < 0 ) { + char msg[128]; + sprintf( msg, "r128 DRI driver expected DRM driver version 2.1.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch ); + __driMesaMessage( msg ); + return GL_FALSE; + } + + /* Allocate the private area */ + r128Screen = (r128ScreenPtr) CALLOC( sizeof(*r128Screen) ); + if ( !r128Screen ) return NULL; + + /* This is first since which regions we map depends on whether or + * not we are using a PCI card. + */ + r128Screen->IsPCI = r128DRIPriv->IsPCI; + + r128Screen->mmio.handle = r128DRIPriv->registerHandle; + r128Screen->mmio.size = r128DRIPriv->registerSize; + if ( drmMap( sPriv->fd, + r128Screen->mmio.handle, + r128Screen->mmio.size, + (drmAddressPtr)&r128Screen->mmio.map ) ) { + FREE( r128Screen ); + return NULL; + } + + r128Screen->buffers = drmMapBufs( sPriv->fd ); + if ( !r128Screen->buffers ) { + drmUnmap( (drmAddress)r128Screen->mmio.map, r128Screen->mmio.size ); + FREE( r128Screen ); + return NULL; + } + + if ( !r128Screen->IsPCI ) { + r128Screen->agpTextures.handle = r128DRIPriv->agpTexHandle; + r128Screen->agpTextures.size = r128DRIPriv->agpTexMapSize; + if ( drmMap( sPriv->fd, + r128Screen->agpTextures.handle, + r128Screen->agpTextures.size, + (drmAddressPtr)&r128Screen->agpTextures.map ) ) { + drmUnmapBufs( r128Screen->buffers ); + drmUnmap( (drmAddress)r128Screen->mmio.map, r128Screen->mmio.size ); + FREE( r128Screen ); + return NULL; + } + } + + switch ( r128DRIPriv->deviceID ) { + case PCI_CHIP_RAGE128RE: + case PCI_CHIP_RAGE128RF: + case PCI_CHIP_RAGE128RK: + case PCI_CHIP_RAGE128RL: + r128Screen->chipset = R128_CARD_TYPE_R128; + break; + case PCI_CHIP_RAGE128PF: + r128Screen->chipset = R128_CARD_TYPE_R128_PRO; + break; + case PCI_CHIP_RAGE128LE: + case PCI_CHIP_RAGE128LF: + r128Screen->chipset = R128_CARD_TYPE_R128_MOBILITY; + break; + default: + r128Screen->chipset = R128_CARD_TYPE_R128; + break; + } + + r128Screen->cpp = r128DRIPriv->bpp / 8; + r128Screen->AGPMode = r128DRIPriv->AGPMode; + + r128Screen->frontOffset = r128DRIPriv->frontOffset; + r128Screen->frontPitch = r128DRIPriv->frontPitch; + r128Screen->backOffset = r128DRIPriv->backOffset; + r128Screen->backPitch = r128DRIPriv->backPitch; + r128Screen->depthOffset = r128DRIPriv->depthOffset; + r128Screen->depthPitch = r128DRIPriv->depthPitch; + r128Screen->spanOffset = r128DRIPriv->spanOffset; + + r128Screen->texOffset[R128_CARD_HEAP] = r128DRIPriv->textureOffset; + r128Screen->texSize[R128_CARD_HEAP] = r128DRIPriv->textureSize; + r128Screen->logTexGranularity[R128_CARD_HEAP] = r128DRIPriv->log2TexGran; + + if ( r128Screen->IsPCI ) { + r128Screen->numTexHeaps = R128_NR_TEX_HEAPS - 1; + r128Screen->texOffset[R128_AGP_HEAP] = 0; + r128Screen->texSize[R128_AGP_HEAP] = 0; + r128Screen->logTexGranularity[R128_AGP_HEAP] = 0; + } else { + r128Screen->numTexHeaps = R128_NR_TEX_HEAPS; + r128Screen->texOffset[R128_AGP_HEAP] = + r128DRIPriv->agpTexOffset + R128_AGP_TEX_OFFSET; + r128Screen->texSize[R128_AGP_HEAP] = r128DRIPriv->agpTexMapSize; + r128Screen->logTexGranularity[R128_AGP_HEAP] = + r128DRIPriv->log2AGPTexGran; + } + + r128Screen->driScreen = sPriv; + + r128DDSetupInit(); + r128DDTriangleFuncsInit(); + r128DDFastPathInit(); + r128DDEltPathInit(); + + return r128Screen; } -/* Destroy the device specific screen private data struct */ -void r128DestroyScreen(__DRIscreenPrivate *sPriv) +/* Destroy the device specific screen private data struct. + */ +void r128DestroyScreen( __DRIscreenPrivate *sPriv ) { - r128ScreenPtr r128Screen = (r128ScreenPtr)sPriv->private; - - if (!r128Screen->IsPCI) { - drmUnmapBufs(r128Screen->buffers); + r128ScreenPtr r128Screen = (r128ScreenPtr)sPriv->private; - drmUnmap((drmAddress)r128Screen->agpTex, r128Screen->agpTexRgn.size); - drmUnmap((drmAddress)r128Screen->buf, r128Screen->bufRgn.size); - drmUnmap((drmAddress)r128Screen->ringReadPtr, - r128Screen->ringReadRgn.size); - drmUnmap((drmAddress)r128Screen->ring, r128Screen->ringRgn.size); - } - drmUnmap((drmAddress)r128Screen->mmio, r128Screen->mmioRgn.size); + if ( !r128Screen->IsPCI ) { + drmUnmap( (drmAddress)r128Screen->agpTextures.map, + r128Screen->agpTextures.size ); + } + drmUnmapBufs( r128Screen->buffers ); + drmUnmap( (drmAddress)r128Screen->mmio.map, r128Screen->mmio.size ); - Xfree(r128Screen); - sPriv->private = NULL; + FREE( r128Screen ); + sPriv->private = NULL; } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_screen.h b/xc/lib/GL/mesa/src/drv/r128/r128_screen.h index 4fd6b7ac7..82e8dda81 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_screen.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_screen.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_screen.h,v 1.3 2000/12/04 19:21:47 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_screen.h,v 1.4 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,98 +28,58 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_SCREEN_H_ -#define _R128_SCREEN_H_ +#ifndef __R128_SCREEN_H__ +#define __R128_SCREEN_H__ #ifdef GLX_DIRECT_RENDERING #include "r128_sarea.h" typedef struct { - drmHandle handle; /* Handle to the DRM region */ - drmSize size; /* Size of the DRM region */ + drmHandle handle; /* Handle to the DRM region */ + drmSize size; /* Size of the DRM region */ + unsigned char *map; /* Mapping of the DRM region */ } r128RegionRec, *r128RegionPtr; typedef struct { - /* MMIO register data */ - r128RegionRec mmioRgn; - unsigned char *mmio; - - /* CCE ring buffer data */ - r128RegionRec ringRgn; - unsigned char *ring; - - /* CCE ring read pointer data */ - r128RegionRec ringReadRgn; - - /* CCE vertex/indirect buffer data */ - r128RegionRec bufRgn; - unsigned char *buf; - int bufOffset; - int bufMapSize; - drmBufMapPtr buffers; - - /* CCE AGP Texture data */ - r128RegionRec agpTexRgn; - unsigned char *agpTex; - int agpTexOffset; - - /* Frame buffer data */ - unsigned char *fb; - unsigned long fbOffset; - int fbStride; - int fbSize; - - unsigned int frontX, frontY; /* Start of front buffer */ - unsigned int frontOffset, frontPitch; - unsigned int backX, backY; /* Start of shared back buffer */ - unsigned int backOffset, backPitch; - unsigned int depthX, depthY; /* Start of shared depth buffer */ - unsigned int depthOffset, depthPitch; - unsigned int spanOffset; - - int chipset; - int IsPCI; /* Current card is a PCI card */ - int AGPMode; - - int CCEMode; /* CCE mode that server/clients use */ - int CCEFifoSize; /* Size of the CCE command FIFO */ - - /* CCE ring buffer data */ - int ringEntries; - - volatile int *ringReadPtr; /* Pointer to current read addr */ - int *ringStartPtr; /* Pointer to end of ring buffer */ - int *ringEndPtr; /* Pointer to end of ring buffer */ - - /* DRI screen private data */ - int deviceID; /* PCI device ID */ - int depth; /* Depth of display (8, 15, 16, 24) */ - int bpp; /* Bit depth of disp (8, 16, 24, 32) */ - int pixel_code; /* 8, 15, 16, 24, 32 */ + + GLint chipset; + GLint cpp; + GLint IsPCI; /* Current card is a PCI card */ + GLint AGPMode; + + GLuint frontOffset; + GLuint frontPitch; + GLuint backOffset; + GLuint backPitch; + + GLuint depthOffset; + GLuint depthPitch; + GLuint spanOffset; /* Shared texture data */ - int NRTexHeaps; - int texOffset[R128_NR_TEX_HEAPS]; - int texSize[R128_NR_TEX_HEAPS]; - int log2TexGran[R128_NR_TEX_HEAPS]; - - int MMIOFifoSlots; /* Free slots in the FIFO (64 max) */ - int CCEFifoSlots; /* Free slots in the CCE FIFO */ - - int CCEFifoAddr; /* MMIO offset to write next CCE - value (only used when CCE is - in PIO mode). */ - __DRIscreenPrivate *driScreen; + GLint numTexHeaps; + GLint texOffset[R128_NR_TEX_HEAPS]; + GLint texSize[R128_NR_TEX_HEAPS]; + GLint logTexGranularity[R128_NR_TEX_HEAPS]; + + r128RegionRec mmio; + r128RegionRec agpTextures; + + drmBufMapPtr buffers; + + __DRIscreenPrivate *driScreen; + } r128ScreenRec, *r128ScreenPtr; -r128ScreenPtr r128CreateScreen(__DRIscreenPrivate *sPriv); -void r128DestroyScreen(__DRIscreenPrivate *sPriv); + +extern r128ScreenPtr r128CreateScreen( __DRIscreenPrivate *sPriv ); +extern void r128DestroyScreen( __DRIscreenPrivate *sPriv ); #endif -#endif /* _R128_SCREEN_H_ */ +#endif /* __R128_SCREEN_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_span.c b/xc/lib/GL/mesa/src/drv/r128/r128_span.c index c25250378..6f71c2c78 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_span.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_span.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_span.c,v 1.4 2000/12/12 17:17:07 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_span.c,v 1.5 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,9 +28,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> - * Keith Whitwell <keithw@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Keith Whitwell <keithw@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -47,32 +47,34 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #define HAVE_HW_DEPTH_PIXELS 1 #define LOCAL_VARS \ - r128ContextPtr r128ctx = R128_CONTEXT(ctx); \ - r128ScreenPtr r128scrn = r128ctx->r128Screen; \ - __DRIdrawablePrivate *dPriv = r128ctx->driDrawable; \ - GLuint pitch = r128scrn->fbStride; \ + r128ContextPtr rmesa = R128_CONTEXT(ctx); \ + r128ScreenPtr r128scrn = rmesa->r128Screen; \ + __DRIscreenPrivate *sPriv = rmesa->driScreen; \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ + GLuint pitch = r128scrn->frontPitch * r128scrn->cpp; \ GLuint height = dPriv->h; \ - char *buf = (char *)(r128scrn->fb + \ - r128ctx->drawOffset + \ - (dPriv->x * r128scrn->bpp/8) + \ + char *buf = (char *)(sPriv->pFB + \ + rmesa->drawOffset + \ + (dPriv->x * r128scrn->cpp) + \ (dPriv->y * pitch)); \ - char *read_buf = (char *)(r128scrn->fb + \ - r128ctx->readOffset + \ - (dPriv->x * r128scrn->bpp/8) + \ + char *read_buf = (char *)(sPriv->pFB + \ + rmesa->readOffset + \ + (dPriv->x * r128scrn->cpp) + \ (dPriv->y * pitch)); \ GLushort p; \ (void) read_buf; (void) buf; (void) p #define LOCAL_DEPTH_VARS \ - r128ContextPtr r128ctx = R128_CONTEXT(ctx); \ - __DRIdrawablePrivate *dPriv = r128ctx->driDrawable; \ + r128ContextPtr rmesa = R128_CONTEXT(ctx); \ + r128ScreenPtr r128scrn = rmesa->r128Screen; \ + __DRIscreenPrivate *sPriv = rmesa->driScreen; \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ GLuint height = dPriv->h; \ - (void) height + (void) r128scrn; (void) sPriv; (void) height #define LOCAL_STENCIL_VARS LOCAL_DEPTH_VARS -#define INIT_MONO_PIXEL( p ) \ - p = r128ctx->Color +#define INIT_MONO_PIXEL( p ) p = rmesa->Color #define CLIPPIXEL( _x, _y ) \ ((_x >= minx) && (_x < maxx) && (_y >= miny) && (_y < maxy)) @@ -88,18 +90,18 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. if (_x1 + _n1 >= maxx) n1 -= (_x1 + n1 - maxx) + 1; \ } -#define Y_FLIP( _y ) (height - _y - 1) +#define Y_FLIP( _y ) (height - _y - 1) #define HW_LOCK() \ - r128ContextPtr r128ctx = R128_CONTEXT(ctx); \ - FLUSH_BATCH( r128ctx ); \ - LOCK_HARDWARE( r128ctx ); \ - r128WaitForIdleLocked( r128ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); \ + FLUSH_BATCH( rmesa ); \ + LOCK_HARDWARE( rmesa ); \ + r128WaitForIdleLocked( rmesa ); #define HW_CLIPLOOP() \ do { \ - __DRIdrawablePrivate *dPriv = r128ctx->driDrawable; \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ int _nc = dPriv->numClipRects; \ \ while ( _nc-- ) { \ @@ -113,7 +115,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. } while (0) #define HW_UNLOCK() \ - UNLOCK_HARDWARE( r128ctx ) \ + UNLOCK_HARDWARE( rmesa ) @@ -122,23 +124,26 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* 16 bit, RGB565 color spanline and pixel functions - */ \ + */ #define WRITE_RGBA( _x, _y, r, g, b, a ) \ *(GLushort *)(buf + _x*2 + _y*pitch) = ((((int)r & 0xf8) << 8) | \ (((int)g & 0xfc) << 3) | \ (((int)b & 0xf8) >> 3)) #define WRITE_PIXEL( _x, _y, p ) \ - *(GLushort *)(buf + _x*2 + _y*pitch) = p + *(GLushort *)(buf + _x*2 + _y*pitch) = p #define READ_RGBA( rgba, _x, _y ) \ - do { \ - GLushort p = *(GLushort *)(read_buf + _x*2 + _y*pitch); \ - rgba[0] = (p >> 8) & 0xf8; \ - rgba[1] = (p >> 3) & 0xfc; \ - rgba[2] = (p << 3) & 0xf8; \ - rgba[3] = 0xff; \ - } while (0) + do { \ + GLushort p = *(GLushort *)(read_buf + _x*2 + _y*pitch); \ + rgba[0] = (p >> 8) & 0xf8; \ + rgba[1] = (p >> 3) & 0xfc; \ + rgba[2] = (p << 3) & 0xf8; \ + rgba[3] = 0xff; \ + if ( rgba[0] & 0x08 ) rgba[0] |= 0x07; \ + if ( rgba[1] & 0x04 ) rgba[1] |= 0x03; \ + if ( rgba[2] & 0x08 ) rgba[2] |= 0x07; \ + } while (0) #define TAG(x) r128##x##_RGB565 #include "spantmp.h" @@ -175,9 +180,8 @@ do { \ /* 16-bit depth buffer functions */ - #define WRITE_DEPTH_SPAN() \ - r128WriteDepthSpanLocked( r128ctx, n, \ + r128WriteDepthSpanLocked( rmesa, n, \ x + dPriv->x, \ y + dPriv->y, \ depth, mask ); @@ -192,20 +196,19 @@ do { \ for ( i = 0 ; i < n ; i++ ) { \ oy[i] = Y_FLIP( y[i] ) + dPriv->y; \ } \ - r128WriteDepthPixelsLocked( r128ctx, n, ox, oy, depth, mask ); \ + r128WriteDepthPixelsLocked( rmesa, n, ox, oy, depth, mask ); \ } while (0) #define READ_DEPTH_SPAN() \ do { \ - r128ScreenPtr r128scrn = r128ctx->r128Screen; \ - GLushort *buf = (GLushort *)((GLubyte *)r128scrn->fb + \ + GLushort *buf = (GLushort *)((GLubyte *)sPriv->pFB + \ r128scrn->spanOffset); \ GLint i; \ \ - r128ReadDepthSpanLocked( r128ctx, n, \ + r128ReadDepthSpanLocked( rmesa, n, \ x + dPriv->x, \ y + dPriv->y ); \ - r128WaitForIdleLocked( r128ctx ); \ + r128WaitForIdleLocked( rmesa ); \ \ for ( i = 0 ; i < n ; i++ ) { \ depth[i] = buf[i]; \ @@ -214,8 +217,7 @@ do { \ #define READ_DEPTH_PIXELS() \ do { \ - r128ScreenPtr r128scrn = r128ctx->r128Screen; \ - GLushort *buf = (GLushort *)((GLubyte *)r128scrn->fb + \ + GLushort *buf = (GLushort *)((GLubyte *)sPriv->pFB + \ r128scrn->spanOffset); \ GLint i, remaining = n; \ \ @@ -236,8 +238,8 @@ do { \ oy[i] = Y_FLIP( y[i] ) + dPriv->y; \ } \ \ - r128ReadDepthPixelsLocked( r128ctx, count, ox, oy ); \ - r128WaitForIdleLocked( r128ctx ); \ + r128ReadDepthPixelsLocked( rmesa, count, ox, oy ); \ + r128WaitForIdleLocked( rmesa ); \ \ for ( i = 0 ; i < count ; i++ ) { \ depth[i] = buf[i]; \ @@ -256,7 +258,7 @@ do { \ /* 24-bit depth, 8-bit stencil buffer functions */ #define WRITE_DEPTH_SPAN() \ - r128WriteDepthSpanLocked( r128ctx, n, \ + r128WriteDepthSpanLocked( rmesa, n, \ x + dPriv->x, \ y + dPriv->y, \ depth, mask ); @@ -271,20 +273,19 @@ do { \ for ( i = 0 ; i < n ; i++ ) { \ oy[i] = Y_FLIP( y[i] ) + dPriv->y; \ } \ - r128WriteDepthPixelsLocked( r128ctx, n, ox, oy, depth, mask ); \ + r128WriteDepthPixelsLocked( rmesa, n, ox, oy, depth, mask ); \ } while (0) #define READ_DEPTH_SPAN() \ do { \ - r128ScreenPtr r128scrn = r128ctx->r128Screen; \ - GLuint *buf = (GLuint *)((GLubyte *)r128scrn->fb + \ + GLuint *buf = (GLuint *)((GLubyte *)sPriv->pFB + \ r128scrn->spanOffset); \ GLint i; \ \ - r128ReadDepthSpanLocked( r128ctx, n, \ + r128ReadDepthSpanLocked( rmesa, n, \ x + dPriv->x, \ y + dPriv->y ); \ - r128WaitForIdleLocked( r128ctx ); \ + r128WaitForIdleLocked( rmesa ); \ \ for ( i = 0 ; i < n ; i++ ) { \ depth[i] = buf[i] & 0x00ffffff; \ @@ -293,8 +294,7 @@ do { \ #define READ_DEPTH_PIXELS() \ do { \ - r128ScreenPtr r128scrn = r128ctx->r128Screen; \ - GLuint *buf = (GLuint *)((GLubyte *)r128scrn->fb + \ + GLuint *buf = (GLuint *)((GLubyte *)sPriv->pFB + \ r128scrn->spanOffset); \ GLint i, remaining = n; \ \ @@ -315,8 +315,8 @@ do { \ oy[i] = Y_FLIP( y[i] ) + dPriv->y; \ } \ \ - r128ReadDepthPixelsLocked( r128ctx, count, ox, oy ); \ - r128WaitForIdleLocked( r128ctx ); \ + r128ReadDepthPixelsLocked( rmesa, count, ox, oy ); \ + r128WaitForIdleLocked( rmesa ); \ \ for ( i = 0 ; i < count ; i++ ) { \ depth[i] = buf[i] & 0x00ffffff; \ @@ -344,10 +344,10 @@ do { \ void r128DDInitSpanFuncs( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT(ctx); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - switch ( r128ctx->r128Screen->bpp ) { - case 16: + switch ( rmesa->r128Screen->cpp ) { + case 2: ctx->Driver.WriteRGBASpan = r128WriteRGBASpan_RGB565; ctx->Driver.WriteRGBSpan = r128WriteRGBSpan_RGB565; ctx->Driver.WriteMonoRGBASpan = r128WriteMonoRGBASpan_RGB565; @@ -357,7 +357,7 @@ void r128DDInitSpanFuncs( GLcontext *ctx ) ctx->Driver.ReadRGBAPixels = r128ReadRGBAPixels_RGB565; break; - case 32: + case 4: ctx->Driver.WriteRGBASpan = r128WriteRGBASpan_ARGB8888; ctx->Driver.WriteRGBSpan = r128WriteRGBSpan_ARGB8888; ctx->Driver.WriteMonoRGBASpan = r128WriteMonoRGBASpan_ARGB8888; @@ -371,7 +371,7 @@ void r128DDInitSpanFuncs( GLcontext *ctx ) break; } - switch ( r128ctx->DepthSize ) { + switch ( rmesa->glCtx->Visual->DepthBits ) { case 16: ctx->Driver.ReadDepthSpan = r128ReadDepthSpan_16; ctx->Driver.WriteDepthSpan = r128WriteDepthSpan_16; diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_span.h b/xc/lib/GL/mesa/src/drv/r128/r128_span.h index 486445d31..44356c5b2 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_span.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_span.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_span.h,v 1.2 2000/12/04 19:21:47 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_span.h,v 1.3 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,17 +28,17 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_SPAN_H_ -#define _R128_SPAN_H_ +#ifndef __R128_SPAN_H__ +#define __R128_SPAN_H__ #ifdef GLX_DIRECT_RENDERING -extern void r128DDInitSpanFuncs(GLcontext *ctx); +extern void r128DDInitSpanFuncs( GLcontext *ctx ); #endif -#endif /* _R128_SPAN_H_ */ +#endif diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_state.c b/xc/lib/GL/mesa/src/drv/r128/r128_state.c index 10a955af7..598d2c6bc 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_state.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_state.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_state.c,v 1.6 2000/12/12 17:17:07 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_state.c,v 1.7 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -29,6 +29,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * Keith Whitwell <keithw@valinux.com> * */ @@ -51,9 +52,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. static void r128UpdateAlphaMode( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 a = r128ctx->setup.misc_3d_state_cntl_reg; - CARD32 t = r128ctx->setup.tex_cntl_c; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + CARD32 a = rmesa->setup.misc_3d_state_cntl_reg; + CARD32 t = rmesa->setup.tex_cntl_c; if ( ctx->Color.AlphaEnabled ) { GLubyte ref = ctx->Color.AlphaRef; @@ -63,7 +64,6 @@ static void r128UpdateAlphaMode( GLcontext *ctx ) switch ( ctx->Color.AlphaFunc ) { case GL_NEVER: a |= R128_ALPHA_TEST_NEVER; - ref = 0; break; case GL_LESS: a |= R128_ALPHA_TEST_LESS; @@ -159,48 +159,48 @@ static void r128UpdateAlphaMode( GLcontext *ctx ) t &= ~R128_ALPHA_ENABLE; } - if ( r128ctx->setup.misc_3d_state_cntl_reg != a ) { - r128ctx->setup.misc_3d_state_cntl_reg = a; - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; + if ( rmesa->setup.misc_3d_state_cntl_reg != a ) { + rmesa->setup.misc_3d_state_cntl_reg = a; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; } - if ( r128ctx->setup.tex_cntl_c != t ) { - r128ctx->setup.tex_cntl_c = t; - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; + if ( rmesa->setup.tex_cntl_c != t ) { + rmesa->setup.tex_cntl_c = t; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; } } static void r128DDAlphaFunc( GLcontext *ctx, GLenum func, GLclampf ref ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_ALPHA; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_ALPHA; } static void r128DDBlendEquation( GLcontext *ctx, GLenum mode ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_ALPHA; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_ALPHA; } static void r128DDBlendFunc( GLcontext *ctx, GLenum sfactor, GLenum dfactor ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_ALPHA; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_ALPHA; } static void r128DDBlendFuncSeparate( GLcontext *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_ALPHA; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_ALPHA; } @@ -210,9 +210,9 @@ static void r128DDBlendFuncSeparate( GLcontext *ctx, static void r128UpdateZMode( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 z = r128ctx->setup.z_sten_cntl_c; - CARD32 t = r128ctx->setup.tex_cntl_c; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + CARD32 z = rmesa->setup.z_sten_cntl_c; + CARD32 t = rmesa->setup.tex_cntl_c; if ( ctx->Depth.Test ) { z &= ~R128_Z_TEST_MASK; @@ -255,45 +255,45 @@ static void r128UpdateZMode( GLcontext *ctx ) t &= ~R128_Z_WRITE_ENABLE; } - if ( r128ctx->setup.z_sten_cntl_c != z ) { - r128ctx->setup.z_sten_cntl_c = z; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + if ( rmesa->setup.z_sten_cntl_c != z ) { + rmesa->setup.z_sten_cntl_c = z; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } - if ( r128ctx->setup.tex_cntl_c != t ) { - r128ctx->setup.tex_cntl_c = t; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + if ( rmesa->setup.tex_cntl_c != t ) { + rmesa->setup.tex_cntl_c = t; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } } static void r128DDDepthFunc( GLcontext *ctx, GLenum func ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_DEPTH; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_DEPTH; } static void r128DDDepthMask( GLcontext *ctx, GLboolean flag ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_DEPTH; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_DEPTH; } static void r128DDClearDepth( GLcontext *ctx, GLclampd d ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - switch ( r128ctx->DepthSize ) { - case 16: - r128ctx->ClearDepth = d * 0x0000ffff; + switch ( rmesa->setup.z_sten_cntl_c & R128_Z_PIX_WIDTH_MASK ) { + case R128_Z_PIX_WIDTH_16: + rmesa->ClearDepth = d * 0x0000ffff; break; - case 24: - r128ctx->ClearDepth = d * 0x00ffffff; + case R128_Z_PIX_WIDTH_24: + rmesa->ClearDepth = d * 0x00ffffff; break; - case 32: - r128ctx->ClearDepth = d * 0xffffffff; + case R128_Z_PIX_WIDTH_32: + rmesa->ClearDepth = d * 0xffffffff; break; } } @@ -305,8 +305,8 @@ static void r128DDClearDepth( GLcontext *ctx, GLclampd d ) static void r128UpdateFogAttrib( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 t = r128ctx->setup.tex_cntl_c; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + CARD32 t = rmesa->setup.tex_cntl_c; GLubyte c[4]; CARD32 col; @@ -316,25 +316,25 @@ static void r128UpdateFogAttrib( GLcontext *ctx ) t &= ~R128_FOG_ENABLE; } - FLOAT_RGBA_TO_UBYTE_RGBA( c, ctx->Fog.Color ); - col = r128PackColor( 32, c[0], c[1], c[2], c[3] ); + FLOAT_RGB_TO_UBYTE_RGB( c, ctx->Fog.Color ); + col = r128PackColor( 4, c[0], c[1], c[2], 0 ); - if ( r128ctx->setup.fog_color_c != col ) { - r128ctx->setup.fog_color_c = col; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + if ( rmesa->setup.fog_color_c != col ) { + rmesa->setup.fog_color_c = col; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } - if ( r128ctx->setup.tex_cntl_c != t ) { - r128ctx->setup.tex_cntl_c = t; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + if ( rmesa->setup.tex_cntl_c != t ) { + rmesa->setup.tex_cntl_c = t; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } } static void r128DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_FOG; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_FOG; } @@ -344,14 +344,14 @@ static void r128DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) static void r128UpdateClipping( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - if ( r128ctx->driDrawable ) { - __DRIdrawablePrivate *drawable = r128ctx->driDrawable; + if ( rmesa->driDrawable ) { + __DRIdrawablePrivate *drawable = rmesa->driDrawable; int x1 = 0; int y1 = 0; - int x2 = r128ctx->driDrawable->w - 1; - int y2 = r128ctx->driDrawable->h - 1; + int x2 = drawable->w - 1; + int y2 = drawable->h - 1; if ( ctx->Scissor.Enabled ) { if ( ctx->Scissor.X > x1 ) { @@ -368,51 +368,25 @@ static void r128UpdateClipping( GLcontext *ctx ) } } - x1 += r128ctx->driDrawable->x; - y1 += r128ctx->driDrawable->y; - x2 += r128ctx->driDrawable->x; - y2 += r128ctx->driDrawable->y; - - if ( 0 ) { - fprintf( stderr, "%s: drawable %3d %3d %3d %3d\n", - __FUNCTION__, - r128ctx->driDrawable->x, - r128ctx->driDrawable->y, - r128ctx->driDrawable->w, - r128ctx->driDrawable->h ); - fprintf( stderr, "%s: draw buf %3d %3d %3d %3d\n", - __FUNCTION__, - ctx->DrawBuffer->Xmin, - ctx->DrawBuffer->Ymin, - ctx->DrawBuffer->Xmax, - ctx->DrawBuffer->Ymax ); - fprintf( stderr, "%s: scissor %3d %3d %3d %3d\n", - __FUNCTION__, - ctx->Scissor.X, - ctx->Scissor.Y, - ctx->Scissor.Width, - ctx->Scissor.Height ); - fprintf( stderr, "%s: final %3d %3d %3d %3d\n", - __FUNCTION__, x1, y1, x2, y2 ); - fprintf( stderr, "\n" ); - } + x1 += drawable->x; + y1 += drawable->y; + x2 += drawable->x; + y2 += drawable->y; - r128ctx->setup.sc_top_left_c = ((x1 << 0) | - (y1 << 16)); - r128ctx->setup.sc_bottom_right_c = ((x2 << 0) | - (y2 << 16)); + rmesa->setup.sc_top_left_c = ((y1 << 16) | x1); + rmesa->setup.sc_bottom_right_c = ((y2 << 16) | x2); - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } } static void r128DDScissor( GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_CLIP; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_CLIP; } @@ -422,8 +396,8 @@ static void r128DDScissor( GLcontext *ctx, static void r128UpdateCull( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 f = r128ctx->setup.pm4_vc_fpu_setup; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + CARD32 f = rmesa->setup.pm4_vc_fpu_setup; f &= ~R128_FRONT_DIR_MASK; @@ -453,26 +427,26 @@ static void r128UpdateCull( GLcontext *ctx ) } } - if ( r128ctx->setup.pm4_vc_fpu_setup != f ) { - r128ctx->setup.pm4_vc_fpu_setup = f; - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_SETUP; + if ( rmesa->setup.pm4_vc_fpu_setup != f ) { + rmesa->setup.pm4_vc_fpu_setup = f; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_SETUP; } } static void r128DDCullFace( GLcontext *ctx, GLenum mode ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_CULL; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_CULL; } static void r128DDFrontFace( GLcontext *ctx, GLenum mode ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_CULL; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_CULL; } @@ -482,17 +456,17 @@ static void r128DDFrontFace( GLcontext *ctx, GLenum mode ) static void r128UpdateMasks( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - GLuint mask = r128PackColor( r128ctx->r128Screen->bpp, + GLuint mask = r128PackColor( rmesa->r128Screen->cpp, ctx->Color.ColorMask[RCOMP], ctx->Color.ColorMask[GCOMP], ctx->Color.ColorMask[BCOMP], ctx->Color.ColorMask[ACOMP] ); - if ( r128ctx->setup.plane_3d_mask_c != mask ) { - r128ctx->setup.plane_3d_mask_c = mask; - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; + if ( rmesa->setup.plane_3d_mask_c != mask ) { + rmesa->setup.plane_3d_mask_c = mask; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; } } @@ -500,10 +474,10 @@ static GLboolean r128DDColorMask( GLcontext *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_MASKS; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_MASKS; return GL_TRUE; } @@ -517,48 +491,33 @@ static GLboolean r128DDColorMask( GLcontext *ctx, * sense to break them out of the core texture state update routines. */ -static void r128UpdateRenderAttrib( GLcontext *ctx ) -{ - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 t = r128ctx->setup.tex_cntl_c; - CARD32 bias = r128ctx->lod_bias & 0xff;; - - t &= ~R128_LOD_BIAS_MASK; - t |= (bias << R128_LOD_BIAS_SHIFT); - - if ( ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR ) { - t |= R128_SPEC_LIGHT_ENABLE; - } else { - t &= ~R128_SPEC_LIGHT_ENABLE; - } - - if ( ctx->Color.DitherFlag ) { - t |= R128_DITHER_ENABLE; - } else { - t &= ~R128_DITHER_ENABLE; - } - - if ( r128ctx->setup.tex_cntl_c != t ) { - r128ctx->setup.tex_cntl_c = t; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; - } -} - static void r128DDLightModelfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); if ( pname == GL_LIGHT_MODEL_COLOR_CONTROL ) { - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_RENDER; + CARD32 t = rmesa->setup.tex_cntl_c; + + FLUSH_BATCH( rmesa ); + + if ( ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR ) { + t |= R128_SPEC_LIGHT_ENABLE; + } else { + t &= ~R128_SPEC_LIGHT_ENABLE; + } + + if ( rmesa->setup.tex_cntl_c != t ) { + rmesa->setup.tex_cntl_c = t; + rmesa->dirty |= R128_UPLOAD_CONTEXT; + } } } static void r128DDShadeModel( GLcontext *ctx, GLenum mode ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 s = r128ctx->setup.pm4_vc_fpu_setup; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + CARD32 s = rmesa->setup.pm4_vc_fpu_setup; s &= ~R128_FPU_COLOR_MASK; @@ -573,12 +532,12 @@ static void r128DDShadeModel( GLcontext *ctx, GLenum mode ) return; } - if ( r128ctx->setup.pm4_vc_fpu_setup != s ) { - FLUSH_BATCH( r128ctx ); - r128ctx->setup.pm4_vc_fpu_setup = s; + if ( rmesa->setup.pm4_vc_fpu_setup != s ) { + FLUSH_BATCH( rmesa ); + rmesa->setup.pm4_vc_fpu_setup = s; - r128ctx->new_state |= R128_NEW_CONTEXT; - r128ctx->dirty |= R128_UPLOAD_SETUP; + rmesa->new_state |= R128_NEW_CONTEXT; + rmesa->dirty |= R128_UPLOAD_SETUP; } } @@ -589,14 +548,14 @@ static void r128DDShadeModel( GLcontext *ctx, GLenum mode ) void r128UpdateWindow( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - int x = r128ctx->driDrawable->x; - int y = r128ctx->driDrawable->y; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + int x = rmesa->driDrawable->x; + int y = rmesa->driDrawable->y; - r128ctx->setup.window_xy_offset = ((y << R128_WINDOW_Y_SHIFT) | - (x << R128_WINDOW_X_SHIFT)); + rmesa->setup.window_xy_offset = ((y << R128_WINDOW_Y_SHIFT) | + (x << R128_WINDOW_X_SHIFT)); - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_WINDOW; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_WINDOW; } @@ -607,73 +566,65 @@ void r128UpdateWindow( GLcontext *ctx ) static void r128DDClearColor( GLcontext *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - r128ctx->ClearColor = r128PackColor( r128ctx->r128Screen->bpp, - r, g, b, a ); + rmesa->ClearColor = r128PackColor( rmesa->r128Screen->cpp, + r, g, b, a ); } static void r128DDColor( GLcontext *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - r128ctx->Color = r128PackColor( r128ctx->r128Screen->bpp, - r, g, b, a ); + rmesa->Color = r128PackColor( rmesa->r128Screen->cpp, + r, g, b, a ); } static void r128DDLogicOpCode( GLcontext *ctx, GLenum opcode ) { if ( ctx->Color.ColorLogicOpEnabled ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); if ( opcode == GL_COPY ) { - r128ctx->Fallback &= ~R128_FALLBACK_LOGICOP; + rmesa->Fallback &= ~R128_FALLBACK_LOGICOP; } else { - r128ctx->Fallback |= R128_FALLBACK_LOGICOP; + rmesa->Fallback |= R128_FALLBACK_LOGICOP; } } } static GLboolean r128DDSetDrawBuffer( GLcontext *ctx, GLenum mode ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); int found = GL_TRUE; - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); - if ( r128ctx->DrawBuffer != mode ) { - r128ctx->DrawBuffer = mode; - r128ctx->Fallback &= ~R128_FALLBACK_DRAW_BUFFER; + if ( rmesa->DrawBuffer != mode ) { + rmesa->DrawBuffer = mode; + rmesa->Fallback &= ~R128_FALLBACK_DRAW_BUFFER; switch ( mode ) { case GL_FRONT_LEFT: - r128ctx->drawX = r128ctx->r128Screen->frontX; - r128ctx->drawY = r128ctx->r128Screen->frontY; - r128ctx->drawOffset = r128ctx->r128Screen->frontOffset; - r128ctx->drawPitch = r128ctx->r128Screen->frontPitch; - r128ctx->readX = r128ctx->r128Screen->frontX; - r128ctx->readY = r128ctx->r128Screen->frontY; + rmesa->drawOffset = rmesa->r128Screen->frontOffset; + rmesa->drawPitch = rmesa->r128Screen->frontPitch; break; case GL_BACK_LEFT: - r128ctx->drawX = r128ctx->r128Screen->backX; - r128ctx->drawY = r128ctx->r128Screen->backY; - r128ctx->drawOffset = r128ctx->r128Screen->backOffset; - r128ctx->drawPitch = r128ctx->r128Screen->backPitch; - r128ctx->readX = r128ctx->r128Screen->backX; - r128ctx->readY = r128ctx->r128Screen->backY; + rmesa->drawOffset = rmesa->r128Screen->backOffset; + rmesa->drawPitch = rmesa->r128Screen->backPitch; break; default: - r128ctx->Fallback |= R128_FALLBACK_DRAW_BUFFER; + rmesa->Fallback |= R128_FALLBACK_DRAW_BUFFER; found = GL_FALSE; break; } - r128ctx->setup.dst_pitch_offset_c = (((r128ctx->drawPitch/8) << 21) | - (r128ctx->drawOffset >> 5)); - r128ctx->new_state |= R128_NEW_WINDOW; + rmesa->setup.dst_pitch_offset_c = (((rmesa->drawPitch/8) << 21) | + (rmesa->drawOffset >> 5)); + rmesa->new_state |= R128_NEW_WINDOW; } return found; @@ -683,25 +634,21 @@ static void r128DDSetReadBuffer( GLcontext *ctx, GLframebuffer *colorBuffer, GLenum mode ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); - r128ctx->Fallback &= ~R128_FALLBACK_READ_BUFFER; + rmesa->Fallback &= ~R128_FALLBACK_READ_BUFFER; switch ( mode ) { case GL_FRONT_LEFT: - r128ctx->readOffset = r128ctx->r128Screen->frontOffset; - r128ctx->readPitch = r128ctx->r128Screen->frontPitch; - r128ctx->readX = r128ctx->r128Screen->frontX; - r128ctx->readY = r128ctx->r128Screen->frontY; + rmesa->readOffset = rmesa->r128Screen->frontOffset; + rmesa->readPitch = rmesa->r128Screen->frontPitch; break; case GL_BACK_LEFT: - r128ctx->readOffset = r128ctx->r128Screen->backOffset; - r128ctx->readPitch = r128ctx->r128Screen->backPitch; - r128ctx->readX = r128ctx->r128Screen->backX; - r128ctx->readY = r128ctx->r128Screen->backY; + rmesa->readOffset = rmesa->r128Screen->backOffset; + rmesa->readPitch = rmesa->r128Screen->backPitch; break; default: - r128ctx->Fallback |= R128_FALLBACK_READ_BUFFER; + rmesa->Fallback |= R128_FALLBACK_READ_BUFFER; break; } } @@ -713,28 +660,27 @@ static void r128DDSetReadBuffer( GLcontext *ctx, static void r128DDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint *stipple = (GLuint *)mask; - FLUSH_BATCH( r128ctx ); - ctx->Driver.TriangleCaps |= DD_TRI_STIPPLE; + FLUSH_BATCH( rmesa ); - r128ctx->setup.dp_gui_master_cntl_c &= ~R128_GMC_BRUSH_NONE; + rmesa->setup.dp_gui_master_cntl_c &= ~R128_GMC_BRUSH_NONE; if ( ctx->Polygon.StippleFlag && ctx->PB->primitive == GL_POLYGON ) { - r128ctx->setup.dp_gui_master_cntl_c |= R128_GMC_BRUSH_32x32_MONO_FG_LA; + rmesa->setup.dp_gui_master_cntl_c |= R128_GMC_BRUSH_32x32_MONO_FG_LA; } else { - r128ctx->setup.dp_gui_master_cntl_c |= R128_GMC_BRUSH_SOLID_COLOR; + rmesa->setup.dp_gui_master_cntl_c |= R128_GMC_BRUSH_SOLID_COLOR; } - LOCK_HARDWARE( r128ctx ); + LOCK_HARDWARE( rmesa ); - drmR128PolygonStipple( r128ctx->driFd, stipple ); + drmR128PolygonStipple( rmesa->driFd, stipple ); - UNLOCK_HARDWARE( r128ctx ); + UNLOCK_HARDWARE( rmesa ); - r128ctx->new_state |= R128_NEW_CONTEXT; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + rmesa->new_state |= R128_NEW_CONTEXT; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } @@ -744,7 +690,7 @@ static void r128DDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) static void r128DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "%s( %s = %s )\n", @@ -755,68 +701,81 @@ static void r128DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) switch ( cap ) { case GL_ALPHA_TEST: case GL_BLEND: - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_ALPHA; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_ALPHA; break; case GL_CULL_FACE: - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_CULL; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_CULL; break; case GL_DEPTH_TEST: - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_DEPTH; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_DEPTH; break; case GL_DITHER: - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_RENDER; + do { + CARD32 t = rmesa->setup.tex_cntl_c; + FLUSH_BATCH( rmesa ); + + if ( ctx->Color.DitherFlag ) { + t |= R128_DITHER_ENABLE; + } else { + t &= ~R128_DITHER_ENABLE; + } + + if ( rmesa->setup.tex_cntl_c != t ) { + rmesa->setup.tex_cntl_c = t; + rmesa->dirty |= R128_UPLOAD_CONTEXT; + } + } while (0); break; case GL_FOG: - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_FOG; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_FOG; break; case GL_INDEX_LOGIC_OP: case GL_COLOR_LOGIC_OP: - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); if ( state && ctx->Color.LogicOp != GL_COPY ) { - r128ctx->Fallback |= R128_FALLBACK_LOGICOP; + rmesa->Fallback |= R128_FALLBACK_LOGICOP; } else { - r128ctx->Fallback &= ~R128_FALLBACK_LOGICOP; + rmesa->Fallback &= ~R128_FALLBACK_LOGICOP; } break; case GL_SCISSOR_TEST: - FLUSH_BATCH( r128ctx ); - r128ctx->scissor = state; - r128ctx->new_state |= R128_NEW_CLIP; + FLUSH_BATCH( rmesa ); + rmesa->scissor = state; + rmesa->new_state |= R128_NEW_CLIP; break; case GL_TEXTURE_1D: case GL_TEXTURE_2D: case GL_TEXTURE_3D: - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_TEXTURE; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_TEXTURE; break; case GL_POLYGON_STIPPLE: if ( (ctx->Driver.TriangleCaps & DD_TRI_STIPPLE) && ctx->PB->primitive == GL_POLYGON ) { - FLUSH_BATCH( r128ctx ); - r128ctx->setup.dp_gui_master_cntl_c &= ~R128_GMC_BRUSH_NONE; + FLUSH_BATCH( rmesa ); + rmesa->setup.dp_gui_master_cntl_c &= ~R128_GMC_BRUSH_NONE; if ( state ) { - r128ctx->setup.dp_gui_master_cntl_c |= + rmesa->setup.dp_gui_master_cntl_c |= R128_GMC_BRUSH_32x32_MONO_FG_LA; } else { - r128ctx->setup.dp_gui_master_cntl_c |= + rmesa->setup.dp_gui_master_cntl_c |= R128_GMC_BRUSH_SOLID_COLOR; } - r128ctx->new_state |= R128_NEW_CONTEXT; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + rmesa->new_state |= R128_NEW_CONTEXT; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } break; @@ -860,51 +819,65 @@ static void r128DDPrintDirty( const char *msg, GLuint state ) * Blits of any type should always upload the context and masks after * they are done. */ -void r128EmitHwStateLocked( r128ContextPtr r128ctx ) +void r128EmitHwStateLocked( r128ContextPtr rmesa ) { - R128SAREAPrivPtr sarea = r128ctx->sarea; - r128_context_regs_t *regs = &(r128ctx->setup); - r128TexObjPtr t0 = r128ctx->CurrentTexObj[0]; - r128TexObjPtr t1 = r128ctx->CurrentTexObj[1]; + R128SAREAPrivPtr sarea = rmesa->sarea; + r128_context_regs_t *regs = &(rmesa->setup); + r128TexObjPtr t0 = rmesa->CurrentTexObj[0]; + r128TexObjPtr t1 = rmesa->CurrentTexObj[1]; if ( R128_DEBUG & DEBUG_VERBOSE_MSG ) { - r128DDPrintDirty( "r128EmitHwStateLocked", r128ctx->dirty ); + r128DDPrintDirty( "r128EmitHwStateLocked", rmesa->dirty ); } - if ( r128ctx->dirty & R128_UPLOAD_TEX0IMAGES ) { - if ( t0 ) r128UploadTexImages( r128ctx, t0 ); - r128ctx->dirty &= ~R128_UPLOAD_TEX0IMAGES; + if ( rmesa->dirty & R128_UPLOAD_TEX0IMAGES ) { + if ( t0 ) r128UploadTexImages( rmesa, t0 ); + rmesa->dirty &= ~R128_UPLOAD_TEX0IMAGES; } - if ( r128ctx->dirty & R128_UPLOAD_TEX1IMAGES ) { - if ( t1 ) r128UploadTexImages( r128ctx, t1 ); - r128ctx->dirty &= ~R128_UPLOAD_TEX1IMAGES; + if ( rmesa->dirty & R128_UPLOAD_TEX1IMAGES ) { + if ( t1 ) r128UploadTexImages( rmesa, t1 ); + rmesa->dirty &= ~R128_UPLOAD_TEX1IMAGES; } - if ( r128ctx->dirty & (R128_UPLOAD_CONTEXT | - R128_UPLOAD_SETUP | - R128_UPLOAD_MASKS | - R128_UPLOAD_WINDOW | - R128_UPLOAD_CORE | - R128_UPLOAD_TEX0) ) { + if ( rmesa->dirty & (R128_UPLOAD_CONTEXT | + R128_UPLOAD_SETUP | + R128_UPLOAD_MASKS | + R128_UPLOAD_WINDOW | + R128_UPLOAD_CORE | + R128_UPLOAD_TEX0) ) { memcpy( &sarea->ContextState, regs, sizeof(sarea->ContextState) ); } - if ( (r128ctx->dirty & R128_UPLOAD_TEX0) && t0 ) { - memcpy( &sarea->TexState[0], &t0->setup, sizeof(sarea->TexState[0]) ); + if ( (rmesa->dirty & R128_UPLOAD_TEX0) && t0 ) { + r128_texture_regs_t *tex = &sarea->TexState[0]; + + tex->tex_cntl = t0->setup.tex_cntl; + tex->tex_combine_cntl = rmesa->tex_combine[0]; + tex->tex_size_pitch = t0->setup.tex_size_pitch; + memcpy( &tex->tex_offset[0], &t0->setup.tex_offset[0], + sizeof(tex->tex_offset ) ); + tex->tex_border_color = t0->setup.tex_border_color; } - if ( (r128ctx->dirty & R128_UPLOAD_TEX1) && t1 ) { - memcpy( &sarea->TexState[1], &t1->setup, sizeof(sarea->TexState[1]) ); + if ( (rmesa->dirty & R128_UPLOAD_TEX1) && t1 ) { + r128_texture_regs_t *tex = &sarea->TexState[1]; + + tex->tex_cntl = t1->setup.tex_cntl; + tex->tex_combine_cntl = rmesa->tex_combine[1]; + tex->tex_size_pitch = t1->setup.tex_size_pitch; + memcpy( &tex->tex_offset[0], &t1->setup.tex_offset[0], + sizeof(tex->tex_offset ) ); + tex->tex_border_color = t1->setup.tex_border_color; } - sarea->vertsize = r128ctx->vertsize; - sarea->vc_format = r128ctx->vc_format; + sarea->vertsize = rmesa->vertsize; + sarea->vc_format = rmesa->vc_format; /* Turn off the texture cache flushing */ - r128ctx->setup.tex_cntl_c &= ~R128_TEX_CACHE_FLUSH; + rmesa->setup.tex_cntl_c &= ~R128_TEX_CACHE_FLUSH; - sarea->dirty |= r128ctx->dirty; - r128ctx->dirty &= R128_UPLOAD_CLIPRECTS; + sarea->dirty |= rmesa->dirty; + rmesa->dirty &= R128_UPLOAD_CLIPRECTS; } static void r128DDPrintState( const char *msg, GLuint flags ) @@ -924,17 +897,16 @@ static void r128DDPrintState( const char *msg, GLuint flags ) (flags & R128_NEW_WINDOW) ? "window, " : "" ); } -/* Update the hardware state */ void r128DDUpdateHWState( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - int new_state = r128ctx->new_state; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + int new_state = rmesa->new_state; if ( new_state ) { - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); - r128ctx->new_state = 0; + rmesa->new_state = 0; if ( R128_DEBUG & DEBUG_VERBOSE_MSG ) r128DDPrintState( "r128UpdateHwState", new_state ); @@ -959,9 +931,6 @@ void r128DDUpdateHWState( GLcontext *ctx ) if ( new_state & R128_NEW_MASKS ) r128UpdateMasks( ctx ); - if ( new_state & R128_NEW_RENDER ) - r128UpdateRenderAttrib( ctx ); - if ( new_state & R128_NEW_WINDOW ) r128UpdateWindow( ctx ); @@ -980,8 +949,8 @@ void r128DDUpdateHWState( GLcontext *ctx ) */ static void r128DDReducedPrimitiveChange( GLcontext *ctx, GLenum prim ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - CARD32 f = r128ctx->setup.pm4_vc_fpu_setup; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + CARD32 f = rmesa->setup.pm4_vc_fpu_setup; f |= R128_BACKFACE_SOLID | R128_FRONTFACE_SOLID; @@ -1000,14 +969,14 @@ static void r128DDReducedPrimitiveChange( GLcontext *ctx, GLenum prim ) } } - if ( r128ctx->setup.pm4_vc_fpu_setup != f ) { - FLUSH_BATCH( r128ctx ); - r128ctx->setup.pm4_vc_fpu_setup = f; + if ( rmesa->setup.pm4_vc_fpu_setup != f ) { + FLUSH_BATCH( rmesa ); + rmesa->setup.pm4_vc_fpu_setup = f; /* NOTE: Only upload the setup state, everything else has been * uploaded by the usual means already. */ - r128ctx->dirty |= R128_UPLOAD_SETUP; + rmesa->dirty |= R128_UPLOAD_SETUP; } } @@ -1020,7 +989,7 @@ static void r128DDReducedPrimitiveChange( GLcontext *ctx, GLenum prim ) void r128DDUpdateState( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); if ( ctx->NewState & INTERESTED ) { r128DDChooseRenderState( ctx ); @@ -1030,188 +999,182 @@ void r128DDUpdateState( GLcontext *ctx ) /* Need to do this here to detect texture fallbacks before * setting triangle functions. */ - if ( r128ctx->new_state & R128_NEW_TEXTURE ) { + if ( rmesa->new_state & R128_NEW_TEXTURE ) { r128DDUpdateHWState( ctx ); } - if ( !r128ctx->Fallback ) { + if ( !rmesa->Fallback ) { ctx->IndirectTriangles &= ~DD_SW_RASTERIZE; - ctx->IndirectTriangles |= r128ctx->IndirectTriangles; + ctx->IndirectTriangles |= rmesa->IndirectTriangles; - ctx->Driver.PointsFunc = r128ctx->PointsFunc; - ctx->Driver.LineFunc = r128ctx->LineFunc; - ctx->Driver.TriangleFunc = r128ctx->TriangleFunc; - ctx->Driver.QuadFunc = r128ctx->QuadFunc; + ctx->Driver.PointsFunc = rmesa->PointsFunc; + ctx->Driver.LineFunc = rmesa->LineFunc; + ctx->Driver.TriangleFunc = rmesa->TriangleFunc; + ctx->Driver.QuadFunc = rmesa->QuadFunc; } } -/* Initialize the context's hardware state */ -void r128DDInitState( r128ContextPtr r128ctx ) +/* Initialize the context's hardware state. + */ +void r128DDInitState( r128ContextPtr rmesa ) { int dst_bpp, depth_bpp; - CARD32 bias; - switch ( r128ctx->r128Screen->bpp ) { - case 16: dst_bpp = R128_GMC_DST_16BPP; break; - case 32: dst_bpp = R128_GMC_DST_32BPP; break; + switch ( rmesa->r128Screen->cpp ) { + case 2: + dst_bpp = R128_GMC_DST_16BPP; + break; + case 4: + dst_bpp = R128_GMC_DST_32BPP; + break; default: - fprintf( stderr, "Error: Unsupported pixel depth %d... exiting\n", - r128ctx->r128Screen->bpp ); + fprintf( stderr, "Error: Unsupported pixel depth... exiting\n" ); exit( -1 ); } - switch ( r128ctx->DepthSize ) { + rmesa->ClearColor = 0x00000000; + + switch ( rmesa->glCtx->Visual->DepthBits ) { case 16: - r128ctx->ClearDepth = 0x0000ffff; + rmesa->ClearDepth = 0x0000ffff; depth_bpp = R128_Z_PIX_WIDTH_16; - r128ctx->depth_scale = 1.0 / 65536.0; + rmesa->depth_scale = 1.0 / (GLfloat)0xffff; break; case 24: - r128ctx->ClearDepth = 0x00ffffff; + rmesa->ClearDepth = 0x00ffffff; depth_bpp = R128_Z_PIX_WIDTH_24; - r128ctx->depth_scale = 1.0 / 16777216.0; - break; - case 32: - r128ctx->ClearDepth = 0xffffffff; - depth_bpp = R128_Z_PIX_WIDTH_32; - r128ctx->depth_scale = 1.0 / 4294967296.0; + rmesa->depth_scale = 1.0 / (GLfloat)0xffffff; break; default: fprintf( stderr, "Error: Unsupported depth %d... exiting\n", - r128ctx->DepthSize ); + rmesa->glCtx->Visual->DepthBits ); exit( -1 ); } - r128ctx->ClearColor = 0x00000000; + rmesa->RenderIndex = R128_FALLBACK_BIT; + rmesa->PointsFunc = NULL; + rmesa->LineFunc = NULL; + rmesa->TriangleFunc = NULL; + rmesa->QuadFunc = NULL; - r128ctx->RenderIndex = R128_FALLBACK_BIT; - r128ctx->PointsFunc = NULL; - r128ctx->LineFunc = NULL; - r128ctx->TriangleFunc = NULL; - r128ctx->QuadFunc = NULL; + rmesa->IndirectTriangles = 0; + rmesa->Fallback = 0; - r128ctx->IndirectTriangles = 0; - r128ctx->Fallback = 0; - - if ( r128ctx->glCtx->Visual->DBflag ) { - r128ctx->DrawBuffer = GL_BACK_LEFT; - r128ctx->drawOffset = r128ctx->readOffset = - r128ctx->r128Screen->backOffset; - r128ctx->drawPitch = r128ctx->readPitch = - r128ctx->r128Screen->backPitch; + if ( rmesa->glCtx->Visual->DBflag ) { + rmesa->DrawBuffer = GL_BACK_LEFT; + rmesa->drawOffset = rmesa->readOffset = rmesa->r128Screen->backOffset; + rmesa->drawPitch = rmesa->readPitch = rmesa->r128Screen->backPitch; } else { - r128ctx->DrawBuffer = GL_FRONT_LEFT; - r128ctx->drawOffset = r128ctx->readOffset = - r128ctx->r128Screen->frontOffset; - r128ctx->drawPitch = r128ctx->readPitch = - r128ctx->r128Screen->frontPitch; + rmesa->DrawBuffer = GL_FRONT_LEFT; + rmesa->drawOffset = rmesa->readOffset = rmesa->r128Screen->frontOffset; + rmesa->drawPitch = rmesa->readPitch = rmesa->r128Screen->frontPitch; } /* Harware state: */ - r128ctx->setup.dst_pitch_offset_c = (((r128ctx->drawPitch/8) << 21) | - (r128ctx->drawOffset >> 5)); - - r128ctx->setup.dp_gui_master_cntl_c = (R128_GMC_DST_PITCH_OFFSET_CNTL | - R128_GMC_DST_CLIPPING | - R128_GMC_BRUSH_SOLID_COLOR | - dst_bpp | - R128_GMC_SRC_DATATYPE_COLOR | - R128_GMC_BYTE_MSB_TO_LSB | - R128_GMC_CONVERSION_TEMP_6500 | - R128_ROP3_S | - R128_DP_SRC_SOURCE_MEMORY | - R128_GMC_3D_FCN_EN | - R128_GMC_CLR_CMP_CNTL_DIS | - R128_GMC_AUX_CLIP_DIS | - R128_GMC_WR_MSK_DIS); - - r128ctx->setup.sc_top_left_c = 0x00000000; - r128ctx->setup.sc_bottom_right_c = 0x1fff1fff; - - r128ctx->setup.z_offset_c = r128ctx->r128Screen->depthOffset; - r128ctx->setup.z_pitch_c = ((r128ctx->r128Screen->depthPitch >> 3) | - R128_Z_TILE); - - r128ctx->setup.z_sten_cntl_c = (depth_bpp | - R128_Z_TEST_LESS | - R128_STENCIL_TEST_ALWAYS | - R128_STENCIL_S_FAIL_KEEP | - R128_STENCIL_ZPASS_KEEP | - R128_STENCIL_ZFAIL_KEEP); - - bias = r128ctx->lod_bias & 0xff; - r128ctx->setup.tex_cntl_c = (R128_Z_WRITE_ENABLE | - R128_SHADE_ENABLE | - R128_DITHER_ENABLE | - R128_ALPHA_IN_TEX_COMPLETE_A | - R128_LIGHT_DIS | - R128_ALPHA_LIGHT_DIS | - R128_TEX_CACHE_FLUSH | - (bias << R128_LOD_BIAS_SHIFT)); - - r128ctx->setup.misc_3d_state_cntl_reg = (R128_MISC_SCALE_3D_TEXMAP_SHADE | - R128_MISC_SCALE_PIX_REPLICATE | - R128_ALPHA_COMB_ADD_CLAMP | - R128_FOG_VERTEX | - R128_ALPHA_BLEND_SRC_ONE | - R128_ALPHA_BLEND_DST_ZERO | - R128_ALPHA_TEST_ALWAYS); - - r128ctx->setup.texture_clr_cmp_clr_c = 0x00000000; - r128ctx->setup.texture_clr_cmp_msk_c = 0xffffffff; - - r128ctx->setup.fog_color_c = 0x00000000; - - r128ctx->setup.pm4_vc_fpu_setup = (R128_FRONT_DIR_CCW | - R128_BACKFACE_SOLID | - R128_FRONTFACE_SOLID | - R128_FPU_COLOR_GOURAUD | - R128_FPU_SUB_PIX_4BITS | - R128_FPU_MODE_3D | - R128_TRAP_BITS_DISABLE | - R128_XFACTOR_2 | - R128_YFACTOR_2 | - R128_FLAT_SHADE_VERTEX_OGL | - R128_FPU_ROUND_TRUNCATE | - R128_WM_SEL_8DW); - - r128ctx->setup.setup_cntl = (R128_COLOR_GOURAUD | - R128_PRIM_TYPE_TRI | - R128_TEXTURE_ST_MULT_W | - R128_STARTING_VERTEX_1 | - R128_ENDING_VERTEX_3 | - R128_SU_POLY_LINE_NOT_LAST | - R128_SUB_PIX_4BITS); - - r128ctx->setup.tex_size_pitch_c = 0x00000000; - r128ctx->setup.constant_color_c = 0x00ffffff; - - r128ctx->setup.dp_write_mask = 0xffffffff; - r128ctx->setup.sten_ref_mask_c = 0xffff0000; - r128ctx->setup.plane_3d_mask_c = 0xffffffff; - - r128ctx->setup.window_xy_offset = 0x00000000; - - r128ctx->setup.scale_3d_cntl = (R128_SCALE_DITHER_TABLE | - R128_TEX_CACHE_SIZE_FULL | - R128_DITHER_INIT_RESET | - R128_SCALE_3D_TEXMAP_SHADE | - R128_SCALE_PIX_REPLICATE | - R128_ALPHA_COMB_ADD_CLAMP | - R128_FOG_VERTEX | - R128_ALPHA_BLEND_SRC_ONE | - R128_ALPHA_BLEND_DST_ZERO | - R128_ALPHA_TEST_ALWAYS | - R128_COMPOSITE_SHADOW_CMP_EQUAL | - R128_TEX_MAP_ALPHA_IN_TEXTURE | - R128_TEX_CACHE_LINE_SIZE_4QW); - - r128ctx->new_state = R128_NEW_ALL; + rmesa->setup.dst_pitch_offset_c = (((rmesa->drawPitch/8) << 21) | + (rmesa->drawOffset >> 5)); + + rmesa->setup.dp_gui_master_cntl_c = (R128_GMC_DST_PITCH_OFFSET_CNTL | + R128_GMC_DST_CLIPPING | + R128_GMC_BRUSH_SOLID_COLOR | + dst_bpp | + R128_GMC_SRC_DATATYPE_COLOR | + R128_GMC_BYTE_MSB_TO_LSB | + R128_GMC_CONVERSION_TEMP_6500 | + R128_ROP3_S | + R128_DP_SRC_SOURCE_MEMORY | + R128_GMC_3D_FCN_EN | + R128_GMC_CLR_CMP_CNTL_DIS | + R128_GMC_AUX_CLIP_DIS | + R128_GMC_WR_MSK_DIS); + + rmesa->setup.sc_top_left_c = 0x00000000; + rmesa->setup.sc_bottom_right_c = 0x1fff1fff; + + rmesa->setup.z_offset_c = rmesa->r128Screen->depthOffset; + rmesa->setup.z_pitch_c = ((rmesa->r128Screen->depthPitch >> 3) | + R128_Z_TILE); + + rmesa->setup.z_sten_cntl_c = (depth_bpp | + R128_Z_TEST_LESS | + R128_STENCIL_TEST_ALWAYS | + R128_STENCIL_S_FAIL_KEEP | + R128_STENCIL_ZPASS_KEEP | + R128_STENCIL_ZFAIL_KEEP); + + rmesa->setup.tex_cntl_c = (R128_Z_WRITE_ENABLE | + R128_SHADE_ENABLE | + R128_DITHER_ENABLE | + R128_ALPHA_IN_TEX_COMPLETE_A | + R128_LIGHT_DIS | + R128_ALPHA_LIGHT_DIS | + R128_TEX_CACHE_FLUSH | + (0x3f << R128_LOD_BIAS_SHIFT)); + + rmesa->setup.misc_3d_state_cntl_reg = (R128_MISC_SCALE_3D_TEXMAP_SHADE | + R128_MISC_SCALE_PIX_REPLICATE | + R128_ALPHA_COMB_ADD_CLAMP | + R128_FOG_VERTEX | + R128_ALPHA_BLEND_SRC_ONE | + R128_ALPHA_BLEND_DST_ZERO | + R128_ALPHA_TEST_ALWAYS); + + rmesa->setup.texture_clr_cmp_clr_c = 0x00000000; + rmesa->setup.texture_clr_cmp_msk_c = 0xffffffff; + + rmesa->setup.fog_color_c = 0x00000000; + + rmesa->setup.pm4_vc_fpu_setup = (R128_FRONT_DIR_CCW | + R128_BACKFACE_SOLID | + R128_FRONTFACE_SOLID | + R128_FPU_COLOR_GOURAUD | + R128_FPU_SUB_PIX_4BITS | + R128_FPU_MODE_3D | + R128_TRAP_BITS_DISABLE | + R128_XFACTOR_2 | + R128_YFACTOR_2 | + R128_FLAT_SHADE_VERTEX_OGL | + R128_FPU_ROUND_TRUNCATE | + R128_WM_SEL_8DW); + + rmesa->setup.setup_cntl = (R128_COLOR_GOURAUD | + R128_PRIM_TYPE_TRI | + R128_TEXTURE_ST_MULT_W | + R128_STARTING_VERTEX_1 | + R128_ENDING_VERTEX_3 | + R128_SU_POLY_LINE_NOT_LAST | + R128_SUB_PIX_4BITS); + + rmesa->setup.tex_size_pitch_c = 0x00000000; + rmesa->setup.constant_color_c = 0x00ffffff; + + rmesa->setup.dp_write_mask = 0xffffffff; + rmesa->setup.sten_ref_mask_c = 0xffff0000; + rmesa->setup.plane_3d_mask_c = 0xffffffff; + + rmesa->setup.window_xy_offset = 0x00000000; + + rmesa->setup.scale_3d_cntl = (R128_SCALE_DITHER_TABLE | + R128_TEX_CACHE_SIZE_FULL | + R128_DITHER_INIT_RESET | + R128_SCALE_3D_TEXMAP_SHADE | + R128_SCALE_PIX_REPLICATE | + R128_ALPHA_COMB_ADD_CLAMP | + R128_FOG_VERTEX | + R128_ALPHA_BLEND_SRC_ONE | + R128_ALPHA_BLEND_DST_ZERO | + R128_ALPHA_TEST_ALWAYS | + R128_COMPOSITE_SHADOW_CMP_EQUAL | + R128_TEX_MAP_ALPHA_IN_TEXTURE | + R128_TEX_CACHE_LINE_SIZE_4QW); + + rmesa->new_state = R128_NEW_ALL; } -/* Initialize the driver's state functions */ +/* Initialize the driver's state functions. + */ void r128DDInitStateFuncs( GLcontext *ctx ) { ctx->Driver.UpdateState = r128DDUpdateState; diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_state.h b/xc/lib/GL/mesa/src/drv/r128/r128_state.h index 6d122879d..c51ac2394 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_state.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_state.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_state.h,v 1.2 2000/12/04 19:21:47 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_state.h,v 1.3 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,29 +28,27 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_STATE_H_ -#define _R128_STATE_H_ +#ifndef __R128_STATE_H__ +#define __R128_STATE_H__ #ifdef GLX_DIRECT_RENDERING #include "r128_context.h" -extern void r128DDInitState( r128ContextPtr r128ctx ); +extern void r128DDInitState( r128ContextPtr rmesa ); extern void r128DDInitStateFuncs( GLcontext *ctx ); extern void r128DDUpdateState( GLcontext *ctx ); extern void r128DDUpdateHWState( GLcontext *ctx ); extern void r128UpdateWindow( GLcontext *ctx ); -extern void r128SetClipRects( r128ContextPtr r128ctx, - XF86DRIClipRectPtr pc, int nc ); -extern void r128EmitHwStateLocked( r128ContextPtr r128ctx ); +extern void r128EmitHwStateLocked( r128ContextPtr rmesa ); #endif -#endif /* _R128_STATE_H_ */ +#endif diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_tex.c b/xc/lib/GL/mesa/src/drv/r128/r128_tex.c index ff619fa46..f518720f5 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_tex.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_tex.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tex.c,v 1.6 2000/12/04 19:21:47 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tex.c,v 1.7 2001/01/08 01:07:21 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,8 +28,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -44,14 +44,77 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "enums.h" #include "mem.h" +#define TEX_0 1 +#define TEX_1 2 -static void r128SetTexWrap(r128TexObjPtr t, GLenum srwap, GLenum twrap); -static void r128SetTexFilter(r128TexObjPtr t, GLenum minf, GLenum magf); -static void r128SetTexBorderColor(r128TexObjPtr t, GLubyte c[4]); -/* Allocate and initialize hardware state associated with texture `t' */ -/* NOTE: This function is only called while holding the hardware lock */ -static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, +static void r128SetTexWrap( r128TexObjPtr t, GLenum swrap, GLenum twrap ) +{ + t->setup.tex_cntl &= ~(R128_TEX_CLAMP_S_MASK | R128_TEX_CLAMP_T_MASK); + + switch ( swrap ) { + case GL_CLAMP: + t->setup.tex_cntl |= R128_TEX_CLAMP_S_CLAMP; + break; + case GL_REPEAT: + t->setup.tex_cntl |= R128_TEX_CLAMP_S_WRAP; + break; + } + + switch ( twrap ) { + case GL_CLAMP: + t->setup.tex_cntl |= R128_TEX_CLAMP_T_CLAMP; + break; + case GL_REPEAT: + t->setup.tex_cntl |= R128_TEX_CLAMP_T_WRAP; + break; + } +} + +static void r128SetTexFilter( r128TexObjPtr t, GLenum minf, GLenum magf ) +{ + t->setup.tex_cntl &= ~(R128_MIN_BLEND_MASK | R128_MAG_BLEND_MASK); + + switch ( minf ) { + case GL_NEAREST: + t->setup.tex_cntl |= R128_MIN_BLEND_NEAREST; + break; + case GL_LINEAR: + t->setup.tex_cntl |= R128_MIN_BLEND_LINEAR; + break; + case GL_NEAREST_MIPMAP_NEAREST: + t->setup.tex_cntl |= R128_MIN_BLEND_MIPNEAREST; + break; + case GL_LINEAR_MIPMAP_NEAREST: + t->setup.tex_cntl |= R128_MIN_BLEND_LINEARMIPNEAREST; + break; + case GL_NEAREST_MIPMAP_LINEAR: + t->setup.tex_cntl |= R128_MIN_BLEND_MIPLINEAR; + break; + case GL_LINEAR_MIPMAP_LINEAR: + t->setup.tex_cntl |= R128_MIN_BLEND_LINEARMIPLINEAR; + break; + } + + switch ( magf ) { + case GL_NEAREST: + t->setup.tex_cntl |= R128_MAG_BLEND_NEAREST; + break; + case GL_LINEAR: + t->setup.tex_cntl |= R128_MAG_BLEND_LINEAR; + break; + } +} + +static void r128SetTexBorderColor( r128TexObjPtr t, GLubyte c[4] ) +{ + t->setup.tex_border_color = r128PackColor( 4, c[0], c[1], c[2], c[3] ); +} + + +/* Allocate and initialize hardware state associated with texture `t'. + */ +static r128TexObjPtr r128CreateTexObj( r128ContextPtr rmesa, struct gl_texture_object *tObj ) { r128TexObjPtr t; @@ -64,7 +127,7 @@ static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, if ( !image ) return NULL; - t = (r128TexObjPtr)CALLOC( sizeof(*t) ); + t = (r128TexObjPtr) CALLOC( sizeof(*t) ); if ( !t ) return NULL; @@ -75,8 +138,7 @@ static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, case GL_RGBA: case GL_ALPHA: case GL_LUMINANCE_ALPHA: - case GL_INTENSITY: - if ( r128ctx->r128Screen->bpp == 32 ) { + if ( rmesa->r128Screen->cpp == 4 ) { t->texelBytes = 4; t->textureFormat = R128_DATATYPE_ARGB8888; } else { @@ -86,7 +148,7 @@ static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, break; case GL_RGB: - if ( r128ctx->r128Screen->bpp == 32 ) { + if ( rmesa->r128Screen->cpp == 4 ) { t->texelBytes = 4; t->textureFormat = R128_DATATYPE_ARGB8888; } else { @@ -96,14 +158,9 @@ static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, break; case GL_LUMINANCE: - if ( r128ctx->r128Screen->bpp == 32 ) { - t->texelBytes = 4; - t->textureFormat = R128_DATATYPE_ARGB8888; - } else { - t->texelBytes = 2; - /* Use this to get true greys */ - t->textureFormat = R128_DATATYPE_ARGB1555; - } + case GL_INTENSITY: + t->texelBytes = 1; + t->textureFormat = R128_DATATYPE_RGB8; break; case GL_COLOR_INDEX: @@ -176,7 +233,7 @@ static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, (log2Height << R128_TEX_HEIGHT_SHIFT) | (log2MinSize << R128_TEX_MIN_SIZE_SHIFT)); - for ( i = 0 ; i < R128_TEX_MAXLEVELS ; i++ ) { + for ( i = 0 ; i < R128_MAX_TEXTURE_LEVELS ; i++ ) { t->setup.tex_offset[i] = 0x00000000; } t->setup.tex_border_color = 0x00000000; @@ -196,12 +253,13 @@ static r128TexObjPtr r128CreateTexObj( r128ContextPtr r128ctx, return t; } -/* Destroy hardware state associated with texture `t' */ -void r128DestroyTexObj( r128ContextPtr r128ctx, r128TexObjPtr t ) +/* Destroy hardware state associated with texture `t'. + */ +void r128DestroyTexObj( r128ContextPtr rmesa, r128TexObjPtr t ) { #if ENABLE_PERF_BOXES /* Bump the performace counter */ - r128ctx->c_textureSwaps++; + rmesa->c_textureSwaps++; #endif if ( !t ) return; @@ -212,19 +270,21 @@ void r128DestroyTexObj( r128ContextPtr r128ctx, r128TexObjPtr t ) if ( t->tObj ) t->tObj->DriverData = NULL; - if ( t->bound ) - r128ctx->CurrentTexObj[t->bound-1] = NULL; + + if ( t->bound & TEX_0 ) rmesa->CurrentTexObj[0] = NULL; + if ( t->bound & TEX_1 ) rmesa->CurrentTexObj[1] = NULL; remove_from_list( t ); FREE( t ); } -/* Keep track of swapped out texture objects */ -static void r128SwapOutTexObj( r128ContextPtr r128ctx, r128TexObjPtr t ) +/* Keep track of swapped out texture objects. + */ +static void r128SwapOutTexObj( r128ContextPtr rmesa, r128TexObjPtr t ) { #if ENABLE_PERF_BOXES /* Bump the performace counter */ - r128ctx->c_textureSwaps++; + rmesa->c_textureSwaps++; #endif if ( t->memBlock ) { mmFreeMem( t->memBlock ); @@ -232,18 +292,19 @@ static void r128SwapOutTexObj( r128ContextPtr r128ctx, r128TexObjPtr t ) } t->dirty_images = ~0; - move_to_tail( &r128ctx->SwappedOut, t ); + move_to_tail( &rmesa->SwappedOut, t ); } -/* Print out debugging information about texture LRU */ -void r128PrintLocalLRU( r128ContextPtr r128ctx, int heap ) +/* Print out debugging information about texture LRU. + */ +void r128PrintLocalLRU( r128ContextPtr rmesa, int heap ) { r128TexObjPtr t; - int sz = 1 << (r128ctx->r128Screen->log2TexGran[heap]); + int sz = 1 << (rmesa->r128Screen->logTexGranularity[heap]); fprintf( stderr, "\nLocal LRU, heap %d:\n", heap ); - foreach( t, &r128ctx->TexObjList[heap] ) { + foreach ( t, &rmesa->TexObjList[heap] ) { if ( !t->tObj ) { fprintf( stderr, "Placeholder %d at 0x%x sz 0x%x\n", t->memBlock->ofs / sz, @@ -260,9 +321,9 @@ void r128PrintLocalLRU( r128ContextPtr r128ctx, int heap ) fprintf( stderr, "\n" ); } -void r128PrintGlobalLRU( r128ContextPtr r128ctx, int heap ) +void r128PrintGlobalLRU( r128ContextPtr rmesa, int heap ) { - r128_tex_region_t *list = r128ctx->sarea->texList[heap]; + r128_tex_region_t *list = rmesa->sarea->texList[heap]; int i, j; fprintf( stderr, "\nGlobal LRU, heap %d list %p:\n", heap, list ); @@ -285,12 +346,12 @@ void r128PrintGlobalLRU( r128ContextPtr r128ctx, int heap ) fprintf( stderr, "\n" ); } -/* Reset the global texture LRU */ -/* NOTE: This function is only called while holding the hardware lock */ -static void r128ResetGlobalLRU( r128ContextPtr r128ctx, int heap ) +/* Reset the global texture LRU. + */ +static void r128ResetGlobalLRU( r128ContextPtr rmesa, int heap ) { - r128_tex_region_t *list = r128ctx->sarea->texList[heap]; - int sz = 1 << r128ctx->r128Screen->log2TexGran[heap]; + r128_tex_region_t *list = rmesa->sarea->texList[heap]; + int sz = 1 << rmesa->r128Screen->logTexGranularity[heap]; int i; /* (Re)initialize the global circular LRU list. The last element in @@ -298,7 +359,7 @@ static void r128ResetGlobalLRU( r128ContextPtr r128ctx, int heap ) * the end of the array allows it to be addressed rationally when * looking up objects at a particular location in texture memory. */ - for ( i = 0 ; (i+1) * sz <= r128ctx->r128Screen->texSize[heap] ; i++ ) { + for ( i = 0 ; (i+1) * sz <= rmesa->r128Screen->texSize[heap] ; i++ ) { list[i].prev = i-1; list[i].next = i+1; list[i].age = 0; @@ -310,21 +371,21 @@ static void r128ResetGlobalLRU( r128ContextPtr r128ctx, int heap ) list[i].next = R128_NR_TEX_REGIONS; list[R128_NR_TEX_REGIONS].prev = i; list[R128_NR_TEX_REGIONS].next = 0; - r128ctx->sarea->texAge[heap] = 0; + rmesa->sarea->texAge[heap] = 0; } -/* Update the local and glock texture LRUs */ -/* NOTE: This function is only called while holding the hardware lock */ -static void r128UpdateTexLRU( r128ContextPtr r128ctx, r128TexObjPtr t ) +/* Update the local and glock texture LRUs. + */ +static void r128UpdateTexLRU( r128ContextPtr rmesa, r128TexObjPtr t ) { int heap = t->heap; - r128_tex_region_t *list = r128ctx->sarea->texList[heap]; - int log2sz = r128ctx->r128Screen->log2TexGran[heap]; + r128_tex_region_t *list = rmesa->sarea->texList[heap]; + int log2sz = rmesa->r128Screen->logTexGranularity[heap]; int start = t->memBlock->ofs >> log2sz; int end = (t->memBlock->ofs + t->memBlock->size - 1) >> log2sz; int i; - r128ctx->lastTexAge[heap] = ++r128ctx->sarea->texAge[heap]; + rmesa->lastTexAge[heap] = ++rmesa->sarea->texAge[heap]; if ( !t->memBlock ) { fprintf( stderr, "no memblock\n\n" ); @@ -332,12 +393,12 @@ static void r128UpdateTexLRU( r128ContextPtr r128ctx, r128TexObjPtr t ) } /* Update our local LRU */ - move_to_head( &r128ctx->TexObjList[heap], t ); + move_to_head( &rmesa->TexObjList[heap], t ); /* Update the global LRU */ for ( i = start ; i <= end ; i++ ) { list[i].in_use = 1; - list[i].age = r128ctx->lastTexAge[heap]; + list[i].age = rmesa->lastTexAge[heap]; /* remove_from_list(i) */ list[(CARD32)list[i].next].prev = list[i].prev; @@ -351,23 +412,23 @@ static void r128UpdateTexLRU( r128ContextPtr r128ctx, r128TexObjPtr t ) } if ( 0 ) { - r128PrintGlobalLRU( r128ctx, t->heap ); - r128PrintLocalLRU( r128ctx, t->heap ); + r128PrintGlobalLRU( rmesa, t->heap ); + r128PrintLocalLRU( rmesa, t->heap ); } } /* Update our notion of what textures have been changed since we last - held the lock. This pertains to both our local textures and the - textures belonging to other clients. Keep track of other client's - textures by pushing a placeholder texture onto the LRU list -- these - are denoted by (tObj == NULL). */ -/* NOTE: This function is only called while holding the hardware lock */ -static void r128TexturesGone( r128ContextPtr r128ctx, int heap, + * held the lock. This pertains to both our local textures and the + * textures belonging to other clients. Keep track of other client's + * textures by pushing a placeholder texture onto the LRU list -- these + * are denoted by (tObj == NULL). + */ +static void r128TexturesGone( r128ContextPtr rmesa, int heap, int offset, int size, int in_use ) { r128TexObjPtr t, tmp; - foreach_s ( t, tmp, &r128ctx->TexObjList[heap] ) { + foreach_s ( t, tmp, &rmesa->TexObjList[heap] ) { if ( t->memBlock->ofs >= offset + size || t->memBlock->ofs + t->memBlock->size <= offset ) continue; @@ -376,37 +437,38 @@ static void r128TexturesGone( r128ContextPtr r128ctx, int heap, * bound objects, however. */ if ( t->bound ) { - r128SwapOutTexObj( r128ctx, t ); + r128SwapOutTexObj( rmesa, t ); } else { - r128DestroyTexObj( r128ctx, t ); + r128DestroyTexObj( rmesa, t ); } } if ( in_use ) { t = (r128TexObjPtr) CALLOC( sizeof(*t) ); - if (!t) return; + if ( !t ) return; - t->memBlock = mmAllocMem( r128ctx->texHeap[heap], size, 0, offset ); + t->memBlock = mmAllocMem( rmesa->texHeap[heap], size, 0, offset ); if ( !t->memBlock ) { fprintf( stderr, "Couldn't alloc placeholder sz %x ofs %x\n", (int)size, (int)offset ); - mmDumpMemInfo( r128ctx->texHeap[heap] ); + mmDumpMemInfo( rmesa->texHeap[heap] ); return; } - insert_at_head( &r128ctx->TexObjList[heap], t ); + insert_at_head( &rmesa->TexObjList[heap], t ); } } /* Update our client's shared texture state. If another client has - modified a region in which we have textures, then we need to figure - out which of our textures has been removed, and update our global - LRU. */ -void r128AgeTextures( r128ContextPtr r128ctx, int heap ) + * modified a region in which we have textures, then we need to figure + * out which of our textures has been removed, and update our global + * LRU. + */ +void r128AgeTextures( r128ContextPtr rmesa, int heap ) { - R128SAREAPriv *sarea = r128ctx->sarea; + R128SAREAPrivPtr sarea = rmesa->sarea; - if ( sarea->texAge[heap] != r128ctx->lastTexAge[heap] ) { - int sz = 1 << r128ctx->r128Screen->log2TexGran[heap]; + if ( sarea->texAge[heap] != rmesa->lastTexAge[heap] ) { + int sz = 1 << rmesa->r128Screen->logTexGranularity[heap]; int nr = 0; int idx; @@ -418,15 +480,16 @@ void r128AgeTextures( r128ContextPtr r128ctx, int heap ) idx = sarea->texList[heap][idx].prev, nr++ ) { /* If switching texturing schemes, then the SAREA might not - have been properly cleared, so we need to reset the - global texture LRU. */ - if ( idx * sz > r128ctx->r128Screen->texSize[heap] ) { + * have been properly cleared, so we need to reset the + * global texture LRU. + */ + if ( idx * sz > rmesa->r128Screen->texSize[heap] ) { nr = R128_NR_TEX_REGIONS; break; } - if ( sarea->texList[heap][idx].age > r128ctx->lastTexAge[heap] ) { - r128TexturesGone( r128ctx, heap, idx * sz, sz, + if ( sarea->texList[heap][idx].age > rmesa->lastTexAge[heap] ) { + r128TexturesGone( rmesa, heap, idx * sz, sz, sarea->texList[heap][idx].in_use ); } } @@ -436,24 +499,30 @@ void r128AgeTextures( r128ContextPtr r128ctx, int heap ) * global texture LRU. */ if ( nr == R128_NR_TEX_REGIONS ) { - r128TexturesGone( r128ctx, heap, 0, - r128ctx->r128Screen->texSize[heap], 0 ); - r128ResetGlobalLRU( r128ctx, heap ); + r128TexturesGone( rmesa, heap, 0, + rmesa->r128Screen->texSize[heap], 0 ); + r128ResetGlobalLRU( rmesa, heap ); } if ( 0 ) { - r128PrintGlobalLRU( r128ctx, heap ); - r128PrintLocalLRU( r128ctx, heap ); + r128PrintGlobalLRU( rmesa, heap ); + r128PrintLocalLRU( rmesa, heap ); } - r128ctx->dirty |= (R128_UPLOAD_CONTEXT | - R128_UPLOAD_TEX0IMAGES | - R128_UPLOAD_TEX1IMAGES); - r128ctx->lastTexAge[heap] = sarea->texAge[heap]; + rmesa->dirty |= (R128_UPLOAD_CONTEXT | + R128_UPLOAD_TEX0IMAGES | + R128_UPLOAD_TEX1IMAGES); + rmesa->lastTexAge[heap] = sarea->texAge[heap]; } } -/* Convert a block of Mesa-formatted texture to an 8bpp hardware format */ + +/* ================================================================ + * Texture image conversions + */ + +/* Convert a block of Mesa-formatted texture to an 8bpp hardware format. + */ static void r128ConvertTexture8bpp( CARD32 *dst, struct gl_texture_image *image, int x, int y, int width, int height, @@ -463,20 +532,6 @@ static void r128ConvertTexture8bpp( CARD32 *dst, int i, j; switch ( image->Format ) { - case GL_RGB: - for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; - for ( j = width >> 2 ; j ; j-- ) { - *dst++= ((R128PACKCOLOR332( src[0], src[1], src[2] )) | - (R128PACKCOLOR332( src[3], src[4], src[5] ) << 8) | - (R128PACKCOLOR332( src[6], src[7], src[8] ) << 16) | - (R128PACKCOLOR332( src[9], src[10], src[11] ) << 24)); - src += 12; - } - } - break; - - case GL_ALPHA: case GL_LUMINANCE: case GL_INTENSITY: case GL_COLOR_INDEX: @@ -496,7 +551,8 @@ static void r128ConvertTexture8bpp( CARD32 *dst, } } -/* Convert a block of Mesa-formatted texture to a 16bpp hardware format */ +/* Convert a block of Mesa-formatted texture to a 16bpp hardware format. + */ static void r128ConvertTexture16bpp( CARD32 *dst, struct gl_texture_image *image, int x, int y, int width, int height, @@ -512,17 +568,6 @@ static void r128ConvertTexture16bpp( CARD32 *dst, switch ( image->Format ) { - case GL_RGB: - for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; - for ( j = width >> 1 ; j ; j-- ) { - *dst++ = ((R128PACKCOLOR565( src[0], src[1], src[2] )) | - (R128PACKCOLOR565( src[3], src[4], src[5] ) << 16)); - src += 6; - } - } - break; - case GL_RGBA: for ( i = 0 ; i < height ; i++ ) { src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 4; @@ -534,23 +579,23 @@ static void r128ConvertTexture16bpp( CARD32 *dst, } break; - case GL_ALPHA: + case GL_RGB: for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x); + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; for ( j = width >> 1 ; j ; j-- ) { - *dst++ = ((R128PACKCOLOR4444( 0xff, 0xff, 0xff, src[0] )) | - (R128PACKCOLOR4444( 0xff, 0xff, 0xff, src[1] ) << 16)); - src += 2; + *dst++ = ((R128PACKCOLOR565( src[0], src[1], src[2] )) | + (R128PACKCOLOR565( src[3], src[4], src[5] ) << 16)); + src += 6; } } break; - case GL_LUMINANCE: + case GL_ALPHA: for ( i = 0 ; i < height ; i++ ) { src = (CARD8 *)image->Data + ((y + i) * pitch + x); for ( j = width >> 1 ; j ; j-- ) { - *dst++ = ((R128PACKCOLOR1555( src[0], src[0], src[0], 0xff )) | - (R128PACKCOLOR1555( src[1], src[1], src[1], 0xff ) << 16)); + *dst++ = ((R128PACKCOLOR4444( 0xff, 0xff, 0xff, src[0] )) | + (R128PACKCOLOR4444( 0xff, 0xff, 0xff, src[1] ) << 16)); src += 2; } } @@ -567,17 +612,6 @@ static void r128ConvertTexture16bpp( CARD32 *dst, } break; - case GL_INTENSITY: - for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x); - for ( j = width >> 1 ; j ; j-- ) { - *dst++ = ((R128PACKCOLOR4444( src[0], src[0], src[0], src[0] )) | - (R128PACKCOLOR4444( src[1], src[1], src[1], src[1] ) << 16)); - src += 2; - } - } - break; - default: fprintf( stderr, "%s: unsupported format 0x%x\n", __FUNCTION__, image->Format ); @@ -585,7 +619,8 @@ static void r128ConvertTexture16bpp( CARD32 *dst, } } -/* Convert a block of Mesa-formatted texture to a 32bpp hardware format */ +/* Convert a block of Mesa-formatted texture to a 32bpp hardware format. + */ static void r128ConvertTexture32bpp( CARD32 *dst, struct gl_texture_image *image, int x, int y, int width, int height, @@ -595,16 +630,6 @@ static void r128ConvertTexture32bpp( CARD32 *dst, int i, j; switch ( image->Format ) { - case GL_RGB: - for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; - for ( j = width ; j ; j-- ) { - *dst++ = R128PACKCOLOR8888( src[0], src[1], src[2], 0xff ); - src += 3; - } - } - break; - case GL_RGBA: for ( i = 0 ; i < height ; i++ ) { src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 4; @@ -615,21 +640,21 @@ static void r128ConvertTexture32bpp( CARD32 *dst, } break; - case GL_ALPHA: + case GL_RGB: for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x); + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; for ( j = width ; j ; j-- ) { - *dst++ = R128PACKCOLOR8888( 0xff, 0xff, 0xff, src[0] ); - src += 1; + *dst++ = R128PACKCOLOR8888( src[0], src[1], src[2], 0xff ); + src += 3; } } break; - case GL_LUMINANCE: + case GL_ALPHA: for ( i = 0 ; i < height ; i++ ) { src = (CARD8 *)image->Data + ((y + i) * pitch + x); for ( j = width ; j ; j-- ) { - *dst++ = R128PACKCOLOR8888( src[0], src[0], src[0], 0xff ); + *dst++ = R128PACKCOLOR8888( 0xff, 0xff, 0xff, src[0] ); src += 1; } } @@ -645,16 +670,6 @@ static void r128ConvertTexture32bpp( CARD32 *dst, } break; - case GL_INTENSITY: - for ( i = 0 ; i < height ; i++ ) { - src = (CARD8 *)image->Data + ((y + i) * pitch + x); - for ( j = width ; j ; j-- ) { - *dst++ = R128PACKCOLOR8888( src[0], src[0], src[0], src[0] ); - src += 1; - } - } - break; - default: fprintf( stderr, "%s: unsupported format 0x%x\n", __FUNCTION__, image->Format ); @@ -663,9 +678,9 @@ static void r128ConvertTexture32bpp( CARD32 *dst, } /* Upload the texture image associated with texture `t' at level `level' - at the address relative to `start'. */ -/* NOTE: This function is only called while holding the hardware lock */ -static void r128UploadSubImage( r128ContextPtr r128ctx, + * at the address relative to `start'. + */ +static void r128UploadSubImage( r128ContextPtr rmesa, r128TexObjPtr t, int level, int x, int y, int width, int height ) { @@ -680,7 +695,7 @@ static void r128UploadSubImage( r128ContextPtr r128ctx, int i; /* Ensure we have a valid texture to upload */ - if ( ( level < 0 ) || ( level > R128_TEX_MAXLEVELS ) ) + if ( ( level < 0 ) || ( level > R128_MAX_TEXTURE_LEVELS ) ) return; image = t->tObj->Image[level]; @@ -694,7 +709,7 @@ static void r128UploadSubImage( r128ContextPtr r128ctx, } #if 1 - /* FIXME: The subimage index calcs are wrong - who changed them? */ + /* FIXME: The subimage index calcs are wrong... */ x = 0; y = 0; width = image->Width; @@ -768,23 +783,17 @@ static void r128UploadSubImage( r128ContextPtr r128ctx, dwords = width * height / texelsPerDword; offset = t->bufAddr + t->image[level].offset; - /* Fix offset for AGP textures */ - if ( t->heap == R128_AGP_TEX_HEAP ) { - offset += R128_AGP_TEX_OFFSET + r128ctx->r128Screen->agpTexOffset; - } - #if ENABLE_PERF_BOXES /* Bump the performace counter */ - r128ctx->c_textureBytes += (dwords << 2); + rmesa->c_textureBytes += (dwords << 2); #endif - if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "r128UploadSubImage: %d,%d of %d,%d at %d,%d\n", width, height, image->Width, image->Height, x, y ); fprintf( stderr, " blit ofs: 0x%07x pitch: 0x%x dwords: %d " "level: %d format: %x\n", - (int)offset, pitch, dwords, level, format ); + (GLuint)offset, (GLuint)pitch, dwords, level, format ); } /* Subdivide the texture if required */ @@ -803,11 +812,11 @@ static void r128UploadSubImage( r128ContextPtr r128ctx, if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, " blitting: %d,%d at %d,%d - %d dwords\n", - width, height, x, y, dwords ); + width, height, x, y, dwords ); } /* Grab the indirect buffer for the texture blit */ - buffer = r128GetBufferLocked( r128ctx ); + buffer = r128GetBufferLocked( rmesa ); dst = (CARD32 *)((char *)buffer->address + R128_HOSTDATA_BLIT_OFFSET); @@ -827,13 +836,13 @@ static void r128UploadSubImage( r128ContextPtr r128ctx, break; } - r128FireBlitLocked( r128ctx, buffer, + r128FireBlitLocked( rmesa, buffer, offset, pitch, format, x, y, width, height ); } - r128ctx->new_state |= R128_NEW_CONTEXT; - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; + rmesa->new_state |= R128_NEW_CONTEXT; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_MASKS; } /* Upload the texture images associated with texture `t'. This might @@ -841,7 +850,7 @@ static void r128UploadSubImage( r128ContextPtr r128ctx, * make room for these images. */ /* NOTE: This function is only called while holding the hardware lock */ -int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) +int r128UploadTexImages( r128ContextPtr rmesa, r128TexObjPtr t ) { int i; int minLevel; @@ -850,47 +859,47 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "%s( %p, %p )\n", - __FUNCTION__, r128ctx->glCtx, t ); + __FUNCTION__, rmesa->glCtx, t ); } if ( !t ) return 0; /* Choose the heap appropriately */ - heap = t->heap = R128_LOCAL_TEX_HEAP; - if ( !r128ctx->r128Screen->IsPCI && - t->totalSize > r128ctx->r128Screen->texSize[heap] ) { - heap = t->heap = R128_AGP_TEX_HEAP; + heap = t->heap = R128_CARD_HEAP; + if ( !rmesa->r128Screen->IsPCI && + t->totalSize > rmesa->r128Screen->texSize[heap] ) { + heap = t->heap = R128_AGP_HEAP; } /* Do we need to eject LRU texture objects? */ if ( !t->memBlock ) { /* Allocate a memory block on a 4k boundary (1<<12 == 4096) */ - t->memBlock = mmAllocMem( r128ctx->texHeap[heap], t->totalSize, 12, 0 ); + t->memBlock = mmAllocMem( rmesa->texHeap[heap], t->totalSize, 12, 0 ); /* Try AGP before kicking anything out of local mem */ - if ( !t->memBlock && heap == R128_LOCAL_TEX_HEAP ) { - t->memBlock = mmAllocMem( r128ctx->texHeap[R128_AGP_TEX_HEAP], + if ( !t->memBlock && heap == R128_CARD_HEAP ) { + t->memBlock = mmAllocMem( rmesa->texHeap[R128_AGP_HEAP], t->totalSize, 12, 0 ); if ( t->memBlock ) - heap = t->heap = R128_AGP_TEX_HEAP; + heap = t->heap = R128_AGP_HEAP; } /* Kick out textures until the requested texture fits */ while ( !t->memBlock ) { - if ( r128ctx->TexObjList[heap].prev->bound ) { + if ( rmesa->TexObjList[heap].prev->bound ) { fprintf( stderr, "r128UploadTexImages: ran into bound texture\n" ); return -1; } - if ( r128ctx->TexObjList[heap].prev == &r128ctx->TexObjList[heap] ) { - if ( r128ctx->r128Screen->IsPCI ) { + if ( rmesa->TexObjList[heap].prev == &rmesa->TexObjList[heap] ) { + if ( rmesa->r128Screen->IsPCI ) { fprintf( stderr, "r128UploadTexImages: upload texture " "failure on local texture heaps, sz=%d\n", t->totalSize ); return -1; - } else if ( heap == R128_LOCAL_TEX_HEAP ) { - heap = t->heap = R128_AGP_TEX_HEAP; + } else if ( heap == R128_CARD_HEAP ) { + heap = t->heap = R128_AGP_HEAP; continue; } else { fprintf( stderr, "r128UploadTexImages: upload texture " @@ -901,14 +910,14 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) } } - r128DestroyTexObj( r128ctx, r128ctx->TexObjList[heap].prev ); + r128DestroyTexObj( rmesa, rmesa->TexObjList[heap].prev ); - t->memBlock = mmAllocMem( r128ctx->texHeap[heap], + t->memBlock = mmAllocMem( rmesa->texHeap[heap], t->totalSize, 12, 0 ); } /* Set the base offset of the texture image */ - t->bufAddr = r128ctx->r128Screen->texOffset[heap] + t->memBlock->ofs; + t->bufAddr = rmesa->r128Screen->texOffset[heap] + t->memBlock->ofs; maxLevel = ((t->setup.tex_size_pitch & R128_TEX_SIZE_MASK) >> R128_TEX_SIZE_SHIFT); @@ -917,7 +926,7 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) /* Set texture offsets */ if ( t->setup.tex_cntl & R128_MIP_MAP_DISABLE ) { - for ( i = 0 ; i < R128_TEX_MAXLEVELS ; i++ ) { + for ( i = 0 ; i < R128_MAX_TEXTURE_LEVELS ; i++ ) { t->setup.tex_offset[i] = t->bufAddr; } } else { @@ -926,22 +935,15 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) (t->image[maxLevel-i].offset + t->bufAddr); } } - /* Fix AGP texture offsets */ - if ( heap == R128_AGP_TEX_HEAP ) { - for ( i = 0 ; i < R128_TEX_MAXLEVELS ; i++ ) { - t->setup.tex_offset[i] += R128_AGP_TEX_OFFSET + - r128ctx->r128Screen->agpTexOffset; - } - } /* Force loading the new state into the hardware */ switch ( t->bound ) { case 1: - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_TEX0; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_TEX0; break; case 2: - r128ctx->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_TEX1; + rmesa->dirty |= R128_UPLOAD_CONTEXT | R128_UPLOAD_TEX1; break; default: @@ -950,7 +952,7 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) } /* Let the world know we've used this memory recently */ - r128UpdateTexLRU( r128ctx, t ); + r128UpdateTexLRU( rmesa, t ); /* Upload any images that are new */ if ( t->dirty_images ) { @@ -961,14 +963,14 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) for ( i = 0 ; i <= num_levels ; i++ ) { if ( t->dirty_images & (1 << i) ) { - r128UploadSubImage( r128ctx, t, i, 0, 0, + r128UploadSubImage( rmesa, t, i, 0, 0, t->image[i].width, t->image[i].height ); } } - r128ctx->setup.tex_cntl_c |= R128_TEX_CACHE_FLUSH; + rmesa->setup.tex_cntl_c |= R128_TEX_CACHE_FLUSH; - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } t->dirty_images = 0; @@ -976,47 +978,50 @@ int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ) } -/* - * Texture combiners: +/* ================================================================ + * Texture combine functions */ -#define COLOR_COMB_DISABLE (R128_COMB_DIS | \ - R128_COLOR_FACTOR_TEX) -#define COLOR_COMB_COPY_INPUT (R128_COMB_COPY_INP | \ - R128_COLOR_FACTOR_TEX) -#define COLOR_COMB_MODULATE (R128_COMB_MODULATE | \ - R128_COLOR_FACTOR_TEX) -#define COLOR_COMB_MODULATE_NTEX (R128_COMB_MODULATE | \ - R128_COLOR_FACTOR_NTEX) -#define COLOR_COMB_ADD (R128_COMB_ADD | \ - R128_COLOR_FACTOR_TEX) -#define COLOR_COMB_BLEND_TEX (R128_COMB_BLEND_TEXTURE | \ - R128_COLOR_FACTOR_TEX) - -#define ALPHA_COMB_DISABLE (R128_COMB_ALPHA_DIS | \ - R128_ALPHA_FACTOR_TEX_ALPHA) -#define ALPHA_COMB_COPY_INPUT (R128_COMB_ALPHA_COPY_INP | \ - R128_ALPHA_FACTOR_TEX_ALPHA) -#define ALPHA_COMB_MODULATE (R128_COMB_ALPHA_MODULATE | \ - R128_ALPHA_FACTOR_TEX_ALPHA) -#define ALPHA_COMB_MODULATE_NTEX (R128_COMB_ALPHA_MODULATE | \ - R128_ALPHA_FACTOR_NTEX_ALPHA) -#define ALPHA_COMB_ADD (R128_COMB_ADD | \ - R128_ALPHA_FACTOR_TEX_ALPHA) - -#define INPUT_INTERP (R128_INPUT_FACTOR_INT_COLOR | \ - R128_INP_FACTOR_A_INT_ALPHA) -#define INPUT_PREVIOUS (R128_INPUT_FACTOR_PREV_COLOR | \ - R128_INP_FACTOR_A_PREV_ALPHA) - -static void r128UpdateTextureStage( GLcontext *ctx, int unit ) +#define COLOR_COMB_DISABLE (R128_COMB_DIS | \ + R128_COLOR_FACTOR_TEX) +#define COLOR_COMB_COPY_INPUT (R128_COMB_COPY_INP | \ + R128_COLOR_FACTOR_TEX) +#define COLOR_COMB_MODULATE (R128_COMB_MODULATE | \ + R128_COLOR_FACTOR_TEX) +#define COLOR_COMB_MODULATE_NTEX (R128_COMB_MODULATE | \ + R128_COLOR_FACTOR_NTEX) +#define COLOR_COMB_ADD (R128_COMB_ADD | \ + R128_COLOR_FACTOR_TEX) +#define COLOR_COMB_BLEND_TEX (R128_COMB_BLEND_TEXTURE | \ + R128_COLOR_FACTOR_TEX) +/* Rage 128 Pro/M3 only! */ +#define COLOR_COMB_BLEND_COLOR (R128_COMB_MODULATE2X | \ + R128_COMB_FCN_MSB | \ + R128_COLOR_FACTOR_CONST_COLOR) + +#define ALPHA_COMB_DISABLE (R128_COMB_ALPHA_DIS | \ + R128_ALPHA_FACTOR_TEX_ALPHA) +#define ALPHA_COMB_COPY_INPUT (R128_COMB_ALPHA_COPY_INP | \ + R128_ALPHA_FACTOR_TEX_ALPHA) +#define ALPHA_COMB_MODULATE (R128_COMB_ALPHA_MODULATE | \ + R128_ALPHA_FACTOR_TEX_ALPHA) +#define ALPHA_COMB_MODULATE_NTEX (R128_COMB_ALPHA_MODULATE | \ + R128_ALPHA_FACTOR_NTEX_ALPHA) +#define ALPHA_COMB_ADD (R128_COMB_ALPHA_ADD | \ + R128_ALPHA_FACTOR_TEX_ALPHA) + +#define INPUT_INTERP (R128_INPUT_FACTOR_INT_COLOR | \ + R128_INP_FACTOR_A_INT_ALPHA) +#define INPUT_PREVIOUS (R128_INPUT_FACTOR_PREV_COLOR | \ + R128_INP_FACTOR_A_PREV_ALPHA) + +static void r128UpdateTextureEnv( GLcontext *ctx, int unit ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - int source = r128ctx->tmu_source[unit]; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + GLint source = rmesa->tmu_source[unit]; struct gl_texture_object *tObj; - r128TexObjPtr t; GLuint enabled; - CARD32 combine; + GLuint combine; if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "%s( %p, %d )\n", @@ -1038,9 +1043,6 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) ( tObj != ctx->Texture.Unit[source].CurrentD[1] ) ) return; - /* We definately have a valid texture now */ - t = tObj->DriverData; - if ( unit == 0 ) { combine = INPUT_INTERP; } else { @@ -1120,20 +1122,63 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) break; case GL_BLEND: - /* Catch the cases of GL_BLEND we can't handle (yet, in some cases). + /* Rage 128 Pro and M3 can handle GL_BLEND texturing. + */ + if ( !R128_IS_PLAIN( rmesa ) ) { + switch ( tObj->Image[0]->Format ) { + case GL_RGBA: + case GL_LUMINANCE_ALPHA: + combine |= (COLOR_COMB_BLEND_COLOR | /* C = Cf(1-Ct)+CcCt */ + ALPHA_COMB_MODULATE); /* A = AfAt */ + break; + + case GL_RGB: + case GL_LUMINANCE: + combine |= (COLOR_COMB_BLEND_COLOR | /* C = Cf(1-Ct)+CcCt */ + ALPHA_COMB_COPY_INPUT); /* A = Af */ + break; + + case GL_ALPHA: + combine |= (COLOR_COMB_COPY_INPUT | /* C = Cf */ + ALPHA_COMB_MODULATE); /* A = AfAt */ + break; + + case GL_INTENSITY: + /* GH: We could be smarter about this... */ + switch ( rmesa->env_color & 0xff000000 ) { + case 0x00000000: + combine |= (COLOR_COMB_BLEND_COLOR | /* C = Cf(1-It)+CcIt */ + ALPHA_COMB_MODULATE_NTEX); /* A = Af(1-It) */ + default: + combine |= (COLOR_COMB_MODULATE | /* C = fallback */ + ALPHA_COMB_MODULATE); /* A = fallback */ + rmesa->Fallback |= R128_FALLBACK_TEXTURE; + break; + } + break; + + case GL_COLOR_INDEX: + default: + return; + } + break; + } + + /* Rage 128 has to fake some cases of GL_BLEND, otherwise fallback + * to software rendering. */ - if ( r128ctx->blend_flags ) { - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + if ( rmesa->blend_flags ) { + rmesa->Fallback |= R128_FALLBACK_TEXTURE; } switch ( tObj->Image[0]->Format ) { case GL_RGBA: case GL_LUMINANCE_ALPHA: - switch ( r128ctx->env_color ) { + switch ( rmesa->env_color & 0x00ffffff ) { case 0x00000000: combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ ALPHA_COMB_MODULATE); /* A = AfAt */ break; - case 0xffffffff: + case 0x00ffffff: if ( unit == 0 ) { combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ ALPHA_COMB_MODULATE); /* A = AfAt */ @@ -1145,18 +1190,18 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) default: combine |= (COLOR_COMB_MODULATE | /* C = fallback */ ALPHA_COMB_MODULATE); /* A = fallback */ - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; break; } break; case GL_RGB: case GL_LUMINANCE: - switch ( r128ctx->env_color ) { + switch ( rmesa->env_color & 0x00ffffff ) { case 0x00000000: combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ ALPHA_COMB_COPY_INPUT); /* A = Af */ break; - case 0xffffffff: + case 0x00ffffff: if ( unit == 0 ) { combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ ALPHA_COMB_COPY_INPUT); /* A = Af */ @@ -1168,42 +1213,52 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) default: combine |= (COLOR_COMB_MODULATE | /* C = fallback */ ALPHA_COMB_COPY_INPUT); /* A = fallback */ - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; break; } break; case GL_ALPHA: - combine |= (COLOR_COMB_COPY_INPUT | /* C = Cf */ - ALPHA_COMB_MODULATE); /* A = AfAt */ + if ( unit == 0 ) { + combine |= (COLOR_COMB_COPY_INPUT | /* C = Cf */ + ALPHA_COMB_MODULATE); /* A = AfAt */ + } else { + combine |= (COLOR_COMB_COPY_INPUT | /* C = Cf */ + ALPHA_COMB_COPY_INPUT); /* A = Af */ + } break; case GL_INTENSITY: - switch ( r128ctx->env_color ) { + switch ( rmesa->env_color & 0x00ffffff ) { case 0x00000000: - combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ - ALPHA_COMB_MODULATE_NTEX); /* A = Af(1-Ct) */ + combine |= COLOR_COMB_MODULATE_NTEX; /* C = Cf(1-It) */ break; case 0x00ffffff: if ( unit == 0 ) { - combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ - ALPHA_COMB_MODULATE_NTEX); /* A = Af(1-Ct) */ + combine |= COLOR_COMB_MODULATE_NTEX; /* C = Cf(1-It) */ } else { - combine |= (COLOR_COMB_ADD | /* C = Cf+Ct */ - ALPHA_COMB_COPY_INPUT); /* A = Af */ + combine |= COLOR_COMB_ADD; /* C = Cf+It */ } break; - case 0xffffffff: + default: + combine |= (COLOR_COMB_MODULATE | /* C = fallback */ + ALPHA_COMB_MODULATE); /* A = fallback */ + rmesa->Fallback |= R128_FALLBACK_TEXTURE; + break; + } + switch ( rmesa->env_color & 0xff000000 ) { + case 0x00000000: + combine |= ALPHA_COMB_MODULATE_NTEX; /* A = Af(1-It) */ + break; + case 0xff000000: if ( unit == 0 ) { - combine |= (COLOR_COMB_MODULATE_NTEX | /* C = Cf(1-Ct) */ - ALPHA_COMB_MODULATE_NTEX); /* A = Af(1-Ct) */ + combine |= ALPHA_COMB_MODULATE_NTEX; /* A = Af(1-It) */ } else { - combine |= (COLOR_COMB_ADD | /* C = Cf+Ct */ - ALPHA_COMB_ADD); /* A = Af+At */ + combine |= ALPHA_COMB_ADD; /* A = Af+It */ } break; default: combine |= (COLOR_COMB_MODULATE | /* C = fallback */ ALPHA_COMB_MODULATE); /* A = fallback */ - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; break; } break; @@ -1217,7 +1272,6 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) switch ( tObj->Image[0]->Format ) { case GL_RGBA: case GL_LUMINANCE_ALPHA: - case GL_INTENSITY: combine |= (COLOR_COMB_ADD | /* C = Cf+Ct */ ALPHA_COMB_MODULATE); /* A = AfAt */ break; @@ -1230,6 +1284,10 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) combine |= (COLOR_COMB_COPY_INPUT | /* C = Cf */ ALPHA_COMB_MODULATE); /* A = AfAt */ break; + case GL_INTENSITY: + combine |= (COLOR_COMB_ADD | /* C = Cf+Ct */ + ALPHA_COMB_ADD); /* A = Af+At */ + break; case GL_COLOR_INDEX: default: return; @@ -1240,13 +1298,13 @@ static void r128UpdateTextureStage( GLcontext *ctx, int unit ) return; } - t->setup.tex_combine_cntl = combine; + rmesa->tex_combine[unit] = combine; } static void r128UpdateTextureObject( GLcontext *ctx, int unit ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - int source = r128ctx->tmu_source[unit]; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + int source = rmesa->tmu_source[unit]; struct gl_texture_object *tObj; r128TexObjPtr t; GLuint enabled; @@ -1256,14 +1314,10 @@ static void r128UpdateTextureObject( GLcontext *ctx, int unit ) __FUNCTION__, ctx, unit, ctx->Texture.ReallyEnabled ); } - /* Disable all texturing until it is known to be good */ - r128ctx->setup.tex_cntl_c &= ~(R128_TEXMAP_ENABLE | - R128_SEC_TEXMAP_ENABLE); - enabled = (ctx->Texture.ReallyEnabled >> (source * 4)) & TEXTURE0_ANY; if ( enabled != TEXTURE0_2D && enabled != TEXTURE0_1D ) { if ( enabled ) - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; return; } @@ -1272,13 +1326,13 @@ static void r128UpdateTextureObject( GLcontext *ctx, int unit ) */ tObj = ctx->Texture.Unit[source].Current; if ( !tObj || !tObj->Complete ) { - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; return; } if ( ( tObj != ctx->Texture.Unit[source].CurrentD[2] ) && ( tObj != ctx->Texture.Unit[source].CurrentD[1] ) ) { - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; return; } @@ -1286,13 +1340,13 @@ static void r128UpdateTextureObject( GLcontext *ctx, int unit ) /* If this is the first time the texture has been used, then create * a new texture object for it. */ - r128CreateTexObj( r128ctx, tObj ); + r128CreateTexObj( rmesa, tObj ); if ( !tObj->DriverData ) { /* Can't create a texture object... */ fprintf( stderr, "%s: texture object creation failed!\n", __FUNCTION__ ); - r128ctx->Fallback |= R128_FALLBACK_TEXTURE; + rmesa->Fallback |= R128_FALLBACK_TEXTURE; return; } } @@ -1301,39 +1355,37 @@ static void r128UpdateTextureObject( GLcontext *ctx, int unit ) t = tObj->DriverData; /* Force the texture unit state to be loaded into the hardware */ - r128ctx->dirty |= R128_UPLOAD_CONTEXT | (R128_UPLOAD_TEX0 << unit); + rmesa->dirty |= R128_UPLOAD_CONTEXT | (R128_UPLOAD_TEX0 << unit); /* Force any texture images to be loaded into the hardware */ if ( t->dirty_images ) - r128ctx->dirty |= (R128_UPLOAD_TEX0IMAGES << unit); + rmesa->dirty |= (R128_UPLOAD_TEX0IMAGES << unit); /* Bind to the given texture unit */ - r128ctx->CurrentTexObj[unit] = t; - t->bound = unit + 1; + rmesa->CurrentTexObj[unit] = t; + t->bound |= unit + 1; if ( t->memBlock ) - r128UpdateTexLRU( r128ctx, t ); + r128UpdateTexLRU( rmesa, t ); if ( unit == 0 ) { - r128ctx->setup.tex_cntl_c |= R128_TEXMAP_ENABLE; - r128ctx->setup.tex_size_pitch_c |= t->setup.tex_size_pitch << 0; - r128ctx->setup.scale_3d_cntl &= ~R128_TEX_CACHE_SPLIT; + rmesa->setup.tex_cntl_c |= R128_TEXMAP_ENABLE; + rmesa->setup.tex_size_pitch_c |= t->setup.tex_size_pitch << 0; + rmesa->setup.scale_3d_cntl &= ~R128_TEX_CACHE_SPLIT; t->setup.tex_cntl &= ~R128_SEC_SELECT_SEC_ST; } else { t->setup.tex_cntl |= R128_SEC_SELECT_SEC_ST; - r128ctx->setup.tex_cntl_c |= (R128_TEXMAP_ENABLE | - R128_SEC_TEXMAP_ENABLE) ; - r128ctx->setup.tex_size_pitch_c |= t->setup.tex_size_pitch << 16; - r128ctx->setup.scale_3d_cntl |= R128_TEX_CACHE_SPLIT; + rmesa->setup.tex_cntl_c |= R128_SEC_TEXMAP_ENABLE; + rmesa->setup.tex_size_pitch_c |= t->setup.tex_size_pitch << 16; + rmesa->setup.scale_3d_cntl |= R128_TEX_CACHE_SPLIT; } } -/* Update the hardware texture state */ void r128UpdateTextureState( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "%s( %p ) en=0x%x\n", @@ -1341,112 +1393,47 @@ void r128UpdateTextureState( GLcontext *ctx ) } /* Clear any texturing fallbacks */ - r128ctx->Fallback &= ~R128_FALLBACK_TEXTURE; + rmesa->Fallback &= ~R128_FALLBACK_TEXTURE; - /* Unbind any currently bound textures */ - if ( r128ctx->CurrentTexObj[0] ) r128ctx->CurrentTexObj[0]->bound = 0; - if ( r128ctx->CurrentTexObj[1] ) r128ctx->CurrentTexObj[1]->bound = 0; - r128ctx->CurrentTexObj[0] = NULL; - r128ctx->CurrentTexObj[1] = NULL; + /* Unbind any currently bound textures */ + if ( rmesa->CurrentTexObj[0] ) rmesa->CurrentTexObj[0]->bound = 0; + if ( rmesa->CurrentTexObj[1] ) rmesa->CurrentTexObj[1]->bound = 0; + rmesa->CurrentTexObj[0] = NULL; + rmesa->CurrentTexObj[1] = NULL; - r128ctx->setup.tex_size_pitch_c = 0x00000000; + if ( ctx->Enabled & (TEXTURE0_3D|TEXTURE1_3D) ) + rmesa->Fallback |= R128_FALLBACK_TEXTURE; + + /* Disable all texturing until it is known to be good */ + rmesa->setup.tex_cntl_c &= ~(R128_TEXMAP_ENABLE | + R128_SEC_TEXMAP_ENABLE); + rmesa->setup.tex_size_pitch_c = 0x00000000; r128UpdateTextureObject( ctx, 0 ); - r128UpdateTextureStage( ctx, 0 ); + r128UpdateTextureEnv( ctx, 0 ); - if ( r128ctx->multitex ) { + if ( rmesa->multitex ) { r128UpdateTextureObject( ctx, 1 ); - r128UpdateTextureStage( ctx, 1 ); + r128UpdateTextureEnv( ctx, 1 ); } - r128ctx->dirty |= R128_UPLOAD_CONTEXT; + rmesa->dirty |= R128_UPLOAD_CONTEXT; } -/* Set the texture wrap mode */ -static void r128SetTexWrap( r128TexObjPtr t, GLenum swrap, GLenum twrap ) -{ - t->setup.tex_cntl &= ~(R128_TEX_CLAMP_S_MASK | R128_TEX_CLAMP_T_MASK); - - switch ( swrap ) { - case GL_CLAMP: - t->setup.tex_cntl |= R128_TEX_CLAMP_S_CLAMP; - break; - case GL_REPEAT: - t->setup.tex_cntl |= R128_TEX_CLAMP_S_WRAP; - break; - } - - switch ( twrap ) { - case GL_CLAMP: - t->setup.tex_cntl |= R128_TEX_CLAMP_T_CLAMP; - break; - case GL_REPEAT: - t->setup.tex_cntl |= R128_TEX_CLAMP_T_WRAP; - break; - } -} - -/* Set the texture filter mode */ -static void r128SetTexFilter( r128TexObjPtr t, GLenum minf, GLenum magf ) -{ - t->setup.tex_cntl &= ~(R128_MIN_BLEND_MASK | R128_MAG_BLEND_MASK); - - switch ( minf ) { - case GL_NEAREST: - t->setup.tex_cntl |= R128_MIN_BLEND_NEAREST; - break; - case GL_LINEAR: - t->setup.tex_cntl |= R128_MIN_BLEND_LINEAR; - break; - case GL_NEAREST_MIPMAP_NEAREST: - t->setup.tex_cntl |= R128_MIN_BLEND_MIPNEAREST; - break; - case GL_LINEAR_MIPMAP_NEAREST: - t->setup.tex_cntl |= R128_MIN_BLEND_LINEARMIPNEAREST; - break; - case GL_NEAREST_MIPMAP_LINEAR: - t->setup.tex_cntl |= R128_MIN_BLEND_MIPLINEAR; - break; - case GL_LINEAR_MIPMAP_LINEAR: - t->setup.tex_cntl |= R128_MIN_BLEND_LINEARMIPLINEAR; - break; - } - - switch ( magf ) { - case GL_NEAREST: - t->setup.tex_cntl |= R128_MAG_BLEND_NEAREST; - break; - case GL_LINEAR: - t->setup.tex_cntl |= R128_MAG_BLEND_LINEAR; - break; - } -} - -/* Set the texture border color */ -static void r128SetTexBorderColor( r128TexObjPtr t, GLubyte c[4] ) -{ - t->setup.tex_border_color = r128PackColor( 32, c[0], c[1], c[2], c[3] ); -} - - -/* -============================================================================ - -Driver functions called directly from mesa - -============================================================================ -*/ - +/* ================================================================ + * DD interface texturing functions + * + * FIXME: Many of these are deprecated -- we should move to the new + * single-copy texture interface. + */ -/* Set the texture environment state */ static void r128DDTexEnv( GLcontext *ctx, GLenum target, GLenum pname, const GLfloat *param ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); struct gl_texture_unit *texUnit; GLubyte c[4]; - int bias; if ( R128_DEBUG & DEBUG_VERBOSE_API ) { fprintf( stderr, "%s( %s )\n", @@ -1455,59 +1442,71 @@ static void r128DDTexEnv( GLcontext *ctx, GLenum target, switch ( pname ) { case GL_TEXTURE_ENV_MODE: - /* TexEnv modes are handled in UpdateTextureState */ - FLUSH_BATCH( r128ctx ); - r128ctx->new_state |= R128_NEW_TEXTURE | R128_NEW_ALPHA; + FLUSH_BATCH( rmesa ); + rmesa->new_state |= R128_NEW_TEXTURE | R128_NEW_ALPHA; break; case GL_TEXTURE_ENV_COLOR: texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; FLOAT_RGBA_TO_UBYTE_RGBA( c, texUnit->EnvColor ); - r128ctx->env_color = r128PackColor( 32, c[0], c[1], c[2], c[3] ); - if ( r128ctx->setup.constant_color_c != r128ctx->env_color ) { - FLUSH_BATCH( r128ctx ); - r128ctx->setup.constant_color_c = r128ctx->env_color; + rmesa->env_color = r128PackColor( 4, c[0], c[1], c[2], c[3] ); + if ( rmesa->setup.constant_color_c != rmesa->env_color ) { + FLUSH_BATCH( rmesa ); + rmesa->setup.constant_color_c = rmesa->env_color; - r128ctx->new_state |= R128_NEW_TEXTURE; + rmesa->new_state |= R128_NEW_TEXTURE; /* More complex multitexture/multipass fallbacks for GL_BLEND * can be done later, but this allows a single pass GL_BLEND - * in some cases (ie. Performer town demo). + * in some cases (ie. Performer town demo). This is only + * applicable to the regular Rage 128, as the Pro and M3 can + * handle true single-pass GL_BLEND texturing. */ - r128ctx->blend_flags &= ~R128_BLEND_ENV_COLOR; - if ( r128ctx->env_color != 0x00000000 && - r128ctx->env_color != 0xff000000 /*&& - r128ctx->env_color != 0x00ffffff && - r128ctx->env_color != 0xffffffff */ ) { - r128ctx->blend_flags |= R128_BLEND_ENV_COLOR; + rmesa->blend_flags &= ~R128_BLEND_ENV_COLOR; + if ( R128_IS_PLAIN( rmesa ) && + rmesa->env_color != 0x00000000 && + rmesa->env_color != 0xff000000 && + rmesa->env_color != 0x00ffffff && + rmesa->env_color != 0xffffffff ) { + rmesa->blend_flags |= R128_BLEND_ENV_COLOR; } } break; case GL_TEXTURE_LOD_BIAS_EXT: - /* GTH: This isn't exactly correct, but gives good results up to a - * certain point. It is better than completely ignoring the LOD - * bias. Unfortunately there isn't much range in the bias, the - * spec mentions strides that vary between 0.5 and 2.0 but these - * numbers don't seem to relate the the GL LOD bias value at all. - */ - if ( param[0] >= 1.0 ) { - bias = -128; - } else if ( param[0] >= 0.5 ) { - bias = -64; - } else if ( param[0] >= 0.25 ) { - bias = 0; - } else if ( param[0] >= 0.0 ) { - bias = 63; - } else { - bias = 127; - } - if ( r128ctx->lod_bias != bias ) { - FLUSH_BATCH( r128ctx ); - r128ctx->lod_bias = bias; + do { + CARD32 t = rmesa->setup.tex_cntl_c; + GLint bias; + CARD32 b; + + /* GTH: This isn't exactly correct, but gives good results up to a + * certain point. It is better than completely ignoring the LOD + * bias. Unfortunately there isn't much range in the bias, the + * spec mentions strides that vary between 0.5 and 2.0 but these + * numbers don't seem to relate the the GL LOD bias value at all. + */ + if ( param[0] >= 1.0 ) { + bias = -128; + } else if ( param[0] >= 0.5 ) { + bias = -64; + } else if ( param[0] >= 0.25 ) { + bias = 0; + } else if ( param[0] >= 0.0 ) { + bias = 63; + } else { + bias = 127; + } - r128ctx->new_state |= R128_NEW_RENDER; - } + b = (CARD32)bias & 0xff; + t &= ~R128_LOD_BIAS_MASK; + t |= (b << R128_LOD_BIAS_SHIFT); + + if ( rmesa->setup.tex_cntl_c != t ) { + FLUSH_BATCH( rmesa ); + rmesa->setup.tex_cntl_c = t; + rmesa->dirty |= R128_UPLOAD_CONTEXT; + } + } while (0); break; default: @@ -1515,35 +1514,37 @@ static void r128DDTexEnv( GLcontext *ctx, GLenum target, } } -/* Upload a new texture image */ static void r128DDTexImage( GLcontext *ctx, GLenum target, struct gl_texture_object *tObj, GLint level, GLint internalFormat, const struct gl_texture_image *image ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); r128TexObjPtr t; if ( R128_DEBUG & DEBUG_VERBOSE_API ) fprintf( stderr, "%s( %p, level %d )\n", __FUNCTION__, tObj, level ); - if ( ( target != GL_TEXTURE_2D ) && ( target != GL_TEXTURE_1D ) ) return; - if ( level >= R128_TEX_MAXLEVELS ) return; + if ( ( target != GL_TEXTURE_2D ) && + ( target != GL_TEXTURE_1D ) ) + return; + + if ( level >= R128_MAX_TEXTURE_LEVELS ) + return; t = (r128TexObjPtr)tObj->DriverData; if ( t ) { - if ( t->bound ) FLUSH_BATCH( r128ctx ); + if ( t->bound ) FLUSH_BATCH( rmesa ); /* Destroy the old texture, and upload a new one. The actual * uploading of the texture image occurs in the UploadSubImage * function. */ - r128DestroyTexObj( r128ctx, t ); - r128ctx->new_state |= R128_NEW_TEXTURE; + r128DestroyTexObj( rmesa, t ); + rmesa->new_state |= R128_NEW_TEXTURE; } } -/* Upload a new texture sub-image */ static void r128DDTexSubImage( GLcontext *ctx, GLenum target, struct gl_texture_object *tObj, GLint level, GLint xoffset, GLint yoffset, @@ -1551,7 +1552,7 @@ static void r128DDTexSubImage( GLcontext *ctx, GLenum target, GLint internalFormat, const struct gl_texture_image *image ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); r128TexObjPtr t; if ( R128_DEBUG & DEBUG_VERBOSE_API ) { @@ -1560,31 +1561,34 @@ static void r128DDTexSubImage( GLcontext *ctx, GLenum target, image->Width, image->Height ); } - if ( ( target != GL_TEXTURE_2D ) && ( target != GL_TEXTURE_1D ) ) return; - if ( level >= R128_TEX_MAXLEVELS ) return; + if ( ( target != GL_TEXTURE_2D ) && + ( target != GL_TEXTURE_1D ) ) + return; + + if ( level >= R128_MAX_TEXTURE_LEVELS ) + return; t = (r128TexObjPtr)tObj->DriverData; if ( t ) { - if ( t->bound ) FLUSH_BATCH( r128ctx ); + if ( t->bound ) FLUSH_BATCH( rmesa ); - LOCK_HARDWARE( r128ctx ); - r128UploadSubImage( r128ctx, t, level, + LOCK_HARDWARE( rmesa ); + r128UploadSubImage( rmesa, t, level, xoffset, yoffset, width, height ); - UNLOCK_HARDWARE( r128ctx ); + UNLOCK_HARDWARE( rmesa ); /* Update the context state */ - r128ctx->setup.tex_cntl_c |= R128_TEX_CACHE_FLUSH; + rmesa->setup.tex_cntl_c |= R128_TEX_CACHE_FLUSH; - r128ctx->new_state |= R128_NEW_TEXTURE; + rmesa->new_state |= R128_NEW_TEXTURE; } } -/* Set the texture parameter state */ static void r128DDTexParameter( GLcontext *ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat *params ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); r128TexObjPtr t = (r128TexObjPtr)tObj->DriverData; if ( R128_DEBUG & DEBUG_VERBOSE_API ) { @@ -1592,24 +1596,32 @@ static void r128DDTexParameter( GLcontext *ctx, GLenum target, __FUNCTION__, gl_lookup_enum_by_nr( pname ) ); } - if ( !t || !t->bound ) return; - if ( ( target != GL_TEXTURE_2D ) && ( target != GL_TEXTURE_1D ) ) return; + /* If we don't have a hardware texture, it will be automatically + * created with current state before it is used, so we don't have + * to do anything now. + */ + if ( !t || !t->bound ) + return; + + if ( ( target != GL_TEXTURE_2D ) && + ( target != GL_TEXTURE_1D ) ) + return; switch ( pname ) { case GL_TEXTURE_MIN_FILTER: case GL_TEXTURE_MAG_FILTER: - if ( t->bound ) FLUSH_BATCH( r128ctx ); + if ( t->bound ) FLUSH_BATCH( rmesa ); r128SetTexFilter( t, tObj->MinFilter, tObj->MagFilter ); break; case GL_TEXTURE_WRAP_S: case GL_TEXTURE_WRAP_T: - if ( t->bound ) FLUSH_BATCH( r128ctx ); + if ( t->bound ) FLUSH_BATCH( rmesa ); r128SetTexWrap( t, tObj->WrapS, tObj->WrapT ); break; case GL_TEXTURE_BORDER_COLOR: - if ( t->bound ) FLUSH_BATCH( r128ctx ); + if ( t->bound ) FLUSH_BATCH( rmesa ); r128SetTexBorderColor( t, tObj->BorderColor ); break; @@ -1617,14 +1629,13 @@ static void r128DDTexParameter( GLcontext *ctx, GLenum target, return; } - r128ctx->new_state |= R128_NEW_TEXTURE; + rmesa->new_state |= R128_NEW_TEXTURE; } -/* Bind a texture to the currently active texture unit */ static void r128DDBindTexture( GLcontext *ctx, GLenum target, struct gl_texture_object *tObj ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); GLint unit = ctx->Texture.CurrentUnit; if ( R128_DEBUG & DEBUG_VERBOSE_API ) { @@ -1632,50 +1643,46 @@ static void r128DDBindTexture( GLcontext *ctx, GLenum target, __FUNCTION__, tObj, unit ); } - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); - /* Unbind the old texture */ - if ( r128ctx->CurrentTexObj[unit] ) { - r128ctx->CurrentTexObj[unit]->bound &= ~(unit+1); - r128ctx->CurrentTexObj[unit] = NULL; + if ( rmesa->CurrentTexObj[unit] ) { + rmesa->CurrentTexObj[unit]->bound &= ~(unit+1); + rmesa->CurrentTexObj[unit] = NULL; } - /* The actualy binding occurs in the Tex[01]UpdateState function */ - r128ctx->new_state |= R128_NEW_TEXTURE; + rmesa->new_state |= R128_NEW_TEXTURE; } -/* Remove texture from AGP/local texture memory */ static void r128DDDeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); r128TexObjPtr t = (r128TexObjPtr)tObj->DriverData; if ( t ) { if ( t->bound ) { - FLUSH_BATCH( r128ctx ); + FLUSH_BATCH( rmesa ); - r128ctx->CurrentTexObj[t->bound-1] = 0; - r128ctx->new_state |= R128_NEW_TEXTURE; + if ( t->bound & TEX_0 ) rmesa->CurrentTexObj[0] = NULL; + if ( t->bound & TEX_1 ) rmesa->CurrentTexObj[1] = NULL; + rmesa->new_state |= R128_NEW_TEXTURE; } - r128DestroyTexObj( r128ctx, t ); + r128DestroyTexObj( rmesa, t ); tObj->DriverData = NULL; } } -/* Determine if a texture is currently residing in either AGP/local - * texture memory. - */ static GLboolean r128DDIsTextureResident( GLcontext *ctx, struct gl_texture_object *tObj ) { r128TexObjPtr t = (r128TexObjPtr)tObj->DriverData; - return t && t->memBlock; + return ( t && t->memBlock ); } -/* Initialize the driver's texture functions */ + + void r128DDInitTextureFuncs( GLcontext *ctx ) { ctx->Driver.TexEnv = r128DDTexEnv; diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_tex.h b/xc/lib/GL/mesa/src/drv/r128/r128_tex.h index fbe39b8c0..e1f67a56d 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_tex.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_tex.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tex.h,v 1.3 2000/12/12 17:17:08 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tex.h,v 1.4 2001/01/08 01:07:23 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,58 +28,65 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_TEX_H_ -#define _R128_TEX_H_ +#ifndef __R128_TEX_H__ +#define __R128_TEX_H__ #ifdef GLX_DIRECT_RENDERING extern void r128UpdateTextureState( GLcontext *ctx ); -extern int r128UploadTexImages( r128ContextPtr r128ctx, r128TexObjPtr t ); +extern int r128UploadTexImages( r128ContextPtr rmesa, r128TexObjPtr t ); -extern void r128AgeTextures( r128ContextPtr r128ctx, int heap ); -extern void r128DestroyTexObj( r128ContextPtr r128ctx, r128TexObjPtr t ); +extern void r128AgeTextures( r128ContextPtr rmesa, int heap ); +extern void r128DestroyTexObj( r128ContextPtr rmesa, r128TexObjPtr t ); -extern void r128PrintLocalLRU( r128ContextPtr r128ctx, int heap ); -extern void r128PrintGlobalLRU( r128ContextPtr r128ctx, int heap ); +extern void r128PrintLocalLRU( r128ContextPtr rmesa, int heap ); +extern void r128PrintGlobalLRU( r128ContextPtr rmesa, int heap ); extern void r128DDInitTextureFuncs( GLcontext *ctx ); -#define R128PACKCOLOR332(r, g, b) \ - (((r) & 0xe0) | (((g) & 0xe0) >> 3) | (((b) & 0xc0) >> 6)) +/* ================================================================ + * Color conversion macros: + */ + +#define R128PACKCOLOR332( r, g, b ) \ + (((r) & 0xe0) | (((g) & 0xe0) >> 3) | (((b) & 0xc0) >> 6)) -#define R128PACKCOLOR1555(r, g, b, a) \ - ((((r) & 0xf8) << 7) | (((g) & 0xf8) << 2) | (((b) & 0xf8) >> 3) | \ - ((a) ? 0x8000 : 0)) +#define R128PACKCOLOR1555( r, g, b, a ) \ + ((((r) & 0xf8) << 7) | (((g) & 0xf8) << 2) | (((b) & 0xf8) >> 3) | \ + ((a) ? 0x8000 : 0)) -#define R128PACKCOLOR565(r, g, b) \ - ((((r) & 0xf8) << 8) | (((g) & 0xfc) << 3) | (((b) & 0xf8) >> 3)) +#define R128PACKCOLOR565( r, g, b ) \ + ((((r) & 0xf8) << 8) | (((g) & 0xfc) << 3) | (((b) & 0xf8) >> 3)) -#define R128PACKCOLOR888(r, g, b) \ - (((r) << 16) | ((g) << 8) | (b)) +#define R128PACKCOLOR888( r, g, b ) \ + (((r) << 16) | ((g) << 8) | (b)) -#define R128PACKCOLOR8888(r, g, b, a) \ - (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) +#define R128PACKCOLOR8888( r, g, b, a ) \ + (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) -#define R128PACKCOLOR4444(r, g, b, a) \ - ((((a) & 0xf0) << 8) | (((r) & 0xf0) << 4) | ((g) & 0xf0) | ((b) >> 4)) +#define R128PACKCOLOR4444( r, g, b, a ) \ + ((((a) & 0xf0) << 8) | (((r) & 0xf0) << 4) | ((g) & 0xf0) | ((b) >> 4)) -static __inline__ CARD32 r128PackColor( GLuint bpp, +static __inline__ CARD32 r128PackColor( GLuint cpp, GLubyte r, GLubyte g, GLubyte b, GLubyte a ) { - switch ( bpp ) { - case 16: return R128PACKCOLOR565( r, g, b ); - case 32: return R128PACKCOLOR8888( r, g, b, a ); - default: return 0; + switch ( cpp ) { + case 2: + return R128PACKCOLOR565( r, g, b ); + case 4: + return R128PACKCOLOR8888( r, g, b, a ); + default: + return 0; } } #endif -#endif /* _R128_TEX_H_ */ +#endif /* __R128_TEX_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_texobj.h b/xc/lib/GL/mesa/src/drv/r128/r128_texobj.h index 59b568321..9939c219b 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_texobj.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_texobj.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_texobj.h,v 1.3 2000/12/04 19:21:47 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_texobj.h,v 1.4 2001/01/08 01:07:24 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -39,44 +39,45 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r128_sarea.h" #include "mm.h" -/* Individual texture image information */ +/* Individual texture image information. + */ typedef struct { - GLuint offset; /* Offset into locally shared texture space (i.e., - relative to bufAddr (below) */ - GLuint width; /* Width of texture image */ - GLuint height; /* Height of texture image */ + GLuint offset; /* Relative to local texture space */ + GLuint width; + GLuint height; } r128TexImage; typedef struct r128_tex_obj r128TexObj, *r128TexObjPtr; -/* Texture object in locally shared texture space */ +/* Texture object in locally shared texture space. + */ struct r128_tex_obj { - r128TexObjPtr next, prev; + r128TexObjPtr next, prev; struct gl_texture_object *tObj; /* Mesa texture object */ - PMemBlock memBlock; /* Memory block containing texture */ - CARD32 bufAddr; /* Offset to start of locally + PMemBlock memBlock; /* Memory block containing texture */ + CARD32 bufAddr; /* Offset to start of locally shared texture block */ - CARD32 dirty_images; /* Flags for whether or not + CARD32 dirty_images; /* Flags for whether or not images need to be uploaded to local or AGP texture space */ - GLuint age; - GLint bound; /* Texture unit currently bound to */ - GLint heap; /* Texture heap currently stored in */ - r128TexImage image[R128_TEX_MAXLEVELS]; /* Image data for all - mipmap levels */ + GLuint age; + GLint bound; /* Texture unit currently bound to */ + GLint heap; /* Texture heap currently stored in */ + r128TexImage image[R128_MAX_TEXTURE_LEVELS]; /* Image data for all + mipmap levels */ - GLint totalSize; /* Total size of the texture + GLint totalSize; /* Total size of the texture including all mipmap levels */ - GLuint internFormat; /* Internal GL format used to store + GLuint internFormat; /* Internal GL format used to store texture on card */ - CARD32 textureFormat; /* Actual hardware format */ - GLint texelBytes; /* Number of bytes per texel */ + CARD32 textureFormat; /* Actual hardware format */ + GLint texelBytes; /* Number of bytes per texel */ - r128_texture_regs_t setup; /* Setup regs for texture */ + r128_texture_regs_t setup; /* Setup regs for texture */ }; #endif /* _R128_TEXOBJ_H_ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_tris.c b/xc/lib/GL/mesa/src/drv/r128/r128_tris.c index 8d1053e90..4d83e27e0 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_tris.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_tris.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tris.c,v 1.3 2000/12/04 19:21:47 dawes Exp $ */ /* -*- c-basic-offset: 3 -*- */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tris.c,v 1.4 2001/01/08 01:07:24 martin Exp $ */ /* -*- c-basic-offset: 3 -*- */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,8 +28,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -49,25 +49,28 @@ static struct { quad_func quad; } rast_tab[R128_MAX_TRIFUNC]; -#define R128_COLOR(to, from) \ -do { \ - (to)[0] = (from)[2]; \ - (to)[1] = (from)[1]; \ - (to)[2] = (from)[0]; \ - (to)[3] = (from)[3]; \ +#define R128_COLOR( to, from ) \ +do { \ + (to)[0] = (from)[2]; \ + (to)[1] = (from)[1]; \ + (to)[2] = (from)[0]; \ + (to)[3] = (from)[3]; \ } while (0) static void r128_null_quad( GLcontext *ctx, GLuint v0, - GLuint v1, GLuint v2, GLuint v3, GLuint pv ) { + GLuint v1, GLuint v2, GLuint v3, GLuint pv ) +{ } static void r128_null_triangle( GLcontext *ctx, GLuint v0, - GLuint v1, GLuint v2, GLuint pv ) { + GLuint v1, GLuint v2, GLuint pv ) +{ } -static void r128_null_line( GLcontext *ctx, GLuint v1, GLuint v2, GLuint pv ) { +static void r128_null_line( GLcontext *ctx, GLuint v1, GLuint v2, GLuint pv ) +{ } - -static void r128_null_points( GLcontext *ctx, GLuint first, GLuint last ) { +static void r128_null_points( GLcontext *ctx, GLuint first, GLuint last ) +{ } static void r128PrintRenderState( const char *msg, GLuint state ) @@ -114,10 +117,9 @@ static void r128PrintRenderState( const char *msg, GLuint state ) #include "r128_tritmp.h" -/* Initialize the table of points, line and triangle drawing functions */ void r128DDTriangleFuncsInit( void ) { - int i; + GLint i; init(); init_flat(); @@ -128,12 +130,12 @@ void r128DDTriangleFuncsInit( void ) init_twoside_offset(); init_twoside_offset_flat(); - for ( i = 0 ; i < 0x20 ; i++ ) { - if ( (i & (R128_NODRAW_BIT | R128_FALLBACK_BIT)) == R128_NODRAW_BIT ) { - rast_tab[i].points = r128_null_points; - rast_tab[i].line = r128_null_line; - rast_tab[i].triangle = r128_null_triangle; - rast_tab[i].quad = r128_null_quad; + for ( i = 0 ; i < R128_MAX_TRIFUNC ; i++ ) { + if ( i & R128_NODRAW_BIT ) { + rast_tab[i].points = r128_null_points; + rast_tab[i].line = r128_null_line; + rast_tab[i].triangle = r128_null_triangle; + rast_tab[i].quad = r128_null_quad; } } } @@ -147,7 +149,7 @@ void r128DDTriangleFuncsInit( void ) #define LINE_FALLBACK (ALL_FALLBACK | DD_LINE_SMOOTH | DD_LINE_STIPPLE) #define TRI_FALLBACK (ALL_FALLBACK | DD_TRI_SMOOTH | DD_TRI_STIPPLE | DD_TRI_UNFILLED) #define ANY_FALLBACK (POINT_FALLBACK | LINE_FALLBACK | TRI_FALLBACK) -#define ANY_RASTER_FLAGS (/*DD_FLATSHADE |*/ DD_TRI_LIGHT_TWOSIDE | DD_TRI_OFFSET | DD_Z_NEVER) +#define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE | DD_TRI_OFFSET | DD_Z_NEVER) /* Setup the Point, Line, Triangle and Quad functions based on the * current rendering state. Wherever possible, use the hardware to @@ -155,12 +157,12 @@ void r128DDTriangleFuncsInit( void ) */ void r128DDChooseRenderState( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); + r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint flags = ctx->TriangleCaps; - CARD32 index = 0; + GLuint index = 0; - if ( r128ctx->Fallback ) { - r128ctx->RenderIndex = R128_FALLBACK_BIT; + if ( rmesa->Fallback ) { + rmesa->RenderIndex = R128_FALLBACK_BIT; return; } @@ -171,37 +173,38 @@ void r128DDChooseRenderState( GLcontext *ctx ) if ( flags & DD_Z_NEVER ) index |= R128_NODRAW_BIT; } - r128ctx->PointsFunc = rast_tab[index].points; - r128ctx->LineFunc = rast_tab[index].line; - r128ctx->TriangleFunc = rast_tab[index].triangle; - r128ctx->QuadFunc = rast_tab[index].quad; + rmesa->PointsFunc = rast_tab[index].points; + rmesa->LineFunc = rast_tab[index].line; + rmesa->TriangleFunc = rast_tab[index].triangle; + rmesa->QuadFunc = rast_tab[index].quad; - r128ctx->RenderIndex = index; - r128ctx->IndirectTriangles = 0; + rmesa->RenderIndex = index; + rmesa->IndirectTriangles = 0; if ( flags & ANY_FALLBACK ) { - r128ctx->RenderIndex |= R128_FALLBACK_BIT; - if ( flags & POINT_FALLBACK ) { - r128ctx->PointsFunc = 0; - r128ctx->IndirectTriangles |= DD_POINT_SW_RASTERIZE; + rmesa->RenderIndex |= R128_FALLBACK_BIT; + rmesa->PointsFunc = 0; + rmesa->IndirectTriangles |= DD_POINT_SW_RASTERIZE; } if ( flags & LINE_FALLBACK ) { - r128ctx->LineFunc = 0; - r128ctx->IndirectTriangles |= DD_LINE_SW_RASTERIZE; + rmesa->RenderIndex |= R128_FALLBACK_BIT; + rmesa->LineFunc = 0; + rmesa->IndirectTriangles |= DD_LINE_SW_RASTERIZE; } if ( flags & TRI_FALLBACK ) { - r128ctx->TriangleFunc = 0; - r128ctx->QuadFunc = 0; - r128ctx->IndirectTriangles |= (DD_TRI_SW_RASTERIZE | - DD_QUAD_SW_RASTERIZE); + rmesa->RenderIndex |= R128_FALLBACK_BIT; + rmesa->TriangleFunc = 0; + rmesa->QuadFunc = 0; + rmesa->IndirectTriangles |= (DD_TRI_SW_RASTERIZE | + DD_QUAD_SW_RASTERIZE); } } if ( 0 ) { gl_print_tri_caps( "tricaps", ctx->TriangleCaps ); - r128PrintRenderState( "r128 render state", r128ctx->RenderIndex ); + r128PrintRenderState( "r128 render state", rmesa->RenderIndex ); } } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_tris.h b/xc/lib/GL/mesa/src/drv/r128/r128_tris.h index 364aa02c9..79b3fb69e 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_tris.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_tris.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tris.h,v 1.3 2000/12/04 19:21:47 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tris.h,v 1.4 2001/01/08 01:07:24 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,22 +28,21 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_TRIS_H_ -#define _R128_TRIS_H_ +#ifndef __R128_TRIS_H__ +#define __R128_TRIS_H__ #ifdef GLX_DIRECT_RENDERING #include "r128_vb.h" -extern void r128DDChooseRenderState(GLcontext *ctx); -extern void r128DDTriangleFuncsInit(void); +extern void r128DDChooseRenderState( GLcontext *ctx ); +extern void r128DDTriangleFuncsInit( void ); -#define R128_ANTIALIAS_BIT 0x00 /* Ignored for now */ #define R128_FLAT_BIT 0x01 #define R128_OFFSET_BIT 0x02 #define R128_TWOSIDE_BIT 0x04 @@ -51,18 +50,18 @@ extern void r128DDTriangleFuncsInit(void); #define R128_FALLBACK_BIT 0x10 #define R128_MAX_TRIFUNC 0x20 -/* Draw a triangle from the vertices in the vertex buffer */ -static __inline void r128_draw_triangle( r128ContextPtr r128ctx, - r128Vertex *v0, - r128Vertex *v1, - r128Vertex *v2 ) + +static __inline void r128_draw_triangle( r128ContextPtr rmesa, + r128VertexPtr v0, + r128VertexPtr v1, + r128VertexPtr v2 ) { - int vertsize = r128ctx->vertsize; - CARD32 *vb = r128AllocVerticesInline( r128ctx, 3 ); + int vertsize = rmesa->vertsize; + CARD32 *vb = r128AllocVerticesInline( rmesa, 3 ); int j; #if defined (USE_X86_ASM) - /* GTH: We can safely assume the vertex stride is some number of + /* GH: We can safely assume the vertex stride is some number of * dwords, and thus a "rep movsd" is okay. The vb pointer is * automagically updated with this instruction, so we don't have * to manually take care of incrementing it. @@ -93,19 +92,18 @@ static __inline void r128_draw_triangle( r128ContextPtr r128ctx, #endif } -/* Draw a quad from the vertices in the vertex buffer */ -static __inline void r128_draw_quad( r128ContextPtr r128ctx, - r128Vertex *v0, - r128Vertex *v1, - r128Vertex *v2, - r128Vertex *v3 ) +static __inline void r128_draw_quad( r128ContextPtr rmesa, + r128VertexPtr v0, + r128VertexPtr v1, + r128VertexPtr v2, + r128VertexPtr v3 ) { - int vertsize = r128ctx->vertsize; - CARD32 *vb = r128AllocVerticesInline( r128ctx, 6 ); + int vertsize = rmesa->vertsize; + CARD32 *vb = r128AllocVerticesInline( rmesa, 6 ); int j; #if defined (USE_X86_ASM) - /* GTH: We can safely assume the vertex stride is some number of + /* GH: We can safely assume the vertex stride is some number of * dwords, and thus a "rep movsd" is okay. The vb pointer is * automagically updated with this instruction, so we don't have * to manually take care of incrementing it. @@ -160,15 +158,14 @@ static __inline void r128_draw_quad( r128ContextPtr r128ctx, #endif } -/* Draw a line from the vertices in the vertex buffer */ -static __inline void r128_draw_line( r128ContextPtr r128ctx, - r128Vertex *tmp0, - r128Vertex *tmp1, +static __inline void r128_draw_line( r128ContextPtr rmesa, + r128VertexPtr tmp0, + r128VertexPtr tmp1, float width ) { #if 1 - int vertsize = r128ctx->vertsize; - CARD32 *vb = r128AllocVerticesInline( r128ctx, 6 ); + int vertsize = rmesa->vertsize; + CARD32 *vb = r128AllocVerticesInline( rmesa, 6 ); float dx, dy, ix, iy; int j; @@ -221,12 +218,12 @@ static __inline void r128_draw_line( r128ContextPtr r128ctx, #else - int vertsize = r128ctx->vertsize; - CARD32 *vb = r128AllocVerticesInline( r128ctx, 2 ); + int vertsize = rmesa->vertsize; + CARD32 *vb = r128AllocVerticesInline( rmesa, 2 ); int j; #if defined (USE_X86_ASM) - /* GTH: We can safely assume the vertex stride is some number of + /* GH: We can safely assume the vertex stride is some number of * dwords, and thus a "rep movsd" is okay. The vb pointer is * automagically updated with this instruction, so we don't have * to manually take care of incrementing it. @@ -250,13 +247,12 @@ static __inline void r128_draw_line( r128ContextPtr r128ctx, #endif } -/* Draw a point from the vertices in the vertex buffer */ -static __inline void r128_draw_point( r128ContextPtr r128ctx, - r128Vertex *tmp, float sz ) +static __inline void r128_draw_point( r128ContextPtr rmesa, + r128VertexPtr tmp, float sz ) { #if 1 - int vertsize = r128ctx->vertsize; - CARD32 *vb = r128AllocVerticesInline( r128ctx, 6 ); + int vertsize = rmesa->vertsize; + CARD32 *vb = r128AllocVerticesInline( rmesa, 6 ); int j; *(float *)&vb[0] = tmp->v.x - sz; @@ -295,12 +291,12 @@ static __inline void r128_draw_point( r128ContextPtr r128ctx, vb[j] = tmp->ui[j]; #else - int vertsize = r128ctx->vertsize; - CARD32 *vb = r128AllocVerticesInline( r128ctx, 1 ); + int vertsize = rmesa->vertsize; + CARD32 *vb = r128AllocVerticesInline( rmesa, 1 ); int j; #if defined (USE_X86_ASM) - /* GTH: We can safely assume the vertex stride is some number of + /* GH: We can safely assume the vertex stride is some number of * dwords, and thus a "rep movsd" is okay. The vb pointer is * automagically updated with this instruction, so we don't have * to manually take care of incrementing it. @@ -317,4 +313,4 @@ static __inline void r128_draw_point( r128ContextPtr r128ctx, } #endif -#endif /* _R128_TRIS_H_ */ +#endif /* __R128_TRIS_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_tritmp.h b/xc/lib/GL/mesa/src/drv/r128/r128_tritmp.h index d448493d0..a9ca8d1bc 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_tritmp.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_tritmp.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tritmp.h,v 1.4 2000/12/04 22:46:01 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_tritmp.h,v 1.5 2001/01/08 01:07:24 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,38 +28,31 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#if !defined(TAG) || !defined(IND) -this is an error -#endif - -/* Draw a single triangle. Note that the device-dependent vertex data - might need to be changed based on the render state. */ static __inline void TAG(triangle)( GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2, GLuint pv ) { - r128ContextPtr r128ctx = R128_CONTEXT(ctx); + r128ContextPtr rmesa = R128_CONTEXT(ctx); struct vertex_buffer *VB = ctx->VB; - r128VertexPtr r128verts = R128_DRIVER_DATA(VB)->verts; - r128Vertex *v[3]; + r128VertexPtr verts = R128_DRIVER_DATA(VB)->verts; + r128VertexPtr v[3]; #if (IND & R128_OFFSET_BIT) GLfloat offset; GLfloat z[3]; #endif - #if (IND & R128_TWOSIDE_BIT) GLuint c[3]; #endif - v[0] = &r128verts[e0]; - v[1] = &r128verts[e1]; - v[2] = &r128verts[e2]; + v[0] = &verts[e0]; + v[1] = &verts[e1]; + v[2] = &verts[e2]; #if (IND & R128_TWOSIDE_BIT) c[0] = v[0]->ui[4]; @@ -73,13 +66,13 @@ static __inline void TAG(triangle)( GLcontext *ctx, GLfloat ey = v[0]->v.y - v[2]->v.y; GLfloat fx = v[1]->v.x - v[2]->v.x; GLfloat fy = v[1]->v.y - v[2]->v.y; - GLfloat cc = ex*fy - ey*fx; + GLfloat cc = ex*fy - ey*fx; #if (IND & R128_TWOSIDE_BIT) { - GLuint facing = (cc > 0.0) ^ ctx->Polygon.FrontBit; + GLuint facing = ( cc > 0.0 ) ^ ctx->Polygon.FrontBit; GLubyte (*vbcolor)[4] = VB->Color[facing]->data; - if (IND & R128_FLAT_BIT) { + if ( IND & R128_FLAT_BIT ) { R128_COLOR( (char *)&v[0]->ui[4], vbcolor[pv] ); v[2]->ui[4] = v[1]->ui[4] = v[0]->ui[4]; } else { @@ -92,21 +85,21 @@ static __inline void TAG(triangle)( GLcontext *ctx, #if (IND & R128_OFFSET_BIT) { - offset = ctx->Polygon.OffsetUnits * r128ctx->depth_scale; + offset = ctx->Polygon.OffsetUnits * rmesa->depth_scale; z[0] = v[0]->v.z; z[1] = v[1]->v.z; z[2] = v[2]->v.z; - if (cc * cc > 1e-16) { - GLfloat ez = z[0] - z[2]; - GLfloat fz = z[1] - z[2]; - GLfloat a = ey*fz - ez*fy; - GLfloat b = ez*fx - ex*fz; - GLfloat ic = 1.0 / cc; - GLfloat ac = a * ic; - GLfloat bc = b * ic; - if (ac < 0.0f) ac = -ac; - if (bc < 0.0f) bc = -bc; - offset += MAX2(ac, bc) * ctx->Polygon.OffsetFactor; + if ( cc * cc > 1e-16 ) { + GLfloat ez = z[0] - z[2]; + GLfloat fz = z[1] - z[2]; + GLfloat a = ey*fz - ez*fy; + GLfloat b = ez*fx - ex*fz; + GLfloat ic = 1.0 / cc; + GLfloat ac = a * ic; + GLfloat bc = b * ic; + if ( ac < 0.0f ) ac = -ac; + if ( bc < 0.0f ) bc = -bc; + offset += MAX2( ac, bc ) * ctx->Polygon.OffsetFactor; } v[0]->v.z += offset; v[1]->v.z += offset; @@ -116,7 +109,7 @@ static __inline void TAG(triangle)( GLcontext *ctx, } #endif - r128_draw_triangle( r128ctx, v[0], v[1], v[2] ); + r128_draw_triangle( rmesa, v[0], v[1], v[2] ); #if (IND & R128_OFFSET_BIT) v[0]->v.z = z[0]; @@ -140,24 +133,23 @@ static void TAG(quad)( GLcontext *ctx, TAG(triangle)( ctx, e0, e1, e3, pv ); TAG(triangle)( ctx, e1, e2, e3, pv ); #else - r128ContextPtr r128ctx = R128_CONTEXT(ctx); + r128ContextPtr rmesa = R128_CONTEXT(ctx); struct vertex_buffer *VB = ctx->VB; - r128VertexPtr r128verts = R128_DRIVER_DATA(VB)->verts; - r128Vertex *v[4]; + r128VertexPtr verts = R128_DRIVER_DATA(VB)->verts; + r128VertexPtr v[4]; #if (IND & R128_OFFSET_BIT) GLfloat offset; GLfloat z[4]; #endif - #if (IND & R128_TWOSIDE_BIT) int c[4]; #endif - v[0] = &r128verts[e0]; - v[1] = &r128verts[e1]; - v[2] = &r128verts[e2]; - v[3] = &r128verts[e3]; + v[0] = &verts[e0]; + v[1] = &verts[e1]; + v[2] = &verts[e2]; + v[3] = &verts[e3]; #if (IND & R128_TWOSIDE_BIT) c[0] = v[0]->ui[4]; @@ -172,42 +164,42 @@ static void TAG(quad)( GLcontext *ctx, GLfloat ey = v[0]->v.y - v[2]->v.y; GLfloat fx = v[1]->v.x - v[2]->v.x; GLfloat fy = v[1]->v.y - v[2]->v.y; - GLfloat cc = ex*fy - ey*fx; + GLfloat cc = ex*fy - ey*fx; #if (IND & R128_TWOSIDE_BIT) { - GLuint facing = (cc > 0.0) ^ ctx->Polygon.FrontBit; + GLuint facing = ( cc > 0.0 ) ^ ctx->Polygon.FrontBit; GLubyte (*vbcolor)[4] = VB->Color[facing]->data; - if (IND & R128_FLAT_BIT) { - R128_COLOR((char *)&v[0]->ui[4], vbcolor[pv]); + if ( IND & R128_FLAT_BIT ) { + R128_COLOR( (char *)&v[0]->ui[4], vbcolor[pv] ); v[3]->ui[4] = v[2]->ui[4] = v[1]->ui[4] = v[0]->ui[4]; } else { - R128_COLOR((char *)&v[0]->ui[4], vbcolor[e0]); - R128_COLOR((char *)&v[1]->ui[4], vbcolor[e1]); - R128_COLOR((char *)&v[2]->ui[4], vbcolor[e2]); - R128_COLOR((char *)&v[3]->ui[4], vbcolor[e3]); + R128_COLOR( (char *)&v[0]->ui[4], vbcolor[e0] ); + R128_COLOR( (char *)&v[1]->ui[4], vbcolor[e1] ); + R128_COLOR( (char *)&v[2]->ui[4], vbcolor[e2] ); + R128_COLOR( (char *)&v[3]->ui[4], vbcolor[e3] ); } } #endif #if (IND & R128_OFFSET_BIT) { - offset = ctx->Polygon.OffsetUnits * r128ctx->depth_scale; + offset = ctx->Polygon.OffsetUnits * rmesa->depth_scale; z[0] = v[0]->v.z; z[1] = v[1]->v.z; z[2] = v[2]->v.z; z[3] = v[3]->v.z; - if (cc * cc > 1e-16) { - GLfloat ez = z[0] - z[2]; - GLfloat fz = z[1] - z[2]; - GLfloat a = ey*fz - ez*fy; - GLfloat b = ez*fx - ex*fz; - GLfloat ic = 1.0 / cc; - GLfloat ac = a * ic; - GLfloat bc = b * ic; - if (ac < 0.0f) ac = -ac; - if (bc < 0.0f) bc = -bc; - offset += MAX2(ac, bc) * ctx->Polygon.OffsetFactor; + if ( cc * cc > 1e-16 ) { + GLfloat ez = z[0] - z[2]; + GLfloat fz = z[1] - z[2]; + GLfloat a = ey*fz - ez*fy; + GLfloat b = ez*fx - ex*fz; + GLfloat ic = 1.0 / cc; + GLfloat ac = a * ic; + GLfloat bc = b * ic; + if ( ac < 0.0f ) ac = -ac; + if ( bc < 0.0f ) bc = -bc; + offset += MAX2( ac, bc ) * ctx->Polygon.OffsetFactor; } v[0]->v.z += offset; v[1]->v.z += offset; @@ -218,7 +210,7 @@ static void TAG(quad)( GLcontext *ctx, } #endif - r128_draw_quad( r128ctx, v[0], v[1], v[2], v[3] ); + r128_draw_quad( rmesa, v[0], v[1], v[2], v[3] ); #if (IND & R128_OFFSET_BIT) v[0]->v.z = z[0]; @@ -237,23 +229,15 @@ static void TAG(quad)( GLcontext *ctx, } -/* Draw a single line. Note that the device-dependent vertex data - * might need to be changed based on the render state. - * - * Polygon offset for GL_LINE triangles is dependent on a harness in - * core mesa setting up LineZoffset on a per-triangle basis. - * - * Twosided lighting for GL_LINE triangles is dependent on the same - * harness. - */ static void TAG(line)( GLcontext *ctx, GLuint e0, GLuint e1, GLuint pv ) { - r128ContextPtr r128ctx = R128_CONTEXT(ctx); - r128VertexPtr r128verts = R128_DRIVER_DATA(ctx->VB)->verts; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + struct vertex_buffer *VB = ctx->VB; + r128VertexPtr verts = R128_DRIVER_DATA(VB)->verts; GLfloat width = ctx->Line.Width; - r128Vertex *v[2]; + r128VertexPtr v[2]; #if (IND & R128_OFFSET_BIT) GLfloat offset; @@ -263,8 +247,8 @@ static void TAG(line)( GLcontext *ctx, int c[2]; #endif - v[0] = &r128verts[e0]; - v[1] = &r128verts[e1]; + v[0] = &verts[e0]; + v[1] = &verts[e1]; #if (IND & R128_TWOSIDE_BIT) c[0] = v[0]->ui[4]; @@ -274,7 +258,7 @@ static void TAG(line)( GLcontext *ctx, #if (IND & R128_TWOSIDE_BIT) { GLubyte (*vbcolor)[4] = ctx->VB->ColorPtr->data; - if (IND & R128_FLAT_BIT) { + if ( IND & R128_FLAT_BIT ) { R128_COLOR( (char *)&v[0]->ui[4], vbcolor[pv] ); v[1]->ui[4] = v[0]->ui[4]; } else { @@ -285,14 +269,14 @@ static void TAG(line)( GLcontext *ctx, #endif #if (IND & R128_OFFSET_BIT) - offset = ctx->LineZoffset * r128ctx->depth_scale; + offset = ctx->LineZoffset * rmesa->depth_scale; z[0] = v[0]->v.z; z[1] = v[1]->v.z; v[0]->v.z += offset; v[1]->v.z += offset; #endif - r128_draw_line( r128ctx, v[0], v[1], width ); + r128_draw_line( rmesa, v[0], v[1], width ); #if (IND & R128_OFFSET_BIT) v[0]->v.z = z[0]; @@ -303,81 +287,46 @@ static void TAG(line)( GLcontext *ctx, v[0]->ui[4] = c[0]; v[1]->ui[4] = c[1]; #endif - -#if 0 - - - if (IND & (R128_TWOSIDE_BIT|R128_FLAT_BIT|R128_OFFSET_BIT)) { - r128Vertex tmp0 = r128verts[e0]; - r128Vertex tmp1 = r128verts[e1]; - - if (IND & R128_TWOSIDE_BIT) { - GLubyte (*vbcolor)[4] = ctx->VB->ColorPtr->data; - - if (IND & R128_FLAT_BIT) { - R128_COLOR((char *)&tmp0.v.color, vbcolor[pv]); - *(int *)&tmp1.v.color = *(int *)&tmp0.v.color; - } else { - R128_COLOR((char *)&tmp0.v.color, vbcolor[e0]); - R128_COLOR((char *)&tmp1.v.color, vbcolor[e1]); - } - } else if (IND & R128_FLAT_BIT) { - *(int *)&tmp0.v.color = *(int *)&r128verts[pv].v.color; - *(int *)&tmp1.v.color = *(int *)&r128verts[pv].v.color; - } - - if (IND & R128_OFFSET_BIT) { - GLfloat offset = ctx->LineZoffset * r128ctx->depth_scale; - tmp0.v.z += offset; - tmp1.v.z += offset; - } - - r128_draw_line( r128ctx, &tmp0, &tmp1, width ); - } else { - r128_draw_line( r128ctx, &r128verts[e0], &r128verts[e1], width ); - } -#endif } -/* Draw a set of points. Note that the device-dependent vertex data - might need to be changed based on the render state. */ -static void TAG(points)(GLcontext *ctx, - GLuint first, GLuint last) -{ - r128ContextPtr r128ctx = R128_CONTEXT(ctx); - struct vertex_buffer *VB = ctx->VB; - r128VertexPtr r128verts = R128_DRIVER_DATA(VB)->verts; - GLfloat size = ctx->Point.Size * 0.5; - int i; +static void TAG(points)( GLcontext *ctx, + GLuint first, GLuint last ) +{ + r128ContextPtr rmesa = R128_CONTEXT(ctx); + struct vertex_buffer *VB = ctx->VB; + r128VertexPtr verts = R128_DRIVER_DATA(VB)->verts; + GLfloat size = ctx->Point.Size * 0.5; + int i; - for(i = first; i < last; i++) { - if(VB->ClipMask[i] == 0) { - if (IND & (R128_TWOSIDE_BIT|R128_OFFSET_BIT)) { - r128Vertex tmp0 = r128verts[i]; + for ( i = first ; i < last ; i++) { + if ( VB->ClipMask[i] == 0 ) { + if ( IND & (R128_TWOSIDE_BIT|R128_OFFSET_BIT) ) { + r128Vertex tmp0 = verts[i]; - if (IND & R128_TWOSIDE_BIT) { + if ( IND & R128_TWOSIDE_BIT ) { GLubyte (*vbcolor)[4] = VB->ColorPtr->data; - R128_COLOR((char *)&tmp0.v.color, vbcolor[i]); + R128_COLOR( (char *)&tmp0.v.color, vbcolor[i] ); } - if (IND & R128_OFFSET_BIT) { - GLfloat offset = ctx->PointZoffset * r128ctx->depth_scale; + if ( IND & R128_OFFSET_BIT ) { + GLfloat offset = ctx->PointZoffset * rmesa->depth_scale; tmp0.v.z += offset; } - r128_draw_point( r128ctx, &tmp0, size ); - } else - r128_draw_point( r128ctx, &r128verts[i], size ); + r128_draw_point( rmesa, &tmp0, size ); + } else { + r128_draw_point( rmesa, &verts[i], size ); + } } } } -/* Initialize the table of primitives to render. */ -static void TAG(init)(void) + +static void TAG(init)( void ) { - rast_tab[IND].triangle = TAG(triangle); - rast_tab[IND].quad = TAG(quad); - rast_tab[IND].line = TAG(line); - rast_tab[IND].points = TAG(points); + rast_tab[IND].points = TAG(points); + rast_tab[IND].line = TAG(line); + rast_tab[IND].triangle = TAG(triangle); + rast_tab[IND].quad = TAG(quad); } #undef IND diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_vb.c b/xc/lib/GL/mesa/src/drv/r128/r128_vb.c index 744b3c7c4..06a63e152 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_vb.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_vb.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_vb.c,v 1.10 2000/12/12 17:17:08 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_vb.c,v 1.11 2001/01/08 01:07:24 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,8 +28,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ @@ -78,10 +78,10 @@ do { \ #define TEX0_4 \ do { \ - if (VB->TexCoordPtr[0]->size == 4) { \ + if ( VB->TexCoordPtr[0]->size == 4 ) { \ GLfloat (*tc)[4] = VB->TexCoordPtr[0]->data; \ v = &(R128_DRIVER_DATA(VB)->verts[start]); \ - for (i = start; i < end; i++, v++) { \ + for ( i = start ; i < end ; i++, v++ ) { \ float oow = 1.0 / tc[i][3]; \ v->v.rhw *= tc[i][3]; \ v->v.tu0 *= oow; \ @@ -94,10 +94,10 @@ do { \ #define TEX1_4 \ do { \ - if (VB->TexCoordPtr[1]->size == 4) { \ + if ( VB->TexCoordPtr[1]->size == 4 ) { \ GLfloat (*tc)[4] = VB->TexCoordPtr[1]->data; \ v = &(R128_DRIVER_DATA(VB)->verts[start]); \ - for (i = start; i < end; i++, v++) { \ + for ( i = start ; i < end ; i++, v++ ) { \ float oow = 1.0 / tc[i][3]; \ v->v.rhw2 *= tc[i][3]; \ v->v.tu1 *= oow; \ @@ -109,9 +109,9 @@ do { \ #define COORD \ do { \ GLfloat *win = VB->Win.data[i]; \ - v->v.x = win[0] + SUBPIXEL_X; \ - v->v.y = r128height - win[1] + SUBPIXEL_Y; \ - v->v.z = scale * win[2]; \ + v->v.x = win[0] + xoffset; \ + v->v.y = - win[1] + yoffset; \ + v->v.z = depth_scale * win[2]; \ v->v.rhw = v->v.rhw2 = win[3]; \ } while (0) @@ -122,43 +122,44 @@ do { \ #define COORD \ do { \ GLfloat *win = VB->Win.data[i]; \ - v->v.x = win[0] + SUBPIXEL_X; \ - v->v.y = r128height - win[1] + SUBPIXEL_Y; \ - v->v.z = scale * win[2]; \ - v->v.rhw = win[3]; \ + v->v.x = win[0] + xoffset; \ + v->v.y = - win[1] + yoffset; \ + v->v.z = depth_scale * win[2]; \ + v->v.rhw = win[3]; \ } while (0) #endif /* USE_RHW2 */ #define NOP -/* Setup the r128 vertex buffer entries */ + #define SETUPFUNC(name,win,col,tex0,tex1,tex0_4,tex1_4,spec,fog) \ -static void name(struct vertex_buffer *VB, GLuint start, GLuint end) \ +static void name( struct vertex_buffer *VB, GLuint start, GLuint end ) \ { \ - r128ContextPtr r128ctx = R128_CONTEXT(VB->ctx); \ - __DRIdrawablePrivate *dPriv = r128ctx->driDrawable; \ - r128VertexPtr v; \ - GLfloat (*tc0)[4]; \ - GLfloat (*tc1)[4]; \ - GLfloat r128height = dPriv->h; \ - GLfloat scale = r128ctx->depth_scale; \ - int i; \ + r128ContextPtr rmesa = R128_CONTEXT(VB->ctx); \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ + r128VertexPtr v; \ + GLfloat (*tc0)[4]; \ + GLfloat (*tc1)[4]; \ + const GLfloat depth_scale = rmesa->depth_scale; \ + const GLfloat xoffset = SUBPIXEL_X; \ + const GLfloat yoffset = dPriv->h + SUBPIXEL_Y; \ + GLint i; \ \ - (void) r128height; (void) r128ctx; (void) scale; \ + (void) xoffset; (void) yoffset; (void) depth_scale; \ \ - gl_import_client_data(VB, VB->ctx->RenderFlags, \ - (VB->ClipOrMask \ - ? VEC_WRITABLE | VEC_GOOD_STRIDE \ - : VEC_GOOD_STRIDE)); \ + gl_import_client_data( VB, VB->ctx->RenderFlags, \ + (VB->ClipOrMask \ + ? VEC_WRITABLE | VEC_GOOD_STRIDE \ + : VEC_GOOD_STRIDE) ); \ \ - tc0 = VB->TexCoordPtr[r128ctx->tmu_source[0]]->data; \ - tc1 = VB->TexCoordPtr[r128ctx->tmu_source[1]]->data; \ + tc0 = VB->TexCoordPtr[rmesa->tmu_source[0]]->data; \ + tc1 = VB->TexCoordPtr[rmesa->tmu_source[1]]->data; \ \ v = &(R128_DRIVER_DATA(VB)->verts[start]); \ \ - if (VB->ClipOrMask == 0) { \ - for (i = start; i < end; i++, v++) { \ + if ( VB->ClipOrMask == 0 ) { \ + for ( i = start ; i < end ; i++, v++ ) { \ win; \ col; \ spec; \ @@ -167,8 +168,8 @@ static void name(struct vertex_buffer *VB, GLuint start, GLuint end) \ tex1; \ } \ } else { \ - for (i = start; i < end; i++, v++) { \ - if (VB->ClipMask[i] == 0) { \ + for ( i = start ; i < end ; i++, v++ ) { \ + if ( VB->ClipMask[i] == 0 ) { \ win; \ spec; \ fog; \ @@ -221,20 +222,23 @@ SETUPFUNC(rs_gfst0t1, NOP, COL, TEX0, TEX1, TEX0_4, TEX1_4, SPC, FOG) static void rs_invalid( struct vertex_buffer *VB, GLuint start, GLuint end ) { - fprintf(stderr, "r128RasterSetup(): invalid setup function\n"); + fprintf( stderr, "r128RasterSetup(): invalid setup function\n" ); } -typedef void (*setupFunc)(struct vertex_buffer *, GLuint, GLuint); -static setupFunc setup_func[0x40]; +typedef void (*setupFunc)( struct vertex_buffer *, GLuint, GLuint ); +static setupFunc setup_func[R128_MAX_SETUPFUNC]; + -/* Initialize the table of vertex buffer setup functions */ void r128DDSetupInit( void ) { - int i; + GLint i; - for (i = 0; i < 0x20; i++) setup_func[i] = rs_invalid; + for ( i = 0 ; i < R128_MAX_SETUPFUNC ; i++ ) { + setup_func[i] = rs_invalid; + } - /* Functions to build vertices from scratch */ + /* Functions to build vertices from scratch + */ setup_func[R128_WIN_BIT|R128_TEX0_BIT] = rs_wt0; setup_func[R128_WIN_BIT|R128_TEX0_BIT|R128_TEX1_BIT] = rs_wt0t1; setup_func[R128_WIN_BIT|R128_FOG_BIT|R128_TEX0_BIT] = rs_wft0; @@ -252,7 +256,8 @@ void r128DDSetupInit( void ) setup_func[R128_WIN_BIT|R128_RGBA_BIT|R128_FOG_BIT|R128_SPEC_BIT|R128_TEX0_BIT] = rs_wgfst0; setup_func[R128_WIN_BIT|R128_RGBA_BIT|R128_FOG_BIT|R128_SPEC_BIT|R128_TEX0_BIT|R128_TEX1_BIT] = rs_wgfst0t1; - /* Repair functions */ + /* Repair functions + */ setup_func[R128_TEX0_BIT] = rs_t0; setup_func[R128_TEX0_BIT|R128_TEX1_BIT] = rs_t0t1; setup_func[R128_FOG_BIT] = rs_f; @@ -272,6 +277,7 @@ void r128DDSetupInit( void ) setup_func[R128_RGBA_BIT|R128_FOG_BIT|R128_SPEC_BIT|R128_TEX0_BIT|R128_TEX1_BIT] = rs_gfst0t1; } + void r128PrintSetupFlags( char *msg, GLuint flags ) { fprintf( stderr, "%s: %d %s%s%s%s%s%s\n", @@ -285,29 +291,31 @@ void r128PrintSetupFlags( char *msg, GLuint flags ) (flags & R128_TEX1_BIT) ? " tex-1," : "" ); } + /* Initialize the vertex buffer setup functions based on the current - rendering state */ + * rendering state. + */ void r128DDChooseRasterSetupFunc( GLcontext *ctx ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - int index = R128_WIN_BIT | R128_RGBA_BIT; - - r128ctx->multitex = 0; - r128ctx->vertsize = 8; - r128ctx->vc_format = R128_TEX0_VERTEX_FORMAT; - r128ctx->tmu_source[0] = 0; - r128ctx->tmu_source[1] = 1; - r128ctx->tex_dest[0] = R128_TEX0_BIT; - r128ctx->tex_dest[1] = R128_TEX1_BIT; - r128ctx->blend_flags &= ~R128_BLEND_MULTITEX; + r128ContextPtr rmesa = R128_CONTEXT(ctx); + GLint index = R128_WIN_BIT | R128_RGBA_BIT; + + rmesa->multitex = 0; + rmesa->vertsize = 8; + rmesa->vc_format = R128_TEX0_VERTEX_FORMAT; + rmesa->tmu_source[0] = 0; + rmesa->tmu_source[1] = 1; + rmesa->tex_dest[0] = R128_TEX0_BIT; + rmesa->tex_dest[1] = R128_TEX1_BIT; + rmesa->blend_flags &= ~R128_BLEND_MULTITEX; if ( ctx->Texture.ReallyEnabled & ENABLE_TEX0 ) { - if ( ctx->Texture.Unit[0].EnvMode == GL_BLEND && - (r128ctx->env_color & 0x00ffffff) ) { - r128ctx->multitex = 1; - r128ctx->vertsize = 10; - r128ctx->vc_format = R128_TEX1_VERTEX_FORMAT; - r128ctx->tmu_source[1] = 0; + if ( R128_IS_PLAIN( rmesa ) && /* Pro/M3 support GL_BLEND */ + ctx->Texture.Unit[0].EnvMode == GL_BLEND && rmesa->env_color ) { + rmesa->multitex = 1; + rmesa->vertsize = 10; + rmesa->vc_format = R128_TEX1_VERTEX_FORMAT; + rmesa->tmu_source[1] = 0; index |= R128_TEX1_BIT; } @@ -316,23 +324,24 @@ void r128DDChooseRasterSetupFunc( GLcontext *ctx ) if ( ctx->Texture.ReallyEnabled & ENABLE_TEX1 ) { if ( ctx->Texture.ReallyEnabled & ENABLE_TEX0 ) { - r128ctx->multitex = 1; - r128ctx->vertsize = 10; - r128ctx->vc_format = R128_TEX1_VERTEX_FORMAT; - r128ctx->blend_flags |= R128_BLEND_MULTITEX; + rmesa->multitex = 1; + rmesa->vertsize = 10; + rmesa->vc_format = R128_TEX1_VERTEX_FORMAT; + if ( R128_IS_PLAIN( rmesa ) ) /* Pro/M3 support GL_BLEND */ + rmesa->blend_flags |= R128_BLEND_MULTITEX; index |= R128_TEX1_BIT; } else { /* Just a funny way of doing single texturing. */ - r128ctx->tmu_source[0] = 1; - r128ctx->tex_dest[1] = R128_TEX0_BIT; - - if ( ctx->Texture.Unit[1].EnvMode == GL_BLEND && - (r128ctx->env_color & 0x00ffffff) ) { - r128ctx->multitex = 1; - r128ctx->vertsize = 10; - r128ctx->vc_format = R128_TEX1_VERTEX_FORMAT; - r128ctx->tmu_source[1] = 1; + rmesa->tmu_source[0] = 1; + rmesa->tex_dest[1] = R128_TEX0_BIT; + + if ( R128_IS_PLAIN( rmesa ) && /* Pro/M3 support GL_BLEND */ + ctx->Texture.Unit[1].EnvMode == GL_BLEND && rmesa->env_color ) { + rmesa->multitex = 1; + rmesa->vertsize = 10; + rmesa->vc_format = R128_TEX1_VERTEX_FORMAT; + rmesa->tmu_source[1] = 1; index |= R128_TEX1_BIT; } @@ -351,57 +360,61 @@ void r128DDChooseRasterSetupFunc( GLcontext *ctx ) r128PrintSetupFlags( "full setup function", index ); } - r128ctx->new_state |= R128_NEW_TEXTURE; - r128ctx->SetupIndex = index; + rmesa->new_state |= R128_NEW_TEXTURE; + rmesa->SetupIndex = index; ctx->Driver.RasterSetup = setup_func[index]; } -/* Check to see if any updates of the vertex buffer entries are needed */ +/* Check to see if any updates of the vertex buffer entries are needed. + */ void r128DDCheckPartialRasterSetup( GLcontext *ctx, struct gl_pipeline_stage *s ) { - r128ContextPtr r128ctx = R128_CONTEXT( ctx ); - int tmp = r128ctx->SetupDone; + r128ContextPtr rmesa = R128_CONTEXT( ctx ); + GLint tmp = rmesa->SetupDone; s->type = 0; - r128ctx->SetupDone = GL_FALSE; + rmesa->SetupDone = 0; - if ((ctx->Array.Summary & VERT_OBJ_ANY) == 0) return; - if (ctx->IndirectTriangles) return; + if ( (ctx->Array.Summary & VERT_OBJ_ANY) == 0 ) + return; - r128ctx->SetupDone = tmp; -} + if ( ctx->IndirectTriangles ) + return; + rmesa->SetupDone = tmp; +} -/* Update the vertex buffer entries, if necessary */ +/* Repair existing precalculated vertices with new data. + */ void r128DDPartialRasterSetup( struct vertex_buffer *VB ) { - r128ContextPtr r128ctx = R128_CONTEXT( VB->ctx ); - int new = VB->pipeline->new_outputs; - int available = VB->pipeline->outputs; - int index = 0; + r128ContextPtr rmesa = R128_CONTEXT(VB->ctx); + GLuint new = VB->pipeline->new_outputs; + GLuint available = VB->pipeline->outputs; + GLuint index = 0; - if (new & VERT_WIN) { + if ( new & VERT_WIN ) { new = available; index |= R128_WIN_BIT | R128_FOG_BIT; } - if (new & VERT_RGBA) + if ( new & VERT_RGBA ) index |= R128_RGBA_BIT | R128_SPEC_BIT; - if (new & VERT_TEX0_ANY) + if ( new & VERT_TEX0_ANY ) index |= R128_TEX0_BIT; - if (new & VERT_TEX1_ANY) - index |= r128ctx->tex_dest[1]; + if ( new & VERT_TEX1_ANY ) + index |= rmesa->tex_dest[1]; - if (new & VERT_FOG_COORD) + if ( new & VERT_FOG_COORD ) index |= R128_FOG_BIT; - r128ctx->SetupDone &= ~index; - index &= r128ctx->SetupIndex; - r128ctx->SetupDone |= index; + rmesa->SetupDone &= ~index; + index &= rmesa->SetupIndex; + rmesa->SetupDone |= index; if ( R128_DEBUG & DEBUG_VERBOSE_MSG ) r128PrintSetupFlags( "partial setup function", index ); @@ -410,7 +423,6 @@ void r128DDPartialRasterSetup( struct vertex_buffer *VB ) setup_func[index]( VB, VB->Start, VB->Count ); } -/* Perform the raster setup for the fast path, if using CVA */ void r128DDDoRasterSetup( struct vertex_buffer *VB ) { GLcontext *ctx = VB->ctx; @@ -418,87 +430,85 @@ void r128DDDoRasterSetup( struct vertex_buffer *VB ) if ( VB->Type == VB_CVA_PRECALC ) { r128DDPartialRasterSetup( VB ); } else if ( ctx->Driver.RasterSetup ) { - ctx->Driver.RasterSetup( VB, - VB->CopyStart, - VB->Count ); + ctx->Driver.RasterSetup( VB, VB->CopyStart, VB->Count ); } } -/* Resize an existing vertex buffer */ + +/* ================================================================ + * Hardware-format vertex buffers + */ + void r128DDResizeVB( struct vertex_buffer *VB, GLuint size ) { - r128VertexBufferPtr r128vb = R128_DRIVER_DATA(VB); + r128VertexBufferPtr rvb = R128_DRIVER_DATA(VB); - while ( r128vb->size < size ) - r128vb->size *= 2; + while ( rvb->size < size ) + rvb->size *= 2; - ALIGN_FREE( r128vb->vert_store ); - r128vb->vert_store = ALIGN_MALLOC( sizeof(r128Vertex) * r128vb->size, 32 ); - if ( !r128vb->vert_store ) { + ALIGN_FREE( rvb->vert_store ); + rvb->vert_store = ALIGN_MALLOC( sizeof(r128Vertex) * rvb->size, 32 ); + if ( !rvb->vert_store ) { fprintf( stderr, "Cannot allocate vertex store! Exiting...\n" ); exit( 1 ); } - r128vb->verts = (r128VertexPtr)r128vb->vert_store; + rvb->verts = (r128VertexPtr)rvb->vert_store; - gl_vector1ui_free( &r128vb->clipped_elements ); - gl_vector1ui_alloc( &r128vb->clipped_elements, - VEC_WRITABLE, r128vb->size, 32 ); - if ( !r128vb->clipped_elements.start ) { + gl_vector1ui_free( &rvb->clipped_elements ); + gl_vector1ui_alloc( &rvb->clipped_elements, VEC_WRITABLE, rvb->size, 32 ); + if ( !rvb->clipped_elements.start ) { fprintf( stderr, "Cannot allocate clipped elements! Exiting...\n" ); exit( 1 ); } ALIGN_FREE( VB->ClipMask ); - VB->ClipMask = (GLubyte *)ALIGN_MALLOC( sizeof(GLubyte) * r128vb->size, 32 ); + VB->ClipMask = (GLubyte *)ALIGN_MALLOC( sizeof(GLubyte) * rvb->size, 32 ); if ( !VB->ClipMask ) { fprintf( stderr, "Cannot allocate clipmask! Exiting...\n" ); exit( 1 ); } } -/* Create a new device-dependent vertex buffer */ void r128DDRegisterVB( struct vertex_buffer *VB ) { - r128VertexBufferPtr r128vb; + r128VertexBufferPtr rvb; - r128vb = (r128VertexBufferPtr)CALLOC( sizeof(*r128vb) ); + rvb = (r128VertexBufferPtr)CALLOC( sizeof(*rvb) ); - r128vb->size = VB->Size * 2; - r128vb->vert_store = ALIGN_MALLOC( sizeof(r128Vertex) * r128vb->size, 32 ); - if ( !r128vb->vert_store ) { + rvb->size = VB->Size * 2; + rvb->vert_store = ALIGN_MALLOC( sizeof(r128Vertex) * rvb->size, 32 ); + if ( !rvb->vert_store ) { fprintf( stderr, "Cannot allocate vertex store! Exiting...\n" ); exit( 1 ); } - r128vb->verts = (r128VertexPtr)r128vb->vert_store; + rvb->verts = (r128VertexPtr)rvb->vert_store; - gl_vector1ui_alloc( &r128vb->clipped_elements, - VEC_WRITABLE, r128vb->size, 32 ); - if ( !r128vb->clipped_elements.start ) { + gl_vector1ui_alloc( &rvb->clipped_elements, VEC_WRITABLE, rvb->size, 32 ); + if ( !rvb->clipped_elements.start ) { fprintf( stderr, "Cannot allocate clipped elements! Exiting...\n" ); exit( 1 ); } ALIGN_FREE( VB->ClipMask ); - VB->ClipMask = (GLubyte *)ALIGN_MALLOC( sizeof(GLubyte) * r128vb->size, 32 ); + VB->ClipMask = (GLubyte *)ALIGN_MALLOC( sizeof(GLubyte) * rvb->size, 32 ); if ( !VB->ClipMask ) { fprintf( stderr, "Cannot allocate clipmask! Exiting...\n" ); exit( 1 ); } - VB->driver_data = r128vb; + VB->driver_data = rvb; } -/* Destroy a device-dependent vertex buffer */ void r128DDUnregisterVB( struct vertex_buffer *VB ) { - r128VertexBufferPtr r128vb = R128_DRIVER_DATA(VB); + r128VertexBufferPtr rvb = R128_DRIVER_DATA(VB); - if ( r128vb ) { - if ( r128vb->vert_store ) ALIGN_FREE( r128vb->vert_store ); - gl_vector1ui_free( &r128vb->clipped_elements ); - FREE( r128vb ); + if ( rvb ) { + if ( rvb->vert_store ) ALIGN_FREE( rvb->vert_store ); + gl_vector1ui_free( &rvb->clipped_elements ); + FREE( rvb ); VB->driver_data = 0; } } diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_vb.h b/xc/lib/GL/mesa/src/drv/r128/r128_vb.h index f1afdff2c..1a00d9eea 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_vb.h +++ b/xc/lib/GL/mesa/src/drv/r128/r128_vb.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_vb.h,v 1.3 2000/12/04 19:21:48 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_vb.h,v 1.4 2001/01/08 01:07:24 martin Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -28,80 +28,78 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Kevin E. Martin <martin@valinux.com> * Gareth Hughes <gareth@valinux.com> + * Kevin E. Martin <martin@valinux.com> * */ -#ifndef _R128_VB_H_ -#define _R128_VB_H_ +#ifndef __R128_VB_H__ +#define __R128_VB_H__ #ifdef GLX_DIRECT_RENDERING /* FIXME: This is endian-specific */ typedef struct { - GLubyte blue; - GLubyte green; - GLubyte red; - GLubyte alpha; + GLubyte blue; + GLubyte green; + GLubyte red; + GLubyte alpha; } r128_color_t; /* The vertex structure. The final tu1/tv1 values are only used in * multitexture modes, and the rhw2 value is currently never used. */ typedef struct { - GLfloat x, y, z; /* Coordinates in screen space */ - GLfloat rhw; /* Reciprocal homogeneous w */ - r128_color_t color; /* Diffuse color */ - r128_color_t specular; /* Specular color (alpha is fog) */ - GLfloat tu0, tv0; /* Texture 0 coordinates */ - GLfloat tu1, tv1; /* Texture 1 coordinates */ - GLfloat rhw2; /* Reciprocal homogeneous w2 */ + GLfloat x, y, z; /* Coordinates in screen space */ + GLfloat rhw; /* Reciprocal homogeneous w */ + r128_color_t color; /* Diffuse color */ + r128_color_t specular; /* Specular color (alpha is fog) */ + GLfloat tu0, tv0; /* Texture 0 coordinates */ + GLfloat tu1, tv1; /* Texture 1 coordinates */ + GLfloat rhw2; /* Reciprocal homogeneous w2 */ } r128_vertex; -/* Format of vertices in r128_vertex struct */ -#define R128_TEX0_VERTEX_FORMAT \ - R128_CCE_VC_FRMT_RHW | \ - R128_CCE_VC_FRMT_DIFFUSE_ARGB | \ - R128_CCE_VC_FRMT_SPEC_FRGB | \ - R128_CCE_VC_FRMT_S_T - -#define R128_TEX1_VERTEX_FORMAT \ - R128_CCE_VC_FRMT_RHW | \ - R128_CCE_VC_FRMT_DIFFUSE_ARGB | \ - R128_CCE_VC_FRMT_SPEC_FRGB | \ - R128_CCE_VC_FRMT_S_T | \ - R128_CCE_VC_FRMT_S2_T2 - -#define R128_PROJ_TEX1_VERTEX_FORMAT \ - R128_CCE_VC_FRMT_RHW | \ - R128_CCE_VC_FRMT_DIFFUSE_ARGB | \ - R128_CCE_VC_FRMT_SPEC_FRGB | \ - R128_CCE_VC_FRMT_S_T | \ - R128_CCE_VC_FRMT_S2_T2 | \ - R128_CCE_VC_FRMT_RHW2 - - -/* FIXME: We currently only have assembly for 16-stride vertices */ +/* Format of vertices in r128_vertex struct: + */ +#define R128_TEX0_VERTEX_FORMAT (R128_CCE_VC_FRMT_RHW | \ + R128_CCE_VC_FRMT_DIFFUSE_ARGB |\ + R128_CCE_VC_FRMT_SPEC_FRGB | \ + R128_CCE_VC_FRMT_S_T) + +#define R128_TEX1_VERTEX_FORMAT (R128_CCE_VC_FRMT_RHW | \ + R128_CCE_VC_FRMT_DIFFUSE_ARGB |\ + R128_CCE_VC_FRMT_SPEC_FRGB | \ + R128_CCE_VC_FRMT_S_T | \ + R128_CCE_VC_FRMT_S2_T2) + +#define R128_PROJ_TEX1_VERTEX_FORMAT (R128_CCE_VC_FRMT_RHW | \ + R128_CCE_VC_FRMT_DIFFUSE_ARGB |\ + R128_CCE_VC_FRMT_SPEC_FRGB | \ + R128_CCE_VC_FRMT_S_T | \ + R128_CCE_VC_FRMT_S2_T2 | \ + R128_CCE_VC_FRMT_RHW2) + + +/* The fastpath code still expects a 16-float stride vertex. + */ union r128_vertex_t { - r128_vertex v; - GLfloat f[16]; - CARD32 ui[16]; + r128_vertex v; + GLfloat f[16]; + GLuint ui[16]; }; typedef union r128_vertex_t r128Vertex; typedef union r128_vertex_t *r128VertexPtr; -/* Vertex buffer for use when on the fast path */ typedef struct { - GLuint size; /* Number of vertices in store */ - void *vert_store; /* Storage for vertex buffer */ - r128VertexPtr verts; /* Aligned start of verts in storage */ - int last_vert; /* Index of last vertex used */ - GLvector1ui clipped_elements; /* List of clipped elements */ + r128VertexPtr verts; + GLvector1ui clipped_elements; + GLint last_vert; + void *vert_store; + GLuint size; } *r128VertexBufferPtr; -#define R128_DRIVER_DATA(vb) ((r128VertexBufferPtr)((vb)->driver_data)) +#define R128_DRIVER_DATA(vb) ((r128VertexBufferPtr)((vb)->driver_data)) #define R128_WIN_BIT 0x01 #define R128_RGBA_BIT 0x02 @@ -109,20 +107,21 @@ typedef struct { #define R128_SPEC_BIT 0x08 #define R128_TEX0_BIT 0x10 #define R128_TEX1_BIT 0x20 - -extern void r128DDSetupInit( void ); +#define R128_MAX_SETUPFUNC 0x40 extern void r128DDChooseRasterSetupFunc( GLcontext *ctx ); extern void r128PrintSetupFlags( char *msg, GLuint flags ); extern void r128DDCheckPartialRasterSetup( GLcontext *ctx, - struct gl_pipeline_stage *s ); -extern void r128DDPartialRasterSetup(struct vertex_buffer *VB); -extern void r128DDDoRasterSetup(struct vertex_buffer *VB); + struct gl_pipeline_stage *s ); +extern void r128DDPartialRasterSetup( struct vertex_buffer *VB ); +extern void r128DDDoRasterSetup( struct vertex_buffer *VB ); -extern void r128DDResizeVB(struct vertex_buffer *VB, GLuint size); -extern void r128DDRegisterVB(struct vertex_buffer *VB); -extern void r128DDUnregisterVB(struct vertex_buffer *VB); +extern void r128DDResizeVB( struct vertex_buffer *VB, GLuint size ); +extern void r128DDRegisterVB( struct vertex_buffer *VB ); +extern void r128DDUnregisterVB( struct vertex_buffer *VB ); + +extern void r128DDSetupInit( void ); #endif -#endif /* _R128_VB_H_ */ +#endif /* __R128_VB_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/r128/r128_xmesa.c b/xc/lib/GL/mesa/src/drv/r128/r128_xmesa.c index 07450e3c0..53908e3bf 100644 --- a/xc/lib/GL/mesa/src/drv/r128/r128_xmesa.c +++ b/xc/lib/GL/mesa/src/drv/r128/r128_xmesa.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_xmesa.c,v 1.4 2000/12/12 17:17:08 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/r128/r128_xmesa.c,v 1.7 2001/01/23 18:14:38 alanh Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -48,42 +48,79 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. extern void __driRegisterExtensions( void ); -static r128ContextPtr r128Context = NULL; +static r128ContextPtr r128Ctx = NULL; -/* Initialize the driver specific screen private data */ -GLboolean XMesaInitDriver(__DRIscreenPrivate *sPriv) +/* Initialize the driver specific screen private data. + */ +GLboolean XMesaInitDriver( __DRIscreenPrivate *sPriv ) { - sPriv->private = (void *)r128CreateScreen(sPriv); - if (!sPriv->private) { - r128DestroyScreen(sPriv); - return GL_FALSE; - } - - return GL_TRUE; + sPriv->private = (void *) r128CreateScreen( sPriv ); + + /* Check the DRI version */ + { + int major, minor, patch; + if (XF86DRIQueryVersion(sPriv->display, &major, &minor, &patch)) { + if (major != 3 || minor != 1 || patch < 0) { + char msg[1000]; + sprintf(msg, "R128 DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); + __driMesaMessage(msg); + return GL_FALSE; + } + } + } + + /* Check that the DDX driver version is compatible */ + if (sPriv->ddxMajor != 4 || + sPriv->ddxMinor != 0 || + sPriv->ddxPatch < 0) { + char msg[1000]; + sprintf(msg, "R128 DRI driver expected DDX driver version 4.0.x but got version %d.%d.%d", sPriv->ddxMajor, sPriv->ddxMinor, sPriv->ddxPatch); + __driMesaMessage(msg); + return GL_FALSE; + } + + /* Check that the DRM driver version is compatible */ + if (sPriv->drmMajor != 2 || + sPriv->drmMinor != 1 || + sPriv->drmPatch < 4) { + char msg[1000]; + sprintf(msg, "R128 DRI driver expected DRM driver version 2.1.x (x>=4) but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch); + __driMesaMessage(msg); + return GL_FALSE; + } + + if ( !sPriv->private ) { + r128DestroyScreen( sPriv ); + return GL_FALSE; + } + + return GL_TRUE; } -/* Reset the driver specific screen private data */ -void XMesaResetDriver(__DRIscreenPrivate *sPriv) +/* Reset the driver specific screen private data. + */ +void XMesaResetDriver( __DRIscreenPrivate *sPriv ) { - r128DestroyScreen(sPriv); + r128DestroyScreen( sPriv ); } -/* Create and initialize the Mesa and driver specific visual data */ -GLvisual *XMesaCreateVisual(Display *dpy, - __DRIscreenPrivate *driScrnPriv, - const XVisualInfo *visinfo, - const __GLXvisualConfig *config) +/* Create and initialize the Mesa and driver specific visual data. + */ +GLvisual *XMesaCreateVisual( Display *dpy, + __DRIscreenPrivate *driScrnPriv, + const XVisualInfo *visinfo, + const __GLXvisualConfig *config ) { - /* Drivers may change the args to _mesa_create_visual() in order to - * setup special visuals. + /* Drivers may change the args to _mesa_create_visual() in order to + * setup special visuals. */ - return _mesa_create_visual(config->rgba, + return _mesa_create_visual( config->rgba, config->doubleBuffer, config->stereo, - _mesa_bitcount(visinfo->red_mask), - _mesa_bitcount(visinfo->green_mask), - _mesa_bitcount(visinfo->blue_mask), + _mesa_bitcount( visinfo->red_mask ), + _mesa_bitcount( visinfo->green_mask ), + _mesa_bitcount( visinfo->blue_mask ), config->alphaSize, 0, /* index bits */ config->depthSize, @@ -92,134 +129,186 @@ GLvisual *XMesaCreateVisual(Display *dpy, config->accumGreenSize, config->accumBlueSize, config->accumAlphaSize, - 0 /* num samples */); + 0 /* num samples */ ); } -/* Create and initialize the Mesa and driver specific context data */ -GLboolean XMesaCreateContext(Display *dpy, GLvisual *mesaVis, - __DRIcontextPrivate *driContextPriv) +/* Create and initialize the Mesa and driver specific context data. + */ +GLboolean XMesaCreateContext( Display *dpy, GLvisual *mesaVis, + __DRIcontextPrivate *driContextPriv ) { - return r128CreateContext(dpy, mesaVis, driContextPriv); + return r128CreateContext( dpy, mesaVis, driContextPriv ); } -/* Destroy the Mesa and driver specific context data */ +/* Destroy the Mesa and driver specific context data. + */ void XMesaDestroyContext(__DRIcontextPrivate *driContextPriv) { - r128ContextPtr r128ctx = (r128ContextPtr)driContextPriv->driverPrivate; + r128ContextPtr rmesa = (r128ContextPtr)driContextPriv->driverPrivate; - if (r128ctx == (void *)r128Context) r128Context = NULL; - r128DestroyContext(r128ctx); + if ( rmesa == r128Ctx ) r128Ctx = NULL; + r128DestroyContext(rmesa); } -/* Create and initialize the Mesa and driver specific pixmap buffer data */ -GLframebuffer *XMesaCreateWindowBuffer(Display *dpy, - __DRIscreenPrivate *driScrnPriv, - __DRIdrawablePrivate *driDrawPriv, - GLvisual *mesaVis) +/* Create and initialize the Mesa and driver specific pixmap buffer + * data. + */ +GLframebuffer *XMesaCreateWindowBuffer( Display *dpy, + __DRIscreenPrivate *driScrnPriv, + __DRIdrawablePrivate *driDrawPriv, + GLvisual *mesaVis ) { - return gl_create_framebuffer(mesaVis, - GL_FALSE, /* software depth buffer? */ - mesaVis->StencilBits > 0, - mesaVis->AccumRedBits > 0, - mesaVis->AlphaBits > 0 - ); + return gl_create_framebuffer( mesaVis, + GL_FALSE, /* software depth buffer? */ + mesaVis->StencilBits > 0, + mesaVis->AccumRedBits > 0, + mesaVis->AlphaBits > 0 ); } -/* Create and initialize the Mesa and driver specific pixmap buffer data */ +/* Create and initialize the Mesa and driver specific pixmap buffer + * data. + */ GLframebuffer *XMesaCreatePixmapBuffer( Display *dpy, __DRIscreenPrivate *driScrnPriv, __DRIdrawablePrivate *driDrawPriv, - GLvisual *mesaVis) + GLvisual *mesaVis ) { #if 0 - /* Different drivers may have different combinations of hardware and - * software ancillary buffers. - */ - return gl_create_framebuffer(mesaVis, + /* Different drivers may have different combinations of hardware and + * software ancillary buffers. + */ + return gl_create_framebuffer( mesaVis, GL_FALSE, /* software depth buffer? */ mesaVis->StencilBits > 0, mesaVis->AccumRedBits > 0, - mesaVis->AlphaBits > 0); + mesaVis->AlphaBits > 0 ); #else - return NULL; /* not implemented yet */ + return NULL; /* not implemented yet */ #endif } /* Copy the back color buffer to the front color buffer */ -void XMesaSwapBuffers(__DRIdrawablePrivate *driDrawPriv) +void XMesaSwapBuffers( __DRIdrawablePrivate *driDrawPriv ) { - /* FIXME: This assumes buffer is currently bound to a context. This - needs to be able to swap buffers when not currently bound. Also, - this needs to swap according to buffer, and NOT according to - context! */ - if (r128Context == NULL) return; - - /* Only swap buffers when a back buffer exists */ - if (R128_MESACTX(r128Context)->Visual->DBflag) { - FLUSH_VB(R128_MESACTX(r128Context), "swap buffers"); - r128SwapBuffers(r128Context); - } + /* FIXME: This assumes buffer is currently bound to a context. This + * needs to be able to swap buffers when not currently bound. Also, + * this needs to swap according to buffer, and NOT according to + * context! + */ + if ( r128Ctx == NULL ) + return; + + /* Only swap buffers when a back buffer exists. + */ + if ( r128Ctx->glCtx->Visual->DBflag ) { + FLUSH_VB( r128Ctx->glCtx, "swap buffers" ); + if ( !r128Ctx->doPageFlip ) { + r128SwapBuffers( r128Ctx ); + } else { + r128PageFlip( r128Ctx ); + } + } } /* Force the context `c' to be the current context and associate with it - buffer `b' */ -GLboolean XMesaMakeCurrent(__DRIcontextPrivate *driContextPriv, - __DRIdrawablePrivate *driDrawPriv, - __DRIdrawablePrivate *driReadPriv) + * buffer `b'. + */ +GLboolean XMesaMakeCurrent( __DRIcontextPrivate *driContextPriv, + __DRIdrawablePrivate *driDrawPriv, + __DRIdrawablePrivate *driReadPriv ) { - if (driContextPriv) { - r128ContextPtr r128ctx = (r128ContextPtr)driContextPriv->driverPrivate; - - r128Context = r128MakeCurrent(r128Context, r128ctx, driDrawPriv); - - gl_make_current2(R128_MESACTX(r128Context), - driDrawPriv->mesaBuffer, driReadPriv->mesaBuffer); - - if (r128Context->driDrawable != driDrawPriv) { - r128Context->driDrawable = driDrawPriv; - r128Context->dirty = R128_UPLOAD_ALL; - } - - /* GH: We need this to correctly calculate the window offset - * and aux scissor rects. - */ - r128Context->new_state = R128_NEW_WINDOW | R128_NEW_CLIP; - - if (!R128_MESACTX(r128Context)->Viewport.Width) { - gl_Viewport(R128_MESACTX(r128Context), 0, 0, - driDrawPriv->w, driDrawPriv->h); - } - } else { - gl_make_current(0,0); - r128Context = NULL; - } - - return GL_TRUE; + if ( driContextPriv ) { + r128ContextPtr rmesa = (r128ContextPtr)driContextPriv->driverPrivate; + + r128Ctx = r128MakeCurrent( r128Ctx, rmesa, driDrawPriv ); + + gl_make_current2( r128Ctx->glCtx, + driDrawPriv->mesaBuffer, + driReadPriv->mesaBuffer ); + + if ( r128Ctx->driDrawable != driDrawPriv ) { + r128Ctx->driDrawable = driDrawPriv; + r128Ctx->dirty = R128_UPLOAD_ALL; + } + + /* GH: We need this to correctly calculate the window offset + * and aux scissor rects. + */ + r128Ctx->new_state = R128_NEW_WINDOW | R128_NEW_CLIP; + + if ( !r128Ctx->glCtx->Viewport.Width ) { + gl_Viewport( r128Ctx->glCtx, 0, 0, driDrawPriv->w, driDrawPriv->h ); + } + } else { + gl_make_current( 0, 0 ); + r128Ctx = NULL; + } + + return GL_TRUE; } -/* Force the context `c' to be unbound from its buffer */ -GLboolean XMesaUnbindContext(__DRIcontextPrivate *driContextPriv) +/* Force the context `c' to be unbound from its buffer. + */ +GLboolean XMesaUnbindContext( __DRIcontextPrivate *driContextPriv ) { - return GL_TRUE; + return GL_TRUE; } /* This function is called by libGL.so as soon as libGL.so is loaded. - * This is where we'd register new extension functions with the dispatcher. + * This is where we'd register new extension functions with the + * dispatcher. */ void __driRegisterExtensions( void ) { } +/* Initialize the fullscreen mode. + */ GLboolean -XMesaOpenFullScreen(__DRIcontextPrivate *driContextPriv) +XMesaOpenFullScreen( __DRIcontextPrivate *driContextPriv ) { - return GL_TRUE; + r128ContextPtr rmesa = (r128ContextPtr)driContextPriv->driverPrivate; + GLint ret; + + /* FIXME: Do we need to check this? + */ + if ( !r128Ctx->glCtx->Visual->DBflag ) + return GL_TRUE; + + LOCK_HARDWARE( rmesa ); + r128WaitForIdleLocked( rmesa ); + + /* Ignore errors. If this fails, we simply don't do page flipping. + */ + ret = drmR128FullScreen( rmesa->driFd, GL_TRUE ); + + UNLOCK_HARDWARE( rmesa ); + + rmesa->doPageFlip = ( ret == 0 ); + + return GL_TRUE; } +/* Shut down the fullscreen mode. + */ GLboolean -XMesaCloseFullScreen(__DRIcontextPrivate *driContextPriv) +XMesaCloseFullScreen( __DRIcontextPrivate *driContextPriv ) { - return GL_TRUE; + r128ContextPtr rmesa = (r128ContextPtr)driContextPriv->driverPrivate; + + LOCK_HARDWARE( rmesa ); + r128WaitForIdleLocked( rmesa ); + + /* Don't care if this fails, we're not page flipping anymore. + */ + drmR128FullScreen( rmesa->driFd, GL_FALSE ); + + UNLOCK_HARDWARE( rmesa ); + + rmesa->doPageFlip = GL_FALSE; + rmesa->currentPage = 0; + + return GL_TRUE; } #endif diff --git a/xc/lib/GL/mesa/src/drv/radeon/Imakefile b/xc/lib/GL/mesa/src/drv/radeon/Imakefile new file mode 100644 index 000000000..52787a5fc --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/Imakefile @@ -0,0 +1,386 @@ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/radeon/Imakefile,v 1.1 2001/01/08 01:07:26 martin Exp $ + +#include <Threads.tmpl> + +#define DoNormalLib NormalLibGlx +#define DoSharedLib SharedLibGlx +#define DoExtraLib SharedLibGlx +#define DoDebugLib DebugLibGlx +#define DoProfileLib ProfileLibGlx + +#if Malloc0ReturnsNull +ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL +#endif + +#ifdef i386Architecture +#if MesaUseMMX + MMX_DEFS = -DUSE_MMX_ASM +#endif +#if MesaUse3DNow + 3DNOW_DEFS = -DUSE_3DNOW_ASM +#endif +#if MesaUseKatmai + KATMAI_DEFS = -DUSE_KATMAI_ASM +#endif + ASM_DEFINES = -DUSE_X86_ASM $(MMX_DEFS) $(3DNOW_DEFS) $(KATMAI_DEFS) +#endif + +#if BuildXF86DRI + DRI_DEFINES = GlxDefines -DDRIVERTS + DRI_INCLUDES = -I../../../../dri \ + -I../../../../glx \ + -I../../../dri \ + -I$(TOP)/include \ + -I$(TOP)/include/GL \ + -I$(XF86OSSRC) \ + -I$(XF86COMSRC) \ + -I$(SERVERSRC)/GL/dri \ + -I$(XF86DRIVERSRC)/ati \ + -I../../../include \ + -I../.. \ + -I../../X \ + -I../common +#endif + +MESA_INCLUDES = -I. -I.. -I../../include \ + -I../../../../dri/drm + + DEFINES = $(ALLOC_DEFINES) $(DRI_DEFINES) $(ASM_DEFINES) + INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) $(MESA_INCLUDES) $(DRI_INCLUDES) + + RADEONSRCS = radeon_context.c \ + radeon_dd.c \ + radeon_fastpath.c \ + radeon_eltpath.c \ + radeon_ioctl.c \ + radeon_lock.c \ + radeon_pipeline.c \ + radeon_screen.c \ + radeon_span.c \ + radeon_state.c \ + radeon_tex.c \ + radeon_tris.c \ + radeon_vb.c \ + radeon_xmesa.c + + RADEONOBJS = radeon_context.o \ + radeon_dd.o \ + radeon_fastpath.o \ + radeon_eltpath.o \ + radeon_ioctl.o \ + radeon_lock.o \ + radeon_pipeline.o \ + radeon_screen.o \ + radeon_span.o \ + radeon_state.o \ + radeon_tex.o \ + radeon_tris.o \ + radeon_vb.o \ + radeon_xmesa.o + +#if !GlxUseBuiltInDRIDriver + DRISRCS = ../../../dri/dri_mesa.c \ + ../../../../dri/dri_tmm.c + + DRIOBJS = ../../../dri/dri_mesa.o \ + ../../../../dri/dri_tmm.o + + DRMSRCS = ../../../../dri/drm/xf86drm.c \ + ../../../../dri/drm/xf86drmHash.c \ + ../../../../dri/drm/xf86drmRandom.c \ + ../../../../dri/drm/xf86drmSL.c \ + ../../../../dri/drm/xf86drmRadeon.c + + DRMOBJS = ../../../../dri/drm/xf86drm.o \ + ../../../../dri/drm/xf86drmHash.o \ + ../../../../dri/drm/xf86drmRandom.o \ + ../../../../dri/drm/xf86drmSL.o \ + ../../../../dri/drm/xf86drmRadeon.o + + MESASRCS = ../../aatriangle.c \ + ../../accum.c \ + ../../alpha.c \ + ../../alphabuf.c \ + ../../attrib.c \ + ../../bbox.c \ + ../../bitmap.c \ + ../../blend.c \ + ../../buffers.c \ + ../../clip.c \ + ../../colortab.c \ + ../../config.c \ + ../../context.c \ + ../../copypix.c \ + ../../cva.c \ + ../../debug_xform.c \ + ../../depth.c \ + ../../dlist.c \ + ../../drawpix.c \ + ../../enable.c \ + ../../enums.c \ + ../../eval.c \ + ../../extensions.c \ + ../../feedback.c \ + ../../fog.c \ + ../../get.c \ + ../../glapi.c \ + ../../glapinoop.c \ + ../../glthread.c \ + ../../hash.c \ + ../../image.c \ + ../../imaging.c \ + ../../light.c \ + ../../lines.c \ + ../../logic.c \ + ../../masking.c \ + ../../matrix.c \ + ../../mem.c \ + ../../mmath.c \ + ../../pb.c \ + ../../pipeline.c \ + ../../pixel.c \ + ../../pixeltex.c \ + ../../points.c \ + ../../polygon.c \ + ../../quads.c \ + ../../rastpos.c \ + ../../readpix.c \ + ../../rect.c \ + ../../scissor.c \ + ../../shade.c \ + ../../span.c \ + ../../stages.c \ + ../../state.c \ + ../../stencil.c \ + ../../teximage.c \ + ../../texobj.c \ + ../../texstate.c \ + ../../texture.c \ + ../../texutil.c \ + ../../translate.c \ + ../../triangle.c \ + ../../varray.c \ + ../../vb.c \ + ../../vbcull.c \ + ../../vbfill.c \ + ../../vbindirect.c \ + ../../vbrender.c \ + ../../vbxform.c \ + ../../vector.c \ + ../../vertices.c \ + ../../winpos.c \ + ../../xform.c \ + ../../zoom.c + + MESAOBJS = ../../aatriangle.o \ + ../../accum.o \ + ../../alpha.o \ + ../../alphabuf.o \ + ../../attrib.o \ + ../../bbox.o \ + ../../bitmap.o \ + ../../blend.o \ + ../../buffers.o \ + ../../clip.o \ + ../../colortab.o \ + ../../config.o \ + ../../context.o \ + ../../copypix.o \ + ../../cva.o \ + ../../debug_xform.o \ + ../../depth.o \ + ../../dlist.o \ + ../../drawpix.o \ + ../../enable.o \ + ../../enums.o \ + ../../eval.o \ + ../../extensions.o \ + ../../feedback.o \ + ../../fog.o \ + ../../get.o \ + ../../hash.o \ + ../../hint.o \ + ../../image.o \ + ../../imaging.o \ + ../../light.o \ + ../../lines.o \ + ../../logic.o \ + ../../masking.o \ + ../../matrix.o \ + ../../mem.o \ + ../../mmath.o \ + ../../pb.o \ + ../../pipeline.o \ + ../../pixel.o \ + ../../pixeltex.o \ + ../../points.o \ + ../../polygon.o \ + ../../quads.o \ + ../../rastpos.o \ + ../../readpix.o \ + ../../rect.o \ + ../../scissor.o \ + ../../shade.o \ + ../../span.o \ + ../../stages.o \ + ../../state.o \ + ../../stencil.o \ + ../../teximage.o \ + ../../texobj.o \ + ../../texstate.o \ + ../../texture.o \ + ../../texutil.o \ + ../../translate.o \ + ../../triangle.o \ + ../../varray.o \ + ../../vb.o \ + ../../vbcull.o \ + ../../vbfill.o \ + ../../vbindirect.o \ + ../../vbrender.o \ + ../../vbxform.o \ + ../../vector.o \ + ../../vertices.o \ + ../../winpos.o \ + ../../xform.o \ + ../../zoom.o + +#ifdef i386Architecture + X86_SRCS = ../../X86/common_x86.c \ + ../../X86/common_x86_asm.S \ + ../../X86/x86.c \ + ../../X86/x86_cliptest.S \ + ../../X86/x86_vertex.S \ + ../../X86/x86_xform_masked2.S \ + ../../X86/x86_xform_masked3.S \ + ../../X86/x86_xform_masked4.S \ + ../../X86/x86_xform_raw2.S \ + ../../X86/x86_xform_raw3.S \ + ../../X86/x86_xform_raw4.S + + X86_OBJS = ../../X86/common_x86.o \ + ../../X86/common_x86_asm.o \ + ../../X86/x86.o \ + ../../X86/x86_cliptest.o \ + ../../X86/x86_vertex.o \ + ../../X86/x86_xform_masked2.o \ + ../../X86/x86_xform_masked3.o \ + ../../X86/x86_xform_masked4.o \ + ../../X86/x86_xform_raw2.o \ + ../../X86/x86_xform_raw3.o \ + ../../X86/x86_xform_raw4.o + +#if MesaUseMMX + MMX_SRCS = ../../X86/mmx_blend.S + + MMX_OBJS = ../../X86/mmx_blend.o +#endif + +#if MesaUse3DNow + 3DNOW_SRCS = ../../X86/3dnow.c \ + ../../X86/3dnow_norm_raw.S \ + ../../X86/3dnow_vertex.S \ + ../../X86/3dnow_xform_masked1.S \ + ../../X86/3dnow_xform_masked2.S \ + ../../X86/3dnow_xform_masked3.S \ + ../../X86/3dnow_xform_masked4.S \ + ../../X86/3dnow_xform_raw1.S \ + ../../X86/3dnow_xform_raw2.S \ + ../../X86/3dnow_xform_raw3.S \ + ../../X86/3dnow_xform_raw4.S + + 3DNOW_OBJS = ../../X86/3dnow.o \ + ../../X86/3dnow_norm_raw.o \ + ../../X86/3dnow_vertex.o \ + ../../X86/3dnow_xform_masked1.o \ + ../../X86/3dnow_xform_masked2.o \ + ../../X86/3dnow_xform_masked3.o \ + ../../X86/3dnow_xform_masked4.o \ + ../../X86/3dnow_xform_raw1.o \ + ../../X86/3dnow_xform_raw2.o \ + ../../X86/3dnow_xform_raw3.o \ + ../../X86/3dnow_xform_raw4.o +#endif + +#if MesaUseKatmai + KATMAI_SRCS = ../../X86/katmai.c \ + ../../X86/katmai_norm_raw.S \ + ../../X86/katmai_vertex.S \ + ../../X86/katmai_xform_masked1.S \ + ../../X86/katmai_xform_masked2.S \ + ../../X86/katmai_xform_masked3.S \ + ../../X86/katmai_xform_masked4.S \ + ../../X86/katmai_xform_raw1.S \ + ../../X86/katmai_xform_raw2.S \ + ../../X86/katmai_xform_raw3.S \ + ../../X86/katmai_xform_raw4.S + + KATMAI_OBJS = ../../X86/katmai.o \ + ../../X86/katmai_norm_raw.o \ + ../../X86/katmai_vertex.o \ + ../../X86/katmai_xform_masked1.o \ + ../../X86/katmai_xform_masked2.o \ + ../../X86/katmai_xform_masked3.o \ + ../../X86/katmai_xform_masked4.o \ + ../../X86/katmai_xform_raw1.o \ + ../../X86/katmai_xform_raw2.o \ + ../../X86/katmai_xform_raw3.o \ + ../../X86/katmai_xform_raw4.o +#endif +#endif +#endif + +#ifdef GlxSoProf + LOSRCS = ../../../../lowpc.c + HISRCS = ../../../../highpc.c + + LOOBJS = ../../../../lowpc.o + HIOBJS = ../../../../highpc.o +#endif + + ASMSRCS = $(X86_SRCS) $(MMX_SRCS) $(3DNOW_SRCS) $(KATMAI_SRCS) + ASMOBJS = $(X86_OBJS) $(MMX_OBJS) $(3DNOW_OBJS) $(KATMAI_OBJS) + + COMMONSRCS = ../common/mm.c ../common/hwlog.c + COMMONOBJS = ../common/mm.o ../common/hwlog.o + + SRCS = $(LOSRCS) $(DRISRCS) $(DRMSRCS) $(MESASRCS) \ + $(ASMSRCS) $(COMMONSRCS) $(RADEONSRCS) $(HISRCS) + OBJS = $(LOOBJS) $(DRIOBJS) $(DRMOBJS) $(MESAOBJS) \ + $(ASMOBJS) $(COMMONOBJS) $(RADEONOBJS) $(HIOBJS) + +REQUIREDLIBS += MathLibrary +#if !GlxBuiltInRadeon +REQUIREDLIBS += -L../../../.. -lGL +#endif + + +#if !GlxUseBuiltInDRIDriver +#undef DoNormalLib NormalLibGlx +#undef DoExtraLib SharedLibGlx +#undef DoDebugLib DebugLibGlx +#undef DoProfileLib ProfileLibGlx +#endif + +#include <Library.tmpl> + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +#if !GlxUseBuiltInDRIDriver +LIBNAME = radeon_dri.so +ALL_OBJS = $(OBJS) +ALL_DEPS = DONE +SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) + +#ifdef GlxSoProf +SOPROF_LIBNAME = _radeon_dri_p +NormalDepLibraryTarget($(SOPROF_LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +InstallLibrary($(SOPROF_LIBNAME),$(MODULEDIR)/dri) +#endif +#endif + +DependTarget() diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c new file mode 100644 index 000000000..9af8b5691 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c @@ -0,0 +1,234 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_context.c,v 1.1 2001/01/08 01:07:26 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include <stdlib.h> + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_dd.h" +#include "radeon_state.h" +#include "radeon_span.h" +#include "radeon_tex.h" +#include "radeon_vb.h" +#include "radeon_pipeline.h" + +#include "context.h" +#include "simple_list.h" +#include "mem.h" + +#ifndef RADEON_DEBUG +int RADEON_DEBUG = (0 +/* | DEBUG_ALWAYS_SYNC */ +/* | DEBUG_VERBOSE_API */ +/* | DEBUG_VERBOSE_MSG */ +/* | DEBUG_VERBOSE_LRU */ +/* | DEBUG_VERBOSE_DRI */ +/* | DEBUG_VERBOSE_IOCTL */ +/* | DEBUG_VERBOSE_2D */ + ); +#endif + +/* Create the device specific context. + */ +GLboolean radeonCreateContext( Display *dpy, GLvisual *glVisual, + __DRIcontextPrivate *driContextPriv ) +{ + GLcontext *ctx = driContextPriv->mesaContext; + __DRIscreenPrivate *sPriv = driContextPriv->driScreenPriv; + radeonContextPtr rmesa; + radeonScreenPtr radeonScreen; + int i; + + rmesa = (radeonContextPtr) CALLOC( sizeof(*rmesa) ); + if ( !rmesa ) return GL_FALSE; + + rmesa->glCtx = ctx; + rmesa->display = dpy; + + rmesa->driContext = driContextPriv; + rmesa->driScreen = sPriv; + rmesa->driDrawable = NULL; /* Set by XMesaMakeCurrent */ + + rmesa->hHWContext = driContextPriv->hHWContext; + rmesa->driHwLock = &sPriv->pSAREA->lock; + rmesa->driFd = sPriv->fd; + + radeonScreen = rmesa->radeonScreen = (radeonScreenPtr)(sPriv->private); + + rmesa->sarea = (RADEONSAREAPrivPtr)((char *)sPriv->pSAREA + + sizeof(XF86DRISAREARec)); + + rmesa->tmp_matrix = (GLfloat *) ALIGN_MALLOC( 16 * sizeof(GLfloat), 16 ); + if ( !rmesa->tmp_matrix ) { + FREE( rmesa ); + return GL_FALSE; + } + + make_empty_list( &rmesa->SwappedOut ); + + for ( i = 0 ; i < radeonScreen->numTexHeaps ; i++ ) { + rmesa->CurrentTexObj[i] = NULL; + make_empty_list( &rmesa->TexObjList[i] ); + rmesa->texHeap[i] = mmInit( 0, radeonScreen->texSize[i] ); + rmesa->lastTexAge[i] = -1; + } + rmesa->lastTexHeap = radeonScreen->numTexHeaps; + + rmesa->RenderIndex = -1; /* Impossible value */ + rmesa->OnFastPath = 0; + + rmesa->vert_buf = NULL; + rmesa->num_verts = 0; + + rmesa->elt_buf = NULL; + rmesa->retained_buf = NULL; + rmesa->vert_heap = radeonScreen->buffers->list->address; + + /* KW: Set the maximum texture size small enough that we can + * guarentee that both texture units can bind a maximal texture + * and have them both in on-card memory at once. (Kevin or + * Gareth: Please check these numbers are OK) + */ + if ( radeonScreen->texSize[0] < 2*1024*1024 ) { + ctx->Const.MaxTextureLevels = 9; + ctx->Const.MaxTextureSize = (1 << 8); + } else if ( radeonScreen->texSize[0] < 8*1024*1024 ) { + ctx->Const.MaxTextureLevels = 10; + ctx->Const.MaxTextureSize = (1 << 9); + } else { + ctx->Const.MaxTextureLevels = 11; + ctx->Const.MaxTextureSize = (1 << 10); + } + + /* FIXME: Support all available texture units... */ + ctx->Const.MaxTextureUnits = 2; + +#if ENABLE_PERF_BOXES + if (getenv("LIBGL_PERFORMANCE_BOXES")) + rmesa->boxes = 1; + else + rmesa->boxes = 0; +#endif + + ctx->DriverCtx = (void *)rmesa; + + radeonDDInitExtensions( ctx ); + + radeonDDInitDriverFuncs( ctx ); + radeonDDInitIoctlFuncs( ctx ); + radeonDDInitStateFuncs( ctx ); + radeonDDInitSpanFuncs( ctx ); + radeonDDInitTextureFuncs( ctx ); + + ctx->Driver.TriangleCaps = (DD_TRI_CULL | + DD_TRI_LIGHT_TWOSIDE | + DD_TRI_STIPPLE | + DD_TRI_OFFSET); + + /* Ask Mesa to clip fog coordinates for us. + */ + ctx->TriangleCaps |= DD_CLIP_FOG_COORD; + + if ( ctx->VB ) + radeonDDRegisterVB( ctx->VB ); + + if ( ctx->NrPipelineStages ) { + ctx->NrPipelineStages = + radeonDDRegisterPipelineStages( ctx->PipelineStage, + ctx->PipelineStage, + ctx->NrPipelineStages ); + } + + radeonDDInitState( rmesa ); + + driContextPriv->driverPrivate = (void *)rmesa; + + return GL_TRUE; +} + +/* Destroy the device specific context. + */ +void radeonDestroyContext( radeonContextPtr rmesa ) +{ + if ( rmesa ) { + radeonTexObjPtr t, next_t; + int i; + + for ( i = 0 ; i < rmesa->radeonScreen->numTexHeaps ; i++ ) { + foreach_s ( t, next_t, &rmesa->TexObjList[i] ) { + radeonDestroyTexObj( rmesa, t ); + } + mmDestroy( rmesa->texHeap[i] ); + } + + foreach_s ( t, next_t, &rmesa->SwappedOut ) { + radeonDestroyTexObj( rmesa, t ); + } + + ALIGN_FREE( rmesa->tmp_matrix ); + FREE( rmesa ); + } + +#if 0 + /* Use this to force shared object profiling. */ + glx_fini_prof(); +#endif +} + +/* Load the device specific context into the hardware. The actual + * setting of the hardware state is done in the radeonUpdateHWState(). + */ +radeonContextPtr radeonMakeCurrent( radeonContextPtr oldCtx, + radeonContextPtr newCtx, + __DRIdrawablePrivate *dPriv ) +{ + if ( oldCtx ) { + if ( oldCtx != newCtx ) { + newCtx->new_state |= RADEON_NEW_CONTEXT; + newCtx->dirty = RADEON_UPLOAD_ALL; + } + if ( oldCtx->driDrawable != dPriv ) { + newCtx->new_state |= RADEON_NEW_WINDOW | RADEON_NEW_CLIP; + } + } else { + newCtx->new_state |= RADEON_NEW_CONTEXT; + newCtx->dirty = RADEON_UPLOAD_ALL; + } + + newCtx->driDrawable = dPriv; + + return newCtx; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h new file mode 100644 index 000000000..cae9d5b30 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h @@ -0,0 +1,253 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_context.h,v 1.1 2001/01/08 01:07:26 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_CONTEXT_H__ +#define __RADEON_CONTEXT_H__ + +#ifdef GLX_DIRECT_RENDERING + +#include <X11/Xlibint.h> + +#include "dri_mesaint.h" +#include "dri_tmm.h" + +#include "xf86drm.h" +#include "xf86drmRadeon.h" + +#include "types.h" + +#include "radeon_sarea.h" +#include "radeon_reg.h" + +struct radeon_context; +typedef struct radeon_context radeonContextRec; +typedef struct radeon_context *radeonContextPtr; + +#include "radeon_lock.h" +#include "radeon_texobj.h" +#include "radeon_screen.h" + +/* Flags for what context state needs to be updated */ +#define RADEON_NEW_ALPHA 0x0001 +#define RADEON_NEW_DEPTH 0x0002 +#define RADEON_NEW_FOG 0x0004 +#define RADEON_NEW_CLIP 0x0008 +#define RADEON_NEW_CULL 0x0010 +#define RADEON_NEW_MASKS 0x0020 +#define RADEON_NEW_WINDOW 0x0040 +#define RADEON_NEW_TEXTURE 0x0080 +#define RADEON_NEW_CONTEXT 0x0100 +#define RADEON_NEW_ALL 0x01ff + +/* Flags for software fallback cases */ +#define RADEON_FALLBACK_TEXTURE 0x0001 +#define RADEON_FALLBACK_DRAW_BUFFER 0x0002 +#define RADEON_FALLBACK_READ_BUFFER 0x0004 +#define RADEON_FALLBACK_STENCIL 0x0008 +#define RADEON_FALLBACK_RENDER_MODE 0x0010 +#define RADEON_FALLBACK_MULTIDRAW 0x0020 +#define RADEON_FALLBACK_LOGICOP 0x0040 + +typedef void (*radeon_interp_func)( GLfloat t, + GLfloat *result, + const GLfloat *in, + const GLfloat *out ); + +struct radeon_elt_tab { + void (*emit_unclipped_verts)( struct vertex_buffer *VB ); + + void (*build_tri_verts)( radeonContextPtr rmesa, + struct vertex_buffer *VB, + GLfloat *O, GLuint *elt ); + + void (*interp)( GLfloat t, GLfloat *O, + const GLfloat *I, const GLfloat *J ); + + void (*project_and_emit_verts)( radeonContextPtr rmesa, + const GLfloat *verts, + GLuint *elts, + GLuint nr ); +}; + +struct radeon_context { + GLcontext *glCtx; /* Mesa context */ + + /* Driver and hardware state management + */ + GLuint new_state; + GLuint dirty; /* Hardware state to be updated */ + radeon_context_regs_t setup; + + GLuint vertsize; + GLuint vc_format; + GLfloat depth_scale; + + CARD32 Color; /* Current draw color */ + CARD32 ClearColor; /* Color used to clear color buffer */ + CARD32 ClearDepth; /* Value used to clear depth buffer */ + CARD32 ClearStencil; /* Value used to clear stencil */ + + /* Map GL texture units onto hardware + */ + GLint multitex; + GLint tmu_source[RADEON_MAX_TEXTURE_UNITS]; + GLint tex_dest[RADEON_MAX_TEXTURE_UNITS]; + GLuint color_combine[RADEON_MAX_TEXTURE_UNITS]; + GLuint alpha_combine[RADEON_MAX_TEXTURE_UNITS]; + GLuint env_color[RADEON_MAX_TEXTURE_UNITS]; + GLuint lod_bias[RADEON_MAX_TEXTURE_UNITS]; + + /* Texture object bookkeeping + */ + radeonTexObjPtr CurrentTexObj[RADEON_MAX_TEXTURE_UNITS]; + radeonTexObj TexObjList[RADEON_NR_TEX_HEAPS]; + radeonTexObj SwappedOut; + memHeap_t *texHeap[RADEON_NR_TEX_HEAPS]; + GLint lastTexAge[RADEON_NR_TEX_HEAPS]; + GLint lastTexHeap; + + /* Current rendering state, fallbacks + */ + points_func PointsFunc; + line_func LineFunc; + triangle_func TriangleFunc; + quad_func QuadFunc; + + GLuint IndirectTriangles; + GLuint Fallback; + + /* Fast path + */ + GLuint SetupIndex; + GLuint SetupDone; + GLuint RenderIndex; + GLuint OnFastPath; + radeon_interp_func interp; + GLfloat *tmp_matrix; + + /* Vertex buffers + */ + drmBufPtr vert_buf; + GLuint vert_prim; + GLuint num_verts; + + /* Elt path + */ + drmBufPtr elt_buf, retained_buf; + GLushort *first_elt, *next_elt; + GLfloat *next_vert, *vert_heap; + GLushort next_vert_index; + GLushort first_vert_index; + GLuint elt_vertsize; + struct radeon_elt_tab *elt_tab; + GLfloat device_matrix[16]; + + /* Page flipping + */ + GLuint doPageFlip; + GLuint currentPage; + + /* Drawable, cliprect and scissor information + */ + GLenum DrawBuffer; /* Optimize draw buffer update */ + GLint drawOffset, drawPitch; + GLint readOffset, readPitch; + + GLuint numClipRects; /* Cliprects for the draw buffer */ + XF86DRIClipRectPtr pClipRects; + + GLuint scissor; + XF86DRIClipRectRec scissor_rect; /* Current software scissor */ + + /* Mirrors of some DRI state + */ + Display *display; /* X server display */ + + __DRIcontextPrivate *driContext; /* DRI context */ + __DRIscreenPrivate *driScreen; /* DRI screen */ + __DRIdrawablePrivate *driDrawable; /* DRI drawable bound to this ctx */ + + drmContext hHWContext; + drmLock *driHwLock; + int driFd; + + radeonScreenPtr radeonScreen; /* Screen private DRI data */ + RADEONSAREAPrivPtr sarea; /* Private SAREA data */ + + /* Performance counters + */ + GLuint boxes; /* Draw performance boxes */ + GLuint hardwareWentIdle; + GLuint c_clears; + GLuint c_drawWaits; + GLuint c_textureSwaps; + GLuint c_textureBytes; + GLuint c_vertexBuffers; +}; + +#define RADEON_CONTEXT(ctx) ((radeonContextPtr)(ctx->DriverCtx)) + + +extern GLboolean radeonCreateContext( Display *dpy, GLvisual *glVisual, + __DRIcontextPrivate *driContextPriv ); +extern void radeonDestroyContext( radeonContextPtr rmesa ); +extern radeonContextPtr radeonMakeCurrent( radeonContextPtr oldCtx, + radeonContextPtr newCtx, + __DRIdrawablePrivate *dPriv ); + + +/* ================================================================ + * Debugging: + */ +#define DO_DEBUG 0 +#define ENABLE_PERF_BOXES 0 + +#if DO_DEBUG +extern int RADEON_DEBUG; +#else +#define RADEON_DEBUG 0 +#endif + +#define DEBUG_ALWAYS_SYNC 0x01 +#define DEBUG_VERBOSE_API 0x02 +#define DEBUG_VERBOSE_MSG 0x04 +#define DEBUG_VERBOSE_LRU 0x08 +#define DEBUG_VERBOSE_DRI 0x10 +#define DEBUG_VERBOSE_IOCTL 0x20 +#define DEBUG_VERBOSE_2D 0x40 + +#endif +#endif /* __RADEON_CONTEXT_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_dd.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_dd.c new file mode 100644 index 000000000..52cf810cc --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_dd.c @@ -0,0 +1,217 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_dd.c,v 1.3 2001/01/21 21:19:09 tsi Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "radeon_vb.h" +#include "radeon_pipeline.h" +#include "radeon_dd.h" + +#include "extensions.h" +#if defined(USE_X86_ASM) || defined(USE_3DNOW_ASM) || defined(USE_KATMAI_ASM) +#include "X86/common_x86_asm.h" +#endif + +#define RADEON_DATE "20010105" + + +/* Return the width and height of the current color buffer. + */ +static void radeonDDGetBufferSize( GLcontext *ctx, + GLuint *width, GLuint *height ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + LOCK_HARDWARE( rmesa ); + *width = rmesa->driDrawable->w; + *height = rmesa->driDrawable->h; + UNLOCK_HARDWARE( rmesa ); +} + +/* Return various strings for glGetString(). + */ +static const GLubyte *radeonDDGetString( GLcontext *ctx, GLenum name ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + static char buffer[128]; + + switch ( name ) { + case GL_VENDOR: + return (GLubyte *)"VA Linux Systems, Inc."; + + case GL_RENDERER: + sprintf( buffer, "Mesa DRI Radeon " RADEON_DATE ); + + /* Append any chipset-specific information. None yet. + */ + + /* Append any AGP-specific information. + */ + switch ( rmesa->radeonScreen->AGPMode ) { + case 1: + strncat( buffer, " AGP 1x", 7 ); + break; + case 2: + strncat( buffer, " AGP 2x", 7 ); + break; + case 4: + strncat( buffer, " AGP 4x", 7 ); + break; + } + + /* Append any CPU-specific information. + */ +#ifdef USE_X86_ASM + if ( gl_x86_cpu_features ) { + strncat( buffer, " x86", 4 ); + } +#endif +#ifdef USE_3DNOW_ASM + if ( cpu_has_3dnow ) { + strncat( buffer, "/3DNow!", 7 ); + } +#endif +#ifdef USE_KATMAI_ASM + if ( cpu_has_xmm ) { + strncat( buffer, "/SSE", 4 ); + } +#endif + return (GLubyte *)buffer; + + default: + return NULL; + } +} + +/* Send all commands to the hardware. If vertex buffers or indirect + * buffers are in use, then we need to make sure they are sent to the + * hardware. All commands that are normally sent to the ring are + * already considered `flushed'. + */ +static void radeonDDFlush( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + +#if ENABLE_PERF_BOXES + if ( rmesa->boxes ) { + LOCK_HARDWARE( rmesa ); + radeonPerformanceBoxesLocked( rmesa ); + UNLOCK_HARDWARE( rmesa ); + } + + /* Log the performance counters if necessary */ + radeonPerformanceCounters( rmesa ); +#endif +} + +/* Make sure all commands have been sent to the hardware and have + * completed processing. + */ +static void radeonDDFinish( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + +#if ENABLE_PERF_BOXES + /* Bump the performance counter */ + rmesa->c_drawWaits++; +#endif + + radeonDDFlush( ctx ); + radeonWaitForIdle( rmesa ); +} + +/* Return various parameters requested by Mesa (this is deprecated). + */ +static GLint radeonDDGetParameteri( const GLcontext *ctx, GLint param ) +{ + switch ( param ) { + case DD_HAVE_HARDWARE_FOG: + return 1; + default: + return 0; + } +} + +/* Initialize the extensions supported by this driver. + */ +void radeonDDInitExtensions( GLcontext *ctx ) +{ + gl_extensions_disable( ctx, "GL_ARB_imaging" ); + gl_extensions_disable( ctx, "GL_ARB_texture_compression" ); + gl_extensions_disable( ctx, "GL_ARB_texture_cube_map" ); + + gl_extensions_disable( ctx, "GL_EXT_blend_color" ); + gl_extensions_disable( ctx, "GL_EXT_blend_logic_op" ); + gl_extensions_disable( ctx, "GL_EXT_blend_minmax" ); + gl_extensions_disable( ctx, "GL_EXT_blend_subtract" ); + gl_extensions_disable( ctx, "GL_EXT_convolution" ); + gl_extensions_disable( ctx, "GL_EXT_paletted_texture" ); + gl_extensions_disable( ctx, "GL_EXT_point_parameters" ); + gl_extensions_disable( ctx, "GL_EXT_shared_texture_palette" ); + gl_extensions_enable( ctx, "GL_EXT_texture_env_combine" ); + gl_extensions_enable( ctx, "GL_EXT_texture_env_dot3" ); + + gl_extensions_disable( ctx, "GL_HP_occlusion_test" ); + + gl_extensions_disable( ctx, "GL_INGR_blend_func_separate" ); + + gl_extensions_disable( ctx, "GL_SGI_color_matrix" ); + gl_extensions_disable( ctx, "GL_SGI_color_table" ); + gl_extensions_disable( ctx, "GL_SGIX_pixel_texture" ); +} + +/* Initialize the driver's misc functions. + */ +void radeonDDInitDriverFuncs( GLcontext *ctx ) +{ + ctx->Driver.GetBufferSize = radeonDDGetBufferSize; + ctx->Driver.GetString = radeonDDGetString; + ctx->Driver.Finish = radeonDDFinish; + ctx->Driver.Flush = radeonDDFlush; + + ctx->Driver.Error = NULL; + ctx->Driver.GetParameteri = radeonDDGetParameteri; + + ctx->Driver.DrawPixels = NULL; + ctx->Driver.Bitmap = NULL; + + ctx->Driver.RegisterVB = radeonDDRegisterVB; + ctx->Driver.UnregisterVB = radeonDDUnregisterVB; + ctx->Driver.BuildPrecalcPipeline = radeonDDBuildPrecalcPipeline; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_dd.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_dd.h new file mode 100644 index 000000000..5e16e5e62 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_dd.h @@ -0,0 +1,46 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_dd.h,v 1.1 2001/01/08 01:07:26 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_DD_H__ +#define __RADEON_DD_H__ + +#ifdef GLX_DIRECT_RENDERING + +extern void radeonDDInitExtensions( GLcontext *ctx ); +extern void radeonDDInitDriverFuncs( GLcontext *ctx ); + +#endif +#endif diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_eltpath.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_eltpath.c new file mode 100644 index 000000000..6b2f36614 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_eltpath.c @@ -0,0 +1,504 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_eltpath.c,v 1.1 2001/01/08 01:07:26 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Gareth Hughes <gareth@valinux.com> + * Keith Whitwell <keithw@valinux.com> + * + */ + +#include <stdio.h> + +#include "radeon_context.h" +#include "radeon_pipeline.h" +#include "radeon_ioctl.h" +#include "radeon_tris.h" +#include "radeon_state.h" +#include "radeon_vb.h" + +#include "types.h" +#include "enums.h" +#include "cva.h" +#include "vertices.h" +#include "mmath.h" +#include "xform.h" + +/* Always use a full-sized stride for vertices. [FIXME] + * Stride in the buffers must be a quadword multiple. + */ +#define CLIP_STRIDE 10 + +static void fire_elts( radeonContextPtr rmesa ) +{ + GLuint vertsize = rmesa->vertsize; + + LOCK_HARDWARE( rmesa ); + + /* Fire queued elements and discard that buffer if its contents + * won't be referenced by future elements. + */ + if ( rmesa->elt_buf ) + { + GLuint retain = (rmesa->elt_buf == rmesa->retained_buf); + + if ( rmesa->first_elt != rmesa->next_elt ) { + radeonFireEltsLocked( rmesa, + ((GLuint)rmesa->first_elt - + (GLuint)rmesa->elt_buf->address), + ((GLuint)rmesa->next_elt - + (GLuint)rmesa->elt_buf->address), + !retain ); + } else if ( !retain ) { + radeonReleaseBufLocked( rmesa, rmesa->elt_buf ); + } + + rmesa->elt_buf = 0; + } + else if ( rmesa->vert_buf ) + { + radeonFlushVerticesLocked( rmesa ); + } + + radeonGetEltBufLocked( rmesa ); + + UNLOCK_HARDWARE( rmesa ); + + /* Give the compiler a chance to optimize the divisions. + */ + switch ( vertsize ) { + case 8: + rmesa->next_vert_index = (GLushort) + (((rmesa->elt_buf->idx + 1) * + RADEON_BUFFER_SIZE / (8 * sizeof(GLuint))) - 1); + rmesa->next_vert = (GLfloat *) + ((GLuint)rmesa->vert_heap + + rmesa->next_vert_index * 8 * sizeof(GLfloat)); + break; + + case 10: + rmesa->next_vert_index = (GLushort) + (((rmesa->elt_buf->idx + 1) * + RADEON_BUFFER_SIZE / (10 * sizeof(GLuint))) - 1); + rmesa->next_vert = (GLfloat *) + ((GLuint)rmesa->vert_heap + + rmesa->next_vert_index * 10 * sizeof(GLfloat)); + break; + } + + rmesa->first_elt = rmesa->next_elt = (GLushort *) + ((GLubyte *)rmesa->elt_buf->address + RADEON_INDEX_PRIM_OFFSET); + + rmesa->elt_vertsize = vertsize; +} + + +static void release_bufs( radeonContextPtr rmesa ) +{ + if ( rmesa->retained_buf && rmesa->retained_buf != rmesa->elt_buf ) + { + LOCK_HARDWARE( rmesa ); + if ( rmesa->first_elt != rmesa->next_elt ) { + radeonFireEltsLocked( rmesa, + ((GLuint)rmesa->first_elt - + (GLuint)rmesa->elt_buf->address), + ((GLuint)rmesa->next_elt - + (GLuint)rmesa->elt_buf->address), + 0 ); + + ALIGN_NEXT_ELT( rmesa ); + rmesa->first_elt = rmesa->next_elt; + } + + radeonReleaseBufLocked( rmesa, rmesa->retained_buf ); + UNLOCK_HARDWARE( rmesa ); + } + + rmesa->retained_buf = 0; +} + + + + +#define NEGATIVE( f ) (f < 0) +#define DIFFERENT_SIGNS( a, b ) ((a * b) < 0) +#define LINTERP( T, A, B ) ((A) + (T) * ((B) - (A))) + + +#define INTERP_RGBA( t, out, a, b ) { \ + GLuint i; \ + for ( i = 0 ; i < 4 ; i++ ) { \ + GLfloat fa = UBYTE_COLOR_TO_FLOAT_COLOR( a[i] ); \ + GLfloat fb = UBYTE_COLOR_TO_FLOAT_COLOR( b[i] ); \ + GLfloat fo = LINTERP( t, fa, fb ); \ + FLOAT_COLOR_TO_UBYTE_COLOR( out[i], fo ); \ + } \ +} + + +#define CLIP( SGN, V, PLANE ) \ +do { \ + if ( mask & PLANE ) { \ + GLuint *indata = inlist[in]; \ + GLuint *outdata = inlist[in ^= 1]; \ + GLuint nr = n; \ + GLfloat *J = verts[indata[nr-1]]; \ + GLfloat dpJ = (SGN J[V]) + J[3]; \ + \ + for ( i = n = 0 ; i < nr ; i++ ) { \ + GLuint elt_i = indata[i]; \ + GLfloat *I = verts[elt_i]; \ + GLfloat dpI = (SGN I[V]) + I[3]; \ + \ + if ( DIFFERENT_SIGNS( dpI, dpJ ) ) { \ + GLfloat *O = verts[next_vert]; \ + outdata[n++] = next_vert++; \ + \ + if ( NEGATIVE( dpI ) ) { \ + GLfloat t = dpI / (dpI - dpJ); \ + interp( t, O, I, J ); \ + } \ + else \ + { \ + GLfloat t = dpJ / (dpJ - dpI); \ + interp( t, O, J, I ); \ + } \ + } \ + \ + if ( !NEGATIVE( dpI ) ) \ + outdata[n++] = elt_i; \ + \ + J = I; \ + dpJ = dpI; \ + } \ + \ + if ( n < 3 ) return; \ + } \ +} while (0) + + +static void radeon_tri_clip( radeonContextPtr rmesa, + struct vertex_buffer *VB, + GLuint *elt, + GLubyte mask ) +{ + struct radeon_elt_tab *tab = rmesa->elt_tab; + radeon_interp_func interp = tab->interp; + GLuint vertsize = rmesa->vertsize; + GLuint inlist[2][VB_MAX_CLIPPED_VERTS]; + GLuint in = 0; + GLuint n = 3, next_vert = 3; + GLuint i; + GLfloat verts[VB_MAX_CLIPPED_VERTS][CLIP_STRIDE]; + + /* Build temporary vertices in clipspace. This is the potential + * downside to this path. + */ + tab->build_tri_verts( rmesa, VB, (GLfloat *)verts, elt ); + + inlist[0][0] = 0; + inlist[0][1] = 1; + inlist[0][2] = 2; + + CLIP( -, 0, CLIP_RIGHT_BIT ); + CLIP( +, 0, CLIP_LEFT_BIT ); + CLIP( -, 1, CLIP_TOP_BIT ); + CLIP( +, 1, CLIP_BOTTOM_BIT ); + CLIP( -, 2, CLIP_FAR_BIT ); + CLIP( +, 2, CLIP_NEAR_BIT ); + + + { + GLuint *out = inlist[in]; + GLint space = (GLint)((GLuint)rmesa->next_vert - + (GLuint)rmesa->next_elt); + + if ( space < (GLint)(n * (vertsize + 2) * sizeof(GLuint)) ) { + fire_elts( rmesa ); + } + + /* Project the new vertices and emit to dma buffers. Translate + * out values to physical addresses for setup dma. + */ + tab->project_and_emit_verts( rmesa, (GLfloat *)verts, out, n ); + + /* Convert the planar polygon to a list of triangles and emit to + * elt buffers. + */ + for ( i = 2 ; i < n ; i++ ) { + rmesa->next_elt[0] = (GLushort) out[0]; + rmesa->next_elt[1] = (GLushort) out[i-1]; + rmesa->next_elt[2] = (GLushort) out[i]; + rmesa->next_elt += 3; + } + } +} + + + + +/* Build a table of functions to clip each primitive type. These + * produce a list of elements in the appropriate 'reduced' primitive, + * ie (points, lines, triangles) containing all the clipped and + * unclipped primitives from the original list. + */ + +#define INIT( x ) + +#define TRI_THRESHOLD (GLint)(2 * sizeof(GLuint)) + +#define UNCLIPPED_VERT( x ) (GLushort)(rmesa->first_vert_index - x) + +#define TRIANGLE( e2, e1, e0 ) \ +do { \ + if ( (GLint)((GLuint)rmesa->next_vert - \ + (GLuint)rmesa->next_elt) < TRI_THRESHOLD ) { \ + fire_elts( rmesa ); \ + } \ + rmesa->next_elt[0] = UNCLIPPED_VERT( e2 ); \ + rmesa->next_elt[1] = UNCLIPPED_VERT( e1 ); \ + rmesa->next_elt[2] = UNCLIPPED_VERT( e0 ); \ + rmesa->next_elt += 3; \ +} while (0) + +#define CLIP_TRIANGLE( e2, e1, e0 ) \ +do { \ + GLubyte ormask = mask[e2] | mask[e1] | mask[e0]; \ + if ( ormask == 0 ) { \ + TRIANGLE( e2, e1, e0 ); \ + } else if ( (mask[e2] & mask[e1] & mask[e0]) == 0 ) { \ + out[0] = e2; \ + out[1] = e1; \ + out[2] = e0; \ + radeon_tri_clip( rmesa, VB, out, ormask ); \ + } \ +} while (0) + +#define LOCAL_VARS \ + radeonContextPtr rmesa = RADEON_CONTEXT(VB->ctx); \ + GLuint *elt = VB->EltPtr->data; \ + GLuint out[VB_MAX_CLIPPED_VERTS]; \ + GLubyte *mask = VB->ClipMask; \ + (void) mask; (void) out; (void) elt; (void) rmesa; + + + +#define RENDER_POINTS( start, count ) +#define RENDER_LINE( i1, i0 ) +#define RENDER_TRI( i2, i1, i0, pv, parity ) \ +do { \ + GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ + if ( parity ) e2 = elt[i1], e1 = elt[i2]; \ + CLIP_TRIANGLE( e2, e1, e0 ); \ +} while (0) + +#define RENDER_QUAD( i3, i2, i1, i0, pv ) \ + CLIP_TRIANGLE( elt[i3], elt[i2], elt[i0] ); \ + CLIP_TRIANGLE( elt[i2], elt[i1], elt[i0] ) + +#define TAG(x) radeon_##x##_elt +#include "render_tmp.h" + + + +#define LOCAL_VARS \ + radeonContextPtr rmesa = RADEON_CONTEXT(VB->ctx); \ + GLuint *elt = VB->EltPtr->data; \ + (void) elt; (void) rmesa; + +#define RENDER_POINTS( start, count ) +#define RENDER_LINE( i1, i0 ) +#define RENDER_TRI( i2, i1, i0, pv, parity ) \ +do { \ + GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ + if ( parity ) e2 = elt[i1], e1 = elt[i2]; \ + TRIANGLE( e2, e1, e0 ); \ +} while (0) + +#define RENDER_QUAD( i3, i2, i1, i0, pv ) \ + TRIANGLE( elt[i3], elt[i2], elt[i0] ); \ + TRIANGLE( elt[i2], elt[i1], elt[i0] ) + +#define TAG(x) radeon_##x##_elt_unclipped +#include "render_tmp.h" + + + + +static void refresh_projection_matrix( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + GLmatrix *mat = &ctx->Viewport.WindowMap; + GLfloat *m = rmesa->device_matrix; + + m[MAT_SX] = mat->m[MAT_SX]; + m[MAT_TX] = mat->m[MAT_TX]; + m[MAT_SY] = -mat->m[MAT_SY]; + m[MAT_TY] = -mat->m[MAT_TY]; + m[MAT_SZ] = mat->m[MAT_SZ]; + m[MAT_TZ] = mat->m[MAT_TZ]; +} + +#define CLIP_UBYTE_R 0 +#define CLIP_UBYTE_G 1 +#define CLIP_UBYTE_B 2 +#define CLIP_UBYTE_A 3 + + +#define TYPE (0) +#define TAG(x) x +#include "radeon_elttmp.h" + +#define TYPE (RADEON_RGBA_BIT) +#define TAG(x) x##_RGBA +#include "radeon_elttmp.h" + +#define TYPE (RADEON_TEX0_BIT) +#define TAG(x) x##_TEX0 +#include "radeon_elttmp.h" + +#define TYPE (RADEON_RGBA_BIT|RADEON_TEX0_BIT) +#define TAG(x) x##_RGBA_TEX0 +#include "radeon_elttmp.h" + +#define TYPE (RADEON_RGBA_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT) +#define TAG(x) x##_RGBA_TEX0_TEX1 +#include "radeon_elttmp.h" + +#define TYPE (RADEON_TEX0_BIT|RADEON_TEX1_BIT) +#define TAG(x) x##_TEX0_TEX1 +#include "radeon_elttmp.h" + + +/* Very sparsely popluated array - fix the indices. + */ +static struct radeon_elt_tab radeonEltTab[RADEON_MAX_SETUPFUNC]; + +void radeonDDEltPathInit( void ) +{ + radeon_render_init_elt(); + radeon_render_init_elt_unclipped(); + + radeon_init_eltpath( &radeonEltTab[0] ); + radeon_init_eltpath_RGBA( &radeonEltTab[RADEON_RGBA_BIT] ); + radeon_init_eltpath_TEX0( &radeonEltTab[RADEON_TEX0_BIT] ); + radeon_init_eltpath_RGBA_TEX0( &radeonEltTab[(RADEON_RGBA_BIT | + RADEON_TEX0_BIT)] ); + radeon_init_eltpath_TEX0_TEX1( &radeonEltTab[(RADEON_TEX0_BIT | + RADEON_TEX1_BIT)] ); + radeon_init_eltpath_RGBA_TEX0_TEX1( &radeonEltTab[(RADEON_RGBA_BIT | + RADEON_TEX0_BIT | + RADEON_TEX1_BIT)] ); +} + +#define VALID_SETUP (RADEON_RGBA_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT) + + + +/* Use a temporary array for device coordinates, so that we can easily + * tap into existing mesa assembly. Otherwise consider emitting + * device coordinates to dma buffers directly from the project/cliptest + * routine. (requires output stride, potential loss of writecombining + * efficiency?) + * + * This path is a lot closer to the standard vertex path in the + * initial stages than the original fastpath. A slightly more optimal + * path could be constructed, but would require us to write new + * assembly. + */ +void radeonDDEltPath( struct vertex_buffer *VB ) +{ + GLcontext *ctx = VB->ctx; + GLenum prim = ctx->CVA.elt_mode; + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct radeon_elt_tab *tab = + &radeonEltTab[rmesa->SetupIndex & VALID_SETUP]; + GLint vertsize = rmesa->vertsize; + GLint space; + + VB->ClipPtr = TransformRaw( &VB->Clip, + &ctx->ModelProjectMatrix, + VB->ObjPtr ); + + refresh_projection_matrix( ctx ); + + VB->ClipAndMask = ~0; + VB->ClipOrMask = 0; + VB->Projected = gl_clip_tab[VB->ClipPtr->size]( VB->ClipPtr, + &VB->Win, + VB->ClipMask, + &VB->ClipOrMask, + &VB->ClipAndMask ); + + if ( VB->ClipAndMask ) + return; + + if ( rmesa->vert_buf ) + radeonFlushVertices( rmesa ); + + if ( rmesa->new_state ) + radeonDDUpdateHWState( ctx ); + + space = (GLint)((GLuint)rmesa->next_vert - + (GLuint)rmesa->next_elt); + + /* Allocate a single buffer to hold unclipped vertices. All + * unclipped vertices must be contiguous. + */ + if ( space < (GLint)(VB->Count * vertsize * sizeof(GLuint)) || + rmesa->vertsize != rmesa->elt_vertsize ) { + fire_elts( rmesa ); + } + + rmesa->retained_buf = rmesa->elt_buf; + + /* Emit unclipped vertices to the buffer. + */ + tab->emit_unclipped_verts( VB ); + + /* Emit indices and clipped vertices to one or more buffers. + */ + if ( VB->ClipOrMask ) { + rmesa->elt_tab = tab; + radeon_render_tab_elt[prim]( VB, 0, VB->EltPtr->count, 0 ); + } else { + radeon_render_tab_elt_unclipped[prim]( VB, 0, VB->EltPtr->count, 0 ); + } + + /* Send to hardware and release the elt buffer. + */ + release_bufs( rmesa ); + + /* This indicates that there is no cached data to reuse. + */ + VB->pipeline->data_valid = 0; + VB->pipeline->new_state = 0; + + FLUSH_BATCH( rmesa ); +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_elttmp.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_elttmp.h new file mode 100644 index 000000000..56c0ccedd --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_elttmp.h @@ -0,0 +1,246 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_elttmp.h,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Keith Whitwell <keithw@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +/* Buffers fill from high addresses down with vertices and from low + * addresses up with elements. + */ + + +/* Emit the bulk of the vertices to the first dma buffer. Leave + * empty slots for clipped vertices so that we can still address + * vertices by index. + */ +static void TAG(emit_unclipped_verts)( struct vertex_buffer *VB ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(VB->ctx); + GLfloat *dev = VB->Projected->start; + GLubyte *color = VB->ColorPtr->start; + GLfloat *tex0_data = VB->TexCoordPtr[0]->start; + GLfloat *tex1_data = VB->TexCoordPtr[1]->start; + GLuint color_stride = VB->ColorPtr->stride; + GLuint tex0_stride = VB->TexCoordPtr[0]->stride; + GLuint tex1_stride = VB->TexCoordPtr[1]->stride; + GLuint buffer_stride = rmesa->vertsize; + + GLfloat *f = rmesa->next_vert; + GLuint count = VB->Count; + GLubyte *clipmask = VB->ClipMask; + + const GLfloat *m = rmesa->device_matrix; + const GLfloat sx = m[0], sy = m[5], sz = m[10]; + const GLfloat tx = m[12], ty = m[13], tz = m[14]; + GLuint i; + + rmesa->retained_buf = rmesa->elt_buf; + rmesa->first_vert_index = rmesa->next_vert_index; + + for ( i = 0 ; i < count ; f -= buffer_stride, i++ ) + { + if ( !clipmask[i] ) + { + f[0] = sx * dev[0] + tx; + f[1] = sy * dev[1] + ty; + f[2] = sz * dev[2] + tz; + f[3] = dev[3]; + + if ( TYPE & RADEON_RGBA_BIT ) { + *(GLuint *)&f[4] = *(GLuint *)color; + } + + if ( TYPE & RADEON_TEX0_BIT ) { + *(GLuint *)&f[6] = *(GLuint *)&tex0_data[0]; + *(GLuint *)&f[7] = *(GLuint *)&tex0_data[1]; + } + + if ( TYPE & RADEON_TEX1_BIT ) { + *(GLuint *)&f[8] = *(GLuint *)&tex1_data[0]; + *(GLuint *)&f[9] = *(GLuint *)&tex1_data[1]; + } + } + + STRIDE_F( dev, 16 ); + if ( TYPE & RADEON_RGBA_BIT ) color += color_stride; + if ( TYPE & RADEON_TEX0_BIT ) STRIDE_F( tex0_data, tex0_stride ); + if ( TYPE & RADEON_TEX1_BIT ) STRIDE_F( tex1_data, tex1_stride ); + } + + rmesa->next_vert = f; + rmesa->next_vert_index -= count; +} + + +/* Build three temporary clipspace vertex for clipping a triangle. + * Recreate from the VB data rather than trying to read back from + * uncached memory. + */ +static void TAG(build_tri_verts)( radeonContextPtr rmesa, + struct vertex_buffer *VB, + GLfloat *O, + GLuint *elt ) +{ + GLint i; + + for ( i = 0 ; i < 3 ; i++, O += CLIP_STRIDE ) { + GLfloat *clip = VB->Clip.start + elt[i]*4; + + O[0] = clip[0]; + O[1] = clip[1]; + O[2] = clip[2]; + O[3] = clip[3]; + + if ( TYPE & RADEON_RGBA_BIT ) { + GLubyte *color = VEC_ELT(VB->ColorPtr, GLubyte, elt[i]); + *(GLuint *)&O[4] = *(GLuint *)color; + } + + *(GLuint *)&O[5] = UNCLIPPED_VERT(elt[i]); + + if ( TYPE & RADEON_TEX0_BIT ) { + GLfloat *tex0_data = VEC_ELT(VB->TexCoordPtr[0], GLfloat, elt[i]); + *(GLuint *)&O[6] = *(GLuint *)&tex0_data[0]; + *(GLuint *)&O[7] = *(GLuint *)&tex0_data[1]; + } + + if ( TYPE & RADEON_TEX1_BIT ) { + GLfloat *tex1_data = VEC_ELT(VB->TexCoordPtr[1], GLfloat, elt[i]); + *(GLuint *)&O[8] = *(GLuint *)&tex1_data[0]; + *(GLuint *)&O[9] = *(GLuint *)&tex1_data[1]; + } + } +} + + +/* Interpolate between two of the vertices constructed above. + */ +static void TAG(interp)( GLfloat t, + GLfloat *O, + const GLfloat *I, + const GLfloat *J ) +{ + O[0] = LINTERP( t, I[0], J[0] ); + O[1] = LINTERP( t, I[1], J[1] ); + O[2] = LINTERP( t, I[2], J[2] ); + O[3] = LINTERP( t, I[3], J[3] ); + + if ( TYPE & RADEON_RGBA_BIT ) { + INTERP_RGBA( t, + ((GLubyte *)&(O[4])), + ((GLubyte *)&(I[4])), + ((GLubyte *)&(J[4])) ); + } + + *(GLuint *)&O[5] = ~0; /* note that this is a new vertex */ + + if ( TYPE & RADEON_TEX0_BIT ) { + O[6] = LINTERP( t, I[6], J[6] ); + O[7] = LINTERP( t, I[7], J[7] ); + } + + if ( TYPE & RADEON_TEX1_BIT ) { + O[8] = LINTERP( t, I[8], J[8] ); + O[9] = LINTERP( t, I[9], J[9] ); + } +} + + + +/* When clipping is complete, scan the final vertex list and emit any + * new ones to dma buffers. Update the element list to a format + * suitable for sending to hardware. + */ +static void TAG(project_and_emit_verts)( radeonContextPtr rmesa, + const GLfloat *verts, + GLuint *elt, + GLuint nr) +{ + GLfloat *O = rmesa->next_vert; + GLushort index = rmesa->next_vert_index; + GLuint buffer_stride = rmesa->vertsize; + + const GLfloat *m = rmesa->device_matrix; + const GLfloat sx = m[0], sy = m[5], sz = m[10]; + const GLfloat tx = m[12], ty = m[13], tz = m[14]; + GLuint i; + + for ( i = 0 ; i < nr ; i++ ) { + const GLfloat *I = &verts[elt[i] * CLIP_STRIDE]; + GLuint tmp = *(GLuint *)&I[5]; + + if ( (elt[i] = tmp) == ~0 ) { + GLfloat oow = 1.0 / I[3]; + + elt[i] = index--; + + O[0] = sx * I[0] * oow + tx; + O[1] = sy * I[1] * oow + ty; + O[2] = sz * I[2] * oow + tz; + O[3] = oow; + + if ( TYPE & RADEON_RGBA_BIT ) { + *(GLuint *)&O[4] = *(GLuint *)&I[4]; + } + + if ( TYPE & RADEON_TEX0_BIT ) { + *(GLuint *)&O[6] = *(GLuint *)&I[6]; + *(GLuint *)&O[7] = *(GLuint *)&I[7]; + } + + if ( TYPE & RADEON_TEX1_BIT ) { + *(GLuint *)&O[8] = *(GLuint *)&I[8]; + *(GLuint *)&O[9] = *(GLuint *)&I[9]; + } + + O -= buffer_stride; + } + } + + rmesa->next_vert = O; + rmesa->next_vert_index = index; +} + + + +static void TAG(radeon_init_eltpath)( struct radeon_elt_tab *tab ) +{ + tab->emit_unclipped_verts = TAG(emit_unclipped_verts); + tab->build_tri_verts = TAG(build_tri_verts); + tab->interp = TAG(interp); + tab->project_and_emit_verts = TAG(project_and_emit_verts); +} + +#undef TYPE +#undef TAG +#undef STRIDE diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_fastpath.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_fastpath.c new file mode 100644 index 000000000..1ff701435 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_fastpath.c @@ -0,0 +1,542 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_fastpath.c,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Keith Whitwell <keithw@valinux.com> + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_state.h" +#include "radeon_vb.h" +#include "radeon_pipeline.h" +#include "radeon_ioctl.h" +#include "radeon_tris.h" + +#include "mmath.h" +#include "cva.h" +#include "vertices.h" + + +struct radeon_fast_tab { + void (*build_vertices)( struct vertex_buffer *VB, GLuint do_cliptest ); + void (*interp)( GLfloat t, GLfloat *O, const GLfloat *I, const GLfloat *J ); +}; + +#define POINT(x) radeon_draw_point( rmesa, &vert[x], psize ) +#define LINE(x,y) radeon_draw_line( rmesa, &vert[x], &vert[y], lwidth ) +#define TRI(x,y,z) radeon_draw_triangle( rmesa, &vert[x], &vert[y], &vert[z] ) + + +/* Direct, and no clipping required. The clip funcs have not been + * written yet, so this is only useful for the fast path. + */ +#define RENDER_POINTS( start, count ) \ +do { \ + GLuint e; \ + for ( e = start ; e < count ; e++ ) \ + POINT( elt[e] ); \ +} while (0) + +#define RENDER_LINE( i1, i ) \ +do { \ + GLuint e1 = elt[i1], e = elt[i]; \ + LINE( e1, e ); \ +} while (0) + +#define RENDER_TRI( i2, i1, i, pv, parity ) \ +do { \ + GLuint e2 = elt[i2], e1 = elt[i1], e = elt[i]; \ + if ( parity ) { \ + GLuint tmp = e2; \ + e2 = e1; \ + e1 = tmp; \ + } \ + TRI( e2, e1, e ); \ +} while (0) + +#define RENDER_QUAD( i3, i2, i1, i, pv ) \ +do { \ + GLuint e3 = elt[i3], e2 = elt[i2], e1 = elt[i1], e = elt[i]; \ + TRI( e3, e2, e ); \ + TRI( e2, e1, e ); \ +} while (0) + +#define LOCAL_VARS \ + radeonVertexPtr vert = RADEON_DRIVER_DATA(VB)->verts; \ + const GLuint *elt = VB->EltPtr->data; \ + GLcontext *ctx = VB->ctx; \ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \ + const GLfloat lwidth = ctx->Line.Width; \ + const GLfloat psize = ctx->Point.Size; \ + (void) lwidth; (void) psize; (void) vert; + +#define TAG(x) radeon_##x##_smooth_indirect +#include "render_tmp.h" + + + +#define NEGATIVE( f ) (f < 0) +#define DIFFERENT_SIGNS( a, b ) ((a * b) < 0) +#define LINTERP( T, A, B ) ((A) + (T) * ((B) - (A))) + + +#define INTERP_RGBA( t, out, a, b ) \ +do { \ + int i; \ + for ( i = 0 ; i < 4 ; i++ ) { \ + GLfloat fa = UBYTE_COLOR_TO_FLOAT_COLOR( a[i] ); \ + GLfloat fb = UBYTE_COLOR_TO_FLOAT_COLOR( b[i] ); \ + GLfloat fo = LINTERP( t, fa, fb ); \ + FLOAT_COLOR_TO_UBYTE_COLOR( out[i], fo ); \ + } \ +} while (0) + + +#define CLIP( SGN, V, PLANE ) \ +do { \ + if ( mask & PLANE ) { \ + GLuint *indata = inlist[in]; \ + GLuint *outdata = inlist[in ^= 1]; \ + GLuint nr = n; \ + GLfloat *J = verts[indata[nr-1]].f; \ + GLfloat dpJ = (SGN J[V]) + J[3]; \ + \ + inlist[0] = vlist1; \ + for ( i = n = 0 ; i < nr ; i++ ) { \ + GLuint elt_i = indata[i]; \ + GLfloat *I = verts[elt_i].f; \ + GLfloat dpI = (SGN I[V]) + I[3]; \ + \ + if ( DIFFERENT_SIGNS( dpI, dpJ ) ) { \ + GLfloat *O = verts[next_vert].f; \ + GLfloat t, *in, *out; \ + \ + if ( NEGATIVE( dpI ) ) { \ + t = dpI / (dpI - dpJ); \ + in = I; \ + out = J; \ + } else { \ + t = dpJ / (dpJ - dpI); \ + in = J; \ + out = I; \ + } \ + \ + interp( t, O, in, out ); \ + \ + clipmask[next_vert] = 0; \ + outdata[n++] = next_vert++; \ + } \ + \ + clipmask[elt_i] |= PLANE; /* don't set up */ \ + \ + if ( !NEGATIVE( dpI ) ) { \ + outdata[n++] = elt_i; \ + clipmask[elt_i] &= ~PLANE; /* set up after all */ \ + } \ + \ + J = I; \ + dpJ = dpI; \ + } \ + \ + if ( n < 3 ) return; \ + } \ +} while (0) + +#define LINE_CLIP( x, y, z, w, PLANE ) \ +do { \ + if ( mask & PLANE ) { \ + GLfloat dpI = DOT4V( I, x, y, z, w); \ + GLfloat dpJ = DOT4V( J, x, y, z, w); \ + \ + if ( DIFFERENT_SIGNS( dpI, dpJ ) ) { \ + GLfloat *O = verts[next_vert].f; \ + GLfloat t = dpI / (dpI - dpJ); \ + \ + interp( t, O, I, J ); \ + \ + clipmask[next_vert] = 0; \ + \ + if ( NEGATIVE( dpI ) ) { \ + clipmask[elts[0]] |= PLANE; \ + I = O; \ + elts[0] = next_vert++; \ + } else { \ + clipmask[elts[1]] |= PLANE; \ + J = O; \ + elts[1] = next_vert++; \ + } \ + } else if ( NEGATIVE( dpI ) ) return; \ + } \ +} while (0) + + +static __inline void radeon_tri_clip( GLuint **p_elts, + radeonVertexPtr verts, + GLubyte *clipmask, + GLuint *p_next_vert, + GLubyte mask, + radeon_interp_func interp ) +{ + GLuint *elts = *p_elts; + GLuint next_vert = *p_next_vert; + GLuint in = 0; + GLuint n = 3; + GLuint vlist1[VB_MAX_CLIPPED_VERTS]; + GLuint vlist2[VB_MAX_CLIPPED_VERTS]; + GLuint *inlist[2]; + GLuint *out; + GLuint i; + + inlist[0] = elts; + inlist[1] = vlist2; + + CLIP( -, 0, CLIP_RIGHT_BIT ); + CLIP( +, 0, CLIP_LEFT_BIT ); + CLIP( -, 1, CLIP_TOP_BIT ); + CLIP( +, 1, CLIP_BOTTOM_BIT ); + CLIP( -, 2, CLIP_FAR_BIT ); + CLIP( +, 2, CLIP_NEAR_BIT ); + + /* Convert the planar polygon to a list of triangles */ + out = inlist[in]; + + for ( i = 2 ; i < n ; i++ ) { + elts[0] = out[0]; + elts[1] = out[i-1]; + elts[2] = out[i]; + elts += 3; + } + + *p_next_vert = next_vert; + *p_elts = elts; +} + + +static __inline void radeon_line_clip( GLuint **p_elts, + radeonVertexPtr verts, + GLubyte *clipmask, + GLuint *p_next_vert, + GLubyte mask, + radeon_interp_func interp ) +{ + GLuint *elts = *p_elts; + GLfloat *I = verts[elts[0]].f; + GLfloat *J = verts[elts[1]].f; + GLuint next_vert = *p_next_vert; + + LINE_CLIP( 1, 0, 0, -1, CLIP_LEFT_BIT ); + LINE_CLIP( -1, 0, 0, 1, CLIP_RIGHT_BIT ); + LINE_CLIP( 0, 1, 0, -1, CLIP_TOP_BIT ); + LINE_CLIP( 0, -1, 0, 1, CLIP_BOTTOM_BIT ); + LINE_CLIP( 0, 0, 1, -1, CLIP_FAR_BIT ); + LINE_CLIP( 0, 0, -1, 1, CLIP_NEAR_BIT ); + + *p_next_vert = next_vert; + *p_elts += 2; +} + + + +#define CLIP_POINT( e ) \ +do { \ + if ( mask[e] ) *out++ = e; \ +} while (0) + +#define CLIP_LINE( e1, e0 ) \ +do { \ + GLubyte ormask = mask[e0] | mask[e1]; \ + out[0] = e1; \ + out[1] = e0; \ + out += 2; \ + if ( ormask ) { \ + out-=2; \ + if ( !(mask[e0] & mask[e1]) ) { \ + radeon_line_clip( &out, verts, mask, \ + &next_vert, ormask, interp ); \ + } \ + } \ +} while (0) + +#define CLIP_TRIANGLE( e2, e1, e0 ) \ +do { \ + GLubyte ormask; \ + out[0] = e2; \ + out[1] = e1; \ + out[2] = e0; \ + out += 3; \ + ormask = mask[e2] | mask[e1] | mask[e0]; \ + if ( ormask ) { \ + out -= 3; \ + if ( !(mask[e2] & mask[e1] & mask[e0]) ) { \ + radeon_tri_clip( &out, verts, mask, \ + &next_vert, ormask, interp ); \ + } \ + } \ +} while (0) + + + +/* Build a table of functions to clip each primitive type. These + * produce a list of elements in the appropriate 'reduced' primitive, + * ie (points, lines, triangles) containing all the clipped and + * unclipped primitives from the original list. + */ +#define LOCAL_VARS \ + radeonContextPtr rmesa = RADEON_CONTEXT(VB->ctx); \ + radeonVertexBufferPtr rvb = RADEON_DRIVER_DATA(VB); \ + GLuint *elt = VB->EltPtr->data; \ + radeonVertexPtr verts = rvb->verts; \ + GLuint next_vert = rvb->last_vert; \ + GLuint *out = rvb->clipped_elements.data; \ + GLubyte *mask = VB->ClipMask; \ + radeon_interp_func interp = rmesa->interp; \ + (void) interp; (void) verts; + +#define POSTFIX \ + rvb->clipped_elements.count = out - rvb->clipped_elements.data; \ + rvb->last_vert = next_vert; + + +#define INIT( x ) + +#define RENDER_POINTS( start, count ) \ +do { \ + GLuint i; \ + for ( i = start; i < count ; i++ ) \ + CLIP_POINT( elt[i] ); \ +} while (0) + +#define RENDER_LINE( i1, i0 ) \ +do { \ + CLIP_LINE( elt[i1], elt[i0] ); \ +} while (0) + +#define RENDER_TRI( i2, i1, i0, pv, parity ) \ +do { \ + GLuint e2 = elt[i2], e1 = elt[i1], e0 = elt[i0]; \ + if ( parity ) e2 = elt[i1], e1 = elt[i2]; \ + CLIP_TRIANGLE( e2, e1, e0 ); \ +} while (0) + +#define RENDER_QUAD( i3, i2, i1, i0, pv ) \ +do { \ + CLIP_TRIANGLE( elt[i3], elt[i2], elt[i0] ); \ + CLIP_TRIANGLE( elt[i2], elt[i1], elt[i0] ); \ +} while (0) + +#define TAG(x) radeon_##x##_clip_elt +#include "render_tmp.h" + + + +/* Pack rgba and/or texture into the remaining half of a 32 byte vertex. + */ +#define CLIP_UBYTE_COLOR 4 +#define CLIP_UBYTE_R 0 +#define CLIP_UBYTE_G 1 +#define CLIP_UBYTE_B 2 +#define CLIP_UBYTE_A 3 +#define CLIP_S0 6 +#define CLIP_T0 7 +#define CLIP_S1 8 +#define CLIP_T1 9 + +#define TYPE (0) +#define TAG(x) x +#include "radeon_fasttmp.h" + +#define TYPE (RADEON_RGBA_BIT) +#define TAG(x) x##_RGBA +#include "radeon_fasttmp.h" + +#define TYPE (RADEON_TEX0_BIT) +#define TAG(x) x##_TEX0 +#include "radeon_fasttmp.h" + +#define TYPE (RADEON_RGBA_BIT | RADEON_TEX0_BIT) +#define TAG(x) x##_RGBA_TEX0 +#include "radeon_fasttmp.h" + +#define TYPE (RADEON_RGBA_BIT | RADEON_TEX0_BIT | RADEON_TEX1_BIT) +#define TAG(x) x##_RGBA_TEX0_TEX1 +#include "radeon_fasttmp.h" + +/* This one *could* get away with sneaking TEX1 into the color and + * specular slots, thus fitting inside a cache line. Would be even + * better to switch to a smaller vertex. + */ +#define TYPE (RADEON_TEX0_BIT | RADEON_TEX1_BIT) +#define TAG(x) x##_TEX0_TEX1 +#include "radeon_fasttmp.h" + + + +static void radeon_render_elements_direct( struct vertex_buffer *VB ) +{ + GLcontext *ctx = VB->ctx; + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + GLenum prim = ctx->CVA.elt_mode; + GLuint nr = VB->EltPtr->count; + render_func func = radeon_render_tab_smooth_indirect[prim]; + GLuint p = 0; + + if ( rmesa->new_state ) + radeonDDUpdateHWState( ctx ); + + do { + func( VB, 0, nr, 0 ); + } while ( ctx->Driver.MultipassFunc && + ctx->Driver.MultipassFunc( VB, ++p ) ); +} + +/* GH: These should go away altogether on the Radeon. We should disable + * the viewport mapping entirely in Mesa and let the hardware do it in + * all cases. + */ +static void radeon_project_vertices( struct vertex_buffer *VB ) +{ + GLcontext *ctx = VB->ctx; + GLmatrix *mat = &ctx->Viewport.WindowMap; + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + radeonVertexBufferPtr rvb = RADEON_DRIVER_DATA(VB); + GLfloat *m = rmesa->tmp_matrix; + + m[MAT_SX] = mat->m[MAT_SX]; + m[MAT_TX] = mat->m[MAT_TX]; + m[MAT_SY] = -mat->m[MAT_SY]; + m[MAT_TY] = -mat->m[MAT_TY]; + m[MAT_SZ] = mat->m[MAT_SZ]; + m[MAT_TZ] = mat->m[MAT_TZ]; + + gl_project_v16( rvb->verts[VB->CopyStart].f, + rvb->verts[rvb->last_vert].f, + m, + 16 * 4 ); +} + +static void radeon_project_clipped_vertices( struct vertex_buffer *VB ) +{ + GLcontext *ctx = VB->ctx; + GLmatrix *mat = &ctx->Viewport.WindowMap; + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + radeonVertexBufferPtr rvb = RADEON_DRIVER_DATA(VB); + GLfloat *m = rmesa->tmp_matrix; + + m[MAT_SX] = mat->m[MAT_SX]; + m[MAT_TX] = mat->m[MAT_TX]; + m[MAT_SY] = -mat->m[MAT_SY]; + m[MAT_TY] = -mat->m[MAT_TY]; + m[MAT_SZ] = mat->m[MAT_SZ]; + m[MAT_TZ] = mat->m[MAT_TZ]; + + gl_project_clipped_v16( rvb->verts[VB->CopyStart].f, + rvb->verts[rvb->last_vert].f, + m, + 16 * 4, + VB->ClipMask + VB->CopyStart ); +} + +static struct radeon_fast_tab radeonFastTab[RADEON_MAX_SETUPFUNC]; + +void radeonDDFastPathInit( void ) +{ + radeon_render_init_clip_elt(); + radeon_render_init_smooth_indirect(); + + radeon_init_fastpath( &radeonFastTab[0] ); + radeon_init_fastpath_RGBA( &radeonFastTab[RADEON_RGBA_BIT] ); + radeon_init_fastpath_TEX0( &radeonFastTab[RADEON_TEX0_BIT] ); + radeon_init_fastpath_RGBA_TEX0( &radeonFastTab[(RADEON_RGBA_BIT | + RADEON_TEX0_BIT)] ); + radeon_init_fastpath_TEX0_TEX1( &radeonFastTab[(RADEON_TEX0_BIT | + RADEON_TEX1_BIT)] ); + radeon_init_fastpath_RGBA_TEX0_TEX1( &radeonFastTab[(RADEON_RGBA_BIT | + RADEON_TEX0_BIT | + RADEON_TEX1_BIT)] ); +} + +#define VALID_SETUP (RADEON_RGBA_BIT | RADEON_TEX0_BIT | RADEON_TEX1_BIT) + +void radeonDDFastPath( struct vertex_buffer *VB ) +{ + GLcontext *ctx = VB->ctx; + GLenum prim = ctx->CVA.elt_mode; + radeonContextPtr rmesa = RADEON_CONTEXT( ctx ); + struct radeon_fast_tab *tab = + &radeonFastTab[rmesa->SetupIndex & VALID_SETUP]; + GLuint do_cliptest = 1; + + gl_prepare_arrays_cva( VB ); /* still need this */ + + if ( ( gl_reduce_prim[prim] == GL_TRIANGLES ) && + ( VB->Count < (RADEON_BUFFER_SIZE / (10 * sizeof(GLuint))) ) && + ( ctx->ModelProjectMatrix.flags & (MAT_FLAG_GENERAL | + MAT_FLAG_PERSPECTIVE) ) ) + { + radeonDDEltPath( VB ); + return; + } + + /* Reserve enough space for the pathological case */ + if ( VB->EltPtr->count * 12 > RADEON_DRIVER_DATA(VB)->size ) { + radeonDDResizeVB( VB, VB->EltPtr->count * 12 ); + do_cliptest = 1; + } + + tab->build_vertices( VB, do_cliptest ); /* object->clip space */ + + if ( rmesa->new_state ) + radeonDDUpdateHWState( ctx ); + + if ( VB->ClipOrMask ) { + if ( !VB->ClipAndMask ) { + render_func *clip = radeon_render_tab_clip_elt; + + rmesa->interp = tab->interp; + + clip[prim]( VB, 0, VB->EltPtr->count, 0 ); /* build new elts */ + + ctx->CVA.elt_mode = gl_reduce_prim[prim]; + VB->EltPtr = &(RADEON_DRIVER_DATA(VB)->clipped_elements); + + radeon_project_clipped_vertices( VB ); /* clip->device space */ + radeon_render_elements_direct( VB ); /* render using new list */ + } + } else { + radeon_project_vertices( VB ); /* clip->device space */ + radeon_render_elements_direct( VB ); /* render using orig list */ + } + + /* This indicates that there is no cached data to reuse */ + VB->pipeline->data_valid = 0; + VB->pipeline->new_state = 0; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_fasttmp.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_fasttmp.h new file mode 100644 index 000000000..dc444aa8a --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_fasttmp.h @@ -0,0 +1,185 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_fasttmp.h,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Keith Whitwell <keithw@valinux.com> + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +/* The first part of setup is applied to all vertices, clipped or + * unclipped. This data w!ill be used for clipping, and then all + * vertices with a zero clipmask will be projected to device space. + * + * This could be split into several loops, but - it seems that the + * large stride of the fxVertices makes cache issues the big + * performance factor, and that multiple loops mean multiple cache + * misses.... + */ +static void TAG(radeon_setup_full)( struct vertex_buffer *VB, + GLuint do_cliptest ) +{ + GLcontext *ctx = VB->ctx; + radeonVertexBufferPtr rvb = RADEON_DRIVER_DATA(VB); + const GLfloat *m = ctx->ModelProjectMatrix.m; + GLuint start = VB->CopyStart; + GLuint count = VB->Count; + + gl_xform_points3_v16_general( rvb->verts[start].f, + m, + VB->ObjPtr->start, + VB->ObjPtr->stride, + count - start ); + + if ( do_cliptest ) { + VB->ClipAndMask = ~0; + VB->ClipOrMask = 0; + gl_cliptest_points4_v16( rvb->verts[start].f, + rvb->verts[count].f, + &(VB->ClipOrMask), + &(VB->ClipAndMask), + VB->ClipMask + start ); + } + + /* These branches are all resolved at compile time. Hopefully all + * the pointers are valid addresses even when not enabled. + */ + if ( TYPE ) { + GLubyte *color = VB->ColorPtr->start; + GLfloat *tex0_data = VB->TexCoordPtr[0]->start; + GLfloat *tex1_data = VB->TexCoordPtr[1]->start; + + GLuint color_stride = VB->ColorPtr->stride; + GLuint tex0_stride = VB->TexCoordPtr[0]->stride; + GLuint tex1_stride = VB->TexCoordPtr[1]->stride; + + GLfloat *f = rvb->verts[start].f; + GLfloat *end = f + (16 * (count - start)); + + while ( f != end ) { + if ( TYPE & RADEON_RGBA_BIT ) { +#if defined (USE_X86_ASM) + /* GH: Finally! Some damned hardware manufacturer uses + * little-endian RGBA for vertex color... + */ + __asm__ ( "movl (%%ecx), %%eax \n" + "movl %%eax, 16(%%edi) \n" + : + : "c" (color), "D" (f) + : "%eax" ); +#else + *(GLuint *)(f+CLIP_UBYTE_COLOR) = *(GLuint *)color; +#endif + } + if ( TYPE & RADEON_TEX0_BIT ) { +#if defined (USE_X86_ASM) + __asm__ ( "movl (%%ecx), %%eax \n" + "movl %%eax, 24(%%edi) \n" + "movl 4(%%ecx), %%eax \n" + "movl %%eax, 28(%%edi)" + : + : "c" (tex0_data), "D" (f) + : "%eax" ); +#else + *(GLuint *)(f+CLIP_S0) = *(GLuint *)tex0_data; + *(GLuint *)(f+CLIP_T0) = *(GLuint *)(tex0_data+1); +#endif + } + if ( TYPE & RADEON_TEX1_BIT ) { + /* Hits a second cache line. + */ +#if defined (USE_X86_ASM) + __asm__ ( "movl (%%esi), %%eax \n" + "movl %%eax, 32(%%edi) \n" + "movl 4(%%esi), %%eax \n" + "movl %%eax, 36(%%edi)" + : + : "S" (tex1_data), "D" (f) + : "%eax" ); +#else + *(GLuint *)(f+CLIP_S1) = *(GLuint *)tex1_data; + *(GLuint *)(f+CLIP_T1) = *(GLuint *)(tex1_data+1); +#endif + } + if ( TYPE & RADEON_RGBA_BIT ) color += color_stride; + if ( TYPE & RADEON_TEX0_BIT ) STRIDE_F( tex0_data, tex0_stride ); + if ( TYPE & RADEON_TEX1_BIT ) STRIDE_F( tex1_data, tex1_stride ); + f += 16; + } + } + + rvb->clipped_elements.count = start; + rvb->last_vert = count; +} + + +/* Changed to just put the interp func instead of the whole clip + * routine into the header. Less code and better chance of doing some + * of this stuff in assembly. + */ +static void TAG(radeon_interp_vert)( GLfloat t, + GLfloat *O, + const GLfloat *I, + const GLfloat *J ) +{ + O[0] = LINTERP( t, I[0], J[0] ); + O[1] = LINTERP( t, I[1], J[1] ); + O[2] = LINTERP( t, I[2], J[2] ); + O[3] = LINTERP( t, I[3], J[3] ); + + if ( TYPE & RADEON_RGBA_BIT ) { + INTERP_RGBA( t, + ((GLubyte *)&(O[4])), + ((GLubyte *)&(I[4])), + ((GLubyte *)&(J[4])) ); + } + + if ( TYPE & RADEON_TEX0_BIT ) { + O[6] = LINTERP( t, I[6], J[6] ); + O[7] = LINTERP( t, I[7], J[7] ); + } + + if ( TYPE & RADEON_TEX1_BIT ) { + O[8] = LINTERP( t, I[8], J[8] ); + O[9] = LINTERP( t, I[9], J[9] ); + } +} + + +static void TAG(radeon_init_fastpath)( struct radeon_fast_tab *tab ) +{ + tab->build_vertices = TAG(radeon_setup_full); + tab->interp = TAG(radeon_interp_vert); +} + +#undef TYPE +#undef TAG +#undef SIZE diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.c new file mode 100644 index 000000000..5273072e7 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.c @@ -0,0 +1,703 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.c,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_state.h" +#include "radeon_ioctl.h" + +#include "mem.h" + +#define RADEON_TIMEOUT 2048 +#define USE_IN_MEMORY_SCRATCH_REGS 0 + + +/* ============================================================= + * Hardware vertex buffer handling + */ + +/* Get a new VB from the pool of vertex buffers in AGP space. + */ +drmBufPtr radeonGetBufferLocked( radeonContextPtr rmesa ) +{ + int fd = rmesa->radeonScreen->driScreen->fd; + int index = 0; + int size = 0; + drmDMAReq dma; + drmBufPtr buf = NULL; + int to = 0; + int ret; + + dma.context = rmesa->hHWContext; + dma.send_count = 0; + dma.send_list = NULL; + dma.send_sizes = NULL; + dma.flags = 0; + dma.request_count = 1; + dma.request_size = RADEON_BUFFER_SIZE; + dma.request_list = &index; + dma.request_sizes = &size; + dma.granted_count = 0; + + while ( !buf && ( to++ < RADEON_TIMEOUT ) ) { + ret = drmDMA( fd, &dma ); + + if ( ret == 0 ) { + buf = &rmesa->radeonScreen->buffers->list[index]; + buf->used = 0; +#if ENABLE_PERF_BOXES + /* Bump the performance counter */ + rmesa->c_vertexBuffers++; +#endif + return buf; + } + } + + if ( !buf ) { + drmRadeonEngineReset( fd ); + UNLOCK_HARDWARE( rmesa ); + fprintf( stderr, "Error: Could not get new VB... exiting\n" ); + exit( -1 ); + } + + return buf; +} + +static GLboolean intersect_rect( XF86DRIClipRectPtr out, + XF86DRIClipRectPtr a, + XF86DRIClipRectPtr b ) +{ + *out = *a; + if ( b->x1 > out->x1 ) out->x1 = b->x1; + if ( b->y1 > out->y1 ) out->y1 = b->y1; + if ( b->x2 < out->x2 ) out->x2 = b->x2; + if ( b->y2 < out->y2 ) out->y2 = b->y2; + if ( out->x1 >= out->x2 ) return GL_FALSE; + if ( out->y1 >= out->y2 ) return GL_FALSE; + return GL_TRUE; +} + +void radeonFlushVerticesLocked( radeonContextPtr rmesa ) +{ + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + drmBufPtr buffer = rmesa->vert_buf; + int count = rmesa->num_verts; + int prim = RADEON_TRIANGLES; + int fd = rmesa->driScreen->fd; + int i; + + rmesa->vert_buf = NULL; + rmesa->num_verts = 0; + + if ( !buffer ) + return; + + if ( rmesa->dirty & ~RADEON_UPLOAD_CLIPRECTS ) + radeonEmitHwStateLocked( rmesa ); + + if ( !nbox ) + count = 0; + + if ( nbox >= RADEON_NR_SAREA_CLIPRECTS ) + rmesa->dirty |= RADEON_UPLOAD_CLIPRECTS; + + if ( !count || !(rmesa->dirty & RADEON_UPLOAD_CLIPRECTS) ) + { + if ( nbox == 1 ) { + rmesa->sarea->nbox = 0; + } else { + rmesa->sarea->nbox = nbox; + } + + drmRadeonFlushVertexBuffer( fd, prim, buffer->idx, count, 1 ); + } + else + { + for ( i = 0 ; i < nbox ; ) { + int nr = MIN2( i + RADEON_NR_SAREA_CLIPRECTS, nbox ); + XF86DRIClipRectPtr b = rmesa->sarea->boxes; + int discard = 0; + + if ( rmesa->scissor ) { + rmesa->sarea->nbox = 0; + + for ( ; i < nr ; i++ ) { + *b = pbox[i]; + if ( intersect_rect( b, b, &rmesa->scissor_rect ) ) { + rmesa->sarea->nbox++; + b++; + } + } + + /* Culled? + */ + if ( !rmesa->sarea->nbox ) { + if ( nr < nbox ) continue; + count = 0; + } + } else { + rmesa->sarea->nbox = nr - i; + for ( ; i < nr ; i++) { + *b++ = pbox[i]; + } + } + + /* Finished with the buffer? + */ + if ( nr == nbox ) { + discard = 1; + } + + rmesa->sarea->dirty |= RADEON_UPLOAD_CLIPRECTS; + drmRadeonFlushVertexBuffer( fd, prim, buffer->idx, count, discard ); + } + } + + rmesa->dirty &= ~RADEON_UPLOAD_CLIPRECTS; +} + + + +/* ================================================================ + * Indexed vertex buffer handling + */ + +void radeonGetEltBufLocked( radeonContextPtr rmesa ) +{ + rmesa->elt_buf = radeonGetBufferLocked( rmesa ); +} + +void radeonFireEltsLocked( radeonContextPtr rmesa, + GLuint start, GLuint end, + GLuint discard ) +{ + XF86DRIClipRectPtr pbox = rmesa->pClipRects; + int nbox = rmesa->numClipRects; + drmBufPtr buffer = rmesa->elt_buf; + int prim = RADEON_TRIANGLES; + int fd = rmesa->driScreen->fd; + int i; + + if ( !buffer ) + return; + + if ( rmesa->dirty & ~RADEON_UPLOAD_CLIPRECTS ) + radeonEmitHwStateLocked( rmesa ); + + if ( !nbox ) + end = start; + + if ( nbox >= RADEON_NR_SAREA_CLIPRECTS ) + rmesa->dirty |= RADEON_UPLOAD_CLIPRECTS; + + if ( start == end || !(rmesa->dirty & RADEON_UPLOAD_CLIPRECTS) ) + { + if ( nbox == 1 ) { + rmesa->sarea->nbox = 0; + } else { + rmesa->sarea->nbox = nbox; + } + + drmRadeonFlushIndices( fd, prim, buffer->idx, start, end, discard ); + } + else + { + for ( i = 0 ; i < nbox ; ) { + int nr = MIN2( i + RADEON_NR_SAREA_CLIPRECTS, nbox ); + XF86DRIClipRectPtr b = rmesa->sarea->boxes; + int d = 0; + + if ( rmesa->scissor ) { + rmesa->sarea->nbox = 0; + + for ( ; i < nr ; i++ ) { + *b = pbox[i]; + if ( intersect_rect( b, b, &rmesa->scissor_rect ) ) { + rmesa->sarea->nbox++; + b++; + } + } + + /* Culled? + */ + if ( !rmesa->sarea->nbox ) { + if ( nr < nbox ) continue; + end = start; + } + } else { + rmesa->sarea->nbox = nr - i; + for ( ; i < nr ; i++) { + *b++ = pbox[i]; + } + } + + /* Finished with the buffer? + */ + if ( nr == nbox ) { + d = discard; + } + + rmesa->sarea->dirty |= RADEON_UPLOAD_CLIPRECTS; + drmRadeonFlushIndices( fd, prim, buffer->idx, start, end, discard ); + } + } + + rmesa->dirty &= ~RADEON_UPLOAD_CLIPRECTS; +} + +void radeonFlushEltsLocked( radeonContextPtr rmesa ) +{ + if ( rmesa->first_elt != rmesa->next_elt ) { + radeonFireEltsLocked( rmesa, + ((GLuint)rmesa->first_elt - + (GLuint)rmesa->elt_buf->address), + ((GLuint)rmesa->next_elt - + (GLuint)rmesa->elt_buf->address), + 0 ); + + ALIGN_NEXT_ELT( rmesa ); + rmesa->first_elt = rmesa->next_elt; + } +} + +void radeonReleaseBufLocked( radeonContextPtr rmesa, drmBufPtr buffer ) +{ + int fd = rmesa->driScreen->fd; + + if ( !buffer ) + return; + + drmRadeonFlushVertexBuffer( fd, RADEON_TRIANGLES, buffer->idx, 0, 1 ); +} + + +/* Allocate some space in the current vertex buffer. If the current + * buffer is full, flush it and grab another one. + */ +CARD32 *radeonAllocVertices( radeonContextPtr rmesa, GLuint count ) +{ + return radeonAllocVerticesInline( rmesa, count ); +} + + +/* ================================================================ + * Texture uploads + */ + +void radeonFireBlitLocked( radeonContextPtr rmesa, drmBufPtr buffer, + GLint offset, GLint pitch, GLint format, + GLint x, GLint y, GLint width, GLint height ) +{ + GLint ret; + + ret = drmRadeonTextureBlit( rmesa->driFd, buffer->idx, + offset, pitch, format, + x, y, width, height ); + + if ( ret ) { + UNLOCK_HARDWARE( rmesa ); + fprintf( stderr, "drmRadeonTextureBlit: return = %d\n", ret ); + exit( 1 ); + } +} + + +/* ================================================================ + * SwapBuffers with client-side throttling + */ + +#define RADEON_MAX_OUTSTANDING 2 + +/* Throttle the frame rate -- only allow one pending swap buffers + * request at a time. + * GH: We probably don't want a timeout here, as we can wait as + * long as we want for a frame to complete. If it never does, then + * the card has locked. + */ +#if USE_IN_MEMORY_SCRATCH_REGS +static int radeonWaitForFrameCompletion( radeonContextPtr rmesa ) +{ + RADEONSAREAPrivPtr sarea = rmesa->sarea; + __volatile__ CARD32 *scratch = rmesa->radeonScreen->scratch; + CARD32 frame; + int wait = 0; + + while ( 1 ) { + /* Read the frame counter from the in-memory copy of the scratch + * register. Nifty, eh? Should significantly reduce the bus + * traffic for SwapBuffers-limited apps (generally pretty trivial + * ones, but anyway). + */ + frame = scratch[0]; + if ( sarea->last_frame - frame <= RADEON_MAX_OUTSTANDING ) { + break; + } + wait++; + } + + return wait; +} +#else +static void delay( void ) { +/* Prevent an optimizing compiler from removing a spin loop */ +} + +static int radeonWaitForFrameCompletion( radeonContextPtr rmesa ) +{ + unsigned char *RADEONMMIO = rmesa->radeonScreen->mmio.map; + RADEONSAREAPrivPtr sarea = rmesa->sarea; + CARD32 frame; + int wait = 0; + int i; + + while ( 1 ) { + frame = INREG( RADEON_LAST_FRAME_REG ); + if ( sarea->last_frame - frame <= RADEON_MAX_OUTSTANDING ) { + break; + } + wait++; + /* Spin in place a bit so we aren't hammering the bus */ + for ( i = 0 ; i < 1024 ; i++ ) { + delay(); + } + } + + return wait; +} +#endif + +/* Copy the back color buffer to the front color buffer. + */ +void radeonSwapBuffers( radeonContextPtr rmesa ) +{ + GLint nbox = rmesa->numClipRects; + GLint i; + GLint ret; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "\n%s( %p )\n\n", __FUNCTION__, rmesa->glCtx ); + } + + FLUSH_BATCH( rmesa ); + + LOCK_HARDWARE( rmesa ); + + /* Throttle the frame rate -- only allow one pending swap buffers + * request at a time. + */ + if ( !radeonWaitForFrameCompletion( rmesa ) ) { + rmesa->hardwareWentIdle = 1; + } else { + rmesa->hardwareWentIdle = 0; + } + + for ( i = 0 ; i < nbox ; ) { + GLint nr = MIN2( i + RADEON_NR_SAREA_CLIPRECTS , nbox ); + XF86DRIClipRectPtr box = rmesa->pClipRects; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; + GLint n = 0; + + for ( ; i < nr ; i++ ) { + *b++ = *(XF86DRIClipRectRec *)&box[i]; + n++; + } + rmesa->sarea->nbox = n; + + ret = drmRadeonSwapBuffers( rmesa->driFd ); + + if ( ret ) { + fprintf( stderr, "drmRadeonSwapBuffers: return = %d\n", ret ); + UNLOCK_HARDWARE( rmesa ); + exit( 1 ); + } + } + + UNLOCK_HARDWARE( rmesa ); + + rmesa->new_state |= RADEON_NEW_CONTEXT; + rmesa->dirty |= (RADEON_UPLOAD_CONTEXT | + RADEON_UPLOAD_MASKS | + RADEON_UPLOAD_CLIPRECTS); + +#if ENABLE_PERF_BOXES + /* Log the performance counters if necessary */ + radeonPerformanceCounters( rmesa ); +#endif +} + +void radeonPageFlip( radeonContextPtr rmesa ) +{ + GLint ret; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "\n%s( %p ): page=%d\n\n", + __FUNCTION__, rmesa->glCtx, rmesa->currentPage ); + } + + FLUSH_BATCH( rmesa ); + + LOCK_HARDWARE( rmesa ); + + /* Throttle the frame rate -- only allow one pending swap buffers + * request at a time. + */ + if ( !radeonWaitForFrameCompletion( rmesa ) ) { + rmesa->hardwareWentIdle = 1; + } else { + rmesa->hardwareWentIdle = 0; + } + + /* The kernel will have been initialized to perform page flipping + * on a swapbuffers ioctl. + */ + ret = drmRadeonSwapBuffers( rmesa->driFd ); + + UNLOCK_HARDWARE( rmesa ); + + if ( ret ) { + fprintf( stderr, "drmRadeonSwapBuffers: return = %d\n", ret ); + exit( 1 ); + } + + if ( rmesa->currentPage == 0 ) { + rmesa->drawOffset = rmesa->radeonScreen->frontOffset; + rmesa->drawPitch = rmesa->radeonScreen->frontPitch; + rmesa->currentPage = 1; + } else { + rmesa->drawOffset = rmesa->radeonScreen->backOffset; + rmesa->drawPitch = rmesa->radeonScreen->backPitch; + rmesa->currentPage = 0; + } + + rmesa->setup.rb3d_coloroffset = rmesa->drawOffset; + rmesa->setup.rb3d_colorpitch = rmesa->drawPitch; + + rmesa->new_state |= RADEON_NEW_WINDOW; + + /* FIXME: Do we need this anymore? */ + rmesa->new_state |= RADEON_NEW_CONTEXT; + rmesa->dirty |= (RADEON_UPLOAD_CONTEXT | + RADEON_UPLOAD_MASKS | + RADEON_UPLOAD_CLIPRECTS); + +#if ENABLE_PERF_BOXES + /* Log the performance counters if necessary */ + radeonPerformanceCounters( rmesa ); +#endif +} + + +/* ================================================================ + * Buffer clear + */ +#define RADEON_MAX_CLEARS 256 + +static GLbitfield radeonDDClear( GLcontext *ctx, GLbitfield mask, + GLboolean all, + GLint cx, GLint cy, GLint cw, GLint ch ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; + RADEONSAREAPrivPtr sarea = rmesa->sarea; +#if USE_IN_MEMORY_SCRATCH_REGS + __volatile__ CARD32 *scratch = rmesa->radeonScreen->scratch; +#else + unsigned char *RADEONMMIO = rmesa->radeonScreen->mmio.map; +#endif + CARD32 clear; + GLuint flags = 0; + GLint ret, i; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s: all=%d cx=%d cy=%d cw=%d ch=%d\n", + __FUNCTION__, all, cx, cy, cw, ch ); + } + + FLUSH_BATCH( rmesa ); + + /* Update and emit any new state. We need to do this here to catch + * changes to the masks. + * FIXME: Just update the masks? + */ + if ( rmesa->new_state ) + radeonDDUpdateHWState( ctx ); + + if ( mask & DD_FRONT_LEFT_BIT ) { + flags |= DRM_RADEON_FRONT; + mask &= ~DD_FRONT_LEFT_BIT; + } + + if ( mask & DD_BACK_LEFT_BIT ) { + flags |= DRM_RADEON_BACK; + mask &= ~DD_BACK_LEFT_BIT; + } + + if ( mask & DD_DEPTH_BIT ) { + if ( ctx->Depth.Mask ) { + flags |= DRM_RADEON_DEPTH; + } + mask &= ~DD_DEPTH_BIT; + } +#if 0 + /* FIXME: Add stencil support */ + if ( mask & DD_STENCIL_BIT ) { + flags |= DRM_RADEON_DEPTH; + mask &= ~DD_STENCIL_BIT; + } +#endif + + if ( !flags ) + return mask; + + /* Flip top to bottom */ + cx += dPriv->x; + cy = dPriv->y + dPriv->h - cy - ch; + + LOCK_HARDWARE( rmesa ); + + /* Throttle the number of clear ioctls we do. + */ +#if USE_IN_MEMORY_SCRATCH_REGS + while ( 1 ) { + clear = scratch[2]; + if ( sarea->last_clear - clear <= RADEON_MAX_CLEARS ) { + break; + } + } +#else + while ( 1 ) { + clear = INREG( RADEON_LAST_CLEAR_REG ); + if ( sarea->last_clear - clear <= RADEON_MAX_CLEARS ) { + break; + } + /* Spin in place a bit so we aren't hammering the bus */ + for ( i = 0 ; i < 1024 ; i++ ) { + delay(); + } + } +#endif + + if ( rmesa->dirty & ~RADEON_UPLOAD_CLIPRECTS ) { + radeonEmitHwStateLocked( rmesa ); + } + + for ( i = 0 ; i < rmesa->numClipRects ; ) { + GLint nr = MIN2( i + RADEON_NR_SAREA_CLIPRECTS, rmesa->numClipRects ); + XF86DRIClipRectPtr box = rmesa->pClipRects; + XF86DRIClipRectPtr b = rmesa->sarea->boxes; + GLint n = 0; + + if ( !all ) { + for ( ; i < nr ; i++ ) { + GLint x = box[i].x1; + GLint y = box[i].y1; + GLint w = box[i].x2 - x; + GLint h = box[i].y2 - y; + + if ( x < cx ) w -= cx - x, x = cx; + if ( y < cy ) h -= cy - y, y = cy; + if ( x + w > cx + cw ) w = cx + cw - x; + if ( y + h > cy + ch ) h = cy + ch - y; + if ( w <= 0 ) continue; + if ( h <= 0 ) continue; + + b->x1 = x; + b->y1 = y; + b->x2 = x + w; + b->y2 = y + h; + b++; + n++; + } + } else { + for ( ; i < nr ; i++ ) { + *b++ = *(XF86DRIClipRectRec *)&box[i]; + n++; + } + } + + rmesa->sarea->nbox = n; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_IOCTL ) { + fprintf( stderr, + "drmRadeonClear: flag 0x%x color %x depth %x nbox %d\n", + flags, + (GLuint)rmesa->ClearColor, + (GLuint)rmesa->ClearDepth, + rmesa->sarea->nbox ); + } + + ret = drmRadeonClear( rmesa->driFd, flags, + cx, cy, cw, ch, + rmesa->ClearColor, rmesa->ClearDepth ); + + if ( ret ) { + UNLOCK_HARDWARE( rmesa ); + fprintf( stderr, "drmRadeonClear: return = %d\n", ret ); + exit( 1 ); + } + } + + UNLOCK_HARDWARE( rmesa ); + + rmesa->dirty |= RADEON_UPLOAD_CLIPRECTS; + + return mask; +} + + +void radeonWaitForIdleLocked( radeonContextPtr rmesa ) +{ + int fd = rmesa->radeonScreen->driScreen->fd; + int to = 0; + int ret; + + do { + ret = drmRadeonWaitForIdleCP( fd ); + } while ( ( ret == -EBUSY ) && ( to++ < RADEON_TIMEOUT ) ); + + if ( ret < 0 ) { + drmRadeonEngineReset( fd ); + UNLOCK_HARDWARE( rmesa ); + fprintf( stderr, "Error: Radeon timed out... exiting\n" ); + exit( -1 ); + } +} + + +void radeonDDInitIoctlFuncs( GLcontext *ctx ) +{ + ctx->Driver.Clear = radeonDDClear; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.h new file mode 100644 index 000000000..7b22a8766 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.h @@ -0,0 +1,161 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_ioctl.h,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_IOCTL_H__ +#define __RADEON_IOCTL_H__ + +#ifdef GLX_DIRECT_RENDERING + +#include "radeon_dri.h" +#include "radeon_lock.h" + +#include "xf86drm.h" +#include "xf86drmRadeon.h" + +#define RADEON_BUFFER_MAX_DWORDS (RADEON_BUFFER_SIZE / sizeof(CARD32)) + + +extern drmBufPtr radeonGetBufferLocked( radeonContextPtr rmesa ); +extern void radeonFlushVerticesLocked( radeonContextPtr rmesa ); + +extern void radeonGetEltBufLocked( radeonContextPtr rmesa ); +extern void radeonFlushEltsLocked( radeonContextPtr rmesa ); +extern void radeonFireEltsLocked( radeonContextPtr rmesa, + GLuint start, GLuint end, + GLuint discard ); +extern void radeonReleaseBufLocked( radeonContextPtr rmesa, drmBufPtr buffer ); + +/* Make this available as both a regular and an inline function. + */ +extern CARD32 *radeonAllocVertices( radeonContextPtr rmesa, GLuint count ); + +static __inline CARD32 *radeonAllocVerticesInline( radeonContextPtr rmesa, + GLuint count ) +{ + int bytes = count * rmesa->vertsize * 4; + CARD32 *head; + + if ( !rmesa->vert_buf ) { + LOCK_HARDWARE( rmesa ); + + if ( rmesa->first_elt != rmesa->next_elt ) { + radeonFlushEltsLocked( rmesa ); + } + + rmesa->vert_buf = radeonGetBufferLocked( rmesa ); + + UNLOCK_HARDWARE( rmesa ); + } else if ( rmesa->vert_buf->used + bytes > rmesa->vert_buf->total ) { + LOCK_HARDWARE( rmesa ); + + radeonFlushVerticesLocked( rmesa ); + rmesa->vert_buf = radeonGetBufferLocked( rmesa ); + + UNLOCK_HARDWARE( rmesa ); + } + + head = (CARD32 *)((char *)rmesa->vert_buf->address + + rmesa->vert_buf->used); + + rmesa->vert_buf->used += bytes; + rmesa->num_verts += count; + return head; +} + +extern void radeonFireBlitLocked( radeonContextPtr rmesa, + drmBufPtr buffer, + GLint offset, GLint pitch, GLint format, + GLint x, GLint y, + GLint width, GLint height ); + +extern void radeonSwapBuffers( radeonContextPtr rmesa ); +extern void radeonPageFlip( radeonContextPtr rmesa ); + +extern void radeonWaitForIdleLocked( radeonContextPtr rmesa ); + + +extern void radeonDDInitIoctlFuncs( GLcontext *ctx ); + + +/* ================================================================ + * Helper macros: + */ + +#define FLUSH_BATCH( rmesa ) \ +do { \ + if ( RADEON_DEBUG & DEBUG_VERBOSE_IOCTL ) \ + fprintf( stderr, "FLUSH_BATCH in %s\n", __FUNCTION__ ); \ + if ( rmesa->vert_buf ) { \ + radeonFlushVertices( rmesa ); \ + } else if ( rmesa->next_elt != rmesa->first_elt ) { \ + radeonFlushElts( rmesa ); \ + } \ +} while (0) + +/* 64-bit align the next element address, and then make room for the + * next indexed prim packet header. + */ +#define ALIGN_NEXT_ELT( rmesa ) \ +do { \ + rmesa->next_elt = (GLushort *) \ + (((GLuint)rmesa->next_elt + 7) & ~0x7); \ + rmesa->next_elt = (GLushort *) \ + ((GLubyte *)rmesa->next_elt + RADEON_INDEX_PRIM_OFFSET); \ +} while (0) + +#define radeonFlushVertices( rmesa ) \ +do { \ + LOCK_HARDWARE( rmesa ); \ + radeonFlushVerticesLocked( rmesa ); \ + UNLOCK_HARDWARE( rmesa ); \ +} while (0) + +#define radeonFlushElts( rmesa ) \ +do { \ + LOCK_HARDWARE( rmesa ); \ + radeonFlushEltsLocked( rmesa ); \ + UNLOCK_HARDWARE( rmesa ); \ +} while (0) + +#define radeonWaitForIdle( rmesa ) \ +do { \ + LOCK_HARDWARE( rmesa ); \ + radeonWaitForIdleLocked( rmesa ); \ + UNLOCK_HARDWARE( rmesa ); \ +} while (0) + +#endif +#endif /* __RADEON_IOCTL_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_lock.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_lock.c new file mode 100644 index 000000000..65658e997 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_lock.c @@ -0,0 +1,95 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_lock.c,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_lock.h" +#include "radeon_tex.h" + +#if DEBUG_LOCKING +char *prevLockFile = NULL; +int prevLockLine = 0; +#endif + + +/* Update the hardware state. This is called if another context has + * grabbed the hardware lock, which includes the X server. This + * function also updates the driver's window state after the X server + * moves, resizes or restacks a window -- the change will be reflected + * in the drawable position and clip rects. Since the X server grabs + * the hardware lock when it changes the window state, this routine will + * automatically be called after such a change. + */ +void radeonGetLock( radeonContextPtr rmesa, GLuint flags ) +{ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; + __DRIscreenPrivate *sPriv = rmesa->driScreen; + RADEONSAREAPrivPtr sarea = rmesa->sarea; + int stamp = dPriv->lastStamp; + int i; + + drmGetLock( rmesa->driFd, rmesa->hHWContext, flags ); + + /* The window might have moved, so we might need to get new clip + * rects. + * + * NOTE: This releases and regrabs the hw lock to allow the X server + * to respond to the DRI protocol request for new drawable info. + * Since the hardware state depends on having the latest drawable + * clip rects, all state checking must be done _after_ this call. + */ + XMESA_VALIDATE_DRAWABLE_INFO( rmesa->display, sPriv, dPriv ); + + if ( stamp != dPriv->lastStamp ) { + rmesa->new_state |= RADEON_NEW_WINDOW | RADEON_NEW_CLIP; + rmesa->SetupDone = 0; + } + + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_CLIPRECTS; + + rmesa->numClipRects = dPriv->numClipRects; + rmesa->pClipRects = dPriv->pClipRects; + + if ( sarea->ctxOwner != rmesa->hHWContext ) { + sarea->ctxOwner = rmesa->hHWContext; + rmesa->dirty = RADEON_UPLOAD_ALL; + } + + for ( i = 0 ; i < rmesa->lastTexHeap ; i++ ) { + if ( sarea->texAge[i] != rmesa->lastTexAge[i] ) { + radeonAgeTextures( rmesa, i ); + } + } +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_lock.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_lock.h new file mode 100644 index 000000000..7cdb1b23d --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_lock.h @@ -0,0 +1,112 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_lock.h,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_LOCK_H__ +#define __RADEON_LOCK_H__ + +#ifdef GLX_DIRECT_RENDERING + +extern void radeonGetLock( radeonContextPtr rmesa, GLuint flags ); + +/* Turn DEBUG_LOCKING on to find locking conflicts. + */ +#define DEBUG_LOCKING 0 + +#if DEBUG_LOCKING +extern char *prevLockFile; +extern int prevLockLine; + +#define DEBUG_LOCK() \ + do { \ + prevLockFile = (__FILE__); \ + prevLockLine = (__LINE__); \ + } while (0) + +#define DEBUG_RESET() \ + do { \ + prevLockFile = 0; \ + prevLockLine = 0; \ + } while (0) + +#define DEBUG_CHECK_LOCK() \ + do { \ + if ( prevLockFile ) { \ + fprintf( stderr, \ + "LOCK SET!\n\tPrevious %s:%d\n\tCurrent: %s:%d\n", \ + prevLockFile, prevLockLine, __FILE__, __LINE__ ); \ + exit( 1 ); \ + } \ + } while (0) + +#else + +#define DEBUG_LOCK() +#define DEBUG_RESET() +#define DEBUG_CHECK_LOCK() + +#endif + +/* + * !!! We may want to separate locks from locks with validation. This + * could be used to improve performance for those things commands that + * do not do any drawing !!! + */ + +/* Lock the hardware and validate our state. + */ +#define LOCK_HARDWARE( rmesa ) \ + do { \ + char __ret = 0; \ + DEBUG_CHECK_LOCK(); \ + DRM_CAS( rmesa->driHwLock, rmesa->hHWContext, \ + (DRM_LOCK_HELD | rmesa->hHWContext), __ret ); \ + if ( __ret ) \ + radeonGetLock( rmesa, 0 ); \ + DEBUG_LOCK(); \ + } while (0) + +/* Unlock the hardware. + */ +#define UNLOCK_HARDWARE( rmesa ) \ + do { \ + DRM_UNLOCK( rmesa->driFd, \ + rmesa->driHwLock, \ + rmesa->hHWContext ); \ + DEBUG_RESET(); \ + } while (0) + +#endif +#endif /* __RADEON_LOCK_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.c new file mode 100644 index 000000000..fe0eb013e --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.c @@ -0,0 +1,168 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.c,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_vb.h" +#include "radeon_pipeline.h" + +#include "types.h" +#include "fog.h" + +static struct gl_pipeline_stage radeon_fast_stage = { + "Radeon Fast Path", + (PIPE_OP_VERT_XFORM | + PIPE_OP_RAST_SETUP_0 | + PIPE_OP_RAST_SETUP_1 | + PIPE_OP_RENDER), + PIPE_PRECALC, + 0, 0, 0, 0, 0, 0, 0, 0, 0, + radeonDDFastPath +}; + +#define ILLEGAL_ENABLES (TEXTURE0_3D | \ + TEXTURE1_3D | \ + ENABLE_TEXMAT0 | \ + ENABLE_TEXMAT1 | \ + ENABLE_TEXGEN0 | \ + ENABLE_TEXGEN1 | \ + ENABLE_USERCLIP | \ + ENABLE_LIGHT | \ + ENABLE_FOG) + +/* Build the PRECALC pipeline with our stage, if possible. Otherwise, + * return GL_FALSE. + */ +GLboolean radeonDDBuildPrecalcPipeline( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct gl_pipeline *pipe = &ctx->CVA.pre; + + if ( rmesa->RenderIndex == 0 && + (ctx->Enabled & ILLEGAL_ENABLES) == 0 && + (ctx->Array.Flags & (VERT_OBJ_234 | + VERT_TEX0_4 | + VERT_TEX1_4 | + VERT_ELT)) == (VERT_OBJ_23 | VERT_ELT) ) + { + pipe->stages[0] = &radeon_fast_stage; + pipe->stages[1] = 0; + pipe->new_inputs = ctx->RenderFlags & VERT_DATA; + pipe->ops = pipe->stages[0]->ops; + + rmesa->OnFastPath = GL_TRUE; + return GL_TRUE; + } + + if ( rmesa->OnFastPath ) { + rmesa->OnFastPath = GL_FALSE; + + ctx->CVA.VB->ClipOrMask = 0; + ctx->CVA.VB->ClipAndMask = CLIP_ALL_BITS; + ctx->Array.NewArrayState |= ctx->Array.Summary; + } + + return GL_FALSE; +} + + +/* Still do the normal fixup and copy-to-current, so this isn't so + * bad. + */ +#define ILLEGAL_INPUTS_IMM (VERT_OBJ_4 | \ + VERT_TEX0_4 | \ + VERT_TEX1_4 | \ + VERT_MATERIAL) + +static void radeonDDCheckRasterSetup( GLcontext *ctx, + struct gl_pipeline_stage *d ) +{ + d->type = PIPE_IMMEDIATE | PIPE_PRECALC; + d->inputs = ctx->RenderFlags; + + /* Radeon requires an extra input: + */ + if ( ctx->FogMode == FOG_FRAGMENT ) + d->inputs |= VERT_FOG_COORD; + + d->outputs = VERT_SETUP_FULL; + + if ( ctx->IndirectTriangles & DD_SW_SETUP ) + d->type = PIPE_IMMEDIATE; +} + + +GLuint radeonDDRegisterPipelineStages( struct gl_pipeline_stage *out, + const struct gl_pipeline_stage *in, + GLuint nr ) +{ + int i, o; + + for ( i = o = 0 ; i < nr ; i++ ) { + switch ( in[i].ops ) { + /* Completely replace Mesa's fog processing to generate fog + * coordinates instead of messing with colors. + */ + case PIPE_OP_FOG: + out[o] = gl_fog_coord_stage; + o++; + break; + + case PIPE_OP_RAST_SETUP_0: + out[o] = in[i]; + out[o].cva_state_change = (NEW_LIGHTING | + NEW_TEXTURING | + NEW_RASTER_OPS); + out[o].state_change = ~0; + out[o].check = radeonDDCheckPartialRasterSetup; + out[o].run = radeonDDPartialRasterSetup; + o++; + break; + + case PIPE_OP_RAST_SETUP_0 | PIPE_OP_RAST_SETUP_1: + out[o] = in[i]; + out[o].check = radeonDDCheckRasterSetup; + out[o].run = radeonDDDoRasterSetup; + o++; + break; + + default: + out[o++] = in[i]; + break; + } + } + + return o; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.h new file mode 100644 index 000000000..1af4e3eec --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.h @@ -0,0 +1,54 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_pipeline.h,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_PIPELINE_H__ +#define __RADEON_PIPELINE_H__ + +#ifdef GLX_DIRECT_RENDERING + +extern GLboolean radeonDDBuildPrecalcPipeline( GLcontext *ctx ); +extern GLuint radeonDDRegisterPipelineStages( struct gl_pipeline_stage *out, + const struct gl_pipeline_stage *in, + GLuint nr ); + +extern void radeonDDFastPathInit( void ); +extern void radeonDDFastPath( struct vertex_buffer *VB ); + +extern void radeonDDEltPathInit( void ); +extern void radeonDDEltPath( struct vertex_buffer *VB ); + +#endif +#endif diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_screen.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_screen.c new file mode 100644 index 000000000..e3cb90812 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_screen.c @@ -0,0 +1,220 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_screen.c,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_dri.h" + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_tris.h" +#include "radeon_vb.h" +#include "radeon_pipeline.h" + +#include "mem.h" + +#if 1 +/* Including xf86PciInfo.h introduces a bunch of errors... + */ +#define PCI_CHIP_RADEON_QD 0x5144 +#define PCI_CHIP_RADEON_QE 0x5145 +#define PCI_CHIP_RADEON_QF 0x5146 +#define PCI_CHIP_RADEON_QG 0x5147 +#endif + + +/* Create the device specific screen private data struct. + */ +radeonScreenPtr radeonCreateScreen( __DRIscreenPrivate *sPriv ) +{ + radeonScreenPtr radeonScreen; + RADEONDRIPtr radeonDRIPriv = (RADEONDRIPtr)sPriv->pDevPriv; + + /* Check the DRI version */ + { + int major, minor, patch; + if ( XF86DRIQueryVersion( sPriv->display, &major, &minor, &patch ) ) { + if ( major != 3 || minor != 1 || patch < 0 ) { + char msg[128]; + sprintf( msg, "Radeon DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch ); + __driMesaMessage( msg ); + return GL_FALSE; + } + } + } + + /* Check that the DDX driver version is compatible */ + if ( sPriv->ddxMajor != 4 || + sPriv->ddxMinor != 0 || + sPriv->ddxPatch < 0 ) { + char msg[128]; + sprintf( msg, "Radeon DRI driver expected DDX driver version 4.0.x but got version %d.%d.%d", sPriv->ddxMajor, sPriv->ddxMinor, sPriv->ddxPatch ); + __driMesaMessage( msg ); + return GL_FALSE; + } + + /* Check that the DRM driver version is compatible */ + if ( sPriv->drmMajor != 1 || + sPriv->drmMinor != 0 || + sPriv->drmPatch < 0 ) { + char msg[128]; + sprintf( msg, "Radeon DRI driver expected DRM driver version 2.1.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch ); + __driMesaMessage( msg ); + return GL_FALSE; + } + + /* Allocate the private area */ + radeonScreen = (radeonScreenPtr) CALLOC( sizeof(*radeonScreen) ); + if ( !radeonScreen ) return NULL; + + /* This is first since which regions we map depends on whether or + * not we are using a PCI card. + */ + radeonScreen->IsPCI = radeonDRIPriv->IsPCI; + + radeonScreen->mmio.handle = radeonDRIPriv->registerHandle; + radeonScreen->mmio.size = radeonDRIPriv->registerSize; + if ( drmMap( sPriv->fd, + radeonScreen->mmio.handle, + radeonScreen->mmio.size, + &radeonScreen->mmio.map ) ) { + FREE( radeonScreen ); + return NULL; + } + + radeonScreen->status.handle = radeonDRIPriv->statusHandle; + radeonScreen->status.size = radeonDRIPriv->statusSize; + if ( drmMap( sPriv->fd, + radeonScreen->status.handle, + radeonScreen->status.size, + &radeonScreen->status.map ) ) { + drmUnmap( radeonScreen->mmio.map, radeonScreen->mmio.size ); + FREE( radeonScreen ); + return NULL; + } + radeonScreen->scratch = (__volatile__ CARD32 *) + ((GLubyte *)radeonScreen->status.map + RADEON_SCRATCH_REG_OFFSET); + + radeonScreen->buffers = drmMapBufs( sPriv->fd ); + if ( !radeonScreen->buffers ) { + drmUnmap( radeonScreen->status.map, radeonScreen->status.size ); + drmUnmap( radeonScreen->mmio.map, radeonScreen->mmio.size ); + FREE( radeonScreen ); + return NULL; + } + + if ( !radeonScreen->IsPCI ) { + radeonScreen->agpTextures.handle = radeonDRIPriv->agpTexHandle; + radeonScreen->agpTextures.size = radeonDRIPriv->agpTexMapSize; + if ( drmMap( sPriv->fd, + radeonScreen->agpTextures.handle, + radeonScreen->agpTextures.size, + (drmAddressPtr)&radeonScreen->agpTextures.map ) ) { + drmUnmapBufs( radeonScreen->buffers ); + drmUnmap( radeonScreen->status.map, radeonScreen->status.size ); + drmUnmap( radeonScreen->mmio.map, radeonScreen->mmio.size ); + FREE( radeonScreen ); + return NULL; + } + } + + + switch ( radeonDRIPriv->deviceID ) { + case PCI_CHIP_RADEON_QD: + case PCI_CHIP_RADEON_QE: + case PCI_CHIP_RADEON_QF: + case PCI_CHIP_RADEON_QG: + radeonScreen->chipset = RADEON_CARD_TYPE_RADEON; + break; + default: + radeonScreen->chipset = RADEON_CARD_TYPE_RADEON; + break; + } + + radeonScreen->cpp = radeonDRIPriv->bpp / 8; + radeonScreen->AGPMode = radeonDRIPriv->AGPMode; + + radeonScreen->frontOffset = radeonDRIPriv->frontOffset; + radeonScreen->frontPitch = radeonDRIPriv->frontPitch; + radeonScreen->backOffset = radeonDRIPriv->backOffset; + radeonScreen->backPitch = radeonDRIPriv->backPitch; + radeonScreen->depthOffset = radeonDRIPriv->depthOffset; + radeonScreen->depthPitch = radeonDRIPriv->depthPitch; + + radeonScreen->texOffset[RADEON_CARD_HEAP] = radeonDRIPriv->textureOffset; + radeonScreen->texSize[RADEON_CARD_HEAP] = radeonDRIPriv->textureSize; + radeonScreen->logTexGranularity[RADEON_CARD_HEAP] = + radeonDRIPriv->log2TexGran; + + if ( radeonScreen->IsPCI ) { + radeonScreen->numTexHeaps = RADEON_NR_TEX_HEAPS - 1; + radeonScreen->texOffset[RADEON_AGP_HEAP] = 0; + radeonScreen->texSize[RADEON_AGP_HEAP] = 0; + radeonScreen->logTexGranularity[RADEON_AGP_HEAP] = 0; + } else { + radeonScreen->numTexHeaps = RADEON_NR_TEX_HEAPS; + radeonScreen->texOffset[RADEON_AGP_HEAP] = + radeonDRIPriv->agpTexOffset + RADEON_AGP_TEX_OFFSET; + radeonScreen->texSize[RADEON_AGP_HEAP] = radeonDRIPriv->agpTexMapSize; + radeonScreen->logTexGranularity[RADEON_AGP_HEAP] = + radeonDRIPriv->log2AGPTexGran; + } + + radeonScreen->driScreen = sPriv; + + radeonDDSetupInit(); + radeonDDTriangleFuncsInit(); + radeonDDFastPathInit(); + radeonDDEltPathInit(); + + return radeonScreen; +} + +/* Destroy the device specific screen private data struct. + */ +void radeonDestroyScreen( __DRIscreenPrivate *sPriv ) +{ + radeonScreenPtr radeonScreen = (radeonScreenPtr)sPriv->private; + + if ( !radeonScreen->IsPCI ) { + drmUnmap( radeonScreen->agpTextures.map, + radeonScreen->agpTextures.size ); + } + drmUnmapBufs( radeonScreen->buffers ); + drmUnmap( radeonScreen->status.map, radeonScreen->status.size ); + drmUnmap( radeonScreen->mmio.map, radeonScreen->mmio.size ); + + FREE( radeonScreen ); + sPriv->private = NULL; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_screen.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_screen.h new file mode 100644 index 000000000..852e4f30a --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_screen.h @@ -0,0 +1,87 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_screen.h,v 1.1 2001/01/08 01:07:27 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_SCREEN_H__ +#define __RADEON_SCREEN_H__ + +#ifdef GLX_DIRECT_RENDERING + +#include "radeon_sarea.h" + +typedef struct { + drmHandle handle; /* Handle to the DRM region */ + drmSize size; /* Size of the DRM region */ + drmAddress map; /* Mapping of the DRM region */ +} radeonRegionRec, *radeonRegionPtr; + +typedef struct { + + GLint chipset; + GLint cpp; + GLint IsPCI; /* Current card is a PCI card */ + GLint AGPMode; + + GLuint frontOffset; + GLuint frontPitch; + GLuint backOffset; + GLuint backPitch; + + GLuint depthOffset; + GLuint depthPitch; + + /* Shared texture data */ + int numTexHeaps; + int texOffset[RADEON_NR_TEX_HEAPS]; + int texSize[RADEON_NR_TEX_HEAPS]; + int logTexGranularity[RADEON_NR_TEX_HEAPS]; + + radeonRegionRec mmio; + radeonRegionRec status; + radeonRegionRec agpTextures; + + drmBufMapPtr buffers; + + __volatile__ CARD32 *scratch; + + __DRIscreenPrivate *driScreen; + +} radeonScreenRec, *radeonScreenPtr; + +extern radeonScreenPtr radeonCreateScreen( __DRIscreenPrivate *sPriv ); +extern void radeonDestroyScreen( __DRIscreenPrivate *sPriv ); + +#endif +#endif /* __RADEON_SCREEN_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_span.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_span.c new file mode 100644 index 000000000..74ce2c827 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_span.c @@ -0,0 +1,346 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_span.c,v 1.2 2001/01/16 05:10:58 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * Keith Whitwell <keithw@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "radeon_span.h" + +#define DBG 0 + +#define LOCAL_VARS \ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \ + radeonScreenPtr radeonScreen = rmesa->radeonScreen; \ + __DRIscreenPrivate *sPriv = rmesa->driScreen; \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ + GLuint pitch = radeonScreen->frontPitch * radeonScreen->cpp; \ + GLuint height = dPriv->h; \ + char *buf = (char *)(sPriv->pFB + \ + rmesa->drawOffset + \ + (dPriv->x * radeonScreen->cpp) + \ + (dPriv->y * pitch)); \ + char *read_buf = (char *)(sPriv->pFB + \ + rmesa->readOffset + \ + (dPriv->x * radeonScreen->cpp) + \ + (dPriv->y * pitch)); \ + GLushort p; \ + (void) read_buf; (void) buf; (void) p + +#define LOCAL_DEPTH_VARS \ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \ + radeonScreenPtr radeonScreen = rmesa->radeonScreen; \ + __DRIscreenPrivate *sPriv = rmesa->driScreen; \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ + GLuint height = dPriv->h; \ + GLuint xo = dPriv->x; \ + GLuint yo = dPriv->y; \ + char *buf = (char *)(sPriv->pFB + radeonScreen->depthOffset); \ + (void) buf + +#define LOCAL_STENCIL_VARS LOCAL_DEPTH_VARS + +#define INIT_MONO_PIXEL( p ) p = rmesa->Color + +#define CLIPPIXEL( _x, _y ) \ + ((_x >= minx) && (_x < maxx) && (_y >= miny) && (_y < maxy)) + + +#define CLIPSPAN( _x, _y, _n, _x1, _n1, _i ) \ + if ((_y < miny) || (_y >= maxy)) { \ + _n1 = 0, _x1 = x; \ + } else { \ + _n1 = _n; \ + _x1 = _x; \ + if (_x1 < minx) _i += (minx - _x1), _x1 = minx; \ + if (_x1 + _n1 >= maxx) n1 -= (_x1 + n1 - maxx); \ + } + +#define Y_FLIP( _y ) (height - _y - 1) + + +#define HW_LOCK() \ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \ + FLUSH_BATCH( rmesa ); \ + LOCK_HARDWARE( rmesa ); \ + radeonWaitForIdleLocked( rmesa ); + +#define HW_CLIPLOOP() \ + do { \ + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; \ + int _nc = dPriv->numClipRects; \ + \ + while ( _nc-- ) { \ + int minx = dPriv->pClipRects[_nc].x1 - dPriv->x; \ + int miny = dPriv->pClipRects[_nc].y1 - dPriv->y; \ + int maxx = dPriv->pClipRects[_nc].x2 - dPriv->x; \ + int maxy = dPriv->pClipRects[_nc].y2 - dPriv->y; + +#define HW_ENDCLIPLOOP() \ + } \ + } while (0) + +#define HW_UNLOCK() \ + UNLOCK_HARDWARE( rmesa ) + + + +/* ================================================================ + * Color buffer + */ + +/* 16 bit, RGB565 color spanline and pixel functions + */ +#define WRITE_RGBA( _x, _y, r, g, b, a ) \ + *(GLushort *)(buf + _x*2 + _y*pitch) = ((((int)r & 0xf8) << 8) | \ + (((int)g & 0xfc) << 3) | \ + (((int)b & 0xf8) >> 3)) + +#define WRITE_PIXEL( _x, _y, p ) \ + *(GLushort *)(buf + _x*2 + _y*pitch) = p + +#define READ_RGBA( rgba, _x, _y ) \ + do { \ + GLushort p = *(GLushort *)(read_buf + _x*2 + _y*pitch); \ + rgba[0] = (p >> 8) & 0xf8; \ + rgba[1] = (p >> 3) & 0xfc; \ + rgba[2] = (p << 3) & 0xf8; \ + rgba[3] = 0xff; \ + if ( rgba[0] & 0x08 ) rgba[0] |= 0x07; \ + if ( rgba[1] & 0x04 ) rgba[1] |= 0x03; \ + if ( rgba[2] & 0x08 ) rgba[2] |= 0x07; \ + } while (0) + +#define TAG(x) radeon##x##_RGB565 +#include "spantmp.h" + +/* 32 bit, ARGB8888 color spanline and pixel functions + */ +#define WRITE_RGBA( _x, _y, r, g, b, a ) \ + *(GLuint *)(buf + _x*4 + _y*pitch) = ((b << 0) | \ + (g << 8) | \ + (r << 16) | \ + (a << 24) ) + +#define WRITE_PIXEL( _x, _y, p ) \ + *(GLuint *)(buf + _x*4 + _y*pitch) = p + +#define READ_RGBA( rgba, _x, _y ) \ +do { \ + GLuint p = *(GLuint *)(read_buf + _x*4 + _y*pitch); \ + rgba[0] = (p >> 16) & 0xff; \ + rgba[1] = (p >> 8) & 0xff; \ + rgba[2] = (p >> 0) & 0xff; \ + rgba[3] = (p >> 24) & 0xff; \ +} while (0) + +#define TAG(x) radeon##x##_ARGB8888 +#include "spantmp.h" + + + +/* ================================================================ + * Depth buffer + */ + +/* The Radeon has depth tiling on all the time, so we have to convert + * the x,y coordinates into the memory bus address (mba) in the same + * manner as the engine. In each case, the linear block address (ba) + * is calculated, and then wired with x and y to produce the final + * memory address. + */ +static __inline GLuint radeon_mba_z16( radeonContextPtr rmesa, + GLint x, GLint y ) +{ + radeonScreenPtr radeonScreen = rmesa->radeonScreen; + GLuint pitch = radeonScreen->frontPitch; + GLuint ba, address = 0; /* a[0] = 0 */ + + ba = (y / 16) * (pitch / 32) + (x / 32); + + address |= (x & 0x7) << 1; /* a[1..3] = x[0..2] */ + address |= (y & 0x7) << 4; /* a[4..6] = y[0..2] */ + address |= (x & 0x8) << 4; /* a[7] = x[3] */ + address |= (ba & 0x3) << 8; /* a[8..9] = ba[0..1] */ + address |= (y & 0x8) << 7; /* a[10] = y[3] */ + address |= ((x & 0x10) ^ (y & 0x10)) << 7; /* a[11] = x[4] ^ y[4] */ + address |= (ba & ~0x3) << 10; /* a[12..] = ba[2..] */ + + return address; +} + +static GLuint radeon_mba_z32( radeonContextPtr rmesa, + GLint x, GLint y ) +{ + radeonScreenPtr radeonScreen = rmesa->radeonScreen; + GLuint pitch = radeonScreen->frontPitch; + GLuint ba, address = 0; /* a[0..1] = 0 */ + + ba = (y / 16) * (pitch / 16) + (x / 16); + + address |= (x & 0x7) << 2; /* a[2..4] = x[0..2] */ + address |= (y & 0x3) << 5; /* a[5..6] = y[0..1] */ + address |= + (((x & 0x10) >> 2) ^ (y & 0x4)) << 5; /* a[7] = x[4] ^ y[2] */ + address |= (ba & 0x3) << 8; /* a[8..9] = ba[0..1] */ + + address |= (y & 0x8) << 7; /* a[10] = y[3] */ + address |= + (((x & 0x8) << 1) ^ (y & 0x10)) << 7; /* a[11] = x[3] ^ y[4] */ + address |= (ba & ~0x3) << 10; /* a[12..] = ba[2..] */ + + return address; +} + + +/* 16-bit depth buffer functions + */ +#define WRITE_DEPTH( _x, _y, d ) \ + *(GLushort *)(buf + radeon_mba_z16( rmesa, _x+xo, _y+yo )) = d; + +#define READ_DEPTH( d, _x, _y ) \ + d = *(GLushort *)(buf + radeon_mba_z16( rmesa, _x+xo, _y+yo )); + +#define TAG(x) radeon##x##_16 +#include "depthtmp.h" + +/* 24 bit depth, 8 bit stencil depthbuffer functions + */ +#define WRITE_DEPTH( _x, _y, d ) \ +do { \ + GLuint offset = radeon_mba_z32( rmesa, _x+xo, _y+yo ); \ + GLuint tmp = *(GLuint *)(buf + offset); \ + tmp &= 0xff000000; \ + tmp |= ((d) & 0x00ffffff); \ + *(GLuint *)(buf + offset) = tmp; \ +} while (0) + +#define READ_DEPTH( d, _x, _y ) \ + d = *(GLuint *)(buf + radeon_mba_z32( rmesa, _x+xo, _y+yo )) & 0x00ffffff; + +#define TAG(x) radeon##x##_24_8 +#include "depthtmp.h" + + +/* ================================================================ + * Stencil buffer + */ + +/* 24 bit depth, 8 bit stencil depthbuffer functions + */ +#define WRITE_STENCIL( _x, _y, d ) \ +do { \ + GLuint offset = radeon_mba_z32( rmesa, _x+xo, _y+yo ); \ + GLuint tmp = *(GLuint *)(buf + offset); \ + tmp &= 0x00ffffff; \ + tmp |= (((d) & 0xff) << 24); \ + *(GLuint *)(buf + offset) = tmp; \ +} while (0) + +#define READ_STENCIL( d, _x, _y ) \ +do { \ + GLuint offset = radeon_mba_z32( rmesa, _x+xo, _y+yo ); \ + GLuint tmp = *(GLuint *)(buf + offset); \ + tmp &= 0xff000000; \ + d = tmp >> 24; \ +} while (0) + +#define TAG(x) radeon##x##_24_8 +#include "stenciltmp.h" + + + +void radeonDDInitSpanFuncs( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + switch ( rmesa->radeonScreen->cpp ) { + case 2: + ctx->Driver.WriteRGBASpan = radeonWriteRGBASpan_RGB565; + ctx->Driver.WriteRGBSpan = radeonWriteRGBSpan_RGB565; + ctx->Driver.WriteMonoRGBASpan = radeonWriteMonoRGBASpan_RGB565; + ctx->Driver.WriteRGBAPixels = radeonWriteRGBAPixels_RGB565; + ctx->Driver.WriteMonoRGBAPixels = radeonWriteMonoRGBAPixels_RGB565; + ctx->Driver.ReadRGBASpan = radeonReadRGBASpan_RGB565; + ctx->Driver.ReadRGBAPixels = radeonReadRGBAPixels_RGB565; + break; + + case 4: + ctx->Driver.WriteRGBASpan = radeonWriteRGBASpan_ARGB8888; + ctx->Driver.WriteRGBSpan = radeonWriteRGBSpan_ARGB8888; + ctx->Driver.WriteMonoRGBASpan = radeonWriteMonoRGBASpan_ARGB8888; + ctx->Driver.WriteRGBAPixels = radeonWriteRGBAPixels_ARGB8888; + ctx->Driver.WriteMonoRGBAPixels = radeonWriteMonoRGBAPixels_ARGB8888; + ctx->Driver.ReadRGBASpan = radeonReadRGBASpan_ARGB8888; + ctx->Driver.ReadRGBAPixels = radeonReadRGBAPixels_ARGB8888; + break; + + default: + break; + } + + switch ( rmesa->glCtx->Visual->DepthBits ) { + case 16: + ctx->Driver.ReadDepthSpan = radeonReadDepthSpan_16; + ctx->Driver.WriteDepthSpan = radeonWriteDepthSpan_16; + ctx->Driver.ReadDepthPixels = radeonReadDepthPixels_16; + ctx->Driver.WriteDepthPixels = radeonWriteDepthPixels_16; + break; + + case 24: + ctx->Driver.ReadDepthSpan = radeonReadDepthSpan_24_8; + ctx->Driver.WriteDepthSpan = radeonWriteDepthSpan_24_8; + ctx->Driver.ReadDepthPixels = radeonReadDepthPixels_24_8; + ctx->Driver.WriteDepthPixels = radeonWriteDepthPixels_24_8; + + ctx->Driver.ReadStencilSpan = radeonReadStencilSpan_24_8; + ctx->Driver.WriteStencilSpan = radeonWriteStencilSpan_24_8; + ctx->Driver.ReadStencilPixels = radeonReadStencilPixels_24_8; + ctx->Driver.WriteStencilPixels = radeonWriteStencilPixels_24_8; + break; + + default: + break; + } + + ctx->Driver.WriteCI8Span = NULL; + ctx->Driver.WriteCI32Span = NULL; + ctx->Driver.WriteMonoCISpan = NULL; + ctx->Driver.WriteCI32Pixels = NULL; + ctx->Driver.WriteMonoCIPixels = NULL; + ctx->Driver.ReadCI32Span = NULL; + ctx->Driver.ReadCI32Pixels = NULL; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_span.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_span.h new file mode 100644 index 000000000..241f11c1e --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_span.h @@ -0,0 +1,45 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_span.h,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_SPAN_H__ +#define __RADEON_SPAN_H__ + +#ifdef GLX_DIRECT_RENDERING + +extern void radeonDDInitSpanFuncs( GLcontext *ctx ); + +#endif +#endif diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_state.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_state.c new file mode 100644 index 000000000..8cec8ff52 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_state.c @@ -0,0 +1,1338 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_state.c,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * Keith Whitwell <keithw@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_state.h" +#include "radeon_ioctl.h" +#include "radeon_tris.h" +#include "radeon_vb.h" +#include "radeon_tex.h" + +#include "mmath.h" +#include "pb.h" +#include "enums.h" + + +/* ============================================================= + * Alpha blending + */ + +static void radeonUpdateAlphaMode( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + CARD32 a = rmesa->setup.pp_misc; + CARD32 p = rmesa->setup.pp_cntl; + CARD32 b = rmesa->setup.rb3d_blendcntl; + CARD32 c = rmesa->setup.rb3d_cntl; + + if ( ctx->Color.AlphaEnabled ) { + GLubyte ref = ctx->Color.AlphaRef; + + a &= ~(RADEON_ALPHA_TEST_OP_MASK | RADEON_REF_ALPHA_MASK); + + switch ( ctx->Color.AlphaFunc ) { + case GL_NEVER: + a |= RADEON_ALPHA_TEST_FAIL; + break; + case GL_LESS: + a |= RADEON_ALPHA_TEST_LESS; + break; + case GL_LEQUAL: + a |= RADEON_ALPHA_TEST_LEQUAL; + break; + case GL_EQUAL: + a |= RADEON_ALPHA_TEST_EQUAL; + break; + case GL_GEQUAL: + a |= RADEON_ALPHA_TEST_GEQUAL; + break; + case GL_GREATER: + a |= RADEON_ALPHA_TEST_GREATER; + break; + case GL_NOTEQUAL: + a |= RADEON_ALPHA_TEST_NEQUAL; + break; + case GL_ALWAYS: + a |= RADEON_ALPHA_TEST_PASS; + break; + } + + a |= (ref & RADEON_REF_ALPHA_MASK); + p |= RADEON_ALPHA_TEST_ENABLE; + } else { + p &= ~RADEON_ALPHA_TEST_ENABLE; + } + + if ( ctx->Color.BlendEnabled ) { + b &= ~(RADEON_SRC_BLEND_MASK | RADEON_DST_BLEND_MASK); + + switch ( ctx->Color.BlendSrcRGB ) { + case GL_ZERO: + b |= RADEON_SRC_BLEND_GL_ZERO; + break; + case GL_ONE: + b |= RADEON_SRC_BLEND_GL_ONE; + break; + case GL_DST_COLOR: + b |= RADEON_SRC_BLEND_GL_DST_COLOR; + break; + case GL_ONE_MINUS_DST_COLOR: + b |= RADEON_SRC_BLEND_GL_ONE_MINUS_DST_COLOR; + break; + case GL_SRC_ALPHA: + b |= RADEON_SRC_BLEND_GL_SRC_ALPHA; + break; + case GL_ONE_MINUS_SRC_ALPHA: + b |= RADEON_SRC_BLEND_GL_ONE_MINUS_SRC_ALPHA; + break; + case GL_DST_ALPHA: + b |= RADEON_SRC_BLEND_GL_DST_ALPHA; + break; + case GL_ONE_MINUS_DST_ALPHA: + b |= RADEON_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA; + break; + case GL_SRC_ALPHA_SATURATE: + b |= RADEON_SRC_BLEND_GL_SRC_ALPHA_SATURATE; + break; + } + + switch ( ctx->Color.BlendDstRGB ) { + case GL_ZERO: + b |= RADEON_DST_BLEND_GL_ZERO; + break; + case GL_ONE: + b |= RADEON_DST_BLEND_GL_ONE; + break; + case GL_SRC_COLOR: + b |= RADEON_DST_BLEND_GL_SRC_COLOR; + break; + case GL_ONE_MINUS_SRC_COLOR: + b |= RADEON_DST_BLEND_GL_ONE_MINUS_SRC_COLOR; + break; + case GL_SRC_ALPHA: + b |= RADEON_DST_BLEND_GL_SRC_ALPHA; + break; + case GL_ONE_MINUS_SRC_ALPHA: + b |= RADEON_DST_BLEND_GL_ONE_MINUS_SRC_ALPHA; + break; + case GL_DST_ALPHA: + b |= RADEON_DST_BLEND_GL_DST_ALPHA; + break; + case GL_ONE_MINUS_DST_ALPHA: + b |= RADEON_DST_BLEND_GL_ONE_MINUS_DST_ALPHA; + break; + } + + c |= RADEON_ALPHA_BLEND_ENABLE; + } else { + c &= ~RADEON_ALPHA_BLEND_ENABLE; + } + + if ( rmesa->setup.pp_misc != a ) { + rmesa->setup.pp_misc = a; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_MASKS; + } + if ( rmesa->setup.pp_cntl != p ) { + rmesa->setup.pp_cntl = p; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_MASKS; + } + if ( rmesa->setup.rb3d_blendcntl != b ) { + rmesa->setup.rb3d_blendcntl = b; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_MASKS; + } + if ( rmesa->setup.rb3d_cntl != c ) { + rmesa->setup.rb3d_cntl = c; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_MASKS; + } +} + +static void radeonDDAlphaFunc( GLcontext *ctx, GLenum func, GLclampf ref ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_ALPHA; +} + +static void radeonDDBlendEquation( GLcontext *ctx, GLenum mode ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_ALPHA; +} + +static void radeonDDBlendFunc( GLcontext *ctx, GLenum sfactor, GLenum dfactor ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_ALPHA; +} + +static void radeonDDBlendFuncSeparate( GLcontext *ctx, + GLenum sfactorRGB, GLenum dfactorRGB, + GLenum sfactorA, GLenum dfactorA ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_ALPHA; +} + + +/* ============================================================= + * Depth testing + */ + +static void radeonUpdateZMode( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + CARD32 z = rmesa->setup.rb3d_zstencilcntl; + CARD32 c = rmesa->setup.rb3d_cntl; + + if ( ctx->Depth.Test ) { + z &= ~RADEON_Z_TEST_MASK; + + switch ( ctx->Depth.Func ) { + case GL_NEVER: + z |= RADEON_Z_TEST_NEVER; + break; + case GL_ALWAYS: + z |= RADEON_Z_TEST_ALWAYS; + break; + case GL_LESS: + z |= RADEON_Z_TEST_LESS; + break; + case GL_LEQUAL: + z |= RADEON_Z_TEST_LEQUAL; + break; + case GL_EQUAL: + z |= RADEON_Z_TEST_EQUAL; + break; + case GL_GEQUAL: + z |= RADEON_Z_TEST_GEQUAL; + break; + case GL_GREATER: + z |= RADEON_Z_TEST_GREATER; + break; + case GL_NOTEQUAL: + z |= RADEON_Z_TEST_NEQUAL; + break; + } + + c |= RADEON_Z_ENABLE; + } else { + c &= ~RADEON_Z_ENABLE; + } + + if ( ctx->Depth.Mask ) { + z |= RADEON_Z_WRITE_ENABLE; + } else { + z &= ~RADEON_Z_WRITE_ENABLE; + } + + if ( rmesa->setup.rb3d_zstencilcntl != z ) { + rmesa->setup.rb3d_zstencilcntl = z; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } + if ( rmesa->setup.rb3d_cntl != c ) { + rmesa->setup.rb3d_cntl = c; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } +} + +static void radeonDDDepthFunc( GLcontext *ctx, GLenum func ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_DEPTH; +} + +static void radeonDDDepthMask( GLcontext *ctx, GLboolean flag ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_DEPTH; +} + +static void radeonDDClearDepth( GLcontext *ctx, GLclampd d ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + switch ( rmesa->setup.rb3d_zstencilcntl & RADEON_DEPTH_FORMAT_MASK ) { + case RADEON_DEPTH_FORMAT_16BIT_INT_Z: + rmesa->ClearDepth = d * 0x0000ffff; + break; + case RADEON_DEPTH_FORMAT_24BIT_INT_Z: + rmesa->ClearDepth = d * 0x00ffffff; + break; + } +} + + +/* ============================================================= + * Fog + */ + +static void radeonUpdateFogAttrib( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + CARD32 p = rmesa->setup.pp_cntl; + GLubyte c[4]; + CARD32 col; + + if ( ctx->FogMode == FOG_FRAGMENT ) { + p |= RADEON_FOG_ENABLE; + } else { + p &= ~RADEON_FOG_ENABLE; + } + + FLOAT_RGB_TO_UBYTE_RGB( c, ctx->Fog.Color ); + col = radeonPackColor( 4, c[0], c[1], c[2], 0 ); + + if ( rmesa->setup.pp_fog_color != col ) { + rmesa->setup.pp_fog_color = col; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } + if ( rmesa->setup.pp_cntl != p ) { + rmesa->setup.pp_cntl = p; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } +} + +static void radeonDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_FOG; +} + + +/* ============================================================= + * Clipping + */ + +static void radeonUpdateClipping( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + if ( rmesa->driDrawable ) { + __DRIdrawablePrivate *drawable = rmesa->driDrawable; + int x = 0; + int y = 0; + int w = drawable->w - 1; + int h = drawable->h - 1; + + if ( ctx->Scissor.Enabled ) { + if ( ctx->Scissor.X > x ) { + x = ctx->Scissor.X; + } + if ( drawable->h - ctx->Scissor.Y - ctx->Scissor.Height > y ) { + y = drawable->h - ctx->Scissor.Y - ctx->Scissor.Height; + } + if ( ctx->Scissor.X + ctx->Scissor.Width - 1 < w ) { + w = ctx->Scissor.X + ctx->Scissor.Width - 1; + } + if ( drawable->h - ctx->Scissor.Y - 1 < h ) { + h = drawable->h - ctx->Scissor.Y - 1; + } + } + + rmesa->scissor_rect.x1 = x + rmesa->driDrawable->x; + rmesa->scissor_rect.y1 = y + rmesa->driDrawable->y; + rmesa->scissor_rect.x2 = w + rmesa->driDrawable->x; + rmesa->scissor_rect.y2 = h + rmesa->driDrawable->y; + + rmesa->dirty |= RADEON_UPLOAD_CLIPRECTS; + } +} + +static void radeonDDScissor( GLcontext *ctx, + GLint x, GLint y, GLsizei w, GLsizei h ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_CLIP; +} + + +/* ============================================================= + * Culling + */ + +static void radeonUpdateCull( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + CARD32 s = rmesa->setup.se_cntl; + + s &= ~RADEON_FFACE_CULL_DIR_MASK; + + switch ( ctx->Polygon.FrontFace ) { + case GL_CW: + s |= RADEON_FFACE_CULL_CW; + break; + case GL_CCW: + s |= RADEON_FFACE_CULL_CCW; + break; + } + + s |= RADEON_FFACE_SOLID | RADEON_BFACE_SOLID; + + if ( ctx->Polygon.CullFlag && ctx->PB->primitive == GL_POLYGON ) { + switch ( ctx->Polygon.CullFaceMode ) { + case GL_FRONT: + s &= ~RADEON_FFACE_SOLID; + break; + case GL_BACK: + s &= ~RADEON_BFACE_SOLID; + break; + case GL_FRONT_AND_BACK: + s &= ~(RADEON_FFACE_SOLID | RADEON_BFACE_SOLID); + break; + } + } + + if ( rmesa->setup.se_cntl != s ) { + rmesa->setup.se_cntl = s; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_SETUP; + } +} + +static void radeonDDCullFace( GLcontext *ctx, GLenum mode ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_CULL; +} + +static void radeonDDFrontFace( GLcontext *ctx, GLenum mode ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_CULL; +} + + +/* ============================================================= + * Masks + */ + +static void radeonUpdateMasks( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + GLuint mask = radeonPackColor( rmesa->radeonScreen->cpp, + ctx->Color.ColorMask[RCOMP], + ctx->Color.ColorMask[GCOMP], + ctx->Color.ColorMask[BCOMP], + ctx->Color.ColorMask[ACOMP] ); + + if ( rmesa->setup.rb3d_planemask != mask ) { + rmesa->setup.rb3d_planemask = mask; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_MASKS; + } +} + +static GLboolean radeonDDColorMask( GLcontext *ctx, + GLboolean r, GLboolean g, + GLboolean b, GLboolean a ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_MASKS; + + return GL_TRUE; +} + + +/* ============================================================= + * Rendering attributes + * + * We really don't want to recalculate all this every time we bind a + * texture. These things shouldn't change all that often, so it makes + * sense to break them out of the core texture state update routines. + */ + +static void radeonDDLightModelfv( GLcontext *ctx, GLenum pname, + const GLfloat *param ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + if ( pname == GL_LIGHT_MODEL_COLOR_CONTROL ) { + CARD32 p = rmesa->setup.pp_cntl; + + FLUSH_BATCH( rmesa ); + + if ( ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR ) { + p |= RADEON_SPECULAR_ENABLE; + } else { + p &= ~RADEON_SPECULAR_ENABLE; + } + + if ( rmesa->setup.pp_cntl != p ) { + rmesa->setup.pp_cntl = p; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } + } +} + +static void radeonDDShadeModel( GLcontext *ctx, GLenum mode ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + CARD32 s = rmesa->setup.se_cntl; + + s &= ~(RADEON_DIFFUSE_SHADE_MASK | + RADEON_ALPHA_SHADE_MASK | + RADEON_SPECULAR_SHADE_MASK | + RADEON_FOG_SHADE_MASK); + + switch ( mode ) { + case GL_FLAT: + s |= (RADEON_DIFFUSE_SHADE_FLAT | + RADEON_ALPHA_SHADE_FLAT | + RADEON_SPECULAR_SHADE_FLAT | + RADEON_FOG_SHADE_FLAT); + break; + case GL_SMOOTH: + s |= (RADEON_DIFFUSE_SHADE_GOURAUD | + RADEON_ALPHA_SHADE_GOURAUD | + RADEON_SPECULAR_SHADE_GOURAUD | + RADEON_FOG_SHADE_GOURAUD); + break; + default: + return; + } + + if ( rmesa->setup.se_cntl != s ) { + FLUSH_BATCH( rmesa ); + rmesa->setup.se_cntl = s; + + rmesa->new_state |= RADEON_NEW_CONTEXT; + rmesa->dirty |= RADEON_UPLOAD_SETUP; + } +} + + +/* ============================================================= + * Window position + */ + +void radeonUpdateWindow( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + __DRIdrawablePrivate *dPriv = rmesa->driDrawable; + GLfloat xoffset = (GLfloat)dPriv->x; + GLfloat yoffset = (GLfloat)dPriv->y + dPriv->h; + const GLfloat one = 1.0; +#if 0 + CARD32 m = rmesa->setup.re_misc; + CARD32 sx, sy; +#endif + + rmesa->setup.se_vport_xscale = *(GLuint *)&one; + rmesa->setup.se_vport_xoffset = *(GLuint *)&xoffset; + rmesa->setup.se_vport_yscale = *(GLuint *)&one; + rmesa->setup.se_vport_yoffset = *(GLuint *)&yoffset; + rmesa->setup.se_vport_zscale = *(GLuint *)&rmesa->depth_scale; + rmesa->setup.se_vport_zoffset = 0x00000000; + +#if 0 + /* FIXME: This appears to be broken... + */ + m &= ~(RADEON_STIPPLE_X_OFFSET_MASK | + RADEON_STIPPLE_Y_OFFSET_MASK); + + sx = rmesa->driDrawable->x & RADEON_STIPPLE_COORD_MASK; + sy = rmesa->driDrawable->y & RADEON_STIPPLE_COORD_MASK; + + m |= ((sx << RADEON_STIPPLE_X_OFFSET_SHIFT) | + (sy << RADEON_STIPPLE_Y_OFFSET_SHIFT)); + + if ( rmesa->setup.re_misc != m ) { + rmesa->setup.re_misc = m; + rmesa->dirty |= RADEON_UPLOAD_MISC; + } +#endif + rmesa->dirty |= RADEON_UPLOAD_VIEWPORT; +} + + +/* ============================================================= + * Miscellaneous + */ + +static void radeonDDClearColor( GLcontext *ctx, + GLubyte r, GLubyte g, GLubyte b, GLubyte a ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + rmesa->ClearColor = radeonPackColor( rmesa->radeonScreen->cpp, + r, g, b, a ); +} + +static void radeonDDColor( GLcontext *ctx, + GLubyte r, GLubyte g, GLubyte b, GLubyte a ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + rmesa->Color = radeonPackColor( rmesa->radeonScreen->cpp, + r, g, b, a ); +} + +static void radeonDDLogicOpCode( GLcontext *ctx, GLenum opcode ) +{ + if ( ctx->Color.ColorLogicOpEnabled ) { + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + FLUSH_BATCH( rmesa ); + + /* FIXME: We can do color logic ops. + */ + if ( opcode == GL_COPY ) { + rmesa->Fallback &= ~RADEON_FALLBACK_LOGICOP; + } else { + rmesa->Fallback |= RADEON_FALLBACK_LOGICOP; + } + } +} + +static GLboolean radeonDDSetDrawBuffer( GLcontext *ctx, GLenum mode ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + int found = GL_TRUE; + + FLUSH_BATCH( rmesa ); + + if ( rmesa->DrawBuffer != mode ) { + rmesa->DrawBuffer = mode; + rmesa->Fallback &= ~RADEON_FALLBACK_DRAW_BUFFER; + + switch ( mode ) { + case GL_FRONT_LEFT: + rmesa->drawOffset = rmesa->radeonScreen->frontOffset; + rmesa->drawPitch = rmesa->radeonScreen->frontPitch; + break; + case GL_BACK_LEFT: + rmesa->drawOffset = rmesa->radeonScreen->backOffset; + rmesa->drawPitch = rmesa->radeonScreen->backPitch; + break; + default: + rmesa->Fallback |= RADEON_FALLBACK_DRAW_BUFFER; + found = GL_FALSE; + break; + } + + rmesa->setup.rb3d_coloroffset = + (rmesa->drawOffset & RADEON_COLOROFFSET_MASK); + rmesa->setup.rb3d_colorpitch = rmesa->drawPitch; + + rmesa->new_state |= RADEON_NEW_WINDOW; + } + + return found; +} + +static void radeonDDSetReadBuffer( GLcontext *ctx, + GLframebuffer *colorBuffer, + GLenum mode ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + rmesa->Fallback &= ~RADEON_FALLBACK_READ_BUFFER; + + switch ( mode ) { + case GL_FRONT_LEFT: + rmesa->readOffset = rmesa->radeonScreen->frontOffset; + rmesa->readPitch = rmesa->radeonScreen->frontPitch; + break; + case GL_BACK_LEFT: + rmesa->readOffset = rmesa->radeonScreen->backOffset; + rmesa->readPitch = rmesa->radeonScreen->backPitch; + break; + default: + rmesa->Fallback |= RADEON_FALLBACK_READ_BUFFER; + break; + } +} + + +/* ============================================================= + * Polygon stipple + */ + +static void radeonDDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + GLuint *stipple = (GLuint *)mask; + + FLUSH_BATCH( rmesa ); + + if ( ctx->Polygon.StippleFlag && ctx->PB->primitive == GL_POLYGON ) { + rmesa->setup.pp_cntl |= RADEON_STIPPLE_ENABLE; + } else { + rmesa->setup.pp_cntl &= ~RADEON_STIPPLE_ENABLE; + } + + LOCK_HARDWARE( rmesa ); + + /* FIXME: Use window x,y offsets into stipple RAM. + */ + drmRadeonPolygonStipple( rmesa->driFd, stipple ); + + UNLOCK_HARDWARE( rmesa ); + + rmesa->new_state |= RADEON_NEW_CONTEXT; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; +} + + +/* ============================================================= + * State enable/disable + */ + +static void radeonDDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + switch ( cap ) { + case GL_ALPHA_TEST: + case GL_BLEND: + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_ALPHA; + break; + + case GL_CULL_FACE: + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_CULL; + break; + + case GL_DEPTH_TEST: + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_DEPTH; + break; + + case GL_DITHER: + do { + CARD32 r = rmesa->setup.rb3d_cntl; + FLUSH_BATCH( rmesa ); + + if ( ctx->Color.DitherFlag ) { + r |= RADEON_DITHER_ENABLE; + } else { + r &= ~RADEON_DITHER_ENABLE; + } + + if ( rmesa->setup.rb3d_cntl != r ) { + rmesa->setup.rb3d_cntl = r; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } + } while (0); + break; + + case GL_FOG: + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_FOG; + break; + + case GL_INDEX_LOGIC_OP: + case GL_COLOR_LOGIC_OP: + FLUSH_BATCH( rmesa ); + if ( state && ctx->Color.LogicOp != GL_COPY ) { + rmesa->Fallback |= RADEON_FALLBACK_LOGICOP; + } else { + rmesa->Fallback &= ~RADEON_FALLBACK_LOGICOP; + } + break; + + case GL_SCISSOR_TEST: + FLUSH_BATCH( rmesa ); + rmesa->scissor = state; + rmesa->new_state |= RADEON_NEW_CLIP; + break; + + case GL_TEXTURE_1D: + case GL_TEXTURE_2D: + case GL_TEXTURE_3D: + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_TEXTURE; + break; + + case GL_POLYGON_STIPPLE: + if ( ctx->PB->primitive == GL_POLYGON ) { + FLUSH_BATCH( rmesa ); + if ( state ) { + rmesa->setup.pp_cntl |= RADEON_STIPPLE_ENABLE; + } else { + rmesa->setup.pp_cntl &= ~RADEON_STIPPLE_ENABLE; + } + rmesa->new_state |= RADEON_NEW_CONTEXT; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } + break; + + default: + return; + } +} + + +/* ============================================================= + * State initialization, management + */ + +static void radeonDDPrintDirty( const char *msg, GLuint state ) +{ + fprintf( stderr, + "%s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", + msg, + state, + (state & RADEON_UPLOAD_CONTEXT) ? "context, " : "", + (state & RADEON_UPLOAD_VERTFMT) ? "vertfmt, " : "", + (state & RADEON_UPLOAD_LINE) ? "line, " : "", + (state & RADEON_UPLOAD_BUMPMAP) ? "bumpmap, " : "", + (state & RADEON_UPLOAD_MASKS) ? "masks, " : "", + (state & RADEON_UPLOAD_VIEWPORT) ? "viewport, " : "", + (state & RADEON_UPLOAD_SETUP) ? "setup, " : "", + (state & RADEON_UPLOAD_TCL) ? "tcl, " : "", + (state & RADEON_UPLOAD_MISC) ? "misc, " : "", + (state & RADEON_UPLOAD_TEX0) ? "tex0, " : "", + (state & RADEON_UPLOAD_TEX1) ? "tex1, " : "", + (state & RADEON_UPLOAD_TEX2) ? "tex2, " : "", + (state & RADEON_UPLOAD_TEX0IMAGES) ? "tex0 images, " : "", + (state & RADEON_UPLOAD_TEX1IMAGES) ? "tex1 images, " : "", + (state & RADEON_UPLOAD_TEX2IMAGES) ? "tex2 images, " : "", + (state & RADEON_UPLOAD_CLIPRECTS) ? "cliprects, " : "", + (state & RADEON_REQUIRE_QUIESCENCE) ? "quiescence, " : "" ); +} + +/* + * Load the current context's state into the hardware. + * + * NOTE: Be VERY careful about ensuring the context state is marked for + * upload, the only place it shouldn't be uploaded is when the setup + * state has changed in ReducedPrimitiveChange as this comes right after + * a state update. + * + * Blits of any type should always upload the context and masks after + * they are done. + */ +void radeonEmitHwStateLocked( radeonContextPtr rmesa ) +{ + RADEONSAREAPrivPtr sarea = rmesa->sarea; + radeon_context_regs_t *regs = &(rmesa->setup); + radeonTexObjPtr t0 = rmesa->CurrentTexObj[0]; + radeonTexObjPtr t1 = rmesa->CurrentTexObj[1]; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_MSG ) { + radeonDDPrintDirty( "radeonEmitHwStateLocked", rmesa->dirty ); + } + + if ( (rmesa->dirty & RADEON_UPLOAD_TEX0IMAGES) && t0 ) { + radeonUploadTexImages( rmesa, t0 ); + rmesa->dirty &= ~RADEON_UPLOAD_TEX0IMAGES; + } + if ( (rmesa->dirty & RADEON_UPLOAD_TEX1IMAGES) && t1 ) { + radeonUploadTexImages( rmesa, t1 ); + rmesa->dirty &= ~RADEON_UPLOAD_TEX1IMAGES; + } + if ( rmesa->dirty & RADEON_UPLOAD_TEX2IMAGES ) { + /* FIXME: Enable the third texture unit... */ + rmesa->dirty &= ~RADEON_UPLOAD_TEX2IMAGES; + } + + if ( rmesa->dirty & (RADEON_UPLOAD_CONTEXT | + RADEON_UPLOAD_VERTFMT | + RADEON_UPLOAD_LINE | + RADEON_UPLOAD_BUMPMAP | + RADEON_UPLOAD_MASKS | + RADEON_UPLOAD_VIEWPORT | + RADEON_UPLOAD_SETUP | + RADEON_UPLOAD_TCL | + RADEON_UPLOAD_MISC) ) { + memcpy( &sarea->ContextState, regs, sizeof(sarea->ContextState) ); + } + + /* Assemble the texture state, combining the texture object and + * texture environment state into the hardware texture unit state. + */ + if ( (rmesa->dirty & RADEON_UPLOAD_TEX0) && t0 ) { + radeon_texture_regs_t *tex = &sarea->TexState[0]; + + tex->pp_txfilter = t0->setup.pp_txfilter | rmesa->lod_bias[0] << 8; + tex->pp_txformat = t0->setup.pp_txformat | RADEON_TXF_ST_ROUTE_STQ0; + tex->pp_txoffset = t0->setup.pp_txoffset; + + tex->pp_txcblend = rmesa->color_combine[0]; + tex->pp_txablend = rmesa->alpha_combine[0]; + tex->pp_tfactor = rmesa->env_color[0]; + + tex->pp_border_color = t0->setup.pp_border_color; + } + + if ( (rmesa->dirty & RADEON_UPLOAD_TEX1) && t1 ) { + radeon_texture_regs_t *tex = &sarea->TexState[1]; + + tex->pp_txfilter = t1->setup.pp_txfilter | rmesa->lod_bias[1] << 8; + tex->pp_txformat = t1->setup.pp_txformat | RADEON_TXF_ST_ROUTE_STQ1; + tex->pp_txoffset = t1->setup.pp_txoffset; + + tex->pp_txcblend = rmesa->color_combine[1]; + tex->pp_txablend = rmesa->alpha_combine[1]; + tex->pp_tfactor = rmesa->env_color[1]; + + tex->pp_border_color = t1->setup.pp_border_color; + } + + if ( rmesa->dirty & RADEON_UPLOAD_TEX2 ) { + /* FIXME: Enable the third texture unit... */ + memset( &sarea->TexState[2], 0, sizeof(sarea->TexState[2]) ); + } + + sarea->vertsize = rmesa->vertsize; + sarea->vc_format = rmesa->vc_format; + + sarea->dirty |= rmesa->dirty; + rmesa->dirty &= RADEON_UPLOAD_CLIPRECTS; +} + +static void radeonDDPrintState( const char *msg, GLuint flags ) +{ + fprintf( stderr, + "%s: (0x%x) %s%s%s%s%s%s%s%s%s\n", + msg, + flags, + (flags & RADEON_NEW_CONTEXT) ? "context, " : "", + (flags & RADEON_NEW_ALPHA) ? "alpha, " : "", + (flags & RADEON_NEW_DEPTH) ? "depth, " : "", + (flags & RADEON_NEW_FOG) ? "fog, " : "", + (flags & RADEON_NEW_CLIP) ? "clip, " : "", + (flags & RADEON_NEW_TEXTURE) ? "texture, " : "", + (flags & RADEON_NEW_CULL) ? "cull, " : "", + (flags & RADEON_NEW_MASKS) ? "masks, " : "", + (flags & RADEON_NEW_WINDOW) ? "window, " : "" ); +} + +void radeonDDUpdateHWState( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + int new_state = rmesa->new_state; + + if ( new_state ) { + FLUSH_BATCH( rmesa ); + + rmesa->new_state = 0; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_MSG ) + radeonDDPrintState( "radeonUpdateHwState", new_state ); + + /* Update the various parts of the context's state. + */ + if ( new_state & RADEON_NEW_ALPHA ) + radeonUpdateAlphaMode( ctx ); + + if ( new_state & RADEON_NEW_DEPTH ) + radeonUpdateZMode( ctx ); + + if ( new_state & RADEON_NEW_FOG ) + radeonUpdateFogAttrib( ctx ); + + if ( new_state & RADEON_NEW_CLIP ) + radeonUpdateClipping( ctx ); + + if ( new_state & RADEON_NEW_CULL ) + radeonUpdateCull( ctx ); + + if ( new_state & RADEON_NEW_MASKS ) + radeonUpdateMasks( ctx ); + + if ( new_state & RADEON_NEW_WINDOW ) + radeonUpdateWindow( ctx ); + + if ( new_state & RADEON_NEW_TEXTURE ) + radeonUpdateTextureState( ctx ); + } +} + +/* This is called when Mesa switches between rendering triangle + * primitives (such as GL_POLYGON, GL_QUADS, GL_TRIANGLE_STRIP, etc), + * and lines, points and bitmaps. + * + * As the radeon uses triangles to render lines and points, it is + * necessary to turn off hardware culling when rendering these + * primitives. + */ +static void radeonDDReducedPrimitiveChange( GLcontext *ctx, GLenum prim ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + CARD32 s = rmesa->setup.se_cntl; + + s |= RADEON_FFACE_SOLID | RADEON_BFACE_SOLID; + + if ( ctx->Polygon.CullFlag && ctx->PB->primitive == GL_POLYGON ) { + switch ( ctx->Polygon.CullFaceMode ) { + case GL_FRONT: + s &= ~RADEON_FFACE_SOLID; + break; + case GL_BACK: + s &= ~RADEON_BFACE_SOLID; + break; + case GL_FRONT_AND_BACK: + s &= ~(RADEON_FFACE_SOLID | RADEON_BFACE_SOLID); + break; + } + } + + if ( rmesa->setup.se_cntl != s ) { + FLUSH_BATCH( rmesa ); + rmesa->setup.se_cntl = s; + + /* NOTE: Only upload the setup state, everything else has been + * uploaded by the usual means already. Also, note that this is + * an optimization (see comment in the kernel's radeon_state.c), + * which will not be necessary when/if we use the Radeon's + * native point/line support. + */ + rmesa->dirty |= RADEON_UPLOAD_SETUP; + } +} + + +#define INTERESTED (~(NEW_MODELVIEW | \ + NEW_PROJECTION | \ + NEW_TEXTURE_MATRIX | \ + NEW_USER_CLIP | \ + NEW_CLIENT_STATE)) + +void radeonDDUpdateState( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + if ( ctx->NewState & INTERESTED ) { + radeonDDChooseRenderState( ctx ); + radeonDDChooseRasterSetupFunc( ctx ); + } + + /* Need to do this here to detect texture fallbacks before + * setting triangle functions. + * GH: Do we need this anymore? The Radeon doesn't really have + * texturing fallbacks like the r128... + */ + if ( rmesa->new_state & RADEON_NEW_TEXTURE ) { + radeonDDUpdateHWState( ctx ); + } + + if ( !rmesa->Fallback ) { + ctx->IndirectTriangles &= ~DD_SW_RASTERIZE; + ctx->IndirectTriangles |= rmesa->IndirectTriangles; + + ctx->Driver.PointsFunc = rmesa->PointsFunc; + ctx->Driver.LineFunc = rmesa->LineFunc; + ctx->Driver.TriangleFunc = rmesa->TriangleFunc; + ctx->Driver.QuadFunc = rmesa->QuadFunc; + } +} + + +/* Initialize the context's hardware state. + */ +void radeonDDInitState( radeonContextPtr rmesa ) +{ + GLuint color_fmt, depth_fmt; + + switch ( rmesa->radeonScreen->cpp ) { + case 2: + color_fmt = RADEON_COLOR_FORMAT_RGB565; + break; + case 4: + color_fmt = RADEON_COLOR_FORMAT_ARGB8888; + break; + default: + fprintf( stderr, "Error: Unsupported pixel depth... exiting\n" ); + exit( -1 ); + } + + rmesa->ClearColor = 0x00000000; + + switch ( rmesa->glCtx->Visual->DepthBits ) { + case 16: + rmesa->ClearDepth = 0x0000ffff; + depth_fmt = RADEON_DEPTH_FORMAT_16BIT_INT_Z; + rmesa->depth_scale = 1.0 / (GLfloat)0xffff; + break; + case 24: + rmesa->ClearDepth = 0x00ffffff; + depth_fmt = RADEON_DEPTH_FORMAT_24BIT_INT_Z; + rmesa->depth_scale = 1.0 / (GLfloat)0xffffff; + break; + default: + fprintf( stderr, "Error: Unsupported depth %d... exiting\n", + rmesa->glCtx->Visual->DepthBits ); + exit( -1 ); + } + + rmesa->RenderIndex = RADEON_FALLBACK_BIT; + rmesa->PointsFunc = NULL; + rmesa->LineFunc = NULL; + rmesa->TriangleFunc = NULL; + rmesa->QuadFunc = NULL; + + rmesa->IndirectTriangles = 0; + rmesa->Fallback = 0; + + if ( rmesa->glCtx->Visual->DBflag ) { + rmesa->DrawBuffer = GL_BACK_LEFT; + rmesa->drawOffset = rmesa->readOffset = rmesa->radeonScreen->backOffset; + rmesa->drawPitch = rmesa->readPitch = rmesa->radeonScreen->backPitch; + } else { + rmesa->DrawBuffer = GL_FRONT_LEFT; + rmesa->drawOffset = rmesa->readOffset = rmesa->radeonScreen->frontOffset; + rmesa->drawPitch = rmesa->readPitch = rmesa->radeonScreen->frontPitch; + } + + /* Harware state: + */ + rmesa->setup.pp_misc = (RADEON_ALPHA_TEST_PASS | + RADEON_CHROMA_FUNC_FAIL | + RADEON_CHROMA_KEY_NEAREST | + RADEON_SHADOW_FUNC_EQUAL | + RADEON_SHADOW_PASS_1 | + RADEON_RIGHT_HAND_CUBE_OGL); + + rmesa->setup.pp_fog_color = ((0x00000000 & RADEON_FOG_COLOR_MASK) | + RADEON_FOG_VERTEX | + RADEON_FOG_USE_DEPTH); + + rmesa->setup.re_solid_color = 0x00000000; + + rmesa->setup.rb3d_blendcntl = (RADEON_SRC_BLEND_GL_ONE | + RADEON_DST_BLEND_GL_ZERO ); + + rmesa->setup.rb3d_depthoffset = rmesa->radeonScreen->depthOffset; + + rmesa->setup.rb3d_depthpitch = ((rmesa->radeonScreen->depthPitch & + RADEON_DEPTHPITCH_MASK) | + RADEON_DEPTH_ENDIAN_NO_SWAP); + + rmesa->setup.rb3d_zstencilcntl = (depth_fmt | + RADEON_Z_TEST_LESS | + RADEON_STENCIL_TEST_ALWAYS | + RADEON_STENCIL_S_FAIL_KEEP | + RADEON_STENCIL_ZPASS_KEEP | + RADEON_STENCIL_ZFAIL_KEEP | + RADEON_Z_WRITE_ENABLE); + + rmesa->setup.pp_cntl = (RADEON_SCISSOR_ENABLE | + RADEON_ANTI_ALIAS_NONE); + + rmesa->setup.rb3d_cntl = (RADEON_PLANE_MASK_ENABLE | + color_fmt | + RADEON_ZBLOCK16); + + rmesa->setup.rb3d_coloroffset = (rmesa->drawOffset & + RADEON_COLOROFFSET_MASK); + + rmesa->setup.re_width_height = ((0x7ff << RADEON_RE_WIDTH_SHIFT) | + (0x7ff << RADEON_RE_HEIGHT_SHIFT)); + + rmesa->setup.rb3d_colorpitch = ((rmesa->drawPitch & + RADEON_COLORPITCH_MASK) | + RADEON_COLOR_ENDIAN_NO_SWAP); + + rmesa->setup.se_cntl = (RADEON_FFACE_CULL_CW | + RADEON_BFACE_SOLID | + RADEON_FFACE_SOLID | + RADEON_FLAT_SHADE_VTX_LAST | + RADEON_DIFFUSE_SHADE_GOURAUD | + RADEON_ALPHA_SHADE_GOURAUD | + RADEON_SPECULAR_SHADE_GOURAUD | + RADEON_FOG_SHADE_GOURAUD | + RADEON_VPORT_XY_XFORM_ENABLE | + RADEON_VPORT_Z_XFORM_ENABLE | + RADEON_VTX_PIX_CENTER_OGL | + RADEON_ROUND_MODE_TRUNC | + RADEON_ROUND_PREC_8TH_PIX); + + rmesa->setup.se_coord_fmt = (RADEON_VTX_XY_PRE_MULT_1_OVER_W0 | + RADEON_VTX_Z_PRE_MULT_1_OVER_W0 | + RADEON_TEX1_W_ROUTING_USE_Q1); + + rmesa->setup.re_line_pattern = ((0x0000 & RADEON_LINE_PATTERN_MASK) | + (0 << RADEON_LINE_REPEAT_COUNT_SHIFT) | + (0 << RADEON_LINE_PATTERN_START_SHIFT) | + RADEON_LINE_PATTERN_LITTLE_BIT_ORDER); + + rmesa->setup.re_line_state = ((0 << RADEON_LINE_CURRENT_PTR_SHIFT) | + (0 << RADEON_LINE_CURRENT_COUNT_SHIFT)); + + rmesa->setup.se_line_width = 0x0000000; + + rmesa->setup.pp_lum_matrix = 0x00000000; + + rmesa->setup.pp_rot_matrix_0 = 0x00000000; + rmesa->setup.pp_rot_matrix_1 = 0x00000000; + + rmesa->setup.rb3d_stencilrefmask = ((0x00 << RADEON_STENCIL_REF_SHIFT) | + (0xff << RADEON_STENCIL_MASK_SHIFT) | + (0xff << RADEON_STENCIL_WRITEMASK_SHIFT)); + + rmesa->setup.rb3d_ropcntl = 0x00000000; + rmesa->setup.rb3d_planemask = 0xffffffff; + + rmesa->setup.se_vport_xscale = 0x00000000; + rmesa->setup.se_vport_xoffset = 0x00000000; + rmesa->setup.se_vport_yscale = 0x00000000; + rmesa->setup.se_vport_yoffset = 0x00000000; + rmesa->setup.se_vport_zscale = 0x00000000; + rmesa->setup.se_vport_zoffset = 0x00000000; + + rmesa->setup.se_cntl_status = (RADEON_VC_NO_SWAP | + RADEON_TCL_BYPASS); + +#ifdef TCL_ENABLE + /* FIXME: Obviously these need to be properly initialized */ + rmesa->setup.se_tcl_material_emmissive.red = 0x00000000; + rmesa->setup.se_tcl_material_emmissive.green = 0x00000000; + rmesa->setup.se_tcl_material_emmissive.blue = 0x00000000; + rmesa->setup.se_tcl_material_emmissive.alpha = 0x00000000; + + rmesa->setup.se_tcl_material_ambient.red = 0x00000000; + rmesa->setup.se_tcl_material_ambient.green = 0x00000000; + rmesa->setup.se_tcl_material_ambient.blue = 0x00000000; + rmesa->setup.se_tcl_material_ambient.alpha = 0x00000000; + + rmesa->setup.se_tcl_material_diffuse.red = 0x00000000; + rmesa->setup.se_tcl_material_diffuse.green = 0x00000000; + rmesa->setup.se_tcl_material_diffuse.blue = 0x00000000; + rmesa->setup.se_tcl_material_diffuse.alpha = 0x00000000; + + rmesa->setup.se_tcl_material_specular.red = 0x00000000; + rmesa->setup.se_tcl_material_specular.green = 0x00000000; + rmesa->setup.se_tcl_material_specular.blue = 0x00000000; + rmesa->setup.se_tcl_material_specular.alpha = 0x00000000; + + rmesa->setup.se_tcl_shininess = 0x00000000; + rmesa->setup.se_tcl_output_vtx_fmt = 0x00000000; + rmesa->setup.se_tcl_output_vtx_sel = 0x00000000; + rmesa->setup.se_tcl_matrix_select_0 = 0x00000000; + rmesa->setup.se_tcl_matrix_select_1 = 0x00000000; + rmesa->setup.se_tcl_ucp_vert_blend_ctl = 0x00000000; + rmesa->setup.se_tcl_texture_proc_ctl = 0x00000000; + rmesa->setup.se_tcl_light_model_ctl = 0x00000000; + for ( i = 0 ; i < 4 ; i++ ) { + rmesa->setup.se_tcl_per_light_ctl[i] = 0x00000000; + } +#endif + + rmesa->setup.re_top_left = ((0 << RADEON_RE_LEFT_SHIFT) | + (0 << RADEON_RE_TOP_SHIFT) ); + + rmesa->setup.re_misc = ((0 << RADEON_STIPPLE_X_OFFSET_SHIFT) | + (0 << RADEON_STIPPLE_Y_OFFSET_SHIFT) | + RADEON_STIPPLE_LITTLE_BIT_ORDER); + + rmesa->env_color[0] = 0x00000000; + rmesa->env_color[1] = 0x00000000; + rmesa->env_color[2] = 0x00000000; + + rmesa->new_state = RADEON_NEW_ALL; +} + +/* Initialize the driver's state functions. + */ +void radeonDDInitStateFuncs( GLcontext *ctx ) +{ + ctx->Driver.UpdateState = radeonDDUpdateState; + + ctx->Driver.ClearIndex = NULL; + ctx->Driver.ClearColor = radeonDDClearColor; + ctx->Driver.Index = NULL; + ctx->Driver.Color = radeonDDColor; + ctx->Driver.SetDrawBuffer = radeonDDSetDrawBuffer; + ctx->Driver.SetReadBuffer = radeonDDSetReadBuffer; + + ctx->Driver.IndexMask = NULL; + ctx->Driver.ColorMask = radeonDDColorMask; + ctx->Driver.LogicOp = NULL; + ctx->Driver.Dither = NULL; + + ctx->Driver.NearFar = NULL; + + ctx->Driver.RenderStart = radeonDDUpdateHWState; + ctx->Driver.RenderFinish = NULL; + ctx->Driver.RasterSetup = NULL; + + ctx->Driver.RenderVBClippedTab = NULL; + ctx->Driver.RenderVBCulledTab = NULL; + ctx->Driver.RenderVBRawTab = NULL; + + ctx->Driver.ReducedPrimitiveChange = radeonDDReducedPrimitiveChange; + ctx->Driver.MultipassFunc = NULL; + + ctx->Driver.AlphaFunc = radeonDDAlphaFunc; + ctx->Driver.BlendEquation = radeonDDBlendEquation; + ctx->Driver.BlendFunc = radeonDDBlendFunc; + ctx->Driver.BlendFuncSeparate = radeonDDBlendFuncSeparate; + ctx->Driver.ClearDepth = radeonDDClearDepth; + ctx->Driver.CullFace = radeonDDCullFace; + ctx->Driver.FrontFace = radeonDDFrontFace; + ctx->Driver.DepthFunc = radeonDDDepthFunc; + ctx->Driver.DepthMask = radeonDDDepthMask; + ctx->Driver.DepthRange = NULL; + ctx->Driver.Enable = radeonDDEnable; + ctx->Driver.Fogfv = radeonDDFogfv; + ctx->Driver.Hint = NULL; + ctx->Driver.Lightfv = NULL; + ctx->Driver.LightModelfv = radeonDDLightModelfv; + ctx->Driver.LogicOpcode = radeonDDLogicOpCode; + ctx->Driver.PolygonMode = NULL; + ctx->Driver.PolygonStipple = radeonDDPolygonStipple; + ctx->Driver.Scissor = radeonDDScissor; + ctx->Driver.ShadeModel = radeonDDShadeModel; + ctx->Driver.ClearStencil = NULL; + ctx->Driver.StencilFunc = NULL; + ctx->Driver.StencilMask = NULL; + ctx->Driver.StencilOp = NULL; + ctx->Driver.Viewport = NULL; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_state.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_state.h new file mode 100644 index 000000000..9a368d989 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_state.h @@ -0,0 +1,55 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_state.h,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_STATE_H__ +#define __RADEON_STATE_H__ + +#ifdef GLX_DIRECT_RENDERING + +#include "radeon_context.h" + +extern void radeonDDInitState( radeonContextPtr rmesa ); +extern void radeonDDInitStateFuncs( GLcontext *ctx ); + +extern void radeonDDUpdateState( GLcontext *ctx ); +extern void radeonDDUpdateHWState( GLcontext *ctx ); + +extern void radeonUpdateWindow( GLcontext *ctx ); + +extern void radeonEmitHwStateLocked( radeonContextPtr rmesa ); + +#endif +#endif diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_tex.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_tex.c new file mode 100644 index 000000000..32709537b --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_tex.c @@ -0,0 +1,2253 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_tex.c,v 1.2 2001/01/16 05:10:59 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_state.h" +#include "radeon_ioctl.h" +#include "radeon_vb.h" +#include "radeon_tex.h" + +#include "mmath.h" +#include "simple_list.h" +#include "enums.h" +#include "mem.h" + + +static void radeonSetTexWrap( radeonTexObjPtr t, GLenum swrap, GLenum twrap ) +{ + t->setup.pp_txfilter &= ~(RADEON_CLAMP_S_MASK | RADEON_CLAMP_T_MASK); + + switch ( swrap ) { + case GL_REPEAT: + t->setup.pp_txfilter |= RADEON_CLAMP_S_WRAP; + break; + case GL_CLAMP: + t->setup.pp_txfilter |= RADEON_CLAMP_S_CLAMP_LAST; + break; + case GL_CLAMP_TO_EDGE: + t->setup.pp_txfilter |= RADEON_CLAMP_S_CLAMP_LAST; + break; + } + + switch ( twrap ) { + case GL_REPEAT: + t->setup.pp_txfilter |= RADEON_CLAMP_T_WRAP; + break; + case GL_CLAMP: + t->setup.pp_txfilter |= RADEON_CLAMP_T_CLAMP_LAST; + break; + case GL_CLAMP_TO_EDGE: + t->setup.pp_txfilter |= RADEON_CLAMP_T_CLAMP_LAST; + break; + } +} + +static void radeonSetTexFilter( radeonTexObjPtr t, GLenum minf, GLenum magf ) +{ + t->setup.pp_txfilter &= ~(RADEON_MIN_FILTER_MASK | RADEON_MAG_FILTER_MASK); + + switch ( minf ) { + case GL_NEAREST: + t->setup.pp_txfilter |= RADEON_MIN_FILTER_NEAREST; + break; + case GL_LINEAR: + t->setup.pp_txfilter |= RADEON_MIN_FILTER_LINEAR; + break; + case GL_NEAREST_MIPMAP_NEAREST: + t->setup.pp_txfilter |= RADEON_MIN_FILTER_NEAREST_MIP_NEAREST; + break; + case GL_LINEAR_MIPMAP_NEAREST: + t->setup.pp_txfilter |= RADEON_MIN_FILTER_LINEAR_MIP_NEAREST; + break; + case GL_NEAREST_MIPMAP_LINEAR: + t->setup.pp_txfilter |= RADEON_MIN_FILTER_NEAREST_MIP_LINEAR; + break; + case GL_LINEAR_MIPMAP_LINEAR: + t->setup.pp_txfilter |= RADEON_MIN_FILTER_LINEAR_MIP_LINEAR; + break; + } + + switch ( magf ) { + case GL_NEAREST: + t->setup.pp_txfilter |= RADEON_MAG_FILTER_NEAREST; + break; + case GL_LINEAR: + t->setup.pp_txfilter |= RADEON_MAG_FILTER_LINEAR; + break; + } +} + +static void radeonSetTexBorderColor( radeonTexObjPtr t, GLubyte c[4] ) +{ + t->setup.pp_border_color = radeonPackColor( 4, c[0], c[1], c[2], c[3] ); +} + + +/* Allocate and initialize hardware state associated with texture `t'. + */ +static radeonTexObjPtr radeonCreateTexObj( radeonContextPtr rmesa, + struct gl_texture_object *tObj ) +{ + radeonTexObjPtr t; + struct gl_texture_image *image; + GLint log2Width, log2Height, log2Size, log2MinSize; + GLint totalSize; + GLint texelsPerDword = 0, blitWidth = 0, blitPitch = 0; + GLint x, y, width, height; + GLint i; + GLuint txformat, txalpha; + + image = tObj->Image[0]; + if ( !image ) + return NULL; + + t = (radeonTexObjPtr) CALLOC( sizeof(*t) ); + if ( !t ) + return NULL; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) + fprintf( stderr, "%s( %p )\n", __FUNCTION__, tObj ); + + switch ( image->Format ) { + case GL_RGBA: + if ( image->IntFormat != GL_RGBA4 && + ( image->IntFormat == GL_RGBA8 || + rmesa->radeonScreen->cpp == 4 ) ) { + t->texelBytes = 4; + txformat = RADEON_TXF_32BPP_ARGB8888; + } else { + t->texelBytes = 2; + txformat = RADEON_TXF_16BPP_ARGB4444; + } + txalpha = RADEON_TXF_ALPHA_IN_MAP; + break; + + case GL_RGB: + if ( image->IntFormat != GL_RGB5 && + ( image->IntFormat == GL_RGB8 || + rmesa->radeonScreen->cpp == 4 ) ) { + t->texelBytes = 4; + txformat = RADEON_TXF_32BPP_ARGB8888; + } else { + t->texelBytes = 2; + txformat = RADEON_TXF_16BPP_RGB565; + } + txalpha = 0; + break; + + case GL_ALPHA: + case GL_LUMINANCE_ALPHA: + t->texelBytes = 2; + txformat = RADEON_TXF_16BPP_AI88; + txalpha = RADEON_TXF_ALPHA_IN_MAP; + break; + + case GL_LUMINANCE: + t->texelBytes = 2; + txformat = RADEON_TXF_16BPP_AI88; + txalpha = 0; + break; + + case GL_INTENSITY: + t->texelBytes = 1; + txformat = RADEON_TXF_8BPP_I; + txalpha = 0; + break; + + case GL_COLOR_INDEX: + default: + fprintf( stderr, "%s: bad image->Format\n", __FUNCTION__ ); + FREE( t ); + return NULL; + } + + /* Calculate dimensions in log domain. + */ + for ( i = 1, log2Height = 0 ; i < image->Height ; i *= 2 ) { + log2Height++; + } + for ( i = 1, log2Width = 0 ; i < image->Width ; i *= 2 ) { + log2Width++; + } + if ( image->Width > image->Height ) { + log2Size = log2Width; + } else { + log2Size = log2Height; + } + + t->dirty_images = 0; + + /* The Radeon has a 64-byte minimum pitch for all blits. We + * calculate the equivalent number of texels to simplify the + * calculation of the texture image area. + */ + switch ( t->texelBytes ) { + case 1: + texelsPerDword = 4; + blitPitch = 64; + break; + case 2: + texelsPerDword = 2; + blitPitch = 32; + break; + case 4: + texelsPerDword = 1; + blitPitch = 16; + break; + } + + /* Select the larger of the two widths for our global texture image + * coordinate space. As the Radeon has very strict offset rules, we + * can't upload mipmaps directly and have to reference their location + * from the aligned start of the whole image. + */ + blitWidth = MAX2( image->Width, blitPitch ); + + /* Calculate mipmap offsets and dimensions. + */ + totalSize = 0; + x = 0; + y = 0; + + for ( i = 0 ; i <= log2Size ; i++ ) { + GLuint size; + + image = tObj->Image[i]; + if ( !image ) + break; + + width = image->Width; + height = image->Height; + + /* Texture images have a minimum pitch of 32 bytes (half of the + * 64-byte minimum pitch for blits). For images that have a + * width smaller than this, we must pad each texture image + * scanline out to this amount. + */ + if ( width < blitPitch / 2 ) { + width = blitPitch / 2; + } + + size = width * height * t->texelBytes; + totalSize += size; + + t->dirty_images |= (1 << i); + + while ( width < blitWidth && height > 1 ) { + width *= 2; + height /= 2; + } + + t->image[i].x = x; + t->image[i].y = y; + + t->image[i].width = width; + t->image[i].height = height; + + t->image[i].dwords = size / sizeof(CARD32); + + /* While blits must have a pitch of at least 64 bytes, mipmaps + * must be aligned on a 32-byte boundary (just like each texture + * image scanline). + */ + if ( width >= blitWidth ) { + y += height; + } else { + x += width; + if ( x >= blitWidth ) { + x = 0; + y++; + } + } + + if ( 0 ) + fprintf( stderr, "level=%d p=%d %dx%d -> %dx%d at (%d,%d) %d dwords\n", + i, blitWidth, image->Width, image->Height, + t->image[i].width, t->image[i].height, + t->image[i].x, t->image[i].y, + t->image[i].dwords ); + } + + log2MinSize = log2Size - i + 1; + + /* Align the total size of texture memory block. + */ + totalSize = (totalSize + RADEON_OFFSET_MASK) & ~RADEON_OFFSET_MASK; + + t->totalSize = totalSize; + + t->bound = 0; + t->heap = 0; + t->tObj = tObj; + + t->memBlock = NULL; + t->bufAddr = 0; + + /* Hardware state: + */ + t->setup.pp_txfilter = ((log2Size << RADEON_MAX_MIP_LEVEL_SHIFT) | + RADEON_BORDER_MODE_OGL); + + t->setup.pp_txformat = (txformat | txalpha | + (log2Width << RADEON_TXF_WIDTH_SHIFT) | + (log2Height << RADEON_TXF_HEIGHT_SHIFT) | + RADEON_TXF_ENDIAN_NO_SWAP | + RADEON_TXF_PERSPECTIVE_ENABLE); + + t->setup.pp_txoffset = 0x00000000; + t->setup.pp_txcblend = 0x00000000; + t->setup.pp_txablend = 0x00000000; + t->setup.pp_tfactor = 0x00000000; + t->setup.pp_border_color = 0x00000000; + + radeonSetTexWrap( t, tObj->WrapS, tObj->WrapT ); + radeonSetTexFilter( t, tObj->MinFilter, tObj->MagFilter ); + radeonSetTexBorderColor( t, tObj->BorderColor ); + + tObj->DriverData = t; + + make_empty_list( t ); + + return t; +} + +/* Destroy hardware state associated with texture `t'. + */ +void radeonDestroyTexObj( radeonContextPtr rmesa, radeonTexObjPtr t ) +{ +#if ENABLE_PERF_BOXES + /* Bump the performace counter */ + rmesa->c_textureSwaps++; +#endif + if ( !t ) return; + + if ( t->memBlock ) { + mmFreeMem( t->memBlock ); + t->memBlock = NULL; + } + + if ( t->tObj ) + t->tObj->DriverData = NULL; + if ( t->bound ) + rmesa->CurrentTexObj[t->bound-1] = NULL; + + remove_from_list( t ); + FREE( t ); +} + +/* Keep track of swapped out texture objects. + */ +static void radeonSwapOutTexObj( radeonContextPtr rmesa, radeonTexObjPtr t ) +{ +#if ENABLE_PERF_BOXES + /* Bump the performace counter */ + rmesa->c_textureSwaps++; +#endif + if ( t->memBlock ) { + mmFreeMem( t->memBlock ); + t->memBlock = NULL; + } + + t->dirty_images = ~0; + move_to_tail( &rmesa->SwappedOut, t ); +} + +/* Print out debugging information about texture LRU. + */ +void radeonPrintLocalLRU( radeonContextPtr rmesa, int heap ) +{ + radeonTexObjPtr t; + int sz = 1 << (rmesa->radeonScreen->logTexGranularity[heap]); + + fprintf( stderr, "\nLocal LRU, heap %d:\n", heap ); + + foreach ( t, &rmesa->TexObjList[heap] ) { + if (!t->tObj) { + fprintf( stderr, "Placeholder %d at 0x%x sz 0x%x\n", + t->memBlock->ofs / sz, + t->memBlock->ofs, + t->memBlock->size ); + } else { + fprintf( stderr, "Texture (bound %d) at 0x%x sz 0x%x\n", + t->bound, + t->memBlock->ofs, + t->memBlock->size ); + } + } + + fprintf( stderr, "\n" ); +} + +void radeonPrintGlobalLRU( radeonContextPtr rmesa, int heap ) +{ + radeon_tex_region_t *list = rmesa->sarea->texList[heap]; + int i, j; + + fprintf( stderr, "\nGlobal LRU, heap %d list %p:\n", heap, list ); + + for ( i = 0, j = RADEON_NR_TEX_REGIONS ; i < RADEON_NR_TEX_REGIONS ; i++ ) { + fprintf( stderr, "list[%d] age %d next %d prev %d\n", + j, list[j].age, list[j].next, list[j].prev ); + j = list[j].next; + if ( j == RADEON_NR_TEX_REGIONS ) break; + } + + if ( j != RADEON_NR_TEX_REGIONS ) { + fprintf( stderr, "Loop detected in global LRU\n" ); + for ( i = 0 ; i < RADEON_NR_TEX_REGIONS ; i++ ) { + fprintf( stderr, "list[%d] age %d next %d prev %d\n", + i, list[i].age, list[i].next, list[i].prev ); + } + } + + fprintf( stderr, "\n" ); +} + +/* Reset the global texture LRU. + */ +static void radeonResetGlobalLRU( radeonContextPtr rmesa, int heap ) +{ + radeon_tex_region_t *list = rmesa->sarea->texList[heap]; + int sz = 1 << rmesa->radeonScreen->logTexGranularity[heap]; + int i; + + /* + * (Re)initialize the global circular LRU list. The last element in + * the array (RADEON_NR_TEX_REGIONS) is the sentinal. Keeping it at + * the end of the array allows it to be addressed rationally when + * looking up objects at a particular location in texture memory. + */ + for ( i = 0 ; (i+1) * sz <= rmesa->radeonScreen->texSize[heap] ; i++ ) { + list[i].prev = i-1; + list[i].next = i+1; + list[i].age = 0; + } + + i--; + list[0].prev = RADEON_NR_TEX_REGIONS; + list[i].prev = i-1; + list[i].next = RADEON_NR_TEX_REGIONS; + list[RADEON_NR_TEX_REGIONS].prev = i; + list[RADEON_NR_TEX_REGIONS].next = 0; + rmesa->sarea->texAge[heap] = 0; +} + +/* Update the local and glock texture LRUs. + */ +static void radeonUpdateTexLRU(radeonContextPtr rmesa, radeonTexObjPtr t ) +{ + int heap = t->heap; + radeon_tex_region_t *list = rmesa->sarea->texList[heap]; + int sz = rmesa->radeonScreen->logTexGranularity[heap]; + int start = t->memBlock->ofs >> sz; + int end = (t->memBlock->ofs + t->memBlock->size-1) >> sz; + int i; + + rmesa->lastTexAge[heap] = ++rmesa->sarea->texAge[heap]; + + if ( !t->memBlock ) { + fprintf( stderr, "no memblock\n\n" ); + return; + } + + /* Update our local LRU */ + move_to_head( &rmesa->TexObjList[heap], t ); + + /* Update the global LRU */ + for ( i = start ; i <= end ; i++ ) { + list[i].in_use = 1; + list[i].age = rmesa->lastTexAge[heap]; + + /* remove_from_list(i) */ + list[(CARD32)list[i].next].prev = list[i].prev; + list[(CARD32)list[i].prev].next = list[i].next; + + /* insert_at_head(list, i) */ + list[i].prev = RADEON_NR_TEX_REGIONS; + list[i].next = list[RADEON_NR_TEX_REGIONS].next; + list[(CARD32)list[RADEON_NR_TEX_REGIONS].next].prev = i; + list[RADEON_NR_TEX_REGIONS].next = i; + } + + if ( 0 ) { + radeonPrintGlobalLRU( rmesa, t->heap ); + radeonPrintLocalLRU( rmesa, t->heap ); + } +} + +/* Update our notion of what textures have been changed since we last + * held the lock. This pertains to both our local textures and the + * textures belonging to other clients. Keep track of other client's + * textures by pushing a placeholder texture onto the LRU list -- these + * are denoted by (tObj == NULL). + */ +static void radeonTexturesGone( radeonContextPtr rmesa, int heap, + int offset, int size, int in_use ) +{ + radeonTexObjPtr t, tmp; + + foreach_s ( t, tmp, &rmesa->TexObjList[heap] ) { + if ( t->memBlock->ofs >= offset + size || + t->memBlock->ofs + t->memBlock->size <= offset ) + continue; + + /* It overlaps - kick it out. Need to hold onto the currently + * bound objects, however. + */ + if ( t->bound ) { + radeonSwapOutTexObj( rmesa, t ); + } else { + radeonDestroyTexObj( rmesa, t ); + } + } + + if ( in_use ) { + t = (radeonTexObjPtr) CALLOC( sizeof(*t) ); + if ( !t ) return; + + t->memBlock = mmAllocMem( rmesa->texHeap[heap], size, 0, offset ); + if ( !t->memBlock ) { + fprintf( stderr, "Couldn't alloc placeholder sz %x ofs %x\n", + (int)size, (int)offset ); + mmDumpMemInfo( rmesa->texHeap[heap] ); + return; + } + insert_at_head( &rmesa->TexObjList[heap], t ); + } +} + +/* Update our client's shared texture state. If another client has + * modified a region in which we have textures, then we need to figure + * out which of our textures has been removed, and update our global + * LRU. + */ +void radeonAgeTextures( radeonContextPtr rmesa, int heap ) +{ + RADEONSAREAPrivPtr sarea = rmesa->sarea; + + if ( sarea->texAge[heap] != rmesa->lastTexAge[heap] ) { + int sz = 1 << rmesa->radeonScreen->logTexGranularity[heap]; + int nr = 0; + int idx; + + for ( idx = sarea->texList[heap][RADEON_NR_TEX_REGIONS].prev ; + idx != RADEON_NR_TEX_REGIONS && nr < RADEON_NR_TEX_REGIONS ; + idx = sarea->texList[heap][idx].prev, nr++ ) + { + /* If switching texturing schemes, then the SAREA might not + * have been properly cleared, so we need to reset the + * global texture LRU. + */ + if ( idx * sz > rmesa->radeonScreen->texSize[heap] ) { + nr = RADEON_NR_TEX_REGIONS; + break; + } + + if ( sarea->texList[heap][idx].age > rmesa->lastTexAge[heap] ) { + radeonTexturesGone( rmesa, heap, idx * sz, sz, + sarea->texList[heap][idx].in_use ); + } + } + + if ( nr == RADEON_NR_TEX_REGIONS ) { + radeonTexturesGone( rmesa, heap, 0, + rmesa->radeonScreen->texSize[heap], 0 ); + radeonResetGlobalLRU( rmesa, heap ); + } + + rmesa->dirty |= (RADEON_UPLOAD_CONTEXT | + RADEON_UPLOAD_TEX0IMAGES | + RADEON_UPLOAD_TEX1IMAGES); + rmesa->lastTexAge[heap] = sarea->texAge[heap]; + } +} + + +/* ================================================================ + * Texture image conversions + */ + +/* Convert a block of Mesa-formatted texture to an 8bpp hardware format. + */ +static void radeonConvertTexture8bpp( CARD32 *dst, + struct gl_texture_image *image, + int x, int y, int width, int height, + int pitch ) +{ + CARD8 *src; + int i, j; + + if ( width < 4 ) { + width = 4; + } + +#define ALIGN_DST \ + do { \ + if ( width < 32 ) { \ + dst += ((32 - width) / 4); \ + } \ + } while (0) + + switch ( image->Format ) { + case GL_INTENSITY: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x); + for ( j = width >> 2 ; j ; j-- ) { + *dst++ = src[0] | (src[1] << 8) | (src[2] << 16) | (src[3] << 24); + src += 4; + } + ALIGN_DST; + } + break; + + case GL_COLOR_INDEX: + default: + fprintf( stderr, "%s: unsupported format 0x%x\n", + __FUNCTION__, image->Format ); + break; + } +} +#undef ALIGN_DST + +/* Convert a block of Mesa-formatted texture to a 16bpp hardware format. + */ +static void radeonConvertTexture16bpp( CARD32 *dst, + struct gl_texture_image *image, + int x, int y, int width, int height, + int pitch ) +{ + CARD8 *src; + int i, j; + + if ( width < 2 ) { + width = 2; + } + +#define ALIGN_DST \ + do { \ + if ( width < 16 ) { \ + dst += ((16 - width) / 2); \ + } \ + } while (0) + + switch ( image->Format ) { + case GL_RGBA: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 4; + for ( j = width >> 1 ; j ; j-- ) { + *dst++ = ((RADEONPACKCOLOR4444( src[0], src[1], src[2], src[3] )) | + (RADEONPACKCOLOR4444( src[4], src[5], src[6], src[7] ) << 16)); + src += 8; + } + ALIGN_DST; + } + break; + + case GL_RGB: + { + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; + for ( j = width >> 1 ; j ; j-- ) { + *dst++ = ((RADEONPACKCOLOR565( src[0], src[1], src[2] )) | + (RADEONPACKCOLOR565( src[3], src[4], src[5] ) << 16)); + src += 6; + } + ALIGN_DST; + } + } + break; + + case GL_ALPHA: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x); + for ( j = width >> 1 ; j ; j-- ) { + *dst++ = ((RADEONPACKCOLOR88( 0x00, src[0] )) | + (RADEONPACKCOLOR88( 0x00, src[1] ) << 16)); + src += 2; + } + ALIGN_DST; + } + break; + + case GL_LUMINANCE: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x); + for ( j = width >> 1 ; j ; j-- ) { + *dst++ = ((RADEONPACKCOLOR88( src[0], 0xff )) | + (RADEONPACKCOLOR88( src[1], 0xff ) << 16)); + src += 2; + } + ALIGN_DST; + } + break; + + case GL_LUMINANCE_ALPHA: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 2; + for ( j = width >> 1 ; j ; j-- ) { + *dst++ = ((RADEONPACKCOLOR88( src[0], src[1] )) | + (RADEONPACKCOLOR88( src[2], src[3] ) << 16)); + src += 4; + } + ALIGN_DST; + } + break; + + default: + fprintf( stderr, "%s: unsupported format 0x%x\n", + __FUNCTION__, image->Format ); + break; + } +} +#undef ALIGN_DST + +/* Convert a block of Mesa-formatted texture to a 32bpp hardware format. + */ +static void radeonConvertTexture32bpp( CARD32 *dst, + struct gl_texture_image *image, + int x, int y, int width, int height, + int pitch ) +{ + CARD8 *src; + int i, j; + +#define ALIGN_DST \ + do { \ + if ( width < 8 ) { \ + dst += (8 - width); \ + } \ + } while (0) + + switch ( image->Format ) { + case GL_RGBA: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 4; + for ( j = width ; j ; j-- ) { + *dst++ = RADEONPACKCOLOR8888( src[0], src[1], src[2], src[3] ); + src += 4; + } + ALIGN_DST; + } + break; + + case GL_RGB: + for ( i = 0 ; i < height ; i++ ) { + src = (CARD8 *)image->Data + ((y + i) * pitch + x) * 3; + for ( j = width ; j ; j-- ) { + *dst++ = RADEONPACKCOLOR8888( src[0], src[1], src[2], 0xff ); + src += 3; + } + ALIGN_DST; + } + break; + + default: + fprintf( stderr, "%s: unsupported format 0x%x\n", + __FUNCTION__, image->Format ); + break; + } +} + +/* Upload the texture image associated with texture `t' at level `level' + * at the address relative to `start'. + */ +static void radeonUploadSubImage( radeonContextPtr rmesa, + radeonTexObjPtr t, GLint level, + GLint x, GLint y, GLint width, GLint height ) +{ + struct gl_texture_image *image; + GLint texelsPerDword = 0; + GLint imageX, imageY, imageWidth, imageHeight; + GLint blitX, blitY, blitWidth, blitHeight; + GLint imageRows, blitRows; + GLint remaining ; + GLint format, dwords; + CARD32 pitch, offset; + drmBufPtr buffer; + CARD32 *dst; + + /* Ensure we have a valid texture to upload */ + if ( ( level < 0 ) || ( level >= RADEON_MAX_TEXTURE_LEVELS ) ) + return; + + image = t->tObj->Image[level]; + if ( !image ) + return; + + switch ( t->texelBytes ) { + case 1: + texelsPerDword = 4; + break; + case 2: + texelsPerDword = 2; + break; + case 4: + texelsPerDword = 1; + break; + } + + format = t->setup.pp_txformat & RADEON_TXF_FORMAT_MASK; + + imageX = 0; + imageY = 0; + imageWidth = image->Width; + imageHeight = image->Height; + + blitX = t->image[level].x; + blitY = t->image[level].y; + blitWidth = t->image[level].width; + blitHeight = t->image[level].height; + + dwords = t->image[level].dwords; + offset = t->bufAddr; + pitch = (t->image[0].width * t->texelBytes) / 64; + +#if ENABLE_PERF_BOXES + /* Bump the performace counter */ + rmesa->c_textureBytes += (dwords << 2); +#endif + + if ( RADEON_DEBUG & DEBUG_VERBOSE_MSG ) { + fprintf( stderr, " upload image: %d,%d at %d,%d\n", + imageWidth, imageHeight, imageX, imageY ); + fprintf( stderr, " upload blit: %d,%d at %d,%d\n", + blitWidth, blitHeight, blitX, blitY ); + fprintf( stderr, " blit ofs: 0x%07x pitch: 0x%x dwords: %d " + "level: %d format: %x\n", + (GLuint)offset, (GLuint)pitch, dwords, level, format ); + } + + /* Subdivide the texture if required */ + if ( dwords <= RADEON_BUFFER_MAX_DWORDS / 2 ) { + imageRows = imageHeight; + blitRows = blitHeight; + } else { + imageRows = (RADEON_BUFFER_MAX_DWORDS * texelsPerDword)/(2 * imageWidth); + blitRows = (RADEON_BUFFER_MAX_DWORDS * texelsPerDword) / (2 * blitWidth); + } + + for ( remaining = imageHeight ; + remaining > 0 ; + remaining -= imageRows, imageY += imageRows, blitY += blitRows ) + { + if ( remaining >= imageRows ) { + imageHeight = imageRows; + blitHeight = blitRows; + } else { + imageHeight = remaining; + blitHeight = blitRows; + } + dwords = blitWidth * blitHeight / texelsPerDword; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_MSG ) { + fprintf( stderr, " blitting: %d,%d at %d,%d\n", + imageWidth, imageHeight, imageX, imageY ); + fprintf( stderr, " %d,%d at %d,%d - %d dwords\n", + blitWidth, blitHeight, blitX, blitY, dwords ); + } + + /* Grab the indirect buffer for the texture blit */ + buffer = radeonGetBufferLocked( rmesa ); + + dst = (CARD32 *)((char *)buffer->address + RADEON_HOSTDATA_BLIT_OFFSET); + + /* Actually do the texture conversion */ + switch ( t->texelBytes ) { + case 1: + radeonConvertTexture8bpp( dst, image, + imageX, imageY, imageWidth, imageHeight, + imageWidth ); + break; + case 2: + radeonConvertTexture16bpp( dst, image, + imageX, imageY, imageWidth, imageHeight, + imageWidth ); + break; + case 4: + radeonConvertTexture32bpp( dst, image, + imageX, imageY, imageWidth, imageHeight, + imageWidth ); + break; + } + + radeonFireBlitLocked( rmesa, buffer, + offset, pitch, format, + blitX, blitY, blitWidth, blitHeight ); + } + + rmesa->new_state |= RADEON_NEW_CONTEXT; + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_MASKS; +} + +/* Upload the texture images associated with texture `t'. This might + * require removing our own and/or other client's texture objects to + * make room for these images. + */ +/* NOTE: This function is only called while holding the hardware lock */ +int radeonUploadTexImages( radeonContextPtr rmesa, radeonTexObjPtr t ) +{ + int i; + int heap; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %p, %p )\n", + __FUNCTION__, rmesa->glCtx, t ); + } + + if ( !t ) + return 0; + + /* Choose the heap appropriately */ + heap = t->heap = RADEON_CARD_HEAP; +#if 0 + if ( !rmesa->radeonScreen->IsPCI && + t->totalSize > rmesa->radeonScreen->texSize[heap] ) { + heap = t->heap = RADEON_AGP_HEAP; + } +#endif + + /* Do we need to eject LRU texture objects? */ + if ( !t->memBlock ) { + /* Allocate a memory block on a 4k boundary (1<<12 == 4096) */ + t->memBlock = mmAllocMem( rmesa->texHeap[heap], + t->totalSize, 12, 0 ); + +#if 0 + /* Try AGP before kicking anything out of local mem */ + if ( !t->memBlock && heap == RADEON_CARD_HEAP ) { + t->memBlock = mmAllocMem( rmesa->texHeap[RADEON_AGP_HEAP], + t->totalSize, 12, 0 ); + + if ( t->memBlock ) + heap = t->heap = RADEON_AGP_HEAP; + } +#endif + + /* Kick out textures until the requested texture fits */ + while ( !t->memBlock ) { + if ( rmesa->TexObjList[heap].prev->bound ) { + fprintf( stderr, + "radeonUploadTexImages: ran into bound texture\n" ); + return -1; + } + if ( rmesa->TexObjList[heap].prev == + &rmesa->TexObjList[heap] ) { + if ( rmesa->radeonScreen->IsPCI ) { + fprintf( stderr, "radeonUploadTexImages: upload texture " + "failure on local texture heaps, sz=%d\n", + t->totalSize ); + return -1; +#if 0 + } else if ( heap == RADEON_CARD_HEAP ) { + heap = t->heap = RADEON_AGP_HEAP; + continue; +#endif + } else { + fprintf( stderr, "radeonUploadTexImages: upload texture " + "failure on both local and AGP texture heaps, " + "sz=%d\n", + t->totalSize ); + return -1; + } + } + + radeonDestroyTexObj( rmesa, rmesa->TexObjList[heap].prev ); + + t->memBlock = mmAllocMem( rmesa->texHeap[heap], + t->totalSize, 12, 0 ); + } + + /* Set the base offset of the texture image */ + t->bufAddr = rmesa->radeonScreen->texOffset[heap] + t->memBlock->ofs; + + t->setup.pp_txoffset = t->bufAddr; +#if 0 + /* Fix AGP texture offsets */ + if ( heap == RADEON_AGP_HEAP ) { + t->setup.pp_tx_offset += RADEON_AGP_TEX_OFFSET + + rmesa->radeonScreen->agpTexOffset; + } +#endif + + /* Force loading the new state into the hardware */ + switch ( t->bound ) { + case 1: + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_TEX0; + break; + + case 2: + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | RADEON_UPLOAD_TEX1; + break; + + default: + return -1; + } + } + + /* Let the world know we've used this memory recently */ + radeonUpdateTexLRU( rmesa, t ); + + /* Upload any images that are new */ + if ( t->dirty_images ) { + int num_levels = ((t->setup.pp_txfilter & RADEON_MAX_MIP_LEVEL_MASK) >> + RADEON_MAX_MIP_LEVEL_SHIFT); + + for ( i = 0 ; i <= num_levels ; i++ ) { + if ( t->dirty_images & (1 << i) ) { + radeonUploadSubImage( rmesa, t, i, 0, 0, + t->image[i].width, t->image[i].height ); + } + } + + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; + } + + t->dirty_images = 0; + return 0; +} + + +/* ================================================================ + * Texture combine functions + */ + +#define RADEON_DISABLE 0 +#define RADEON_REPLACE 1 +#define RADEON_MODULATE 2 +#define RADEON_DECAL 3 +#define RADEON_BLEND 4 +#define RADEON_ADD 5 +#define RADEON_MAX_COMBFUNC 6 + +static GLuint radeon_color_combine[][RADEON_MAX_COMBFUNC] = +{ + /* Unit 0: + */ + { + /* Disable combiner stage + */ + (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_CURRENT_COLOR | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_REPLACE = 0x00802800 + */ + (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_T0_COLOR | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_MODULATE = 0x00800142 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_T0_COLOR | + RADEON_COLOR_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_DECAL = 0x008c2d42 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_T0_COLOR | + RADEON_COLOR_ARG_C_T0_ALPHA | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_BLEND = 0x008c2902 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_TFACTOR_COLOR | + RADEON_COLOR_ARG_C_T0_COLOR | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_ADD = 0x00812802 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_T0_COLOR | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + }, + + /* Unit 1: + */ + { + /* Disable combiner stage + */ + (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_CURRENT_COLOR | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_REPLACE = 0x00803000 + */ + (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_T1_COLOR | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_MODULATE = 0x00800182 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_T1_COLOR | + RADEON_COLOR_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_DECAL = 0x008c3582 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_T1_COLOR | + RADEON_COLOR_ARG_C_T1_ALPHA | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_BLEND = 0x008c3102 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_TFACTOR_COLOR | + RADEON_COLOR_ARG_C_T1_COLOR | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_ADD = 0x00813002 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_T1_COLOR | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + }, + + /* Unit 2: + */ + { + /* Disable combiner stage + */ + (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_CURRENT_COLOR | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_REPLACE = 0x00803800 + */ + (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_T2_COLOR | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_MODULATE = 0x008001c2 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_T2_COLOR | + RADEON_COLOR_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_DECAL = 0x008c3dc2 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_T2_COLOR | + RADEON_COLOR_ARG_C_T2_ALPHA | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_BLEND = 0x008c3902 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_TFACTOR_COLOR | + RADEON_COLOR_ARG_C_T2_COLOR | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_ADD = 0x00813802 + */ + (RADEON_COLOR_ARG_A_CURRENT_COLOR | + RADEON_COLOR_ARG_B_ZERO | + RADEON_COLOR_ARG_C_T2_COLOR | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + } +}; + +static GLuint radeon_alpha_combine[][RADEON_MAX_COMBFUNC] = +{ + /* Unit 0: + */ + { + /* Disable combiner stage + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_CURRENT_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_REPLACE = 0x00800500 + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_T0_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_MODULATE = 0x00800051 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_T0_ALPHA | + RADEON_ALPHA_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_DECAL = 0x00800100 + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_CURRENT_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_BLEND = 0x00800051 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_TFACTOR_ALPHA | + RADEON_ALPHA_ARG_C_T0_ALPHA | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_ADD = 0x00800051 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_T0_ALPHA | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + }, + + /* Unit 1: + */ + { + /* Disable combiner stage + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_CURRENT_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_REPLACE = 0x00800600 + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_T1_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_MODULATE = 0x00800061 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_T1_ALPHA | + RADEON_ALPHA_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_DECAL = 0x00800100 + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_CURRENT_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_BLEND = 0x00800061 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_TFACTOR_ALPHA | + RADEON_ALPHA_ARG_C_T1_ALPHA | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_ADD = 0x00800061 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_T1_ALPHA | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + }, + + /* Unit 2: + */ + { + /* Disable combiner stage + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_CURRENT_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_REPLACE = 0x00800700 + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_T2_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_MODULATE = 0x00800071 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_T2_ALPHA | + RADEON_ALPHA_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_DECAL = 0x00800100 + */ + (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_CURRENT_ALPHA | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_BLEND = 0x00800071 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_TFACTOR_ALPHA | + RADEON_ALPHA_ARG_C_T2_ALPHA | + RADEON_BLEND_CTL_BLEND | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + + /* GL_ADD = 0x00800021 + */ + (RADEON_ALPHA_ARG_A_CURRENT_ALPHA | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_ALPHA_ARG_C_T2_ALPHA | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_SCALE_1X | + RADEON_CLAMP_TX), + } +}; + + +/* GL_EXT_texture_env_combine support + */ + +/* The color tables have combine functions for GL_SRC_COLOR, + * GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA and GL_ONE_MINUS_SRC_ALPHA. + */ +static GLuint radeon_texture_color[][RADEON_MAX_TEXTURE_UNITS] = +{ + { + RADEON_COLOR_ARG_A_T0_COLOR, + RADEON_COLOR_ARG_A_T1_COLOR, + RADEON_COLOR_ARG_A_T2_COLOR + }, + { + RADEON_COLOR_ARG_A_T0_COLOR | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_T1_COLOR | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_T2_COLOR | RADEON_COMP_ARG_A + }, + { + RADEON_COLOR_ARG_A_T0_ALPHA, + RADEON_COLOR_ARG_A_T1_ALPHA, + RADEON_COLOR_ARG_A_T2_ALPHA + }, + { + RADEON_COLOR_ARG_A_T0_ALPHA | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_T1_ALPHA | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_T2_ALPHA | RADEON_COMP_ARG_A + }, +}; + +static GLuint radeon_tfactor_color[] = +{ + RADEON_COLOR_ARG_A_TFACTOR_COLOR, + RADEON_COLOR_ARG_A_TFACTOR_COLOR | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_TFACTOR_ALPHA, + RADEON_COLOR_ARG_A_TFACTOR_ALPHA | RADEON_COMP_ARG_A +}; + +static GLuint radeon_primary_color[] = +{ + RADEON_COLOR_ARG_A_DIFFUSE_COLOR, + RADEON_COLOR_ARG_A_DIFFUSE_COLOR | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_DIFFUSE_ALPHA, + RADEON_COLOR_ARG_A_DIFFUSE_ALPHA | RADEON_COMP_ARG_A +}; + +static GLuint radeon_previous_color[] = +{ + RADEON_COLOR_ARG_A_CURRENT_COLOR, + RADEON_COLOR_ARG_A_CURRENT_COLOR | RADEON_COMP_ARG_A, + RADEON_COLOR_ARG_A_CURRENT_ALPHA, + RADEON_COLOR_ARG_A_CURRENT_ALPHA | RADEON_COMP_ARG_A +}; + +/* The alpha tables only have GL_SRC_ALPHA and GL_ONE_MINUS_SRC_ALPHA. + */ +static GLuint radeon_texture_alpha[][RADEON_MAX_TEXTURE_UNITS] = +{ + { + RADEON_ALPHA_ARG_A_T0_ALPHA, + RADEON_ALPHA_ARG_A_T1_ALPHA, + RADEON_ALPHA_ARG_A_T2_ALPHA + }, + { + RADEON_ALPHA_ARG_A_T0_ALPHA | RADEON_COMP_ARG_A, + RADEON_ALPHA_ARG_A_T1_ALPHA | RADEON_COMP_ARG_A, + RADEON_ALPHA_ARG_A_T2_ALPHA | RADEON_COMP_ARG_A + }, +}; + +static GLuint radeon_tfactor_alpha[] = +{ + RADEON_ALPHA_ARG_A_TFACTOR_ALPHA, + RADEON_ALPHA_ARG_A_TFACTOR_ALPHA | RADEON_COMP_ARG_A +}; + +static GLuint radeon_primary_alpha[] = +{ + RADEON_ALPHA_ARG_A_DIFFUSE_ALPHA, + RADEON_ALPHA_ARG_A_DIFFUSE_ALPHA | RADEON_COMP_ARG_A +}; + +static GLuint radeon_previous_alpha[] = +{ + RADEON_ALPHA_ARG_A_CURRENT_ALPHA, + RADEON_ALPHA_ARG_A_CURRENT_ALPHA | RADEON_COMP_ARG_A +}; + + +/* Extract the arg from slot A, shift it into the correct argument slot + * and set the corresponding complement bit. + */ +#define RADEON_COLOR_ARG( n, arg ) \ +do { \ + color_combine |= \ + ((color_arg[n] & RADEON_COLOR_ARG_MASK) \ + << RADEON_COLOR_ARG_##arg##_SHIFT); \ + color_combine |= \ + ((color_arg[n] >> RADEON_COMP_ARG_SHIFT) \ + << RADEON_COMP_ARG_##arg##_SHIFT); \ +} while (0) + +#define RADEON_ALPHA_ARG( n, arg ) \ +do { \ + alpha_combine |= \ + ((alpha_arg[n] & RADEON_ALPHA_ARG_MASK) \ + << RADEON_ALPHA_ARG_##arg##_SHIFT); \ + alpha_combine |= \ + ((alpha_arg[n] >> RADEON_COMP_ARG_SHIFT) \ + << RADEON_COMP_ARG_##arg##_SHIFT); \ +} while (0) + + +/* ================================================================ + * Texture unit state management + */ + +static void radeonUpdateTextureEnv( GLcontext *ctx, int unit ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + int source = rmesa->tmu_source[unit]; + struct gl_texture_object *tObj; + struct gl_texture_unit *texUnit; + GLuint enabled; + GLuint color_combine, alpha_combine; + GLuint color_arg[3], alpha_arg[3]; + GLuint i, numColorArgs = 0, numAlphaArgs = 0; + GLuint op; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %p, %d )\n", + __FUNCTION__, ctx, unit ); + } + + enabled = (ctx->Texture.ReallyEnabled >> (source * 4)) & TEXTURE0_ANY; + if ( enabled != TEXTURE0_2D && enabled != TEXTURE0_1D ) + return; + + /* Only update the hardware texture state if the texture is current, + * complete and enabled. + */ + texUnit = &ctx->Texture.Unit[source]; + tObj = texUnit->Current; + if ( !tObj || !tObj->Complete ) + return; + + if ( ( tObj != texUnit->CurrentD[2] ) && + ( tObj != texUnit->CurrentD[1] ) ) + return; + + /* Set the texture environment state. Isn't this nice and clean? + * The Radeon will automagically set the texture alpha to 0xff when + * the texture format does not include an alpha component. This + * reduces the amount of special-casing we have to do, alpha-only + * textures being a notable exception. + */ + switch ( texUnit->EnvMode ) { + case GL_REPLACE: + switch ( tObj->Image[0]->Format ) { + case GL_RGBA: + case GL_RGB: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + case GL_INTENSITY: + color_combine = radeon_color_combine[unit][RADEON_REPLACE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_REPLACE]; + break; + case GL_ALPHA: + color_combine = radeon_color_combine[unit][RADEON_DISABLE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_REPLACE]; + break; + case GL_COLOR_INDEX: + default: + return; + } + break; + + case GL_MODULATE: + switch ( tObj->Image[0]->Format ) { + case GL_RGBA: + case GL_RGB: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + case GL_INTENSITY: + color_combine = radeon_color_combine[unit][RADEON_MODULATE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; + break; + case GL_ALPHA: + color_combine = radeon_color_combine[unit][RADEON_DISABLE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; + break; + case GL_COLOR_INDEX: + default: + return; + } + break; + + case GL_DECAL: + switch ( tObj->Image[0]->Format ) { + case GL_RGBA: + case GL_RGB: + color_combine = radeon_color_combine[unit][RADEON_DECAL]; + alpha_combine = radeon_alpha_combine[unit][RADEON_DISABLE]; + break; + case GL_ALPHA: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + case GL_INTENSITY: + color_combine = radeon_color_combine[unit][RADEON_DISABLE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_DISABLE]; + break; + case GL_COLOR_INDEX: + default: + return; + } + break; + + case GL_BLEND: + switch ( tObj->Image[0]->Format ) { + case GL_RGBA: + case GL_RGB: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + color_combine = radeon_color_combine[unit][RADEON_BLEND]; + alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; + break; + case GL_ALPHA: + color_combine = radeon_color_combine[unit][RADEON_DISABLE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; + break; + case GL_INTENSITY: + color_combine = radeon_color_combine[unit][RADEON_BLEND]; + alpha_combine = radeon_alpha_combine[unit][RADEON_BLEND]; + break; + case GL_COLOR_INDEX: + default: + return; + } + break; + + case GL_ADD: + switch ( tObj->Image[0]->Format ) { + case GL_RGBA: + case GL_RGB: + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + color_combine = radeon_color_combine[unit][RADEON_ADD]; + alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; + break; + case GL_ALPHA: + color_combine = radeon_color_combine[unit][RADEON_DISABLE]; + alpha_combine = radeon_alpha_combine[unit][RADEON_MODULATE]; + break; + case GL_INTENSITY: + color_combine = radeon_color_combine[unit][RADEON_ADD]; + alpha_combine = radeon_alpha_combine[unit][RADEON_ADD]; + break; + case GL_COLOR_INDEX: + default: + return; + } + break; + + case GL_COMBINE_EXT: + /* Step 0: + * Calculate how many arguments we need to process. + */ + switch ( texUnit->CombineModeRGB ) { + case GL_REPLACE: + numColorArgs = 1; + break; + case GL_MODULATE: + case GL_ADD: + case GL_ADD_SIGNED_EXT: + case GL_DOT3_RGB_EXT: + case GL_DOT3_RGBA_EXT: + numColorArgs = 2; + break; + case GL_INTERPOLATE_EXT: + numColorArgs = 3; + break; + default: + return; + } + + switch ( texUnit->CombineModeA ) { + case GL_REPLACE: + numAlphaArgs = 1; + break; + case GL_MODULATE: + case GL_ADD: + case GL_ADD_SIGNED_EXT: + numAlphaArgs = 2; + break; + case GL_INTERPOLATE_EXT: + numAlphaArgs = 3; + break; + default: + return; + } + + /* Step 1: + * Extract the color and alpha combine function arguments. + */ + for ( i = 0 ; i < numColorArgs ; i++ ) { + op = texUnit->CombineOperandRGB[i] - GL_SRC_COLOR; + switch ( texUnit->CombineSourceRGB[i] ) { + case GL_TEXTURE: + color_arg[i] = radeon_texture_color[op][unit]; + break; + case GL_CONSTANT_EXT: + color_arg[i] = radeon_tfactor_color[op]; + break; + case GL_PRIMARY_COLOR_EXT: + color_arg[i] = radeon_primary_color[op]; + break; + case GL_PREVIOUS_EXT: + color_arg[i] = radeon_previous_color[op]; + break; + default: + return; + } + } + + for ( i = 0 ; i < numAlphaArgs ; i++ ) { + op = texUnit->CombineOperandA[i] - GL_SRC_ALPHA; + switch ( texUnit->CombineSourceA[i] ) { + case GL_TEXTURE: + alpha_arg[i] = radeon_texture_alpha[op][unit]; + break; + case GL_CONSTANT_EXT: + alpha_arg[i] = radeon_tfactor_alpha[op]; + break; + case GL_PRIMARY_COLOR_EXT: + alpha_arg[i] = radeon_primary_alpha[op]; + break; + case GL_PREVIOUS_EXT: + alpha_arg[i] = radeon_previous_alpha[op]; + break; + default: + return; + } + } + + /* Step 2: + * Build up the color and alpha combine functions. + */ + switch ( texUnit->CombineModeRGB ) { + case GL_REPLACE: + color_combine = (RADEON_COLOR_ARG_A_ZERO | + RADEON_COLOR_ARG_B_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_CLAMP_TX); + RADEON_COLOR_ARG( 0, C ); + break; + case GL_MODULATE: + color_combine = (RADEON_COLOR_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_CLAMP_TX); + RADEON_COLOR_ARG( 0, A ); + RADEON_COLOR_ARG( 1, B ); + break; + case GL_ADD: + color_combine = (RADEON_COLOR_ARG_B_ZERO | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_CLAMP_TX); + RADEON_COLOR_ARG( 0, A ); + RADEON_COLOR_ARG( 1, C ); + break; + case GL_ADD_SIGNED_EXT: + color_combine = (RADEON_COLOR_ARG_B_ZERO | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADDSIGNED | + RADEON_CLAMP_TX); + RADEON_COLOR_ARG( 0, A ); + RADEON_COLOR_ARG( 1, C ); + break; + case GL_INTERPOLATE_EXT: + color_combine = (RADEON_BLEND_CTL_BLEND | + RADEON_CLAMP_TX); + RADEON_COLOR_ARG( 0, B ); + RADEON_COLOR_ARG( 1, A ); + RADEON_COLOR_ARG( 2, C ); + break; + case GL_DOT3_RGB_EXT: + case GL_DOT3_RGBA_EXT: + color_combine = (RADEON_COLOR_ARG_C_ZERO | + RADEON_BLEND_CTL_DOT3 | + RADEON_CLAMP_TX); + RADEON_COLOR_ARG( 0, A ); + RADEON_COLOR_ARG( 1, B ); + break; + default: + return; + } + + switch ( texUnit->CombineModeA ) { + case GL_REPLACE: + alpha_combine = (RADEON_ALPHA_ARG_A_ZERO | + RADEON_ALPHA_ARG_B_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_CLAMP_TX); + RADEON_ALPHA_ARG( 0, C ); + break; + case GL_MODULATE: + alpha_combine = (RADEON_ALPHA_ARG_C_ZERO | + RADEON_BLEND_CTL_ADD | + RADEON_CLAMP_TX); + RADEON_ALPHA_ARG( 0, A ); + RADEON_ALPHA_ARG( 1, B ); + break; + case GL_ADD: + alpha_combine = (RADEON_ALPHA_ARG_B_ZERO | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADD | + RADEON_CLAMP_TX); + RADEON_ALPHA_ARG( 0, A ); + RADEON_ALPHA_ARG( 1, C ); + break; + case GL_ADD_SIGNED_EXT: + alpha_combine = (RADEON_ALPHA_ARG_B_ZERO | + RADEON_COMP_ARG_B | + RADEON_BLEND_CTL_ADDSIGNED | + RADEON_CLAMP_TX); + RADEON_ALPHA_ARG( 0, A ); + RADEON_ALPHA_ARG( 1, C ); + break; + case GL_INTERPOLATE_EXT: + alpha_combine = (RADEON_BLEND_CTL_BLEND | + RADEON_CLAMP_TX); + RADEON_ALPHA_ARG( 0, B ); + RADEON_ALPHA_ARG( 1, A ); + RADEON_ALPHA_ARG( 2, C ); + break; + default: + return; + } + + if ( texUnit->CombineModeRGB == GL_DOT3_RGB_EXT ) { + alpha_combine |= RADEON_DOT_ALPHA_DONT_REPLICATE; + } + + /* Step 3: + * Apply the scale factor. The EXT extension has a somewhat + * unnecessary restriction that the scale must be 4x. The ARB + * extension will likely drop this and we can just apply the + * scale factors regardless. + */ + if ( texUnit->CombineModeRGB != GL_DOT3_RGB_EXT && + texUnit->CombineModeRGB != GL_DOT3_RGBA_EXT ) { + color_combine |= (texUnit->CombineScaleShiftRGB << 21); + alpha_combine |= (texUnit->CombineScaleShiftA << 21); + } else { + color_combine |= RADEON_SCALE_4X; + alpha_combine |= RADEON_SCALE_4X; + } + + /* All done! + */ + break; + + default: + return; + } + + rmesa->color_combine[source] = color_combine; + rmesa->alpha_combine[source] = alpha_combine; +} + +static void radeonUpdateTextureObject( GLcontext *ctx, int unit ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + int source = rmesa->tmu_source[unit]; + struct gl_texture_object *tObj; + radeonTexObjPtr t; + GLuint enabled; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %p, %d )\n", + __FUNCTION__, ctx, unit ); + } + + enabled = (ctx->Texture.ReallyEnabled >> (source * 4)) & TEXTURE0_ANY; + if ( enabled != TEXTURE0_2D && enabled != TEXTURE0_1D ) { + if ( enabled ) + rmesa->Fallback |= RADEON_FALLBACK_TEXTURE; + return; + } + + /* Only update the hardware texture state if the texture is current, + * complete and enabled. + */ + tObj = ctx->Texture.Unit[source].Current; + if ( !tObj || !tObj->Complete ) + return; + + if ( ( tObj != ctx->Texture.Unit[source].CurrentD[2] ) && + ( tObj != ctx->Texture.Unit[source].CurrentD[1] ) ) + return; + + if ( !tObj->DriverData ) { + /* If this is the first time the texture has been used, then create + * a new texture object for it. + */ + radeonCreateTexObj( rmesa, tObj ); + + if ( !tObj->DriverData ) { + /* Can't create a texture object... */ + fprintf( stderr, "%s: texture object creation failed!\n", + __FUNCTION__ ); + rmesa->Fallback |= RADEON_FALLBACK_TEXTURE; + return; + } + } + + /* We definately have a valid texture now */ + t = tObj->DriverData; + + /* Force the texture unit state to be loaded into the hardware */ + rmesa->dirty |= RADEON_UPLOAD_CONTEXT | (RADEON_UPLOAD_TEX0 << unit); + + /* Force any texture images to be loaded into the hardware */ + if ( t->dirty_images ) + rmesa->dirty |= (RADEON_UPLOAD_TEX0IMAGES << unit); + + /* Bind to the given texture unit */ + rmesa->CurrentTexObj[unit] = t; + t->bound = unit + 1; + + if ( t->memBlock ) + radeonUpdateTexLRU( rmesa, t ); + + switch ( unit ) { + case 0: + rmesa->setup.pp_cntl |= (RADEON_TEX_0_ENABLE | + RADEON_TEX_BLEND_0_ENABLE); + break; + case 1: + rmesa->setup.pp_cntl |= (RADEON_TEX_1_ENABLE | + RADEON_TEX_BLEND_1_ENABLE); + break; + } +} + +void radeonUpdateTextureState( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %p ) en=0x%x\n", + __FUNCTION__, ctx, ctx->Texture.ReallyEnabled ); + } + + /* Clear any texturing fallbacks */ + rmesa->Fallback &= ~RADEON_FALLBACK_TEXTURE; + + /* Unbind any currently bound textures */ + if ( rmesa->CurrentTexObj[0] ) rmesa->CurrentTexObj[0]->bound = 0; + if ( rmesa->CurrentTexObj[1] ) rmesa->CurrentTexObj[1]->bound = 0; + rmesa->CurrentTexObj[0] = NULL; + rmesa->CurrentTexObj[1] = NULL; + + if ( ctx->Enabled & (TEXTURE0_3D|TEXTURE1_3D) ) + rmesa->Fallback |= RADEON_FALLBACK_TEXTURE; + + /* Disable all texturing until it is known to be good */ + rmesa->setup.pp_cntl &= ~(RADEON_TEX_ENABLE_MASK | + RADEON_TEX_BLEND_ENABLE_MASK); + + radeonUpdateTextureObject( ctx, 0 ); + radeonUpdateTextureEnv( ctx, 0 ); + + if ( rmesa->multitex ) { + radeonUpdateTextureObject( ctx, 1 ); + radeonUpdateTextureEnv( ctx, 1 ); + } + + rmesa->dirty |= RADEON_UPLOAD_CONTEXT; +} + + +/* ================================================================ + * DD interface texturing functions + * + * FIXME: Many of these are deprecated -- we should move to the new + * single-copy texture interface. + */ +#define SCALED_FLOAT_TO_BYTE( x, scale ) \ + ((((GLint)((256.0F / scale) * (x))) - 1) / 2) + +static void radeonDDTexEnv( GLcontext *ctx, GLenum target, + GLenum pname, const GLfloat *param ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct gl_texture_unit *texUnit; + GLuint source; + GLubyte c[4]; + GLuint col; + GLfloat bias; + GLubyte b; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %s )\n", + __FUNCTION__, gl_lookup_enum_by_nr( pname ) ); + } + + switch ( pname ) { + case GL_TEXTURE_ENV_MODE: + FLUSH_BATCH( rmesa ); + rmesa->new_state |= RADEON_NEW_TEXTURE | RADEON_NEW_ALPHA; + break; + + case GL_TEXTURE_ENV_COLOR: + source = rmesa->tmu_source[ctx->Texture.CurrentUnit]; + texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; + FLOAT_RGBA_TO_UBYTE_RGBA( c, texUnit->EnvColor ); + col = radeonPackColor( 4, c[0], c[1], c[2], c[3] ); + if ( rmesa->env_color[source] != col ) { + FLUSH_BATCH( rmesa ); + rmesa->env_color[source] = col; + + rmesa->new_state |= RADEON_NEW_TEXTURE; + } + break; + + case GL_TEXTURE_LOD_BIAS_EXT: + /* The Radeon's LOD bias is a signed 2's complement value with a + * range of -1.0 <= bias < 4.0. We break this into two linear + * functions, one mapping [-1.0,0.0] to [-128,0] and one mapping + * [0.0,4.0] to [0,127]. + */ + source = rmesa->tmu_source[ctx->Texture.CurrentUnit]; + bias = CLAMP( *param, -1.0, 4.0 ); + if ( bias == 0 ) { + b = 0; + } else if ( bias > 0 ) { + b = (GLubyte) SCALED_FLOAT_TO_BYTE( bias, 4.0 ); + } else { + b = (GLubyte) SCALED_FLOAT_TO_BYTE( bias, 1.0 ); + } + if ( rmesa->lod_bias[source] != (GLuint)b ) { + FLUSH_BATCH( rmesa ); + rmesa->lod_bias[source] = (GLuint)b; + + rmesa->new_state |= RADEON_NEW_TEXTURE; + } + break; + + default: + return; + } +} + +static void radeonDDTexImage( GLcontext *ctx, GLenum target, + struct gl_texture_object *tObj, GLint level, + GLint internalFormat, + const struct gl_texture_image *image ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + radeonTexObjPtr t; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) + fprintf( stderr, "%s( %p, level %d )\n", __FUNCTION__, tObj, level ); + + if ( ( target != GL_TEXTURE_2D ) && + ( target != GL_TEXTURE_1D ) ) + return; + + if ( level >= RADEON_MAX_TEXTURE_LEVELS ) + return; + + t = (radeonTexObjPtr)tObj->DriverData; + if ( t ) { + if ( t->bound ) FLUSH_BATCH( rmesa ); + + /* Destroy the old texture, and upload a new one. The actual + * uploading of the texture image occurs in the UploadSubImage + * function. + */ + radeonDestroyTexObj( rmesa, t ); + rmesa->new_state |= RADEON_NEW_TEXTURE; + } +} + +static void radeonDDTexSubImage( GLcontext *ctx, GLenum target, + struct gl_texture_object *tObj, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLint internalFormat, + const struct gl_texture_image *image ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + radeonTexObjPtr t; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %p, level %d ) size: %d,%d of %d,%d\n", + __FUNCTION__, tObj, level, width, height, + image->Width, image->Height ); + } + + if ( ( target != GL_TEXTURE_2D ) && + ( target != GL_TEXTURE_1D ) ) + return; + + if ( level >= RADEON_MAX_TEXTURE_LEVELS ) + return; + + t = (radeonTexObjPtr)tObj->DriverData; + if ( t ) { + if ( t->bound ) FLUSH_BATCH( rmesa ); + +#if 0 + /* FIXME: Only upload textures if we already have space in the heap. + */ + LOCK_HARDWARE( rmesa ); + radeonUploadSubImage( rmesa, t, level, + xoffset, yoffset, width, height ); + UNLOCK_HARDWARE( rmesa ); +#else + radeonDestroyTexObj( rmesa, t ); +#endif + /* Update the context state */ + rmesa->new_state |= RADEON_NEW_TEXTURE; + } +} + +static void radeonDDTexParameter( GLcontext *ctx, GLenum target, + struct gl_texture_object *tObj, + GLenum pname, const GLfloat *params ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + radeonTexObjPtr t = (radeonTexObjPtr)tObj->DriverData; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %s )\n", + __FUNCTION__, gl_lookup_enum_by_nr( pname ) ); + } + + /* If we don't have a hardware texture, it will be automatically + * created with current state before it is used, so we don't have + * to do anything now. + */ + if ( !t || !t->bound ) + return; + + if ( ( target != GL_TEXTURE_2D ) && + ( target != GL_TEXTURE_1D ) ) + return; + + switch ( pname ) { + case GL_TEXTURE_MIN_FILTER: + case GL_TEXTURE_MAG_FILTER: + if ( t->bound ) FLUSH_BATCH( rmesa ); + radeonSetTexFilter( t, tObj->MinFilter, tObj->MagFilter ); + break; + + case GL_TEXTURE_WRAP_S: + case GL_TEXTURE_WRAP_T: + if ( t->bound ) FLUSH_BATCH( rmesa ); + radeonSetTexWrap( t, tObj->WrapS, tObj->WrapT ); + break; + + case GL_TEXTURE_BORDER_COLOR: + if ( t->bound ) FLUSH_BATCH( rmesa ); + radeonSetTexBorderColor( t, tObj->BorderColor ); + break; + + default: + return; + } + + rmesa->new_state |= RADEON_NEW_TEXTURE; +} + +static void radeonDDBindTexture( GLcontext *ctx, GLenum target, + struct gl_texture_object *tObj ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + GLint unit = ctx->Texture.CurrentUnit; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_API ) { + fprintf( stderr, "%s( %p ) unit=%d\n", + __FUNCTION__, tObj, ctx->Texture.CurrentUnit ); + } + + FLUSH_BATCH( rmesa ); + + if ( rmesa->CurrentTexObj[unit] ) { + rmesa->CurrentTexObj[unit]->bound = 0; + rmesa->CurrentTexObj[unit] = NULL; + } + + rmesa->new_state |= RADEON_NEW_TEXTURE; +} + +static void radeonDDDeleteTexture( GLcontext *ctx, + struct gl_texture_object *tObj ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + radeonTexObjPtr t = (radeonTexObjPtr)tObj->DriverData; + + if ( t ) { + if ( t->bound ) { + FLUSH_BATCH( rmesa ); + + rmesa->CurrentTexObj[t->bound-1] = 0; + rmesa->new_state |= RADEON_NEW_TEXTURE; + } + + radeonDestroyTexObj( rmesa, t ); + tObj->DriverData = NULL; + } +} + +static GLboolean radeonDDIsTextureResident( GLcontext *ctx, + struct gl_texture_object *tObj ) +{ + radeonTexObjPtr t = (radeonTexObjPtr)tObj->DriverData; + + return ( t && t->memBlock ); +} + + + +void radeonDDInitTextureFuncs( GLcontext *ctx ) +{ + ctx->Driver.TexEnv = radeonDDTexEnv; + ctx->Driver.TexImage = radeonDDTexImage; + ctx->Driver.TexSubImage = radeonDDTexSubImage; + ctx->Driver.TexParameter = radeonDDTexParameter; + ctx->Driver.BindTexture = radeonDDBindTexture; + ctx->Driver.DeleteTexture = radeonDDDeleteTexture; + ctx->Driver.UpdateTexturePalette = NULL; + ctx->Driver.ActiveTexture = NULL; + ctx->Driver.IsTextureResident = radeonDDIsTextureResident; + ctx->Driver.PrioritizeTexture = NULL; +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_tex.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_tex.h new file mode 100644 index 000000000..2534335aa --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_tex.h @@ -0,0 +1,96 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_tex.h,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_TEX_H__ +#define __RADEON_TEX_H__ + +#ifdef GLX_DIRECT_RENDERING + +extern void radeonUpdateTextureState( GLcontext *ctx ); + +extern int radeonUploadTexImages( radeonContextPtr rmesa, radeonTexObjPtr t ); + +extern void radeonAgeTextures( radeonContextPtr rmesa, int heap ); +extern void radeonDestroyTexObj( radeonContextPtr rmesa, radeonTexObjPtr t ); + +extern void radeonPrintLocalLRU( radeonContextPtr rmesa, int heap ); +extern void radeonPrintGlobalLRU( radeonContextPtr rmesa, int heap ); + +extern void radeonDDInitTextureFuncs( GLcontext *ctx ); + + +/* ================================================================ + * Color conversion macros: + */ + +#define RADEONPACKCOLOR332( r, g, b ) \ + (((r) & 0xe0) | (((g) & 0xe0) >> 3) | (((b) & 0xc0) >> 6)) + +#define RADEONPACKCOLOR1555( r, g, b, a ) \ + ((((r) & 0xf8) << 7) | (((g) & 0xf8) << 2) | (((b) & 0xf8) >> 3) | \ + ((a) ? 0x8000 : 0)) + +#define RADEONPACKCOLOR565( r, g, b ) \ + ((((r) & 0xf8) << 8) | (((g) & 0xfc) << 3) | (((b) & 0xf8) >> 3)) + +#define RADEONPACKCOLOR88( i, a ) \ + (((a) << 8) | (i)) + +#define RADEONPACKCOLOR888( r, g, b ) \ + (((r) << 16) | ((g) << 8) | (b)) + +#define RADEONPACKCOLOR8888( r, g, b, a ) \ + (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) + +#define RADEONPACKCOLOR4444( r, g, b, a ) \ + ((((a) & 0xf0) << 8) | (((r) & 0xf0) << 4) | ((g) & 0xf0) | ((b) >> 4)) + +static __inline__ CARD32 radeonPackColor( GLuint cpp, + GLubyte r, GLubyte g, + GLubyte b, GLubyte a ) +{ + switch ( cpp ) { + case 2: + return RADEONPACKCOLOR565( r, g, b ); + case 4: + return RADEONPACKCOLOR8888( r, g, b, a ); + default: + return 0; + } +} + +#endif +#endif /* __RADEON_TEX_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_texobj.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_texobj.h new file mode 100644 index 000000000..45368e076 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_texobj.h @@ -0,0 +1,87 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_texobj.h,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_TEXOBJ_H__ +#define __RADEON_TEXOBJ_H__ + +#include "radeon_sarea.h" +#include "mm.h" + +/* Handle the Radeon's tightly packed mipmaps and strict offset, + * pitch rules for blits by assigning each mipmap a set of + * coordinates that can be used for a hostdata blit. + */ +typedef struct { + GLuint x; /* Blit coordinates */ + GLuint y; + GLuint width; /* Blit dimensions */ + GLuint height; + GLuint dwords; /* Size of image level */ +} radeonTexImage; + +typedef struct radeon_tex_obj radeonTexObj, *radeonTexObjPtr; + +/* Texture object in locally shared texture space. + */ +struct radeon_tex_obj { + radeonTexObjPtr next, prev; + + struct gl_texture_object *tObj; /* Mesa texture object */ + + PMemBlock memBlock; /* Memory block containing texture */ + CARD32 bufAddr; /* Offset to start of locally + shared texture block */ + + CARD32 dirty_images; /* Flags for whether or not + images need to be uploaded to + local or AGP texture space */ + + GLint bound; /* Texture unit currently bound to */ + GLint heap; /* Texture heap currently stored in */ + + radeonTexImage image[RADEON_MAX_TEXTURE_LEVELS]; /* Image data for all + mipmap levels */ + + GLint totalSize; /* Total size of the texture + including all mipmap levels */ + GLint texelBytes; /* Number of bytes per texel */ + + GLboolean hasAlpha; + + radeon_texture_regs_t setup; /* Setup regs for texture */ +}; + +#endif /* __RADEON_TEXOBJ_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_tris.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_tris.c new file mode 100644 index 000000000..bbc766129 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_tris.c @@ -0,0 +1,209 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_tris.c,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_vb.h" +#include "radeon_tris.h" +#include "radeon_state.h" + +#include "pipeline.h" +#include "vbindirect.h" + +static struct { + points_func points; + line_func line; + triangle_func triangle; + quad_func quad; +} rast_tab[RADEON_MAX_TRIFUNC]; + +#define RADEON_COLOR( to, from ) \ +do { \ + *(GLuint *)(to) = *(GLuint *)(from); \ +} while (0) + + +static void radeon_null_quad( GLcontext *ctx, GLuint v0, + GLuint v1, GLuint v2, GLuint v3, GLuint pv ) +{ +} +static void radeon_null_triangle( GLcontext *ctx, GLuint v0, + GLuint v1, GLuint v2, GLuint pv ) +{ +} +static void radeon_null_line( GLcontext *ctx, + GLuint v1, GLuint v2, GLuint pv ) +{ +} +static void radeon_null_points( GLcontext *ctx, GLuint first, GLuint last ) +{ +} + +static void radeonPrintRenderState( const char *msg, GLuint state ) +{ + fprintf( stderr, "%s: (0x%x) %s%s%s%s%s\n", + msg, state, + (state & RADEON_FLAT_BIT) ? "flat, " : "", + (state & RADEON_OFFSET_BIT) ? "offset, " : "", + (state & RADEON_TWOSIDE_BIT) ? "twoside, " : "", + (state & RADEON_NODRAW_BIT) ? "no-draw, " : "", + (state & RADEON_FALLBACK_BIT) ? "fallback" : "" ); +} + +#define IND (0) +#define TAG(x) x +#include "radeon_tritmp.h" + +#define IND (RADEON_FLAT_BIT) +#define TAG(x) x##_flat +#include "radeon_tritmp.h" + +#define IND (RADEON_OFFSET_BIT) +#define TAG(x) x##_offset +#include "radeon_tritmp.h" + +#define IND (RADEON_OFFSET_BIT | RADEON_FLAT_BIT) +#define TAG(x) x##_offset_flat +#include "radeon_tritmp.h" + +#define IND (RADEON_TWOSIDE_BIT) +#define TAG(x) x##_twoside +#include "radeon_tritmp.h" + +#define IND (RADEON_TWOSIDE_BIT | RADEON_FLAT_BIT) +#define TAG(x) x##_twoside_flat +#include "radeon_tritmp.h" + +#define IND (RADEON_TWOSIDE_BIT | RADEON_OFFSET_BIT) +#define TAG(x) x##_twoside_offset +#include "radeon_tritmp.h" + +#define IND (RADEON_TWOSIDE_BIT | RADEON_OFFSET_BIT | RADEON_FLAT_BIT) +#define TAG(x) x##_twoside_offset_flat +#include "radeon_tritmp.h" + + +void radeonDDTriangleFuncsInit( void ) +{ + GLint i; + + init(); + init_flat(); + init_offset(); + init_offset_flat(); + init_twoside(); + init_twoside_flat(); + init_twoside_offset(); + init_twoside_offset_flat(); + + for ( i = 0 ; i < RADEON_MAX_TRIFUNC ; i++ ) { + if ( i & RADEON_NODRAW_BIT ) { + rast_tab[i].points = radeon_null_points; + rast_tab[i].line = radeon_null_line; + rast_tab[i].triangle = radeon_null_triangle; + rast_tab[i].quad = radeon_null_quad; + } + } +} + + +/* FIXME: Only enable software fallback for stencil in 16 bpp mode after + * we have hardware stencil support. + */ +#define ALL_FALLBACK (DD_SELECT | DD_FEEDBACK | DD_STENCIL) +#define POINT_FALLBACK (ALL_FALLBACK | DD_POINT_SMOOTH | DD_POINT_ATTEN) +#define LINE_FALLBACK (ALL_FALLBACK | DD_LINE_SMOOTH | DD_LINE_STIPPLE) +#define TRI_FALLBACK (ALL_FALLBACK | DD_TRI_SMOOTH | DD_TRI_UNFILLED) +#define ANY_FALLBACK (POINT_FALLBACK | LINE_FALLBACK | TRI_FALLBACK) +#define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE | DD_TRI_OFFSET | DD_Z_NEVER) + +/* Setup the Point, Line, Triangle and Quad functions based on the + * current rendering state. Wherever possible, use the hardware to + * render the primitive. Otherwise, fallback to software rendering. + */ +void radeonDDChooseRenderState( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + GLuint flags = ctx->TriangleCaps; + GLuint index = 0; + + if ( rmesa->Fallback ) { + rmesa->RenderIndex = RADEON_FALLBACK_BIT; + return; + } + + if ( flags & ANY_RASTER_FLAGS ) { + if ( flags & DD_FLATSHADE ) index |= RADEON_FLAT_BIT; + if ( flags & DD_TRI_LIGHT_TWOSIDE ) index |= RADEON_TWOSIDE_BIT; + if ( flags & DD_TRI_OFFSET ) index |= RADEON_OFFSET_BIT; + if ( flags & DD_Z_NEVER ) index |= RADEON_NODRAW_BIT; + } + + rmesa->PointsFunc = rast_tab[index].points; + rmesa->LineFunc = rast_tab[index].line; + rmesa->TriangleFunc = rast_tab[index].triangle; + rmesa->QuadFunc = rast_tab[index].quad; + + rmesa->RenderIndex = index; + rmesa->IndirectTriangles = 0; + + if ( flags & ANY_FALLBACK ) { + if ( flags & POINT_FALLBACK ) { + rmesa->RenderIndex |= RADEON_FALLBACK_BIT; + rmesa->PointsFunc = 0; + rmesa->IndirectTriangles |= DD_POINT_SW_RASTERIZE; + } + + if ( flags & LINE_FALLBACK ) { + rmesa->RenderIndex |= RADEON_FALLBACK_BIT; + rmesa->LineFunc = 0; + rmesa->IndirectTriangles |= DD_LINE_SW_RASTERIZE; + } + + if ( flags & TRI_FALLBACK ) { + rmesa->RenderIndex |= RADEON_FALLBACK_BIT; + rmesa->TriangleFunc = 0; + rmesa->QuadFunc = 0; + rmesa->IndirectTriangles |= (DD_TRI_SW_RASTERIZE | + DD_QUAD_SW_RASTERIZE); + } + } + + if ( 0 ) { + gl_print_tri_caps( "tricaps", ctx->TriangleCaps ); + radeonPrintRenderState( "radeon render state", rmesa->RenderIndex ); + } +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_tris.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_tris.h new file mode 100644 index 000000000..57fadaeca --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_tris.h @@ -0,0 +1,316 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_tris.h,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_TRIS_H__ +#define __RADEON_TRIS_H__ + +#ifdef GLX_DIRECT_RENDERING + +#include "radeon_vb.h" + +extern void radeonDDChooseRenderState( GLcontext *ctx ); +extern void radeonDDTriangleFuncsInit( void ); + +#define RADEON_ANTIALIAS_BIT 0x00 /* GH: Do we need this? */ +#define RADEON_FLAT_BIT 0x01 +#define RADEON_OFFSET_BIT 0x02 +#define RADEON_TWOSIDE_BIT 0x04 +#define RADEON_NODRAW_BIT 0x08 +#define RADEON_FALLBACK_BIT 0x10 +#define RADEON_MAX_TRIFUNC 0x20 + + +static __inline void radeon_draw_triangle( radeonContextPtr rmesa, + radeonVertexPtr v0, + radeonVertexPtr v1, + radeonVertexPtr v2 ) +{ + GLuint vertsize = rmesa->vertsize; + CARD32 *vb = radeonAllocVerticesInline( rmesa, 3 ); + GLuint j; + +#if defined (USE_X86_ASM) + /* GH: We can safely assume the vertex stride is some number of + * dwords, and thus a "rep movsd" is okay. The vb pointer is + * automagically updated with this instruction, so we don't have + * to manually take care of incrementing it. + */ + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "D" ((long)vb), "S" ((long)v0) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v1) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v2) + : "memory" ); +#else + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v0->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v1->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v2->ui[j]; +#endif +} + +static __inline void radeon_draw_quad( radeonContextPtr rmesa, + radeonVertexPtr v0, + radeonVertexPtr v1, + radeonVertexPtr v2, + radeonVertexPtr v3 ) +{ + GLuint vertsize = rmesa->vertsize; + CARD32 *vb = radeonAllocVerticesInline( rmesa, 6 ); + GLuint j; + +#if defined (USE_X86_ASM) + /* GH: We can safely assume the vertex stride is some number of + * dwords, and thus a "rep movsd" is okay. The vb pointer is + * automagically updated with this instruction, so we don't have + * to manually take care of incrementing it. + */ + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "D" ((long)vb), "S" ((long)v0) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v1) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v3) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v1) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v2) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)v3) + : "memory" ); +#else + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v0->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v1->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v3->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v1->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v2->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = v3->ui[j]; +#endif +} + +static __inline void radeon_draw_line( radeonContextPtr rmesa, + radeonVertexPtr tmp0, + radeonVertexPtr tmp1, + GLfloat width ) +{ +#if 1 + GLuint vertsize = rmesa->vertsize; + CARD32 *vb = radeonAllocVerticesInline( rmesa, 6 ); + GLfloat dx, dy, ix, iy; + GLuint j; + + dx = tmp0->v.x - tmp1->v.x; + dy = tmp0->v.y - tmp1->v.y; + + ix = width * .5; iy = 0; + + if ((ix<.5) && (ix>0.1)) ix = .5; /* I want to see lines with width + 0.5 also */ + + if (dx * dx > dy * dy) { + iy = ix; ix = 0; + } + + *(float *)&vb[0] = tmp0->v.x - ix; + *(float *)&vb[1] = tmp0->v.y - iy; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp0->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp1->v.x + ix; + *(float *)&vb[1] = tmp1->v.y + iy; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp1->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp0->v.x + ix; + *(float *)&vb[1] = tmp0->v.y + iy; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp0->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp0->v.x - ix; + *(float *)&vb[1] = tmp0->v.y - iy; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp0->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp1->v.x - ix; + *(float *)&vb[1] = tmp1->v.y - iy; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp1->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp1->v.x + ix; + *(float *)&vb[1] = tmp1->v.y + iy; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp1->ui[j]; +#else + GLuint vertsize = rmesa->vertsize; + CARD32 *vb = radeonAllocVerticesInline( rmesa, RADEON_LINES, 2 ); + GLuint j; + +#if defined (USE_X86_ASM) + /* GH: We can safely assume the vertex stride is some number of + * dwords, and thus a "rep movsd" is okay. The vb pointer is + * automagically updated with this instruction, so we don't have + * to manually take care of incrementing it. + */ + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "D" ((long)vb), "S" ((long)tmp0) + : "memory" ); + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "S" ((long)tmp1) + : "memory" ); +#else + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = tmp0->ui[j]; + + vb += vertsize; + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = tmp1->ui[j]; +#endif +#endif +} + +static __inline void radeon_draw_point( radeonContextPtr rmesa, + radeonVertexPtr tmp, GLfloat sz ) +{ +#if 1 + GLuint vertsize = rmesa->vertsize; + CARD32 *vb = radeonAllocVerticesInline( rmesa, 6 ); + GLuint j; + + *(float *)&vb[0] = tmp->v.x - sz; + *(float *)&vb[1] = tmp->v.y - sz; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp->v.x + sz; + *(float *)&vb[1] = tmp->v.y - sz; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp->v.x + sz; + *(float *)&vb[1] = tmp->v.y + sz; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp->v.x + sz; + *(float *)&vb[1] = tmp->v.y + sz; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp->v.x - sz; + *(float *)&vb[1] = tmp->v.y + sz; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp->ui[j]; + vb += vertsize; + + *(float *)&vb[0] = tmp->v.x - sz; + *(float *)&vb[1] = tmp->v.y - sz; + for (j = 2 ; j < vertsize ; j++) + vb[j] = tmp->ui[j]; + +#else + int vertsize = rmesa->vertsize; + CARD32 *vb = radeonAllocVerticesInline( rmesa, RADEON_3_VERTEX_POINTS, 1 ); + int j; + +#if defined (USE_X86_ASM) + /* GH: We can safely assume the vertex stride is some number of + * dwords, and thus a "rep movsd" is okay. The vb pointer is + * automagically updated with this instruction, so we don't have + * to manually take care of incrementing it. + */ + __asm__ __volatile__( "rep ; movsl" + : "=%c" (j) + : "0" (vertsize), "D" ((long)vb), "S" ((long)tmp) + : "memory" ); +#else + for ( j = 0 ; j < vertsize ; j++ ) + vb[j] = tmp->ui[j]; +#endif +#endif +} + +#endif +#endif /* __RADEON_TRIS_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_tritmp.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_tritmp.h new file mode 100644 index 000000000..ffa0d4746 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_tritmp.h @@ -0,0 +1,336 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_tritmp.h,v 1.1 2001/01/08 01:07:28 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +static __inline void TAG(triangle)( GLcontext *ctx, + GLuint e0, GLuint e1, GLuint e2, + GLuint pv ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct vertex_buffer *VB = ctx->VB; + radeonVertexPtr verts = RADEON_DRIVER_DATA(VB)->verts; + radeonVertexPtr v[3]; + +#if (IND & RADEON_OFFSET_BIT) + GLfloat offset; + GLfloat z[3]; +#endif + +#if (IND & RADEON_TWOSIDE_BIT) + GLuint c[3]; +#endif + + v[0] = &verts[e0]; + v[1] = &verts[e1]; + v[2] = &verts[e2]; + +#if (IND & RADEON_TWOSIDE_BIT) + c[0] = v[0]->ui[4]; + c[1] = v[1]->ui[4]; + c[2] = v[2]->ui[4]; +#endif + +#if (IND & (RADEON_TWOSIDE_BIT | RADEON_OFFSET_BIT)) + { + GLfloat ex = v[0]->v.x - v[2]->v.x; + GLfloat ey = v[0]->v.y - v[2]->v.y; + GLfloat fx = v[1]->v.x - v[2]->v.x; + GLfloat fy = v[1]->v.y - v[2]->v.y; + GLfloat cc = ex*fy - ey*fx; + +#if (IND & RADEON_TWOSIDE_BIT) + { + GLuint facing = ( cc > 0.0 ) ^ ctx->Polygon.FrontBit; + GLubyte (*vbcolor)[4] = VB->Color[facing]->data; + if ( IND & RADEON_FLAT_BIT ) { + RADEON_COLOR( (char *)&v[0]->ui[4], vbcolor[pv] ); + v[2]->ui[4] = v[1]->ui[4] = v[0]->ui[4]; + } else { + RADEON_COLOR( (char *)&v[0]->ui[4], vbcolor[e0] ); + RADEON_COLOR( (char *)&v[1]->ui[4], vbcolor[e1] ); + RADEON_COLOR( (char *)&v[2]->ui[4], vbcolor[e2] ); + } + } +#endif + +#if (IND & RADEON_OFFSET_BIT) + { + offset = ctx->Polygon.OffsetUnits * rmesa->depth_scale; + z[0] = v[0]->v.z; + z[1] = v[1]->v.z; + z[2] = v[2]->v.z; + if ( cc * cc > 1e-16 ) { + GLfloat ez = z[0] - z[2]; + GLfloat fz = z[1] - z[2]; + GLfloat a = ey*fz - ez*fy; + GLfloat b = ez*fx - ex*fz; + GLfloat ic = 1.0 / cc; + GLfloat ac = a * ic; + GLfloat bc = b * ic; + if ( ac < 0.0f ) ac = -ac; + if ( bc < 0.0f ) bc = -bc; + offset += MAX2( ac, bc ) * ctx->Polygon.OffsetFactor; + } + v[0]->v.z += offset; + v[1]->v.z += offset; + v[2]->v.z += offset; + } +#endif + } +#endif + + radeon_draw_triangle( rmesa, v[0], v[1], v[2] ); + +#if (IND & RADEON_OFFSET_BIT) + v[0]->v.z = z[0]; + v[1]->v.z = z[1]; + v[2]->v.z = z[2]; +#endif + +#if (IND & RADEON_TWOSIDE_BIT) + v[0]->ui[4] = c[0]; + v[1]->ui[4] = c[1]; + v[2]->ui[4] = c[2]; +#endif +} + + +static void TAG(quad)( GLcontext *ctx, + GLuint e0, GLuint e1, GLuint e2, GLuint e3, + GLuint pv ) +{ +#if 0 + TAG(triangle)( ctx, e0, e1, e3, pv ); + TAG(triangle)( ctx, e1, e2, e3, pv ); +#else + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct vertex_buffer *VB = ctx->VB; + radeonVertexPtr verts = RADEON_DRIVER_DATA(VB)->verts; + radeonVertexPtr v[4]; + +#if (IND & RADEON_OFFSET_BIT) + GLfloat offset; + GLfloat z[4]; +#endif + +#if (IND & RADEON_TWOSIDE_BIT) + int c[4]; +#endif + + v[0] = &verts[e0]; + v[1] = &verts[e1]; + v[2] = &verts[e2]; + v[3] = &verts[e3]; + +#if (IND & RADEON_TWOSIDE_BIT) + c[0] = v[0]->ui[4]; + c[1] = v[1]->ui[4]; + c[2] = v[2]->ui[4]; + c[3] = v[3]->ui[4]; +#endif + +#if (IND & (RADEON_TWOSIDE_BIT | RADEON_OFFSET_BIT)) + { + GLfloat ex = v[0]->v.x - v[2]->v.x; + GLfloat ey = v[0]->v.y - v[2]->v.y; + GLfloat fx = v[1]->v.x - v[2]->v.x; + GLfloat fy = v[1]->v.y - v[2]->v.y; + GLfloat cc = ex*fy - ey*fx; + +#if (IND & RADEON_TWOSIDE_BIT) + { + GLuint facing = ( cc > 0.0 ) ^ ctx->Polygon.FrontBit; + GLubyte (*vbcolor)[4] = VB->Color[facing]->data; + if ( IND & RADEON_FLAT_BIT ) { + RADEON_COLOR( (char *)&v[0]->ui[4], vbcolor[pv] ); + v[3]->ui[4] = v[2]->ui[4] = v[1]->ui[4] = v[0]->ui[4]; + } else { + RADEON_COLOR( (char *)&v[0]->ui[4], vbcolor[e0] ); + RADEON_COLOR( (char *)&v[1]->ui[4], vbcolor[e1] ); + RADEON_COLOR( (char *)&v[2]->ui[4], vbcolor[e2] ); + RADEON_COLOR( (char *)&v[3]->ui[4], vbcolor[e3] ); + } + } +#endif + +#if (IND & RADEON_OFFSET_BIT) + { + offset = ctx->Polygon.OffsetUnits * rmesa->depth_scale; + z[0] = v[0]->v.z; + z[1] = v[1]->v.z; + z[2] = v[2]->v.z; + z[3] = v[3]->v.z; + if ( cc * cc > 1e-16 ) { + GLfloat ez = z[0] - z[2]; + GLfloat fz = z[1] - z[2]; + GLfloat a = ey*fz - ez*fy; + GLfloat b = ez*fx - ex*fz; + GLfloat ic = 1.0 / cc; + GLfloat ac = a * ic; + GLfloat bc = b * ic; + if ( ac < 0.0f ) ac = -ac; + if ( bc < 0.0f ) bc = -bc; + offset += MAX2( ac, bc ) * ctx->Polygon.OffsetFactor; + } + v[0]->v.z += offset; + v[1]->v.z += offset; + v[2]->v.z += offset; + v[3]->v.z += offset; + } +#endif + } +#endif + + radeon_draw_quad( rmesa, v[0], v[1], v[2], v[3] ); + +#if (IND & RADEON_OFFSET_BIT) + v[0]->v.z = z[0]; + v[1]->v.z = z[1]; + v[2]->v.z = z[2]; + v[3]->v.z = z[3]; +#endif + +#if (IND & RADEON_TWOSIDE_BIT) + v[0]->ui[4] = c[0]; + v[1]->ui[4] = c[1]; + v[2]->ui[4] = c[2]; + v[3]->ui[4] = c[3]; +#endif +#endif +} + + +static void TAG(line)( GLcontext *ctx, + GLuint e0, GLuint e1, + GLuint pv ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct vertex_buffer *VB = ctx->VB; + radeonVertexPtr verts = RADEON_DRIVER_DATA(VB)->verts; + GLfloat width = ctx->Line.Width; + radeonVertexPtr v[2]; + +#if (IND & RADEON_OFFSET_BIT) + GLfloat offset; + GLfloat z[2]; +#endif +#if (IND & RADEON_TWOSIDE_BIT) + int c[2]; +#endif + + v[0] = &verts[e0]; + v[1] = &verts[e1]; + +#if (IND & RADEON_TWOSIDE_BIT) + c[0] = v[0]->ui[4]; + c[1] = v[1]->ui[4]; +#endif + +#if (IND & RADEON_TWOSIDE_BIT) + { + GLubyte (*vbcolor)[4] = ctx->VB->ColorPtr->data; + if ( IND & RADEON_FLAT_BIT ) { + RADEON_COLOR( (char *)&v[0]->ui[4], vbcolor[pv] ); + v[1]->ui[4] = v[0]->ui[4]; + } else { + RADEON_COLOR( (char *)&v[0]->ui[4], vbcolor[e0] ); + RADEON_COLOR( (char *)&v[1]->ui[4], vbcolor[e1] ); + } + } +#endif + +#if (IND & RADEON_OFFSET_BIT) + offset = ctx->LineZoffset * rmesa->depth_scale; + z[0] = v[0]->v.z; + z[1] = v[1]->v.z; + v[0]->v.z += offset; + v[1]->v.z += offset; +#endif + + radeon_draw_line( rmesa, v[0], v[1], width ); + +#if (IND & RADEON_OFFSET_BIT) + v[0]->v.z = z[0]; + v[1]->v.z = z[1]; +#endif + +#if (IND & RADEON_TWOSIDE_BIT) + v[0]->ui[4] = c[0]; + v[1]->ui[4] = c[1]; +#endif +} + + +static void TAG(points)( GLcontext *ctx, + GLuint first, GLuint last ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + struct vertex_buffer *VB = ctx->VB; + radeonVertexPtr verts = RADEON_DRIVER_DATA(VB)->verts; + GLfloat size = ctx->Point.Size * 0.5; + int i; + + for ( i = first ; i < last ; i++ ) { + if ( VB->ClipMask[i] == 0 ) { + if ( IND & (RADEON_TWOSIDE_BIT|RADEON_OFFSET_BIT) ) { + radeonVertex tmp0 = verts[i]; + + if ( IND & RADEON_TWOSIDE_BIT ) { + GLubyte (*vbcolor)[4] = VB->ColorPtr->data; + RADEON_COLOR( (char *)&tmp0.v.color, vbcolor[i] ); + } + if ( IND & RADEON_OFFSET_BIT ) { + GLfloat offset = ctx->PointZoffset * rmesa->depth_scale; + tmp0.v.z += offset; + } + radeon_draw_point( rmesa, &tmp0, size ); + } else { + radeon_draw_point( rmesa, &verts[i], size ); + } + } + } +} + + +static void TAG(init)( void ) +{ + rast_tab[IND].points = TAG(points); + rast_tab[IND].line = TAG(line); + rast_tab[IND].triangle = TAG(triangle); + rast_tab[IND].quad = TAG(quad); +} + +#undef IND +#undef TAG diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vb.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_vb.c new file mode 100644 index 000000000..bdf19b2d6 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vb.c @@ -0,0 +1,483 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_vb.c,v 1.2 2001/01/11 03:36:55 tsi Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "radeon_vb.h" + +#include "mem.h" +#include "stages.h" + +#define TEX0 \ +do { \ + v->v.tu0 = tc0[i][0]; \ + v->v.tv0 = tc0[i][1]; \ +} while (0) + +#define TEX1 \ +do { \ + v->v.tu1 = tc1[i][0]; \ + v->v.tv1 = tc1[i][1]; \ +} while (0) + +#define SPC \ +do { \ + GLubyte *spec = &(VB->Spec[0][i][0]); \ + v->v.specular.red = spec[0]; \ + v->v.specular.green = spec[1]; \ + v->v.specular.blue = spec[2]; \ +} while (0) + +#define FOG \ +do { \ + GLubyte *spec = &(VB->Spec[0][i][0]); \ + v->v.specular.alpha = spec[3]; \ +} while (0) + +#define COL \ +do { \ + GLubyte *col = &(VB->Color[0]->data[i][0]); \ + v->ui[4] = *(GLuint *)col; \ +} while (0) + +#define TEX0_4 \ +do { \ + if ( VB->TexCoordPtr[0]->size == 4 ) { \ + GLfloat (*tc)[4] = VB->TexCoordPtr[0]->data; \ + v = &(RADEON_DRIVER_DATA(VB)->verts[start]); \ + for ( i = start ; i < end ; i++, v++ ) { \ + float oow = 1.0 / tc[i][3]; \ + v->v.rhw *= tc[i][3]; \ + v->v.tu0 *= oow; \ + v->v.tv0 *= oow; \ + } \ + } \ +} while (0) + +#ifdef USE_RHW2 + +#define TEX1_4 \ +do { \ + if ( VB->TexCoordPtr[1]->size == 4 ) { \ + GLfloat (*tc)[4] = VB->TexCoordPtr[1]->data; \ + v = &(RADEON_DRIVER_DATA(VB)->verts[start]); \ + for ( i = start ; i < end ; i++, v++ ) { \ + float oow = 1.0 / tc[i][3]; \ + v->v.rhw2 *= tc[i][3]; \ + v->v.tu1 *= oow; \ + v->v.tv1 *= oow; \ + } \ + } \ +} while (0) + +#define COORD \ +do { \ + GLfloat *win = VB->Win.data[i]; \ + v->v.x = win[0]; \ + v->v.y = - win[1]; \ + v->v.z = win[2]; \ + v->v.rhw = v->v.rhw2 = win[3]; \ +} while (0) + +#else /* USE_RHW2 */ + +#define TEX1_4 + +#define COORD \ +do { \ + GLfloat *win = VB->Win.data[i]; \ + v->v.x = win[0]; \ + v->v.y = - win[1]; \ + v->v.z = win[2]; \ + v->v.rhw = win[3]; \ +} while (0) \ + +#endif /* USE_RHW2 */ + +#define NOP + + +#define SETUPFUNC(name,win,col,tex0,tex1,tex0_4,tex1_4,spec,fog) \ +static void name( struct vertex_buffer *VB, GLuint start, GLuint end ) \ +{ \ + radeonContextPtr rmesa = RADEON_CONTEXT(VB->ctx); \ + radeonVertexPtr v; \ + GLfloat (*tc0)[4]; \ + GLfloat (*tc1)[4]; \ + GLint i; \ + \ + gl_import_client_data( VB, VB->ctx->RenderFlags, \ + (VB->ClipOrMask \ + ? VEC_WRITABLE | VEC_GOOD_STRIDE \ + : VEC_GOOD_STRIDE) ); \ + \ + tc0 = VB->TexCoordPtr[rmesa->tmu_source[0]]->data; \ + tc1 = VB->TexCoordPtr[rmesa->tmu_source[1]]->data; \ + \ + v = &(RADEON_DRIVER_DATA(VB)->verts[start]); \ + \ + if ( VB->ClipOrMask == 0 ) { \ + for ( i = start ; i < end ; i++, v++ ) { \ + win; \ + col; \ + spec; \ + fog; \ + tex0; \ + tex1; \ + } \ + } else { \ + for ( i = start ; i < end ; i++, v++ ) { \ + if ( VB->ClipMask[i] == 0 ) { \ + win; \ + spec; \ + fog; \ + tex0; \ + tex1; \ + } \ + col; \ + } \ + } \ + tex0_4; \ + tex1_4; \ +} + + +SETUPFUNC(rs_wt0, COORD, NOP, TEX0, NOP, TEX0_4, NOP, NOP, NOP) +SETUPFUNC(rs_wt0t1, COORD, NOP, TEX0, TEX1, TEX0_4, TEX1_4, NOP, NOP) +SETUPFUNC(rs_wft0, COORD, NOP, TEX0, NOP, TEX0_4, NOP, NOP, FOG) +SETUPFUNC(rs_wft0t1, COORD, NOP, TEX0, TEX1, TEX0_4, TEX1_4, NOP, FOG) +SETUPFUNC(rs_wg, COORD, COL, NOP, NOP, NOP, NOP, NOP, NOP) +SETUPFUNC(rs_wgs, COORD, COL, NOP, NOP, NOP, NOP, SPC, NOP) +SETUPFUNC(rs_wgt0, COORD, COL, TEX0, NOP, TEX0_4, NOP, NOP, NOP) +SETUPFUNC(rs_wgt0t1, COORD, COL, TEX0, TEX1, TEX0_4, TEX1_4, NOP, NOP) +SETUPFUNC(rs_wgst0, COORD, COL, TEX0, NOP, TEX0_4, NOP, SPC, NOP) +SETUPFUNC(rs_wgst0t1, COORD, COL, TEX0, TEX1, TEX0_4, TEX1_4, SPC, NOP) +SETUPFUNC(rs_wgf, COORD, COL, NOP, NOP, NOP, NOP, NOP, FOG) +SETUPFUNC(rs_wgfs, COORD, COL, NOP, NOP, NOP, NOP, SPC, FOG) +SETUPFUNC(rs_wgft0, COORD, COL, TEX0, NOP, TEX0_4, NOP, NOP, FOG) +SETUPFUNC(rs_wgft0t1, COORD, COL, TEX0, TEX1, TEX0_4, TEX1_4, NOP, FOG) +SETUPFUNC(rs_wgfst0, COORD, COL, TEX0, NOP, TEX0_4, NOP, SPC, FOG) +SETUPFUNC(rs_wgfst0t1, COORD, COL, TEX0, TEX1, TEX0_4, TEX1_4, SPC, FOG) + +SETUPFUNC(rs_t0, NOP, NOP, TEX0, NOP, TEX0_4, NOP, NOP, NOP) +SETUPFUNC(rs_t0t1, NOP, NOP, TEX0, TEX1, TEX0_4, TEX1_4, NOP, NOP) +SETUPFUNC(rs_f, NOP, NOP, NOP, NOP, NOP, NOP, NOP, FOG) +SETUPFUNC(rs_ft0, NOP, NOP, TEX0, NOP, TEX0_4, NOP, NOP, FOG) +SETUPFUNC(rs_ft0t1, NOP, NOP, TEX0, TEX1, TEX0_4, TEX1_4, NOP, FOG) +SETUPFUNC(rs_g, NOP, COL, NOP, NOP, NOP, NOP, NOP, NOP) +SETUPFUNC(rs_gs, NOP, COL, NOP, NOP, NOP, NOP, SPC, NOP) +SETUPFUNC(rs_gt0, NOP, COL, TEX0, NOP, TEX0_4, NOP, NOP, NOP) +SETUPFUNC(rs_gt0t1, NOP, COL, TEX0, TEX1, TEX0_4, TEX1_4, NOP, NOP) +SETUPFUNC(rs_gst0, NOP, COL, TEX0, NOP, TEX0_4, NOP, SPC, NOP) +SETUPFUNC(rs_gst0t1, NOP, COL, TEX0, TEX1, TEX0_4, TEX1_4, SPC, NOP) +SETUPFUNC(rs_gf, NOP, COL, NOP, NOP, NOP, NOP, NOP, FOG) +SETUPFUNC(rs_gfs, NOP, COL, NOP, NOP, NOP, NOP, SPC, FOG) +SETUPFUNC(rs_gft0, NOP, COL, TEX0, NOP, TEX0_4, NOP, NOP, FOG) +SETUPFUNC(rs_gft0t1, NOP, COL, TEX0, TEX1, TEX0_4, TEX1_4, NOP, FOG) +SETUPFUNC(rs_gfst0, NOP, COL, TEX0, NOP, TEX0_4, NOP, SPC, FOG) +SETUPFUNC(rs_gfst0t1, NOP, COL, TEX0, TEX1, TEX0_4, TEX1_4, SPC, FOG) + + +static void rs_invalid( struct vertex_buffer *VB, GLuint start, GLuint end ) +{ + fprintf( stderr, "radeonRasterSetup(): invalid setup function\n" ); +} + +typedef void (*setupFunc)( struct vertex_buffer *, GLuint, GLuint ); +static setupFunc setup_func[RADEON_MAX_SETUPFUNC]; + + +void radeonDDSetupInit( void ) +{ + GLint i; + + for ( i = 0 ; i < RADEON_MAX_SETUPFUNC ; i++ ) { + setup_func[i] = rs_invalid; + } + + /* Functions to build vertices from scratch + */ + setup_func[RADEON_WIN_BIT|RADEON_TEX0_BIT] = rs_wt0; + setup_func[RADEON_WIN_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_wt0t1; + setup_func[RADEON_WIN_BIT|RADEON_FOG_BIT|RADEON_TEX0_BIT] = rs_wft0; + setup_func[RADEON_WIN_BIT|RADEON_FOG_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_wft0t1; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT] = rs_wg; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_SPEC_BIT] = rs_wgs; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_TEX0_BIT] = rs_wgt0; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_wgt0t1; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT] = rs_wgst0; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_wgst0t1; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_FOG_BIT] = rs_wgf; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_SPEC_BIT] = rs_wgfs; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_TEX0_BIT] = rs_wgft0; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_wgft0t1; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT] = rs_wgfst0; + setup_func[RADEON_WIN_BIT|RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_wgfst0t1; + + /* Repair functions + */ + setup_func[RADEON_TEX0_BIT] = rs_t0; + setup_func[RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_t0t1; + setup_func[RADEON_FOG_BIT] = rs_f; + setup_func[RADEON_FOG_BIT|RADEON_TEX0_BIT] = rs_ft0; + setup_func[RADEON_FOG_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_ft0t1; + setup_func[RADEON_RGBA_BIT] = rs_g; + setup_func[RADEON_RGBA_BIT|RADEON_SPEC_BIT] = rs_gs; + setup_func[RADEON_RGBA_BIT|RADEON_TEX0_BIT] = rs_gt0; + setup_func[RADEON_RGBA_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_gt0t1; + setup_func[RADEON_RGBA_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT] = rs_gst0; + setup_func[RADEON_RGBA_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_gst0t1; + setup_func[RADEON_RGBA_BIT|RADEON_FOG_BIT] = rs_gf; + setup_func[RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_SPEC_BIT] = rs_gfs; + setup_func[RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_TEX0_BIT] = rs_gft0; + setup_func[RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_gft0t1; + setup_func[RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT] = rs_gfst0; + setup_func[RADEON_RGBA_BIT|RADEON_FOG_BIT|RADEON_SPEC_BIT|RADEON_TEX0_BIT|RADEON_TEX1_BIT] = rs_gfst0t1; +} + + +void radeonPrintSetupFlags( char *msg, GLuint flags ) +{ + fprintf( stderr, "%s: %d %s%s%s%s%s%s\n", + msg, + (int)flags, + (flags & RADEON_WIN_BIT) ? " xyzw," : "", + (flags & RADEON_RGBA_BIT) ? " rgba," : "", + (flags & RADEON_SPEC_BIT) ? " spec," : "", + (flags & RADEON_FOG_BIT) ? " fog," : "", + (flags & RADEON_TEX0_BIT) ? " tex-0," : "", + (flags & RADEON_TEX1_BIT) ? " tex-1," : "" ); +} + + +/* Initialize the vertex buffer setup functions based on the current + * rendering state. + */ +void radeonDDChooseRasterSetupFunc( GLcontext *ctx ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT( ctx ); + GLint index = RADEON_WIN_BIT | RADEON_RGBA_BIT; + + rmesa->vertsize = 8; + rmesa->vc_format = RADEON_TEX0_VERTEX_FORMAT; + rmesa->tmu_source[0] = 0; + rmesa->tmu_source[1] = 1; + rmesa->tex_dest[0] = RADEON_TEX0_BIT; + rmesa->tex_dest[1] = RADEON_TEX1_BIT; + rmesa->multitex = 0; + + if ( ctx->Texture.ReallyEnabled & ENABLE_TEX0 ) { + index |= RADEON_TEX0_BIT; + } + + if ( ctx->Texture.ReallyEnabled & ENABLE_TEX1 ) { + if ( ctx->Texture.ReallyEnabled & ENABLE_TEX0 ) { + rmesa->multitex = 1; + rmesa->vertsize = 10; + rmesa->vc_format = RADEON_TEX1_VERTEX_FORMAT; + index |= RADEON_TEX1_BIT; + } else { + /* Just a funny way of doing single texturing. + */ + rmesa->tmu_source[0] = 1; + rmesa->tex_dest[1] = RADEON_TEX0_BIT; + index |= RADEON_TEX0_BIT; + } + } + + if ( ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR ) + index |= RADEON_SPEC_BIT; + + if ( ctx->Fog.Enabled ) + index |= RADEON_FOG_BIT; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_MSG ) { + radeonPrintSetupFlags( "full setup function", index ); + } + + rmesa->new_state |= RADEON_NEW_TEXTURE; + rmesa->SetupIndex = index; + + ctx->Driver.RasterSetup = setup_func[index]; +} + +/* Check to see if any updates of the vertex buffer entries are needed. + */ +void radeonDDCheckPartialRasterSetup( GLcontext *ctx, + struct gl_pipeline_stage *s ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + GLint tmp = rmesa->SetupDone; + + s->type = 0; + rmesa->SetupDone = 0; + + if ( (ctx->Array.Summary & VERT_OBJ_ANY) == 0 ) + return; + + if ( ctx->IndirectTriangles ) + return; + + rmesa->SetupDone = tmp; +} + +/* Repair existing precalculated vertices with new data. + */ +void radeonDDPartialRasterSetup( struct vertex_buffer *VB ) +{ + radeonContextPtr rmesa = RADEON_CONTEXT(VB->ctx); + GLuint new = VB->pipeline->new_outputs; + GLuint available = VB->pipeline->outputs; + GLuint index = 0; + + if ( new & VERT_WIN ) { + new = available; + index |= RADEON_WIN_BIT | RADEON_FOG_BIT; + } + + if ( new & VERT_RGBA ) + index |= RADEON_RGBA_BIT | RADEON_SPEC_BIT; + + if ( new & VERT_TEX0_ANY ) + index |= RADEON_TEX0_BIT; + + if ( new & VERT_TEX1_ANY ) + index |= rmesa->tex_dest[1]; + + if ( new & VERT_FOG_COORD ) + index |= RADEON_FOG_BIT; + + rmesa->SetupDone &= ~index; + index &= rmesa->SetupIndex; + rmesa->SetupDone |= index; + + if ( RADEON_DEBUG & DEBUG_VERBOSE_MSG ) + radeonPrintSetupFlags( "partial setup function", index ); + + if ( index ) + setup_func[index]( VB, VB->Start, VB->Count ); +} + +void radeonDDDoRasterSetup( struct vertex_buffer *VB ) +{ + GLcontext *ctx = VB->ctx; + + if ( VB->Type == VB_CVA_PRECALC ) { + radeonDDPartialRasterSetup( VB ); + } else if ( ctx->Driver.RasterSetup ) { + ctx->Driver.RasterSetup( VB, VB->CopyStart, VB->Count ); + } +} + + +/* ================================================================ + * Hardware-format vertex buffers + */ + +void radeonDDResizeVB( struct vertex_buffer *VB, GLuint size ) +{ + radeonVertexBufferPtr rvb = RADEON_DRIVER_DATA(VB); + + while ( rvb->size < size ) + rvb->size *= 2; + + ALIGN_FREE( rvb->vert_store ); + rvb->vert_store = ALIGN_MALLOC( sizeof(radeonVertex) * rvb->size, 32 ); + if ( !rvb->vert_store ) { + fprintf( stderr, "Cannot allocate vertex store! Exiting...\n" ); + exit( 1 ); + } + + rvb->verts = (radeonVertexPtr)rvb->vert_store; + + gl_vector1ui_free( &rvb->clipped_elements ); + gl_vector1ui_alloc( &rvb->clipped_elements, VEC_WRITABLE, rvb->size, 32 ); + if ( !rvb->clipped_elements.start ) { + fprintf( stderr, "Cannot allocate clipped elements! Exiting...\n" ); + exit( 1 ); + } + + ALIGN_FREE( VB->ClipMask ); + VB->ClipMask = (GLubyte *)ALIGN_MALLOC( sizeof(GLubyte) * rvb->size, 32 ); + if ( !VB->ClipMask ) { + fprintf( stderr, "Cannot allocate clipmask! Exiting...\n" ); + exit( 1 ); + } +} + +void radeonDDRegisterVB( struct vertex_buffer *VB ) +{ + radeonVertexBufferPtr rvb; + + rvb = (radeonVertexBufferPtr)CALLOC( sizeof(*rvb) ); + + rvb->size = VB->Size * 2; + rvb->vert_store = ALIGN_MALLOC( sizeof(radeonVertex) * rvb->size, 32 ); + if ( !rvb->vert_store ) { + fprintf( stderr, "Cannot allocate vertex store! Exiting...\n" ); + exit( 1 ); + } + + rvb->verts = (radeonVertexPtr)rvb->vert_store; + + gl_vector1ui_alloc( &rvb->clipped_elements, VEC_WRITABLE, rvb->size, 32 ); + if ( !rvb->clipped_elements.start ) { + fprintf( stderr, "Cannot allocate clipped elements! Exiting...\n" ); + exit( 1 ); + } + + ALIGN_FREE( VB->ClipMask ); + VB->ClipMask = (GLubyte *)ALIGN_MALLOC( sizeof(GLubyte) * rvb->size, 32 ); + if ( !VB->ClipMask ) { + fprintf( stderr, "Cannot allocate clipmask! Exiting...\n" ); + exit( 1 ); + } + + VB->driver_data = rvb; +} + +void radeonDDUnregisterVB( struct vertex_buffer *VB ) +{ + radeonVertexBufferPtr rvb = RADEON_DRIVER_DATA(VB); + + if ( rvb ) { + if ( rvb->vert_store ) ALIGN_FREE( rvb->vert_store ); + gl_vector1ui_free( &rvb->clipped_elements ); + FREE( rvb ); + VB->driver_data = 0; + } +} diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vb.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_vb.h new file mode 100644 index 000000000..bd809efbb --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vb.h @@ -0,0 +1,136 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_vb.h,v 1.1 2001/01/08 01:07:29 martin Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifndef __RADEON_VB_H__ +#define __RADEON_VB_H__ + +#ifdef GLX_DIRECT_RENDERING + +/* FIXME: This is endian-specific */ +typedef struct { + GLubyte red; + GLubyte green; + GLubyte blue; + GLubyte alpha; +} radeon_color_t; + +/* The vertex structure. The final tu1/tv1 values are only used in + * multitexture modes, and the rhw2 value is currently never used. + */ +typedef struct { + GLfloat x, y, z; /* Coordinates in screen space */ + GLfloat rhw; /* Reciprocal homogeneous w */ + radeon_color_t color; /* Diffuse color */ + radeon_color_t specular; /* Specular color (alpha is fog) */ + GLfloat tu0, tv0; /* Texture 0 coordinates */ + GLfloat tu1, tv1; /* Texture 1 coordinates */ + GLfloat rhw2; /* Reciprocal homogeneous w2 */ +} radeon_vertex; + +/* Format of vertices in radeon_vertex struct: + */ +#define RADEON_TEX0_VERTEX_FORMAT (RADEON_CP_VC_FRMT_XY | \ + RADEON_CP_VC_FRMT_Z | \ + RADEON_CP_VC_FRMT_W0 | \ + RADEON_CP_VC_FRMT_PKCOLOR | \ + RADEON_CP_VC_FRMT_PKSPEC | \ + RADEON_CP_VC_FRMT_ST0) + +#define RADEON_TEX1_VERTEX_FORMAT (RADEON_CP_VC_FRMT_XY | \ + RADEON_CP_VC_FRMT_Z | \ + RADEON_CP_VC_FRMT_W0 | \ + RADEON_CP_VC_FRMT_PKCOLOR | \ + RADEON_CP_VC_FRMT_PKSPEC | \ + RADEON_CP_VC_FRMT_ST0 | \ + RADEON_CP_VC_FRMT_ST1) + +#if 0 +#define RADEON_PROJ_TEX1_VERTEX_FORMAT (RADEON_CP_VC_FRMT_XY | \ + RADEON_CP_VC_FRMT_Z | \ + RADEON_CP_VC_FRMT_W0 | \ + RADEON_CP_VC_FRMT_PKCOLOR | \ + RADEON_CP_VC_FRMT_PKSPEC | \ + RADEON_CP_VC_FRMT_ST0 | \ + RADEON_CP_VC_FRMT_ST1 | \ + RADEON_CP_VC_FRMT_Q1) +#endif + + +/* The fastpath code still expects a 16-float stride vertex. + */ +union radeon_vertex_t { + radeon_vertex v; + GLfloat f[16]; + GLuint ui[16]; +}; + +typedef union radeon_vertex_t radeonVertex; +typedef union radeon_vertex_t *radeonVertexPtr; + +typedef struct { + radeonVertexPtr verts; + GLvector1ui clipped_elements; + GLint last_vert; + void *vert_store; + GLuint size; +} *radeonVertexBufferPtr; + +#define RADEON_DRIVER_DATA(vb) ((radeonVertexBufferPtr)((vb)->driver_data)) + +#define RADEON_WIN_BIT 0x01 +#define RADEON_RGBA_BIT 0x02 +#define RADEON_FOG_BIT 0x04 +#define RADEON_SPEC_BIT 0x08 +#define RADEON_TEX0_BIT 0x10 +#define RADEON_TEX1_BIT 0x20 +#define RADEON_MAX_SETUPFUNC 0x40 + +extern void radeonDDChooseRasterSetupFunc( GLcontext *ctx ); +extern void radeonPrintSetupFlags( char *msg, GLuint flags ); + +extern void radeonDDCheckPartialRasterSetup( GLcontext *ctx, + struct gl_pipeline_stage *s ); +extern void radeonDDPartialRasterSetup( struct vertex_buffer *VB ); +extern void radeonDDDoRasterSetup( struct vertex_buffer *VB ); + +extern void radeonDDResizeVB( struct vertex_buffer *VB, GLuint size ); +extern void radeonDDRegisterVB( struct vertex_buffer *VB ); +extern void radeonDDUnregisterVB( struct vertex_buffer *VB ); + +extern void radeonDDSetupInit( void ); + +#endif +#endif /* __RADEON_VB_H__ */ diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_xmesa.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_xmesa.c new file mode 100644 index 000000000..1f24b8409 --- /dev/null +++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_xmesa.c @@ -0,0 +1,314 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_xmesa.c,v 1.2 2001/01/23 18:14:39 alanh Exp $ */ +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and + VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Gareth Hughes <gareth@valinux.com> + * + */ + +#ifdef GLX_DIRECT_RENDERING + +/* Radeon Mesa driver includes */ +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "radeon_tex.h" + +/* Mesa src includes */ +#include "context.h" +#include "simple_list.h" +#include "mmath.h" + +extern void __driRegisterExtensions( void ); + +static radeonContextPtr radeonCtx = NULL; + + +/* Initialize the driver specific screen private data. + */ +GLboolean XMesaInitDriver( __DRIscreenPrivate *sPriv ) +{ + sPriv->private = (void *) radeonCreateScreen( sPriv ); + + /* Check the DRI version */ + { + int major, minor, patch; + if (XF86DRIQueryVersion(sPriv->display, &major, &minor, &patch)) { + if (major != 3 || minor != 1 || patch < 0) { + char msg[1000]; + sprintf(msg, "RADEON DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); + __driMesaMessage(msg); + return GL_FALSE; + } + } + } + + /* Check that the DDX driver version is compatible */ + if (sPriv->ddxMajor != 4 || + sPriv->ddxMinor != 0 || + sPriv->ddxPatch < 0) { + char msg[1000]; + sprintf(msg, "RADEON DRI driver expected DDX driver version 4.0.x but got version %d.%d.%d", sPriv->ddxMajor, sPriv->ddxMinor, sPriv->ddxPatch); + __driMesaMessage(msg); + return GL_FALSE; + } + + /* Check that the DRM driver version is compatible */ + if (sPriv->drmMajor != 1 || + sPriv->drmMinor != 0 || + sPriv->drmPatch < 0) { + char msg[1000]; + sprintf(msg, "RADEON DRI driver expected DRM driver version 1.0.x but got version %d.%d.%d", sPriv->drmMajor, sPriv->drmMinor, sPriv->drmPatch); + __driMesaMessage(msg); + return GL_FALSE; + } + + if ( !sPriv->private ) { + radeonDestroyScreen( sPriv ); + return GL_FALSE; + } + + return GL_TRUE; +} + +/* Reset the driver specific screen private data. + */ +void XMesaResetDriver( __DRIscreenPrivate *sPriv ) +{ + radeonDestroyScreen( sPriv ); +} + +/* Create and initialize the Mesa and driver specific visual data. + */ +GLvisual *XMesaCreateVisual( Display *dpy, + __DRIscreenPrivate *driScrnPriv, + const XVisualInfo *visinfo, + const __GLXvisualConfig *config ) +{ + /* Drivers may change the args to _mesa_create_visual() in order to + * setup special visuals. + */ + return _mesa_create_visual( config->rgba, + config->doubleBuffer, + config->stereo, + _mesa_bitcount( visinfo->red_mask ), + _mesa_bitcount( visinfo->green_mask ), + _mesa_bitcount( visinfo->blue_mask ), + config->alphaSize, + 0, /* index bits */ + config->depthSize, + config->stencilSize, + config->accumRedSize, + config->accumGreenSize, + config->accumBlueSize, + config->accumAlphaSize, + 0 /* num samples */); +} + +/* Create and initialize the Mesa and driver specific context data. + */ +GLboolean XMesaCreateContext( Display *dpy, GLvisual *mesaVis, + __DRIcontextPrivate *driContextPriv ) +{ + return radeonCreateContext( dpy, mesaVis, driContextPriv ); +} + +/* Destroy the Mesa and driver specific context data. + */ +void XMesaDestroyContext( __DRIcontextPrivate *driContextPriv ) +{ + radeonContextPtr rmesa = (radeonContextPtr)driContextPriv->driverPrivate; + + if ( rmesa == (void *)radeonCtx) radeonCtx = NULL; + radeonDestroyContext( rmesa ); +} + +/* Create and initialize the Mesa and driver specific pixmap buffer + * data. + */ +GLframebuffer *XMesaCreateWindowBuffer( Display *dpy, + __DRIscreenPrivate *driScrnPriv, + __DRIdrawablePrivate *driDrawPriv, + GLvisual *mesaVis ) +{ + return gl_create_framebuffer( mesaVis, + GL_FALSE, /* software depth buffer? */ + mesaVis->StencilBits > 0, + mesaVis->AccumRedBits > 0, + GL_FALSE /* software alpha buffer? */ ); +} + +/* Create and initialize the Mesa and driver specific pixmap buffer + * data. + */ +GLframebuffer *XMesaCreatePixmapBuffer( Display *dpy, + __DRIscreenPrivate *driScrnPriv, + __DRIdrawablePrivate *driDrawPriv, + GLvisual *mesaVis ) +{ +#if 0 + /* Different drivers may have different combinations of hardware and + * software ancillary buffers. + */ + return gl_create_framebuffer( mesaVis, + GL_FALSE, /* software depth buffer? */ + mesaVis->StencilBits > 0, + mesaVis->AccumRedBits > 0, + mesaVis->AlphaBits > 0 ); +#else + return NULL; /* not implemented yet */ +#endif +} + +/* Copy the back color buffer to the front color buffer. + */ +void XMesaSwapBuffers( __DRIdrawablePrivate *driDrawPriv ) +{ + /* FIXME: This assumes buffer is currently bound to a context. This + * needs to be able to swap buffers when not currently bound. Also, + * this needs to swap according to buffer, and NOT according to + * context! + */ + if ( radeonCtx == NULL ) return; + + /* Only swap buffers when a back buffer exists. + */ + if ( radeonCtx->glCtx->Visual->DBflag ) { + FLUSH_VB( radeonCtx->glCtx, "swap buffers" ); + if ( !radeonCtx->doPageFlip ) { + radeonSwapBuffers( radeonCtx ); + } else { + radeonPageFlip( radeonCtx ); + } + } +} + +/* Force the context `c' to be the current context and associate with it + * buffer `b'. + */ +GLboolean XMesaMakeCurrent( __DRIcontextPrivate *driContextPriv, + __DRIdrawablePrivate *driDrawPriv, + __DRIdrawablePrivate *driReadPriv ) +{ + if ( driContextPriv ) { + radeonContextPtr rmesa = (radeonContextPtr)driContextPriv->driverPrivate; + + radeonCtx = radeonMakeCurrent( radeonCtx, rmesa, driDrawPriv ); + + gl_make_current2( radeonCtx->glCtx, + driDrawPriv->mesaBuffer, + driReadPriv->mesaBuffer ); + + if ( radeonCtx->driDrawable != driDrawPriv ) { + radeonCtx->driDrawable = driDrawPriv; + radeonCtx->dirty = RADEON_UPLOAD_ALL; + } + + /* GH: We need this to correctly calculate the window offset + * and aux scissor rects. + */ + radeonCtx->new_state = RADEON_NEW_WINDOW | RADEON_NEW_CLIP; + + if ( !radeonCtx->glCtx->Viewport.Width ) { + gl_Viewport( radeonCtx->glCtx, 0, 0, driDrawPriv->w, driDrawPriv->h ); + } + } else { + gl_make_current( 0, 0 ); + radeonCtx = NULL; + } + + return GL_TRUE; +} + +/* Force the context `c' to be unbound from its buffer. + */ +GLboolean XMesaUnbindContext( __DRIcontextPrivate *driContextPriv ) +{ + return GL_TRUE; +} + +/* This function is called by libGL.so as soon as libGL.so is loaded. + * This is where we'd register new extension functions with the dispatcher. + */ +void __driRegisterExtensions( void ) +{ +} + +/* Initialize the fullscreen mode. + */ +GLboolean +XMesaOpenFullScreen( __DRIcontextPrivate *driContextPriv ) +{ + radeonContextPtr rmesa = (radeonContextPtr)driContextPriv->driverPrivate; + GLint ret; + + /* FIXME: Do we need to check this? + */ + if ( !radeonCtx->glCtx->Visual->DBflag ) + return GL_TRUE; + + LOCK_HARDWARE( rmesa ); + radeonWaitForIdleLocked( rmesa ); + + /* Ignore errors. If this fails, we simply don't do page flipping. + */ + ret = drmRadeonFullScreen( rmesa->driFd, GL_TRUE ); + + UNLOCK_HARDWARE( rmesa ); + + rmesa->doPageFlip = ( ret == 0 ); + + return GL_TRUE; +} + +/* Shut down the fullscreen mode. + */ +GLboolean +XMesaCloseFullScreen( __DRIcontextPrivate *driContextPriv ) +{ + radeonContextPtr rmesa = (radeonContextPtr)driContextPriv->driverPrivate; + + LOCK_HARDWARE( rmesa ); + radeonWaitForIdleLocked( rmesa ); + + /* Don't care if this fails, we're not page flipping anymore. + */ + drmRadeonFullScreen( rmesa->driFd, GL_FALSE ); + + UNLOCK_HARDWARE( rmesa ); + + rmesa->doPageFlip = GL_FALSE; + rmesa->currentPage = 0; + + return GL_TRUE; +} + +#endif diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_alloc.c b/xc/lib/GL/mesa/src/drv/sis/sis_alloc.c index 1caa57200..b2badf3f9 100644 --- a/xc/lib/GL/mesa/src/drv/sis/sis_alloc.c +++ b/xc/lib/GL/mesa/src/drv/sis/sis_alloc.c @@ -24,7 +24,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_alloc.c,v 1.6 2000/09/26 15:56:48 tsi Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_alloc.c,v 1.7 2001/01/08 01:07:29 martin Exp $ */ /* * Authors: @@ -40,7 +40,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #if defined(XFree86Server) && !defined(XF86DRI) # include "xf86fbman.h" #else +# define CONFIG_DRM_SIS # include "drm.h" +# undef CONFIG_DRM_SIS # include "sis_drm.h" # include <sys/ioctl.h> #endif diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_xmesa.c b/xc/lib/GL/mesa/src/drv/sis/sis_xmesa.c index 24a7e84b9..9e1eb105c 100644 --- a/xc/lib/GL/mesa/src/drv/sis/sis_xmesa.c +++ b/xc/lib/GL/mesa/src/drv/sis/sis_xmesa.c @@ -24,7 +24,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_xmesa.c,v 1.6 2000/12/07 20:26:10 dawes Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_xmesa.c,v 1.9 2000/12/22 09:20:04 alanh Exp $ */ /* * Authors: @@ -76,6 +76,39 @@ GLboolean XMesaInitDriver (__DRIscreenPrivate * driScrnPriv) { SISDRIPtr priv = (SISDRIPtr) driScrnPriv->pDevPriv; + /* Check the DRI version */ + { + int major, minor, patch; + if (XF86DRIQueryVersion(driScrnPriv->display, &major, &minor, &patch)) { + if (major != 3 || minor != 1 || patch < 0) { + char msg[1000]; + sprintf(msg, "sis DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); + __driMesaMessage(msg); + return GL_FALSE; + } + } + } + + /* Check that the DDX driver version is compatible */ + if (driScrnPriv->ddxMajor != 1 || + driScrnPriv->ddxMinor != 0 || + driScrnPriv->ddxPatch < 0) { + char msg[1000]; + sprintf(msg, "sis DRI driver expected DDX driver version 1.0.x but got version %d.%d.%d", driScrnPriv->ddxMajor, driScrnPriv->ddxMinor, driScrnPriv->ddxPatch); + __driMesaMessage(msg); + return GL_FALSE; + } + + /* Check that the DRM driver version is compatible */ + if (driScrnPriv->drmMajor != 1 || + driScrnPriv->drmMinor != 0 || + driScrnPriv->drmPatch < 0) { + char msg[1000]; + sprintf(msg, "sis DRI driver expected DRM driver version 1.0.x but got version %d.%d.%d", driScrnPriv->drmMajor, driScrnPriv->drmMinor, driScrnPriv->drmPatch); + __driMesaMessage(msg); + return GL_FALSE; + } + assert (driScrnPriv->devPrivSize == sizeof (SISDRIRec)); /* Fixme: in quake3, when context changed, XMesaInitDriver is called diff --git a/xc/lib/GL/mesa/src/drv/tdfx/Imakefile b/xc/lib/GL/mesa/src/drv/tdfx/Imakefile index 160a33da6..6b3c488ab 100644 --- a/xc/lib/GL/mesa/src/drv/tdfx/Imakefile +++ b/xc/lib/GL/mesa/src/drv/tdfx/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/GL/mesa/src/drv/tdfx/Imakefile,v 1.19 2000/12/12 23:24:28 dawes Exp $ +XCOMM $XFree86: xc/lib/GL/mesa/src/drv/tdfx/Imakefile,v 1.20 2001/02/16 01:26:11 dawes Exp $ #include <Threads.tmpl> @@ -365,7 +365,7 @@ NormalLintTarget($(SRCS)) LIBNAME = tdfx_dri.so ALL_OBJS = $(OBJS) ALL_DEPS = DONE -SharedDepModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) +SharedDriModuleTarget($(LIBNAME),$(ALL_DEPS),$(ALL_OBJS)) InstallDynamicModule($(LIBNAME),$(MODULEDIR),dri) #ifdef GlxSoProf diff --git a/xc/lib/GL/mesa/src/drv/tdfx/fxddtex.c b/xc/lib/GL/mesa/src/drv/tdfx/fxddtex.c index 84994a966..c769ff117 100644 --- a/xc/lib/GL/mesa/src/drv/tdfx/fxddtex.c +++ b/xc/lib/GL/mesa/src/drv/tdfx/fxddtex.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxddtex.c,v 1.3 2000/12/08 21:34:20 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxddtex.c,v 1.4 2001/01/08 01:07:29 martin Exp $ */ /* * Mesa 3-D graphics library * Version: 3.3 @@ -873,7 +873,7 @@ fxDDTexImage2D(GLcontext * ctx, GLenum target, GLint level, GLboolean * retainInternalCopy) { fxMesaContext fxMesa = FX_CONTEXT(ctx); - const GLboolean allow32bpt = fxMesa->haveHwStencil; + const GLboolean allow32bpt = fxMesa->isNapalm; GrTextureFormat_t gldformat; tfxTexInfo *ti; tfxMipMapLevel *mml; @@ -1239,7 +1239,7 @@ fxDDCompressedTexImage2D( GLcontext *ctx, GLenum target, GLboolean *retainInternalCopy) { fxMesaContext fxMesa = FX_CONTEXT(ctx); - const GLboolean allow32bpt = fxMesa->haveHwStencil; + const GLboolean allow32bpt = fxMesa->isNapalm; GrTextureFormat_t gldformat; tfxTexInfo *ti; tfxMipMapLevel *mml; diff --git a/xc/lib/GL/mesa/src/drv/tdfx/fxglidew.c b/xc/lib/GL/mesa/src/drv/tdfx/fxglidew.c index 93e0c915a..bb7393c9e 100644 --- a/xc/lib/GL/mesa/src/drv/tdfx/fxglidew.c +++ b/xc/lib/GL/mesa/src/drv/tdfx/fxglidew.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxglidew.c,v 1.2 2000/12/08 19:36:23 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxglidew.c,v 1.3 2001/01/08 01:07:29 martin Exp $ */ /* * Mesa 3-D graphics library * Version: 3.3 @@ -199,7 +199,6 @@ FX_grColorMaskv_NoLock(GLcontext *ctx, const GLboolean rgba[4]) } - FxBool FX_grLfbLock(fxMesaContext fxMesa, GrLock_t type, GrBuffer_t buffer, GrLfbWriteMode_t writeMode, GrOriginLocation_t origin, @@ -268,6 +267,30 @@ FX_getGrStateSize(fxMesaContext fxMesa) } void +FX_grGlideGetVersion(fxMesaContext fxMesa, char *buf) +{ + BEGIN_BOARD_LOCK(fxMesa); + strcpy(buf, grGetString(GR_VERSION)); + END_BOARD_LOCK(fxMesa); +} + +void +FX_grSstPerfStats(GrSstPerfStats_t * st) +{ + FxI32 n; + grGet(GR_STATS_PIXELS_IN, 4, &n); + st->pixelsIn = n; + grGet(GR_STATS_PIXELS_CHROMA_FAIL, 4, &n); + st->chromaFail = n; + grGet(GR_STATS_PIXELS_DEPTHFUNC_FAIL, 4, &n); + st->zFuncFail = n; + grGet(GR_STATS_PIXELS_AFUNC_FAIL, 4, &n); + st->aFuncFail = n; + grGet(GR_STATS_PIXELS_OUT, 4, &n); + st->pixelsOut = n; +} + +void FX_grAADrawLine(fxMesaContext fxMesa, GrVertex * a, GrVertex * b) { /* ToDo */ diff --git a/xc/lib/GL/mesa/src/drv/tdfx/fxsetup.c b/xc/lib/GL/mesa/src/drv/tdfx/fxsetup.c index 640a429e3..4585d6bf3 100644 --- a/xc/lib/GL/mesa/src/drv/tdfx/fxsetup.c +++ b/xc/lib/GL/mesa/src/drv/tdfx/fxsetup.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxsetup.c,v 1.2 2000/12/08 19:36:23 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxsetup.c,v 1.3 2001/01/08 01:07:29 martin Exp $ */ /* * Mesa 3-D graphics library * Version: 3.3 @@ -93,7 +93,7 @@ fxTexValidate(GLcontext * ctx, struct gl_texture_object *tObj) fxTexGetFormat(tObj->Image[minl]->IntFormat, &(ti->info.format), &(ti->baseLevelInternalFormat), NULL, NULL, - fxMesa->haveHwStencil); + fxMesa->isNapalm); switch (tObj->WrapS) { case GL_CLAMP_TO_EDGE: diff --git a/xc/lib/GL/mesa/src/drv/tdfx/fxtritmp.h b/xc/lib/GL/mesa/src/drv/tdfx/fxtritmp.h index a71fd7f2c..a1f138e31 100644 --- a/xc/lib/GL/mesa/src/drv/tdfx/fxtritmp.h +++ b/xc/lib/GL/mesa/src/drv/tdfx/fxtritmp.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxtritmp.h,v 1.3 2000/12/08 19:36:23 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/fxtritmp.h,v 1.4 2001/01/08 01:07:30 martin Exp $ */ /* * Mesa 3-D graphics library * Version: 3.3 @@ -384,12 +384,12 @@ static void TAG(fx_points) (GLcontext * ctx, GLuint first, GLuint last) } if (!VB->ClipOrMask) { - for (i = first; i <= last; i++) { + for (i = first; i < last; i++) { DRAW_POINT(i, radius, color[i]); } } else { - for (i = first; i <= last; i++) { + for (i = first; i < last; i++) { if (VB->ClipMask[i] == 0) { DRAW_POINT(i, radius, color[i]); } @@ -403,12 +403,12 @@ static void TAG(fx_points) (GLcontext * ctx, GLuint first, GLuint last) FX_grRenderBuffer(fxMesa, GR_BUFFER_FRONTBUFFER); if (!VB->ClipOrMask) { - for (i = first; i <= last; i++) { + for (i = first; i < last; i++) { DRAW_POINT(i, radius, color[i]); } } else { - for (i = first; i <= last; i++) { + for (i = first; i < last; i++) { if (VB->ClipMask[i] == 0) { DRAW_POINT(i, radius, color[i]); } diff --git a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c index 9da5a11f8..12775ef64 100644 --- a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c +++ b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c @@ -25,7 +25,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c,v 1.10 2000/12/08 19:36:24 alanh Exp $ */ +/* $XFree86: xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c,v 1.11 2000/12/21 13:58:56 alanh Exp $ */ /* * Authors: @@ -60,10 +60,10 @@ XMesaInitDriver(__DRIscreenPrivate * sPriv) { int major, minor, patch; if (XF86DRIQueryVersion(sPriv->display, &major, &minor, &patch)) { - if (major != 3 || minor != 0 || patch < 0) { + if (major != 3 || minor != 1 || patch < 0) { char msg[1000]; sprintf(msg, - "3dfx DRI driver expected DRI version 3.0.x but got version %d.%d.%d", + "3dfx DRI driver expected DRI version 3.1.x but got version %d.%d.%d", major, minor, patch); __driMesaMessage(msg); return GL_FALSE; diff --git a/xc/lib/GLU/GLU-def.cpp b/xc/lib/GLU/GLU-def.cpp new file mode 100644 index 000000000..369160b18 --- /dev/null +++ b/xc/lib/GLU/GLU-def.cpp @@ -0,0 +1,166 @@ +LIBRARY GLU +VERSION LIBRARY_VERSION +EXPORTS + +bezierPatchDelete +bezierPatchDeleteList +bezierPatchDraw +bezierPatchEval +bezierPatchEvalNormal +bezierPatchInsert +bezierPatchListDraw +bezierPatchMake +bezierPatchMake2 +bezierPatchPrint +bezierPatchPrintList +bezierPatchMeshBeginStrip +bezierPatchMeshDelDeg +bezierPatchMeshDelete +bezierPatchMeshDraw +bezierPatchMeshEndStrip +bezierPatchMeshEval +bezierPatchMeshInsertUV +bezierPatchMeshListCollect +bezierPatchMeshListDelDeg +bezierPatchMeshListDelete +bezierPatchMeshListDraw +bezierPatchMeshListEval +bezierPatchMeshListInsert +bezierPatchMeshListNumTriangles +bezierPatchMeshListPrint +bezierPatchMeshListReverse +bezierPatchMeshListTotalStrips +bezierPatchMeshListTotalVert +bezierPatchMeshMake +bezierPatchMeshMake2 +bezierPatchMeshNumTriangles +bezierPatchMeshPrint +bezierPatchMeshPutPatch +drawStrips +gluBeginCurve +gluBeginSurface +gluBeginTrim +gluDeleteNurbsRenderer +gluDeleteNurbsTessellatorEXT +gluEndCurve +gluEndSurface +gluEndTrim +gluGetNurbsProperty +gluLoadSamplingMatrices +gluNewNurbsRenderer +gluNurbsCallback +gluNurbsCallbackData +gluNurbsCallbackDataEXT +gluNurbsCurve +gluNurbsProperty +gluNurbsSurface +gluPwlCurve +glu_LOD_eval_list +__gl_dictListDelete +__gl_dictListDeleteDict +__gl_dictListInsertBefore +__gl_dictListNewDict +__gl_dictListSearch +__gl_edgeEval +__gl_edgeIntersect +__gl_edgeSign +__gl_transEval +__gl_transSign +__gl_vertCCW +__gl_vertLeq +__gl_memInit +__gl_meshAddEdgeVertex +; __gl_meshCheckMesh +__gl_meshConnect +__gl_meshDelete +__gl_meshDeleteMesh +__gl_meshMakeEdge +__gl_meshNewMesh +__gl_meshSplice +__gl_meshSplitEdge +__gl_meshUnion +__gl_meshZapFace +__gl_projectPolygon +__gl_pqHeapDelete +__gl_pqHeapDeletePriorityQ +__gl_pqHeapExtractMin +__gl_pqHeapInit +__gl_pqHeapInsert +__gl_pqHeapNewPriorityQ +__gl_pqSortDelete +__gl_pqSortDeletePriorityQ +__gl_pqSortExtractMin +__gl_pqSortInit +__gl_pqSortInsert +__gl_pqSortIsEmpty +__gl_pqSortMinimum +__gl_pqSortNewPriorityQ +__gl_renderBoundary +__gl_renderCache +__gl_renderMesh +__gl_computeInterior +__gl_noBeginData +__gl_noCombineData +__gl_noEdgeFlagData +__gl_noEndData +__gl_noErrorData +__gl_noVertexData +gluBeginPolygon +; gluDeleteMesh +gluDeleteTess +gluEndPolygon +gluGetTessProperty +gluNewTess +gluNextContour +gluTessBeginContour +gluTessBeginPolygon +gluTessCallback +gluTessEndContour +gluTessEndPolygon +gluTessNormal +gluTessProperty +gluTessVertex +__gl_meshDiscardExterior +__gl_meshSetWindingNumber +__gl_meshTessellateInterior +__gl_meshTessellateMonoRegion +gluErrorString +; __glNURBSErrorString +; __glTessErrorString +; bitmapBuild2DMipmaps +; fastBuild2DMipmaps +gluBuild1DMipmapLevels +gluBuild1DMipmaps +gluBuild2DMipmapLevels +gluBuild2DMipmaps +gluBuild3DMipmapLevels +gluBuild3DMipmaps +gluScaleImage +gluScaleImage3D +; __gluInvertMatrixd +; __gluMakeIdentityd +; __gluMakeIdentityf +; __gluMultMatricesd +; __gluMultMatrixVecd +gluLookAt +gluOrtho2D +gluPerspective +gluPickMatrix +gluProject +gluUnProject +gluUnProject4 +gluCylinder +gluDeleteQuadric +gluDisk +gluNewQuadric +gluPartialDisk +gluQuadricCallback +gluQuadricDrawStyle +gluQuadricNormals +gluQuadricOrientation +gluQuadricTexture +gluSphere +gluCheckExtension +gluGetString + +/* $XFree86: xc/lib/GLU/GLU-def.cpp,v 1.1 2001/02/13 19:19:11 dawes Exp $ */ diff --git a/xc/lib/GLU/Imakefile b/xc/lib/GLU/Imakefile new file mode 100644 index 000000000..9bc345851 --- /dev/null +++ b/xc/lib/GLU/Imakefile @@ -0,0 +1,129 @@ +XCOMM $XFree86: xc/lib/GLU/Imakefile,v 1.4 2001/02/13 19:19:11 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +#define IHaveSubdirs + +#define DoNormalLib NormalLibGlu +#define DoSharedLib SharedLibGlu +#define DoDebugLib DebugLibGlu +#define DoProfileLib ProfileLibGlu +#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' + +LIBNAME = GLU +SOREV = $(SOGLUREV) + +#define CplusplusSource + +#ifdef SharedGLUReqs +REQUIREDLIBS = SharedGLUReqs +#endif + +#ifndef SeparateSharedCompile +#define SeparateSharedCompile YES +#endif +#if NormalLibFont && SharedLibFont && SeparateSharedCompile +STATIC_OBJSDIR = unshared/ +#endif + +SUBDIRS = \ + include \ + libutil \ + libtess \ + libnurbs/internals \ + libnurbs/interface \ + libnurbs/nurbtess + + SHARED_OBJS = libutil/?*.o libtess/?*.o \ + libnurbs/internals/?*.o \ + libnurbs/interface/?*.o \ + libnurbs/nurbtess/?*.o + + STATIC_OBJS = libutil/$(STATIC_OBJSDIR)?*.o libtess/$(STATIC_OBJSDIR)?*.o \ + libnurbs/internals/$(STATIC_OBJSDIR)?*.o \ + libnurbs/interface/$(STATIC_OBJSDIR)?*.o \ + libnurbs/nurbtess/$(STATIC_OBJSDIR)?*.o + + DEBUG_OBJS = libutil/debugger/?*.o libtess/debugger/?*.o \ + libnurbs/internals/debugger/?*.o \ + libnurbs/interface/debugger/?*.o \ + libnurbs/nurbtess/debugger/?*.o + + PROFILE_OBJS = libutil/profiled/?*.o libtess/profiled/?*.o \ + libnurbs/internals/profiled/?*.o \ + libnurbs/interface/profiled/?*.o \ + libnurbs/nurbtess/profiled/?*.o + + DONES = libutil/DONE libtess/DONE \ + libnurbs/internals/DONE \ + libnurbs/interface/DONE \ + libnurbs/nurbtess/DONE + +#if HasParallelMake +MakeMutex($(SUBDIRS) $(DONES)) +#endif + +#if HasGnuMake || HasBsdMake +$(DONES): $(SUBDIRS) +#endif + +#include <Library.tmpl> + +#undef _LinkBuildLibrary +#define _LinkBuildLibrary(lib) LinkBuildLibrary(lib) + +#if NormalLibGlu +NormalDepLibraryTarget($(LIBNAME),$(SUBDIRS) $(DONES),$(STATIC_OBJS)) +InstallLibrary($(LIBNAME),$(USRLIBDIR)) +#endif + +#if SharedLibGlu +SharedDepLibraryTarget($(LIBNAME),$(SOREV),$(SUBDIRS) $(DONES),$(SHARED_OBJS),.,.) +InstallSharedLibrary($(LIBNAME),$(SOREV),$(SHLIBDIR)) +#endif + +#if DebugLibFont +DebuggedDepLibraryTarget($(LIBNAME),$(SUBDIRS) $(DONES),$(DEBUG_OBJS)) +InstallLibrary($(LIBNAME)_d,$(USRLIBDIR)) +#endif /* DebugLibFont */ + +#if ProfileLibFont +ProfiledDepLibraryTarget($(LIBNAME),$(SUBDIRS) $(DONES),$(PROFILE_OBJS)) +InstallLibrary($(LIBNAME)_p,$(USRLIBDIR)) +#endif /* ProfileLibFont */ + + +ForceSubdirs($(SUBDIRS)) +DependSubdirs($(SUBDIRS)) + diff --git a/xc/lib/GLU/include/Imakefile b/xc/lib/GLU/include/Imakefile new file mode 100644 index 000000000..1f3b70d34 --- /dev/null +++ b/xc/lib/GLU/include/Imakefile @@ -0,0 +1,38 @@ +XCOMM $XFree86: xc/lib/GLU/include/Imakefile,v 1.1 2001/01/15 22:17:53 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +GLUSRCDIR = $(OGLSAMPLESRCDIR)/main/gfx/lib/glu + +LinkSourceFile(gluos.h, $(GLUSRCDIR)/include) diff --git a/xc/lib/GLU/libnurbs/interface/Imakefile b/xc/lib/GLU/libnurbs/interface/Imakefile new file mode 100644 index 000000000..eabf0b307 --- /dev/null +++ b/xc/lib/GLU/libnurbs/interface/Imakefile @@ -0,0 +1,107 @@ +XCOMM $XFree86: xc/lib/GLU/libnurbs/interface/Imakefile,v 1.3 2001/01/16 00:39:24 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +#define DoNormalLib NormalLibGlu +#define DoSharedLib SharedLibGlu +#define DoDebugLib DebugLibGlu +#define DoProfileLib ProfileLibGlu + +#define CplusplusSource + +#include <Library.tmpl> + +SRCS = \ + bezierEval.cc \ + bezierPatch.cc \ + bezierPatchMesh.cc \ + glcurveval.cc \ + glinterface.cc \ + glrenderer.cc \ + glsurfeval.cc \ + incurveeval.cc \ + insurfeval.cc + +OBJS = \ + bezierEval.o \ + bezierPatch.o \ + bezierPatchMesh.o \ + glcurveval.o \ + glinterface.o \ + glrenderer.o \ + glsurfeval.o \ + incurveeval.o \ + insurfeval.o + +INCLUDES = \ + -I. \ + -I../internals \ + -I../nurbtess \ + -I../../include \ + -I$(TOP)/include \ + -I$(TOP)/include/GL + +DEFINES = \ + -DLIBRARYBUILD \ + -DNDEBUG + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +GLUSRCDIR = $(OGLSAMPLESRCDIR)/main/gfx/lib/glu + +LinkSourceFile(bezierEval.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(bezierPatch.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(bezierPatchMesh.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glcurveval.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glinterface.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glrenderer.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glsurfeval.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(incurveeval.cc, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(insurfeval.cc, $(GLUSRCDIR)/libnurbs/interface) + +LinkSourceFile(bezierEval.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(bezierPatch.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(bezierPatchMesh.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glcurveval.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glimports.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glrenderer.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(glsurfeval.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(mystdio.h, $(GLUSRCDIR)/libnurbs/interface) +LinkSourceFile(mystdlib.h, $(GLUSRCDIR)/libnurbs/interface) + +DependTarget() +CleanTarget() diff --git a/xc/lib/GLU/libnurbs/internals/Imakefile b/xc/lib/GLU/libnurbs/internals/Imakefile new file mode 100644 index 000000000..b04e8d99f --- /dev/null +++ b/xc/lib/GLU/libnurbs/internals/Imakefile @@ -0,0 +1,260 @@ +XCOMM $XFree86: xc/lib/GLU/libnurbs/internals/Imakefile,v 1.4 2001/02/18 20:01:02 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +#define DoNormalLib NormalLibGlu +#define DoSharedLib SharedLibGlu +#define DoDebugLib DebugLibGlu +#define DoProfileLib ProfileLibGlu + +#define CplusplusSource + +#include <Library.tmpl> + +SRCS = \ + arc.cc \ + arcsorter.cc \ + arctess.cc \ + backend.cc \ + basiccrveval.cc \ + basicsurfeval.cc \ + bin.cc \ + bufpool.cc \ + cachingeval.cc \ + ccw.cc \ + coveandtiler.cc \ + curve.cc \ + curvelist.cc \ + curvesub.cc \ + dataTransform.cc \ + displaylist.cc \ + flist.cc \ + flistsorter.cc \ + hull.cc \ + intersect.cc \ + knotvector.cc \ + mapdesc.cc \ + mapdescv.cc \ + maplist.cc \ + mesher.cc \ + monoTriangulationBackend.cc \ + monotonizer.cc \ + mycode.cc \ + nurbsinterfac.cc \ + nurbstess.cc \ + patch.cc \ + patchlist.cc \ + quilt.cc \ + reader.cc \ + renderhints.cc \ + slicer.cc \ + sorter.cc \ + splitarcs.cc \ + subdivider.cc \ + tobezier.cc \ + trimline.cc \ + trimregion.cc \ + trimvertpool.cc \ + uarray.cc \ + varray.cc + +OBJS = \ + arc.o \ + arcsorter.o \ + arctess.o \ + backend.o \ + basiccrveval.o \ + basicsurfeval.o \ + bin.o \ + bufpool.o \ + cachingeval.o \ + ccw.o \ + coveandtiler.o \ + curve.o \ + curvelist.o \ + curvesub.o \ + dataTransform.o \ + displaylist.o \ + flist.o \ + flistsorter.o \ + hull.o \ + intersect.o \ + knotvector.o \ + mapdesc.o \ + mapdescv.o \ + maplist.o \ + mesher.o \ + monoTriangulationBackend.o \ + monotonizer.o \ + mycode.o \ + nurbsinterfac.o \ + nurbstess.o \ + patch.o \ + patchlist.o \ + quilt.o \ + reader.o \ + renderhints.o \ + slicer.o \ + sorter.o \ + splitarcs.o \ + subdivider.o \ + tobezier.o \ + trimline.o \ + trimregion.o \ + trimvertpool.o \ + uarray.o \ + varray.o + +INCLUDES = \ + -I../nurbtess \ + -I../../include \ + -I$(TOP)/include \ + -I$(TOP)/include/GL + +#if SystemV4 +OSDEFINES = -DNEEDCEILF +#endif + +DEFINES = $(OSDEFINES) \ + -DLIBRARYBUILD \ + -DNDEBUG + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +GLUSRCDIR = $(OGLSAMPLESRCDIR)/main/gfx/lib/glu + +LinkSourceFile(arc.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(arcsorter.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(arctess.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(backend.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(basiccrveval.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(basicsurfeval.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(bin.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(bufpool.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(cachingeval.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(ccw.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(coveandtiler.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(curve.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(curvelist.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(curvesub.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(dataTransform.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(displaylist.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(flist.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(flistsorter.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(hull.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(intersect.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(knotvector.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mapdesc.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mapdescv.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(maplist.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mesher.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(monoTriangulationBackend.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(monotonizer.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mycode.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(nurbsinterfac.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(nurbstess.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(patch.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(patchlist.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(quilt.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(reader.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(renderhints.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(slicer.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(sorter.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(splitarcs.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(subdivider.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(tobezier.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimline.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimregion.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimvertpool.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(uarray.cc, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(varray.cc, $(GLUSRCDIR)/libnurbs/internals) + +LinkSourceFile(arc.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(arcsorter.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(arctess.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(backend.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(basiccrveval.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(basicsurfeval.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(bezierarc.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(bin.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(bufpool.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(cachingeval.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(coveandtiler.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(curve.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(curvelist.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(dataTransform.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(defines.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(displaylist.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(displaymode.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(flist.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(flistsorter.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(gridline.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(gridtrimvertex.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(gridvertex.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(hull.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(jarcloc.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(knotvector.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mapdesc.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(maplist.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mesher.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(monotonizer.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(myassert.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mymath.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mysetjmp.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(mystring.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(nurbsconsts.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(nurbstess.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(patch.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(patchlist.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(pwlarc.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(quilt.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(reader.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(renderhints.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(simplemath.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(slicer.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(sorter.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(subdivider.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimline.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimregion.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimvertex.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(trimvertpool.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(types.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(uarray.h, $(GLUSRCDIR)/libnurbs/internals) +LinkSourceFile(varray.h, $(GLUSRCDIR)/libnurbs/internals) + +DependTarget() +CleanTarget() diff --git a/xc/lib/GLU/libnurbs/nurbtess/Imakefile b/xc/lib/GLU/libnurbs/nurbtess/Imakefile new file mode 100644 index 000000000..5471f6363 --- /dev/null +++ b/xc/lib/GLU/libnurbs/nurbtess/Imakefile @@ -0,0 +1,150 @@ +XCOMM $XFree86: xc/lib/GLU/libnurbs/nurbtess/Imakefile,v 1.3 2001/01/16 00:39:25 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +#define DoNormalLib NormalLibGlu +#define DoSharedLib SharedLibGlu +#define DoDebugLib DebugLibGlu +#define DoProfileLib ProfileLibGlu + +#define CplusplusSource + +#include <Library.tmpl> + +SRCS = \ + directedLine.cc \ + gridWrap.cc \ + monoChain.cc \ + monoTriangulation.cc \ + partitionX.cc \ + partitionY.cc \ + polyDBG.cc \ + polyUtil.cc \ + primitiveStream.cc \ + quicksort.cc \ + rectBlock.cc \ + sampleComp.cc \ + sampleCompBot.cc \ + sampleCompRight.cc \ + sampleCompTop.cc \ + sampleMonoPoly.cc \ + sampledLine.cc \ + searchTree.cc \ + monoPolyPart.cc + +OBJS = \ + directedLine.o \ + gridWrap.o \ + monoChain.o \ + monoTriangulation.o \ + partitionX.o \ + partitionY.o \ + polyDBG.o \ + polyUtil.o \ + primitiveStream.o \ + quicksort.o \ + rectBlock.o \ + sampleComp.o \ + sampleCompBot.o \ + sampleCompRight.o \ + sampleCompTop.o \ + sampleMonoPoly.o \ + sampledLine.o \ + searchTree.o \ + monoPolyPart.o + +INCLUDES = \ + -I../internals \ + -I../../include \ + -I$(TOP)/include \ + -I$(TOP)/include/GL + +DEFINES = \ + -DLIBRARYBUILD \ + -DNDEBUG + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +GLUSRCDIR = $(OGLSAMPLESRCDIR)/main/gfx/lib/glu + +LinkSourceFile(directedLine.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(gridWrap.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(monoChain.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(monoTriangulation.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(partitionX.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(partitionY.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(polyDBG.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(polyUtil.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(primitiveStream.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(quicksort.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(rectBlock.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleComp.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleCompBot.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleCompRight.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleCompTop.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleMonoPoly.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampledLine.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(searchTree.cc, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(monoPolyPart.cc, $(GLUSRCDIR)/libnurbs/nurbtess) + +LinkSourceFile(definitions.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(directedLine.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(glimports.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(gridWrap.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(monoChain.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(monoPolyPart.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(monoTriangulation.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(mystdio.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(mystdlib.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(partitionX.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(partitionY.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(polyDBG.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(polyUtil.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(primitiveStream.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(quicksort.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(rectBlock.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleComp.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleCompBot.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleCompRight.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleCompTop.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampleMonoPoly.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(sampledLine.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(searchTree.h, $(GLUSRCDIR)/libnurbs/nurbtess) +LinkSourceFile(zlassert.h, $(GLUSRCDIR)/libnurbs/nurbtess) + +DependTarget() +CleanTarget() diff --git a/xc/lib/GLU/libtess/Imakefile b/xc/lib/GLU/libtess/Imakefile new file mode 100644 index 000000000..e87c09799 --- /dev/null +++ b/xc/lib/GLU/libtess/Imakefile @@ -0,0 +1,109 @@ +XCOMM $XFree86: xc/lib/GLU/libtess/Imakefile,v 1.2 2001/01/16 00:39:25 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +#define DoNormalLib NormalLibGlu +#define DoSharedLib SharedLibGlu +#define DoDebugLib DebugLibGlu +#define DoProfileLib ProfileLibGlu + +#include <Library.tmpl> + +SRCS = \ + dict.c \ + geom.c \ + memalloc.c \ + mesh.c \ + normal.c \ + priorityq.c \ + render.c \ + sweep.c \ + tess.c \ + tessmono.c + +OBJS = \ + dict.o \ + geom.o \ + memalloc.o \ + mesh.o \ + normal.o \ + priorityq.o \ + render.o \ + sweep.o \ + tess.o \ + tessmono.o + +INCLUDES = \ + -I../include \ + -I$(TOP)/include \ + -I$(TOP)/include/GL + +DEFINES = \ + -DNDEBUG + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +GLUSRCDIR = $(OGLSAMPLESRCDIR)/main/gfx/lib/glu + +LinkSourceFile(dict.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(geom.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(memalloc.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(mesh.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(normal.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(priorityq-heap.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(priorityq.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(render.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(sweep.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(tess.c, $(GLUSRCDIR)/libtess) +LinkSourceFile(tessmono.c, $(GLUSRCDIR)/libtess) + +LinkSourceFile(dict-list.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(dict.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(geom.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(memalloc.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(mesh.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(normal.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(priorityq-heap.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(priorityq-sort.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(priorityq.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(render.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(sweep.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(tess.h, $(GLUSRCDIR)/libtess) +LinkSourceFile(tessmono.h, $(GLUSRCDIR)/libtess) + +DependTarget() +CleanTarget() diff --git a/xc/lib/GLU/libutil/Imakefile b/xc/lib/GLU/libutil/Imakefile new file mode 100644 index 000000000..8ce739b9d --- /dev/null +++ b/xc/lib/GLU/libutil/Imakefile @@ -0,0 +1,84 @@ +XCOMM $XFree86: xc/lib/GLU/libutil/Imakefile,v 1.2 2001/01/16 00:39:26 dawes Exp $ + +XCOMM License Applicability. Except to the extent portions of this file are +XCOMM made subject to an alternative license as permitted in the SGI Free +XCOMM Software License B, Version 1.1 (the "License"), the contents of this +XCOMM file are subject only to the provisions of the License. You may not use +XCOMM this file except in compliance with the License. You may obtain a copy +XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +XCOMM +XCOMM http://oss.sgi.com/projects/FreeB +XCOMM +XCOMM Note that, as provided in the License, the Software is distributed on an +XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +XCOMM +XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, +XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +XCOMM Copyright in any portions created by third parties is as indicated +XCOMM elsewhere herein. All Rights Reserved. +XCOMM +XCOMM Additional Notice Provisions: The application programming interfaces +XCOMM established by SGI in conjunction with the Original Code are The +XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software +XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation +XCOMM published by SGI, but has not been independently verified as being +XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. +XCOMM + +#define DoNormalLib NormalLibGlu +#define DoSharedLib SharedLibGlu +#define DoDebugLib DebugLibGlu +#define DoProfileLib ProfileLibGlu + +#include <Library.tmpl> + +SRCS = \ + error.c \ + glue.c \ + mipmap.c \ + project.c \ + quad.c \ + registry.c + +OBJS = \ + error.o \ + glue.o \ + mipmap.o \ + project.o \ + quad.o \ + registry.o + +INCLUDES = \ + -I../include \ + -I$(TOP)/include \ + -I$(TOP)/include/GL + +DEFINES = \ + -DNDEBUG + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +GLUSRCDIR = $(OGLSAMPLESRCDIR)/main/gfx/lib/glu + +LinkSourceFile(error.c, $(GLUSRCDIR)/libutil) +LinkSourceFile(glue.c, $(GLUSRCDIR)/libutil) +LinkSourceFile(mipmap.c, $(GLUSRCDIR)/libutil) +LinkSourceFile(project.c, $(GLUSRCDIR)/libutil) +LinkSourceFile(quad.c, $(GLUSRCDIR)/libutil) +LinkSourceFile(registry.c, $(GLUSRCDIR)/libutil) + +LinkSourceFile(gluint.h, $(GLUSRCDIR)/libutil) + +DependTarget() +CleanTarget() diff --git a/xc/lib/ICE/ICE-def.cpp b/xc/lib/ICE/ICE-def.cpp index 2461b9123..df1d9ea58 100644 --- a/xc/lib/ICE/ICE-def.cpp +++ b/xc/lib/ICE/ICE-def.cpp @@ -62,5 +62,5 @@ EXPORTS _IceWrite IceListenForWellKnownConnections _IceTransGetHostname -/* $TOG: ICE-def.cpp /main/7 1998/01/04 12:31:53 kaleb $ */ -/* $XFree86: xc/lib/ICE/ICE-def.cpp,v 1.3 2000/08/09 23:40:12 dawes Exp $ */ +/* $Xorg: ICE-def.cpp,v 1.3 2000/08/21 16:42:31 coskrey Exp $ */ +/* $XFree86: xc/lib/ICE/ICE-def.cpp,v 1.4 2001/01/17 19:41:29 dawes Exp $ */ diff --git a/xc/lib/ICE/ICE.h b/xc/lib/ICE/ICE.h index 8d5422efa..f7ede88d1 100644 --- a/xc/lib/ICE/ICE.h +++ b/xc/lib/ICE/ICE.h @@ -1,4 +1,4 @@ -/* $TOG: ICE.h /main/7 1998/02/06 13:56:58 kaleb $ */ +/* $Xorg: ICE.h,v 1.3 2000/08/17 19:44:08 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/ICEconn.h b/xc/lib/ICE/ICEconn.h index a9c613ebe..94401d064 100644 --- a/xc/lib/ICE/ICEconn.h +++ b/xc/lib/ICE/ICEconn.h @@ -1,4 +1,4 @@ -/* $TOG: ICEconn.h /main/5 1998/02/06 13:56:22 kaleb $ */ +/* $Xorg: ICEconn.h,v 1.4 2000/08/17 19:44:10 cpqbld Exp $ */ /****************************************************************************** @@ -26,6 +26,8 @@ Author: Ralph Mor, X Consortium #ifndef _ICECONN_H_ #define _ICECONN_H_ +#include <X11/ICE/ICElib.h> + /* * Data structures for ICE connection object */ diff --git a/xc/lib/ICE/ICElib.h b/xc/lib/ICE/ICElib.h index 8486d1293..58f521f06 100644 --- a/xc/lib/ICE/ICElib.h +++ b/xc/lib/ICE/ICElib.h @@ -1,4 +1,4 @@ -/* $TOG: ICElib.h /main/42 1998/02/06 13:56:32 kaleb $ */ +/* $Xorg: ICElib.h,v 1.4 2000/08/17 19:44:10 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/ICElib.h,v 3.2 1998/10/03 08:41:09 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/ICElib.h,v 3.3 2001/01/17 19:41:29 dawes Exp $ */ #ifndef _ICELIB_H_ #define _ICELIB_H_ diff --git a/xc/lib/ICE/ICElibint.h b/xc/lib/ICE/ICElibint.h index 7f7ed3035..58b736950 100644 --- a/xc/lib/ICE/ICElibint.h +++ b/xc/lib/ICE/ICElibint.h @@ -1,4 +1,4 @@ -/* $TOG: ICElibint.h /main/43 1998/02/06 13:56:27 kaleb $ */ +/* $Xorg: ICElibint.h,v 1.3 2000/08/17 19:44:10 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/ICElibint.h,v 1.3 2000/06/17 18:23:22 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/ICElibint.h,v 1.4 2001/01/17 19:41:29 dawes Exp $ */ #ifndef _ICELIBINT_H_ #define _ICELIBINT_H_ diff --git a/xc/lib/ICE/ICEmsg.h b/xc/lib/ICE/ICEmsg.h index 9f9452615..36f626794 100644 --- a/xc/lib/ICE/ICEmsg.h +++ b/xc/lib/ICE/ICEmsg.h @@ -1,4 +1,4 @@ -/* $TOG: ICEmsg.h /main/6 1998/02/06 13:56:38 kaleb $ */ +/* $Xorg: ICEmsg.h,v 1.3 2000/08/17 19:44:10 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/ICEproto.h b/xc/lib/ICE/ICEproto.h index 629da6eba..265eacdd3 100644 --- a/xc/lib/ICE/ICEproto.h +++ b/xc/lib/ICE/ICEproto.h @@ -1,4 +1,4 @@ -/* $TOG: ICEproto.h /main/8 1998/02/06 13:56:44 kaleb $ */ +/* $Xorg: ICEproto.h,v 1.4 2000/08/17 19:44:11 cpqbld Exp $ */ /****************************************************************************** @@ -26,6 +26,8 @@ Author: Ralph Mor, X Consortium #ifndef _ICEPROTO_H_ #define _ICEPROTO_H_ +#include <X11/Xmd.h> + typedef struct { CARD8 majorOpcode; CARD8 minorOpcode; diff --git a/xc/lib/ICE/ICEutil.h b/xc/lib/ICE/ICEutil.h index 46146dc2b..877cd2ad2 100644 --- a/xc/lib/ICE/ICEutil.h +++ b/xc/lib/ICE/ICEutil.h @@ -1,4 +1,4 @@ -/* $TOG: ICEutil.h /main/6 1998/02/06 13:56:49 kaleb $ */ +/* $Xorg: ICEutil.h,v 1.4 2000/08/17 19:44:11 cpqbld Exp $ */ /****************************************************************************** @@ -27,6 +27,7 @@ Author: Ralph Mor, X Consortium #define _ICEUTIL_H_ #include <stdio.h> +#include <X11/Xlib.h> /* * Data structure for entry in ICE authority file diff --git a/xc/lib/ICE/Imakefile b/xc/lib/ICE/Imakefile index 340496319..49b9f2fe2 100644 --- a/xc/lib/ICE/Imakefile +++ b/xc/lib/ICE/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/21 1996/11/29 13:30:33 swick $ -XCOMM $XFree86: xc/lib/ICE/Imakefile,v 3.3 1998/12/20 11:56:49 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:44:11 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/ICE/Imakefile,v 3.4 2001/01/17 19:41:29 dawes Exp $ #define DoNormalLib NormalLibICE #define DoSharedLib SharedLibICE diff --git a/xc/lib/ICE/accept.c b/xc/lib/ICE/accept.c index 13549e9ca..51786f6d9 100644 --- a/xc/lib/ICE/accept.c +++ b/xc/lib/ICE/accept.c @@ -1,4 +1,4 @@ -/* $TOG: accept.c /main/25 1998/02/06 13:55:44 kaleb $ */ +/* $Xorg: accept.c,v 1.3 2000/08/17 19:44:12 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/authutil.c b/xc/lib/ICE/authutil.c index 453ad0457..169c4d7a7 100644 --- a/xc/lib/ICE/authutil.c +++ b/xc/lib/ICE/authutil.c @@ -1,4 +1,4 @@ -/* $TOG: authutil.c /main/18 1998/02/06 13:55:51 kaleb $ */ +/* $Xorg: authutil.c,v 1.4 2000/08/17 19:44:12 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/authutil.c,v 3.5 1999/05/23 06:33:23 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/authutil.c,v 3.6 2001/01/17 19:41:29 dawes Exp $ */ #include <X11/ICE/ICElib.h> #include "ICElibint.h" diff --git a/xc/lib/ICE/connect.c b/xc/lib/ICE/connect.c index 780e133cf..171d039b3 100644 --- a/xc/lib/ICE/connect.c +++ b/xc/lib/ICE/connect.c @@ -1,4 +1,4 @@ -/* $TOG: connect.c /main/34 1998/05/29 14:30:51 kaleb $ */ +/* $Xorg: connect.c,v 1.3 2000/08/17 19:44:12 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/connect.c,v 3.5 1999/03/21 07:34:27 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/connect.c,v 3.6 2001/01/17 19:41:29 dawes Exp $ */ #include <X11/ICE/ICElib.h> #include "ICElibint.h" diff --git a/xc/lib/ICE/error.c b/xc/lib/ICE/error.c index b14c3b998..06962a58e 100644 --- a/xc/lib/ICE/error.c +++ b/xc/lib/ICE/error.c @@ -1,4 +1,4 @@ -/* $TOG: error.c /main/17 1998/02/06 13:56:02 kaleb $ */ +/* $Xorg: error.c,v 1.3 2000/08/17 19:44:13 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/error.c,v 1.2 1999/05/23 06:33:23 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/error.c,v 1.3 2001/01/17 19:41:29 dawes Exp $ */ #include <X11/ICE/ICElib.h> #include "ICElibint.h" diff --git a/xc/lib/ICE/getauth.c b/xc/lib/ICE/getauth.c index 7f84e7e3b..2cce3d83c 100644 --- a/xc/lib/ICE/getauth.c +++ b/xc/lib/ICE/getauth.c @@ -1,4 +1,4 @@ -/* $TOG: getauth.c /main/9 1998/02/06 13:56:07 kaleb $ */ +/* $Xorg: getauth.c,v 1.3 2000/08/17 19:44:14 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/globals.h b/xc/lib/ICE/globals.h index 2bcc8bb45..4f46bce45 100644 --- a/xc/lib/ICE/globals.h +++ b/xc/lib/ICE/globals.h @@ -1,4 +1,4 @@ -/* $TOG: globals.h /main/15 1998/02/06 13:56:12 kaleb $ */ +/* $Xorg: globals.h,v 1.3 2000/08/17 19:44:14 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/globals.h,v 1.2 1998/12/20 11:56:49 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/globals.h,v 1.3 2001/01/17 19:41:29 dawes Exp $ */ extern void _IceDefaultErrorHandler (); extern void _IceDefaultIOErrorHandler (); diff --git a/xc/lib/ICE/iceauth.c b/xc/lib/ICE/iceauth.c index 6ff0fa514..f7f4d31c5 100644 --- a/xc/lib/ICE/iceauth.c +++ b/xc/lib/ICE/iceauth.c @@ -1,4 +1,4 @@ -/* $TOG: iceauth.c /main/22 1998/02/06 13:56:17 kaleb $ */ +/* $Xorg: iceauth.c,v 1.3 2000/08/17 19:44:15 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/iceauth.c,v 3.2 1998/10/03 08:41:09 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/iceauth.c,v 3.3 2001/01/17 19:41:29 dawes Exp $ */ #include <X11/ICE/ICElib.h> #include "ICElibint.h" diff --git a/xc/lib/ICE/listen.c b/xc/lib/ICE/listen.c index 0026fc079..73cda5166 100644 --- a/xc/lib/ICE/listen.c +++ b/xc/lib/ICE/listen.c @@ -1,4 +1,4 @@ -/* $TOG: listen.c /main/16 1998/02/06 13:57:14 kaleb $ */ +/* $Xorg: listen.c,v 1.4 2000/08/17 19:44:15 cpqbld Exp $ */ /****************************************************************************** @@ -40,7 +40,7 @@ char *errorStringRet; { struct _IceListenObj *listenObjs; char *networkId; - int fd, transCount, partial, i, j; + int transCount, partial, i, j; Status status = 1; XtransConnInfo *transConns = NULL; diff --git a/xc/lib/ICE/listenwk.c b/xc/lib/ICE/listenwk.c index 78b1b9368..8c33cee6e 100644 --- a/xc/lib/ICE/listenwk.c +++ b/xc/lib/ICE/listenwk.c @@ -1,4 +1,4 @@ -/* $TOG: listenwk.c /main/5 1998/02/09 08:30:39 barstow $ */ +/* $Xorg: listenwk.c,v 1.4 2000/08/17 19:44:15 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/ICE/listenwk.c,v 1.2 1999/05/23 06:33:24 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/listenwk.c,v 1.3 2001/01/17 19:41:29 dawes Exp $ */ /* Author: Ralph Mor, X Consortium */ diff --git a/xc/lib/ICE/locking.c b/xc/lib/ICE/locking.c index 0119d14f0..798cee2ad 100644 --- a/xc/lib/ICE/locking.c +++ b/xc/lib/ICE/locking.c @@ -1,4 +1,4 @@ -/* $TOG: locking.c /main/5 1998/02/06 13:57:19 kaleb $ */ +/* $Xorg: locking.c,v 1.3 2000/08/17 19:44:15 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/misc.c b/xc/lib/ICE/misc.c index b533c7f9e..ecdb8c40f 100644 --- a/xc/lib/ICE/misc.c +++ b/xc/lib/ICE/misc.c @@ -1,4 +1,4 @@ -/* $TOG: misc.c /main/30 1998/02/06 13:57:24 kaleb $ */ +/* $Xorg: misc.c,v 1.3 2000/08/17 19:44:15 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/misc.c,v 1.2 1999/05/23 06:33:24 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/misc.c,v 1.3 2001/01/17 19:41:29 dawes Exp $ */ #ifdef WIN32 #define _WILLWINSOCK_ diff --git a/xc/lib/ICE/ping.c b/xc/lib/ICE/ping.c index 468f79f70..a5dfb5e69 100644 --- a/xc/lib/ICE/ping.c +++ b/xc/lib/ICE/ping.c @@ -1,4 +1,4 @@ -/* $TOG: ping.c /main/9 1998/02/06 13:57:29 kaleb $ */ +/* $Xorg: ping.c,v 1.3 2000/08/17 19:44:15 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/process.c b/xc/lib/ICE/process.c index 6f271d16e..5d6c494e6 100644 --- a/xc/lib/ICE/process.c +++ b/xc/lib/ICE/process.c @@ -1,4 +1,4 @@ -/* $TOG: process.c /main/44 1998/02/06 13:57:34 kaleb $ */ +/* $Xorg: process.c,v 1.3 2000/08/17 19:44:16 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/process.c,v 3.4 2000/06/17 17:44:18 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/process.c,v 3.5 2001/01/17 19:41:29 dawes Exp $ */ #include <X11/ICE/ICElib.h> #include "ICElibint.h" diff --git a/xc/lib/ICE/protosetup.c b/xc/lib/ICE/protosetup.c index 0b1d86e3f..e398ca981 100644 --- a/xc/lib/ICE/protosetup.c +++ b/xc/lib/ICE/protosetup.c @@ -1,4 +1,4 @@ -/* $TOG: protosetup.c /main/20 1998/02/06 13:57:43 kaleb $ */ +/* $Xorg: protosetup.c,v 1.3 2000/08/17 19:44:17 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/register.c b/xc/lib/ICE/register.c index cd392d1b1..8a476ee3b 100644 --- a/xc/lib/ICE/register.c +++ b/xc/lib/ICE/register.c @@ -1,4 +1,4 @@ -/* $TOG: register.c /main/14 1998/02/06 13:57:48 kaleb $ */ +/* $Xorg: register.c,v 1.3 2000/08/17 19:44:18 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/replywait.c b/xc/lib/ICE/replywait.c index 305eb905d..a8e709d0c 100644 --- a/xc/lib/ICE/replywait.c +++ b/xc/lib/ICE/replywait.c @@ -1,4 +1,4 @@ -/* $TOG: replywait.c /main/5 1998/02/06 13:57:54 kaleb $ */ +/* $Xorg: replywait.c,v 1.3 2000/08/17 19:44:18 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/setauth.c b/xc/lib/ICE/setauth.c index 5b9569f8b..d17c406fa 100644 --- a/xc/lib/ICE/setauth.c +++ b/xc/lib/ICE/setauth.c @@ -1,4 +1,4 @@ -/* $TOG: setauth.c /main/9 1998/02/06 13:57:59 kaleb $ */ +/* $Xorg: setauth.c,v 1.3 2000/08/17 19:44:18 cpqbld Exp $ */ /****************************************************************************** @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. Author: Ralph Mor, X Consortium ******************************************************************************/ -/* $XFree86: xc/lib/ICE/setauth.c,v 1.2 1998/12/20 11:56:50 dawes Exp $ */ +/* $XFree86: xc/lib/ICE/setauth.c,v 1.3 2001/01/17 19:41:29 dawes Exp $ */ #include <X11/ICE/ICElib.h> #include "ICElibint.h" diff --git a/xc/lib/ICE/shutdown.c b/xc/lib/ICE/shutdown.c index 20768722a..697216968 100644 --- a/xc/lib/ICE/shutdown.c +++ b/xc/lib/ICE/shutdown.c @@ -1,4 +1,4 @@ -/* $TOG: shutdown.c /main/18 1998/02/06 13:58:05 kaleb $ */ +/* $Xorg: shutdown.c,v 1.3 2000/08/17 19:44:18 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/ICE/watch.c b/xc/lib/ICE/watch.c index f5f3d52e7..7b9a2ce83 100644 --- a/xc/lib/ICE/watch.c +++ b/xc/lib/ICE/watch.c @@ -1,4 +1,4 @@ -/* $TOG: watch.c /main/7 1998/02/06 13:58:11 kaleb $ */ +/* $Xorg: watch.c,v 1.3 2000/08/17 19:44:19 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/Imakefile b/xc/lib/Imakefile index 63d35fb18..aa4bbfad8 100644 --- a/xc/lib/Imakefile +++ b/xc/lib/Imakefile @@ -1,5 +1,10 @@ -XCOMM $TOG: Imakefile /main/39 1997/02/26 18:09:44 kaleb $ -XCOMM $XFree86: xc/lib/Imakefile,v 3.41 2000/11/02 20:39:07 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:44:00 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Imakefile,v 3.47 2001/02/18 09:02:32 herrb Exp $ + #define IHaveSubdirs #define PassCDebugFlags @@ -60,6 +65,10 @@ GLXLIBDIR = GL GLWLIBDIR = GLw #endif +#if BuildGLULibrary +GLULIBDIR = GLU +#endif + #if BuildDPSLibrary DPSLIBDIR = dps #endif @@ -80,6 +89,10 @@ RENDERLIBDIR = Xrender XFTLIBDIR = Xft #endif +#if BuildFreetype2Library +FREETYPE2LIBDIR = freetype2 +#endif + XF86EXTLIBS = $(XF86MISCLIBDIR) $(XF86VMLIBDIR) \ $(XF86DGALIBDIR) $(XF86RUSHLIBDIR) @@ -110,18 +123,18 @@ LINTSUBDIRS = Xau Xdmcp $(THRSTUBLIBDIR) X11 oldX ICE SM Xext Xt \ $(SSLIBDIR) $(XF86MISCLIBDIR) $(XF86VMLIBDIR) $(XF86DGALIBDIR) \ $(XF86RUSHLIBDIR) Xmu Xpm Xaw $(XAW6LIBDIR) XIE Xi Xtst FS \ PEX5 $(XKBLIBDIR) $(XKBUILIBDIR) $(LBXUTILDIR) $(XALIBDIR) \ - Xp $(XVLIBDIR) $(GLXLIBDIR) $(GLWLIBDIR) $(DPSLIBDIR) \ - $(DPSTKLIBDIR) $(PSRESLIBDIR) $(XINERAMADIR) \ - $(ZLIBDIR) $(REGEXDIR) $(RENDERLIBDIR) $(XFTLIBDIR) + Xp $(XVLIBDIR) $(GLXLIBDIR) $(GLULIBDIR) $(GLWLIBDIR) \ + $(DPSLIBDIR) $(DPSTKLIBDIR) $(PSRESLIBDIR) $(XINERAMADIR) \ + $(ZLIBDIR) $(REGEXDIR) $(RENDERLIBDIR) $(FREETYPE2LIBDIR) \ + $(XFTLIBDIR) #else #if XnestServer || BuildGLXLibrary XEXTDIR = Xext #endif -LINTSUBDIRS = Xau Xdmcp X11 $(XINERAMADIR) $(XEXTDIR) $(XKBLIBDIR) \ - $(XKBUILIBDIR) $(LBXUTILDIR) $(XF86EXTLIBS) $(XVLIBDIR) \ - $(GLXLIBDIR) $(GLWLIBDIR) $(ZLIBDIR) $(REGEXDIR) $(RENDERLIBDIR) \ - $(XFTLIBDIR) +LINTSUBDIRS = Xau Xdmcp X11 $(LBXUTILDIR) $(ZLIBDIR) $(REGEXDIR) \ + $(XKBLIBDIR) + #endif SUBDIRS = $(BERKDIR) xtrans $(LINTSUBDIRS) $(FONTSUBDIR) $(FONTCACHELIBDIR) diff --git a/xc/lib/PEX5/Imakefile b/xc/lib/PEX5/Imakefile index cf5f7967a..71f8a0849 100644 --- a/xc/lib/PEX5/Imakefile +++ b/xc/lib/PEX5/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/18 1996/09/28 16:33:26 rws $ -XCOMM $XFree86: xc/lib/PEX5/Imakefile,v 1.3 1998/12/20 11:56:51 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:44:20 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/PEX5/Imakefile,v 1.4 2001/01/17 19:41:30 dawes Exp $ #define DoNormalLib NormalLibPex #define DoSharedLib SharedLibPex diff --git a/xc/lib/PEX5/PEX.h b/xc/lib/PEX5/PEX.h index 1f98e3c44..78370a047 100644 --- a/xc/lib/PEX5/PEX.h +++ b/xc/lib/PEX5/PEX.h @@ -1,7 +1,7 @@ #ifndef _PEX_H_ #define _PEX_H_ -/* $XConsortium: PEX.h,v 1.8 94/03/18 10:37:25 mor Exp $ */ +/* $Xorg: PEX.h,v 1.3 2000/08/17 19:44:20 cpqbld Exp $ */ /******************************************************************************/ /* Copyright 1987,1991 by Digital Equipment Corporation, Maynard, Mass. */ diff --git a/xc/lib/PEX5/PEX5-def.cpp b/xc/lib/PEX5/PEX5-def.cpp index af73ccd75..d9ccf980b 100644 --- a/xc/lib/PEX5/PEX5-def.cpp +++ b/xc/lib/PEX5/PEX5-def.cpp @@ -280,4 +280,4 @@ EXPORTS PEXViewOrientationMatrix2D PEXXCToNPCTransform PEXXCToNPCTransform2D -/* $XConsortium: PEX5-def.cpp /main/2 1996/05/07 13:15:18 kaleb $ */ +/* $Xorg: PEX5-def.cpp,v 1.3 2000/08/17 19:44:20 cpqbld Exp $ */ diff --git a/xc/lib/PEX5/PEXlib.h b/xc/lib/PEX5/PEXlib.h index b3e110555..8ba2e55d4 100644 --- a/xc/lib/PEX5/PEXlib.h +++ b/xc/lib/PEX5/PEXlib.h @@ -1,7 +1,7 @@ #ifndef _PEXLIB_H_ #define _PEXLIB_H_ -/* $XConsortium: PEXlib.h,v 1.11 94/04/01 18:46:54 rws Exp $ */ +/* $Xorg: PEXlib.h,v 1.3 2000/08/17 19:44:20 cpqbld Exp $ */ /******************************************************************************/ /* Copyright 1987,1991 by Digital Equipment Corporation, Maynard, Mass. */ diff --git a/xc/lib/PEX5/PEXlibint.h b/xc/lib/PEX5/PEXlibint.h index 2d3f46391..6e9cfdb2a 100644 --- a/xc/lib/PEX5/PEXlibint.h +++ b/xc/lib/PEX5/PEXlibint.h @@ -1,4 +1,4 @@ -/* $TOG: PEXlibint.h /main/19 1998/02/06 16:09:05 kaleb $ */ +/* $Xorg: PEXlibint.h,v 1.4 2000/08/17 19:44:20 cpqbld Exp $ */ /****************************************************************************** @@ -133,7 +133,7 @@ typedef struct PEXDisplayInfo #define PEXGetDisplayInfo(_display, _info) \ \ { \ - if (_info = PEXDisplayInfoHeader) \ + if ((_info = PEXDisplayInfoHeader)) \ { \ if (PEXDisplayInfoHeader->display != _display) \ { \ diff --git a/xc/lib/PEX5/PEXproto.h b/xc/lib/PEX5/PEXproto.h index c6ede2c70..3ec486a42 100644 --- a/xc/lib/PEX5/PEXproto.h +++ b/xc/lib/PEX5/PEXproto.h @@ -1,4 +1,4 @@ -/* $TOG: PEXproto.h /main/10 1998/02/06 16:09:31 kaleb $ */ +/* $Xorg: PEXproto.h,v 1.3 2000/08/17 19:44:21 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/PEXprotost.h b/xc/lib/PEX5/PEXprotost.h index a7670f147..e50c04108 100644 --- a/xc/lib/PEX5/PEXprotost.h +++ b/xc/lib/PEX5/PEXprotost.h @@ -1,4 +1,4 @@ -/* $TOG: PEXprotost.h /main/8 1998/02/06 16:09:26 kaleb $ */ +/* $Xorg: PEXprotost.h,v 1.3 2000/08/17 19:44:21 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/jump_funcs b/xc/lib/PEX5/jump_funcs index 4afa711ac..0447aa710 100644 --- a/xc/lib/PEX5/jump_funcs +++ b/xc/lib/PEX5/jump_funcs @@ -1,5 +1,8 @@ -# $XConsortium: jump_funcs,v 1.2 94/12/07 10:48:56 kaleb Exp $ -# $XFree86: xc/lib/PEX5/jump_funcs,v 3.1 1995/01/28 15:42:19 dawes Exp $ +# $Xorg: jump_funcs,v 1.3 2000/08/17 19:44:21 cpqbld Exp $ +# +# +# +# $XFree86: xc/lib/PEX5/jump_funcs,v 3.2 2001/01/17 19:41:30 dawes Exp $ # 00000000 T _PEXEscape libPEX5 pl_escape 00000000 T _PEXEscapeWithReply libPEX5 pl_escape diff --git a/xc/lib/PEX5/jump_ignore b/xc/lib/PEX5/jump_ignore index e31c55f51..83d72e604 100644 --- a/xc/lib/PEX5/jump_ignore +++ b/xc/lib/PEX5/jump_ignore @@ -1,3 +1,6 @@ -# $XConsortium: jump_ignore,v 1.2 94/12/07 10:48:56 kaleb Exp $ -# $XFree86: xc/lib/PEX5/jump_ignore,v 3.1 1995/01/28 15:42:20 dawes Exp $ +# $Xorg: jump_ignore,v 1.3 2000/08/17 19:44:21 cpqbld Exp $ +# +# +# +# $XFree86: xc/lib/PEX5/jump_ignore,v 3.2 2001/01/17 19:41:30 dawes Exp $ # jump_ignore diff --git a/xc/lib/PEX5/jump_vars b/xc/lib/PEX5/jump_vars index 9a8e46e41..65c24e189 100644 --- a/xc/lib/PEX5/jump_vars +++ b/xc/lib/PEX5/jump_vars @@ -1,5 +1,8 @@ -# $XConsortium: jump_vars,v 1.2 94/12/07 10:48:56 kaleb Exp $ -# $XFree86: xc/lib/PEX5/jump_vars,v 3.1 1995/01/28 15:42:22 dawes Exp $ +# $Xorg: jump_vars,v 1.3 2000/08/17 19:44:21 cpqbld Exp $ +# +# +# +# $XFree86: xc/lib/PEX5/jump_vars,v 3.2 2001/01/17 19:41:30 dawes Exp $ # 00000004 D _PEXDisplayInfoHeader libPEX5 pl_startup 00000004 D _PEXPickCache libPEX5 pl_startup diff --git a/xc/lib/PEX5/pl_convert.c b/xc/lib/PEX5/pl_convert.c index c3344b9d1..889eb8e75 100644 --- a/xc/lib/PEX5/pl_convert.c +++ b/xc/lib/PEX5/pl_convert.c @@ -1,4 +1,4 @@ -/* $TOG: pl_convert.c /main/3 1998/02/06 16:09:48 kaleb $ */ +/* $Xorg: pl_convert.c,v 1.3 2000/08/17 19:44:22 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_convert.h b/xc/lib/PEX5/pl_convert.h index 34ad4e4c5..96b269e6b 100644 --- a/xc/lib/PEX5/pl_convert.h +++ b/xc/lib/PEX5/pl_convert.h @@ -1,4 +1,4 @@ -/* $TOG: pl_convert.h /main/4 1998/02/06 16:09:53 kaleb $ */ +/* $Xorg: pl_convert.h,v 1.3 2000/08/17 19:44:22 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_escape.c b/xc/lib/PEX5/pl_escape.c index baed06693..ca8414c9f 100644 --- a/xc/lib/PEX5/pl_escape.c +++ b/xc/lib/PEX5/pl_escape.c @@ -1,4 +1,4 @@ -/* $TOG: pl_escape.c /main/11 1998/02/06 16:09:59 kaleb $ */ +/* $Xorg: pl_escape.c,v 1.3 2000/08/17 19:44:23 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_extract.h b/xc/lib/PEX5/pl_extract.h index 174881309..9efb83e07 100644 --- a/xc/lib/PEX5/pl_extract.h +++ b/xc/lib/PEX5/pl_extract.h @@ -1,4 +1,4 @@ -/* $TOG: pl_extract.h /main/6 1998/02/06 16:10:05 kaleb $ */ +/* $Xorg: pl_extract.h,v 1.3 2000/08/17 19:44:23 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_font.c b/xc/lib/PEX5/pl_font.c index d97fd9554..ee0f054bf 100644 --- a/xc/lib/PEX5/pl_font.c +++ b/xc/lib/PEX5/pl_font.c @@ -1,4 +1,4 @@ -/* $TOG: pl_font.c /main/13 1998/02/06 16:10:11 kaleb $ */ +/* $Xorg: pl_font.c,v 1.3 2000/08/17 19:44:23 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_free.c b/xc/lib/PEX5/pl_free.c index 2118b7423..85279f5d1 100644 --- a/xc/lib/PEX5/pl_free.c +++ b/xc/lib/PEX5/pl_free.c @@ -1,4 +1,4 @@ -/* $TOG: pl_free.c /main/11 1998/02/06 16:10:16 kaleb $ */ +/* $Xorg: pl_free.c,v 1.3 2000/08/17 19:44:23 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_global.h b/xc/lib/PEX5/pl_global.h index 2ea470433..b61808b96 100644 --- a/xc/lib/PEX5/pl_global.h +++ b/xc/lib/PEX5/pl_global.h @@ -1,4 +1,4 @@ -/* $TOG: pl_global.h /main/9 1998/02/06 16:10:22 kaleb $ */ +/* $Xorg: pl_global.h,v 1.3 2000/08/17 19:44:23 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_lut.c b/xc/lib/PEX5/pl_lut.c index fe278c7ed..f05bcac94 100644 --- a/xc/lib/PEX5/pl_lut.c +++ b/xc/lib/PEX5/pl_lut.c @@ -1,4 +1,4 @@ -/* $TOG: pl_lut.c /main/13 1998/02/06 16:10:27 kaleb $ */ +/* $Xorg: pl_lut.c,v 1.3 2000/08/17 19:44:24 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_lut.h b/xc/lib/PEX5/pl_lut.h index fa8336e5e..217eaca8b 100644 --- a/xc/lib/PEX5/pl_lut.h +++ b/xc/lib/PEX5/pl_lut.h @@ -1,4 +1,4 @@ -/* $TOG: pl_lut.h /main/5 1998/02/06 16:10:34 kaleb $ */ +/* $Xorg: pl_lut.h,v 1.3 2000/08/17 19:44:24 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_nameset.c b/xc/lib/PEX5/pl_nameset.c index 16b329387..b39375a56 100644 --- a/xc/lib/PEX5/pl_nameset.c +++ b/xc/lib/PEX5/pl_nameset.c @@ -1,4 +1,4 @@ -/* $TOG: pl_nameset.c /main/9 1998/02/06 16:10:40 kaleb $ */ +/* $Xorg: pl_nameset.c,v 1.3 2000/08/17 19:44:24 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_oc_attr.c b/xc/lib/PEX5/pl_oc_attr.c index a719bafa1..d0b322eb4 100644 --- a/xc/lib/PEX5/pl_oc_attr.c +++ b/xc/lib/PEX5/pl_oc_attr.c @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_attr.c /main/10 1998/02/06 16:10:45 kaleb $ */ +/* $Xorg: pl_oc_attr.c,v 1.4 2000/08/17 19:44:24 cpqbld Exp $ */ /****************************************************************************** @@ -1850,7 +1850,7 @@ INPUT PEXPSCData *pscData; * Copy the oc data. */ - if (pBuf = PEXGetOCAddr (display, req->length)) + if ((pBuf = PEXGetOCAddr (display, req->length))) { if (pscType == PEXPSCIsoCurves) { diff --git a/xc/lib/PEX5/pl_oc_dec.c b/xc/lib/PEX5/pl_oc_dec.c index e5bd7d02f..15b043cea 100644 --- a/xc/lib/PEX5/pl_oc_dec.c +++ b/xc/lib/PEX5/pl_oc_dec.c @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_dec.c /main/15 1998/02/06 16:10:54 kaleb $ */ +/* $Xorg: pl_oc_dec.c,v 1.3 2000/08/17 19:44:25 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_oc_enc.c b/xc/lib/PEX5/pl_oc_enc.c index cb5163e1b..fd6b5eb4a 100644 --- a/xc/lib/PEX5/pl_oc_enc.c +++ b/xc/lib/PEX5/pl_oc_enc.c @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_enc.c /main/12 1998/02/06 16:11:03 kaleb $ */ +/* $Xorg: pl_oc_enc.c,v 1.3 2000/08/17 19:44:26 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_oc_prim.c b/xc/lib/PEX5/pl_oc_prim.c index 8fbb08110..c8fa580f4 100644 --- a/xc/lib/PEX5/pl_oc_prim.c +++ b/xc/lib/PEX5/pl_oc_prim.c @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_prim.c /main/16 1998/02/06 16:11:11 kaleb $ */ +/* $Xorg: pl_oc_prim.c,v 1.3 2000/08/17 19:44:26 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_oc_str.c b/xc/lib/PEX5/pl_oc_str.c index bbf554ba3..68ca922af 100644 --- a/xc/lib/PEX5/pl_oc_str.c +++ b/xc/lib/PEX5/pl_oc_str.c @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_str.c /main/8 1998/02/06 16:11:20 kaleb $ */ +/* $Xorg: pl_oc_str.c,v 1.3 2000/08/17 19:44:26 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_oc_util.c b/xc/lib/PEX5/pl_oc_util.c index cdd4fe14e..49f2902ad 100644 --- a/xc/lib/PEX5/pl_oc_util.c +++ b/xc/lib/PEX5/pl_oc_util.c @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_util.c /main/17 1998/02/06 16:11:25 kaleb $ */ +/* $Xorg: pl_oc_util.c,v 1.4 2000/08/17 19:44:26 cpqbld Exp $ */ /****************************************************************************** @@ -1799,7 +1799,7 @@ INPUT char *data; * work if numBytes % 4 != 0. */ - if (mod4bytes = numBytes % 4) + if ((mod4bytes = numBytes % 4)) { if (mod4bytes > BytesLeftInXBuffer (display)) _XFlush (display); diff --git a/xc/lib/PEX5/pl_oc_util.h b/xc/lib/PEX5/pl_oc_util.h index 60f11c4f9..1ee294368 100644 --- a/xc/lib/PEX5/pl_oc_util.h +++ b/xc/lib/PEX5/pl_oc_util.h @@ -1,4 +1,4 @@ -/* $TOG: pl_oc_util.h /main/13 1998/02/06 16:11:35 kaleb $ */ +/* $Xorg: pl_oc_util.h,v 1.3 2000/08/17 19:44:26 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_pc.c b/xc/lib/PEX5/pl_pc.c index af39fa399..8eaf4ab78 100644 --- a/xc/lib/PEX5/pl_pc.c +++ b/xc/lib/PEX5/pl_pc.c @@ -1,4 +1,4 @@ -/* $TOG: pl_pc.c /main/14 1998/02/06 16:11:41 kaleb $ */ +/* $Xorg: pl_pc.c,v 1.3 2000/08/17 19:44:27 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_pick.c b/xc/lib/PEX5/pl_pick.c index b827a49d5..cb9cf438a 100644 --- a/xc/lib/PEX5/pl_pick.c +++ b/xc/lib/PEX5/pl_pick.c @@ -1,4 +1,4 @@ -/* $TOG: pl_pick.c /main/14 1998/02/06 16:11:48 kaleb $ */ +/* $Xorg: pl_pick.c,v 1.3 2000/08/17 19:44:27 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_rdr.c b/xc/lib/PEX5/pl_rdr.c index 765f10c35..9fb284a66 100644 --- a/xc/lib/PEX5/pl_rdr.c +++ b/xc/lib/PEX5/pl_rdr.c @@ -1,4 +1,4 @@ -/* $TOG: pl_rdr.c /main/12 1998/02/06 16:11:55 kaleb $ */ +/* $Xorg: pl_rdr.c,v 1.3 2000/08/17 19:44:27 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_sc.c b/xc/lib/PEX5/pl_sc.c index f7924bd34..c69f59e92 100644 --- a/xc/lib/PEX5/pl_sc.c +++ b/xc/lib/PEX5/pl_sc.c @@ -1,4 +1,4 @@ -/* $TOG: pl_sc.c /main/13 1998/02/06 16:12:02 kaleb $ */ +/* $Xorg: pl_sc.c,v 1.3 2000/08/17 19:44:27 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_startup.c b/xc/lib/PEX5/pl_startup.c index 641e97940..9665a10b0 100644 --- a/xc/lib/PEX5/pl_startup.c +++ b/xc/lib/PEX5/pl_startup.c @@ -1,4 +1,4 @@ -/* $TOG: pl_startup.c /main/18 1998/02/06 16:12:09 kaleb $ */ +/* $Xorg: pl_startup.c,v 1.3 2000/08/17 19:44:27 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_store.h b/xc/lib/PEX5/pl_store.h index 33309e5cf..bb7cb9d6d 100644 --- a/xc/lib/PEX5/pl_store.h +++ b/xc/lib/PEX5/pl_store.h @@ -1,4 +1,4 @@ -/* $TOG: pl_store.h /main/5 1998/02/06 16:12:15 kaleb $ */ +/* $Xorg: pl_store.h,v 1.3 2000/08/17 19:44:27 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_struct.c b/xc/lib/PEX5/pl_struct.c index 7b3be724d..3312e5ed3 100644 --- a/xc/lib/PEX5/pl_struct.c +++ b/xc/lib/PEX5/pl_struct.c @@ -1,4 +1,4 @@ -/* $TOG: pl_struct.c /main/13 1998/02/06 16:12:21 kaleb $ */ +/* $Xorg: pl_struct.c,v 1.4 2000/08/17 19:44:27 cpqbld Exp $ */ /****************************************************************************** @@ -676,7 +676,7 @@ OUTPUT char **ocsReturn; */ *sizeReturn = repSize = rep.length << 2; - if (*ocsReturn = (char *) Xmalloc ((unsigned) repSize)) + if ((*ocsReturn = (char *) Xmalloc ((unsigned) repSize))) _XRead (display, *ocsReturn, (long) repSize); } diff --git a/xc/lib/PEX5/pl_util.c b/xc/lib/PEX5/pl_util.c index 11b8678dc..1fc59fb44 100644 --- a/xc/lib/PEX5/pl_util.c +++ b/xc/lib/PEX5/pl_util.c @@ -1,4 +1,4 @@ -/* $TOG: pl_util.c /main/12 1998/02/06 16:12:27 kaleb $ */ +/* $Xorg: pl_util.c,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /****************************************************************************** diff --git a/xc/lib/PEX5/pl_util.h b/xc/lib/PEX5/pl_util.h index 986483ff0..3720876c0 100644 --- a/xc/lib/PEX5/pl_util.h +++ b/xc/lib/PEX5/pl_util.h @@ -1,4 +1,4 @@ -/* $TOG: pl_util.h /main/7 1998/02/06 16:12:37 kaleb $ */ +/* $Xorg: pl_util.h,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_wks.c b/xc/lib/PEX5/pl_wks.c index 3be6faae5..ad4b85828 100644 --- a/xc/lib/PEX5/pl_wks.c +++ b/xc/lib/PEX5/pl_wks.c @@ -1,4 +1,4 @@ -/* $TOG: pl_wks.c /main/14 1998/02/06 16:12:43 kaleb $ */ +/* $Xorg: pl_wks.c,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/PEX5/pl_xdata.h b/xc/lib/PEX5/pl_xdata.h index 7d1ab2f8c..1d5b5323d 100644 --- a/xc/lib/PEX5/pl_xdata.h +++ b/xc/lib/PEX5/pl_xdata.h @@ -1,4 +1,4 @@ -/* $TOG: pl_xdata.h /main/6 1998/02/06 16:12:50 kaleb $ */ +/* $Xorg: pl_xdata.h,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/SM/Imakefile b/xc/lib/SM/Imakefile index 64cf1fc66..b0f8fda1e 100644 --- a/xc/lib/SM/Imakefile +++ b/xc/lib/SM/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/12 1996/12/04 10:22:18 lehors $ -XCOMM $XFree86: xc/lib/SM/Imakefile,v 1.2 1998/12/20 11:56:52 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/SM/Imakefile,v 1.3 2001/01/17 19:41:31 dawes Exp $ #define DoNormalLib NormalLibSM #define DoSharedLib SharedLibSM diff --git a/xc/lib/SM/SM-def.cpp b/xc/lib/SM/SM-def.cpp index c53977945..9a59704e2 100644 --- a/xc/lib/SM/SM-def.cpp +++ b/xc/lib/SM/SM-def.cpp @@ -38,4 +38,4 @@ EXPORTS SmsSaveYourselfPhase2 SmsSetErrorHandler SmsShutdownCancelled -/* $XConsortium: SM-def.cpp /main/3 1996/05/07 13:15:21 kaleb $ */ +/* $Xorg: SM-def.cpp,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ diff --git a/xc/lib/SM/SM.h b/xc/lib/SM/SM.h index 8cbb62e0d..ef0c7f0bb 100644 --- a/xc/lib/SM/SM.h +++ b/xc/lib/SM/SM.h @@ -1,4 +1,4 @@ -/* $TOG: SM.h /main/10 1998/02/06 14:09:46 kaleb $ */ +/* $Xorg: SM.h,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/SMlib.h b/xc/lib/SM/SMlib.h index a7d129f94..b83f58d80 100644 --- a/xc/lib/SM/SMlib.h +++ b/xc/lib/SM/SMlib.h @@ -1,4 +1,4 @@ -/* $TOG: SMlib.h /main/24 1998/02/06 14:09:29 kaleb $ */ +/* $Xorg: SMlib.h,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/SMlibint.h b/xc/lib/SM/SMlibint.h index b3984f0c4..ef045fdbc 100644 --- a/xc/lib/SM/SMlibint.h +++ b/xc/lib/SM/SMlibint.h @@ -1,4 +1,4 @@ -/* $TOG: SMlibint.h /main/21 1998/02/06 14:09:24 kaleb $ */ +/* $Xorg: SMlibint.h,v 1.3 2000/08/17 19:44:28 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/SMproto.h b/xc/lib/SM/SMproto.h index 2669c4ad9..22b43ea37 100644 --- a/xc/lib/SM/SMproto.h +++ b/xc/lib/SM/SMproto.h @@ -1,4 +1,4 @@ -/* $TOG: SMproto.h /main/10 1998/02/06 14:09:35 kaleb $ */ +/* $Xorg: SMproto.h,v 1.4 2000/08/17 19:44:28 cpqbld Exp $ */ /* @@ -29,6 +29,8 @@ in this Software without prior written authorization from The Open Group. #ifndef _SMPROTO_H_ #define _SMPROTO_H_ +#include <X11/Xmd.h> + typedef struct { CARD8 majorOpcode; CARD8 minorOpcode; diff --git a/xc/lib/SM/globals.h b/xc/lib/SM/globals.h index 350d4144a..4bf9e2330 100644 --- a/xc/lib/SM/globals.h +++ b/xc/lib/SM/globals.h @@ -1,4 +1,4 @@ -/* $TOG: globals.h /main/13 1998/02/06 14:09:11 kaleb $ */ +/* $Xorg: globals.h,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/SM/globals.h,v 1.2 1998/12/20 11:56:53 dawes Exp $ */ +/* $XFree86: xc/lib/SM/globals.h,v 1.3 2001/01/17 19:41:31 dawes Exp $ */ /* * Author: Ralph Mor, X Consortium diff --git a/xc/lib/SM/sm_auth.c b/xc/lib/SM/sm_auth.c index 7a65fe6a9..9adf00561 100644 --- a/xc/lib/SM/sm_auth.c +++ b/xc/lib/SM/sm_auth.c @@ -1,4 +1,4 @@ -/* $TOG: sm_auth.c /main/12 1998/02/06 14:09:51 kaleb $ */ +/* $Xorg: sm_auth.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/sm_client.c b/xc/lib/SM/sm_client.c index 1e349c0c9..49f0d8575 100644 --- a/xc/lib/SM/sm_client.c +++ b/xc/lib/SM/sm_client.c @@ -1,4 +1,4 @@ -/* $TOG: sm_client.c /main/31 1998/02/06 14:09:55 kaleb $ */ +/* $Xorg: sm_client.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/sm_error.c b/xc/lib/SM/sm_error.c index b01d6be60..f698c9277 100644 --- a/xc/lib/SM/sm_error.c +++ b/xc/lib/SM/sm_error.c @@ -1,4 +1,4 @@ -/* $TOG: sm_error.c /main/12 1998/02/06 14:10:01 kaleb $ */ +/* $Xorg: sm_error.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/sm_genid.c b/xc/lib/SM/sm_genid.c index 0d964adbb..719d4c949 100644 --- a/xc/lib/SM/sm_genid.c +++ b/xc/lib/SM/sm_genid.c @@ -1,4 +1,4 @@ -/* $TOG: sm_genid.c /main/23 1998/02/06 14:10:08 kaleb $ */ +/* $Xorg: sm_genid.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/SM/sm_genid.c,v 3.10 1998/12/20 11:56:54 dawes Exp $ */ +/* $XFree86: xc/lib/SM/sm_genid.c,v 3.11 2001/01/17 19:41:31 dawes Exp $ */ /* * Author: Ralph Mor, X Consortium diff --git a/xc/lib/SM/sm_manager.c b/xc/lib/SM/sm_manager.c index 2e4bdb489..bd2c8fa5e 100644 --- a/xc/lib/SM/sm_manager.c +++ b/xc/lib/SM/sm_manager.c @@ -1,4 +1,4 @@ -/* $TOG: sm_manager.c /main/25 1998/02/06 14:10:13 kaleb $ */ +/* $Xorg: sm_manager.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/sm_misc.c b/xc/lib/SM/sm_misc.c index 9dba6f3b3..a80271bac 100644 --- a/xc/lib/SM/sm_misc.c +++ b/xc/lib/SM/sm_misc.c @@ -1,4 +1,4 @@ -/* $TOG: sm_misc.c /main/8 1998/02/06 14:10:19 kaleb $ */ +/* $Xorg: sm_misc.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* diff --git a/xc/lib/SM/sm_process.c b/xc/lib/SM/sm_process.c index 78b6dd891..d8ecae3a4 100644 --- a/xc/lib/SM/sm_process.c +++ b/xc/lib/SM/sm_process.c @@ -1,4 +1,4 @@ -/* $TOG: sm_process.c /main/30 1998/02/06 14:10:24 kaleb $ */ +/* $Xorg: sm_process.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/AddDIC.c b/xc/lib/X11/AddDIC.c index 3d6d94b53..aefae0f82 100644 --- a/xc/lib/X11/AddDIC.c +++ b/xc/lib/X11/AddDIC.c @@ -1,4 +1,4 @@ -/* $XConsortium: AddDIC.c,v 1.5 91/05/15 15:40:22 rws Exp $" */ +/* $Xorg: AddDIC.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/AddSF.c b/xc/lib/X11/AddSF.c index ee48389e6..5c2ae54d7 100644 --- a/xc/lib/X11/AddSF.c +++ b/xc/lib/X11/AddSF.c @@ -1,4 +1,4 @@ -/* $XConsortium: AddSF.c,v 1.6 91/11/06 16:29:27 rws Exp $" */ +/* $Xorg: AddSF.c,v 1.3 2000/08/17 19:44:29 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/AllCells.c b/xc/lib/X11/AllCells.c index a7800acc5..23552a467 100644 --- a/xc/lib/X11/AllCells.c +++ b/xc/lib/X11/AllCells.c @@ -1,4 +1,4 @@ -/* $TOG: AllCells.c /main/8 1998/02/06 17:02:37 kaleb $ */ +/* $Xorg: AllCells.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/AllPlanes.c b/xc/lib/X11/AllPlanes.c index f47816ecf..a93642c31 100644 --- a/xc/lib/X11/AllPlanes.c +++ b/xc/lib/X11/AllPlanes.c @@ -1,4 +1,4 @@ -/* $TOG: AllPlanes.c /main/7 1998/02/06 17:03:08 kaleb $ */ +/* $Xorg: AllPlanes.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/AllPlanes.c,v 1.2 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/AllPlanes.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/AllowEv.c b/xc/lib/X11/AllowEv.c index e41223ecf..44e933c7e 100644 --- a/xc/lib/X11/AllowEv.c +++ b/xc/lib/X11/AllowEv.c @@ -1,4 +1,4 @@ -/* $TOG: AllowEv.c /main/6 1998/02/06 17:02:55 kaleb $ */ +/* $Xorg: AllowEv.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/AllowEv.c,v 1.2 1999/05/09 10:48:55 dawes Exp $ */ +/* $XFree86: xc/lib/X11/AllowEv.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/AutoRep.c b/xc/lib/X11/AutoRep.c index 5b522e1ff..f91d2fc9a 100644 --- a/xc/lib/X11/AutoRep.c +++ b/xc/lib/X11/AutoRep.c @@ -1,4 +1,4 @@ -/* $TOG: AutoRep.c /main/6 1998/02/06 17:03:21 kaleb $ */ +/* $Xorg: AutoRep.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/AutoRep.c,v 1.2 1999/05/09 10:48:56 dawes Exp $ */ +/* $XFree86: xc/lib/X11/AutoRep.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Backgnd.c b/xc/lib/X11/Backgnd.c index 02d47d606..a0f77617d 100644 --- a/xc/lib/X11/Backgnd.c +++ b/xc/lib/X11/Backgnd.c @@ -1,4 +1,4 @@ -/* $TOG: Backgnd.c /main/7 1998/02/06 17:03:34 kaleb $ */ +/* $Xorg: Backgnd.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Backgnd.c,v 1.2 1999/05/09 10:48:56 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Backgnd.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/BdrWidth.c b/xc/lib/X11/BdrWidth.c index 7ad0f46e4..8416780a6 100644 --- a/xc/lib/X11/BdrWidth.c +++ b/xc/lib/X11/BdrWidth.c @@ -1,4 +1,4 @@ -/* $TOG: BdrWidth.c /main/7 1998/02/06 17:03:47 kaleb $ */ +/* $Xorg: BdrWidth.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/BdrWidth.c,v 1.2 1999/05/09 10:48:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/BdrWidth.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Bell.c b/xc/lib/X11/Bell.c index bcaae6ee1..efbbc46c4 100644 --- a/xc/lib/X11/Bell.c +++ b/xc/lib/X11/Bell.c @@ -1,4 +1,4 @@ -/* $TOG: Bell.c /main/6 1998/02/06 17:04:02 kaleb $ */ +/* $Xorg: Bell.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Bell.c,v 1.2 1999/05/09 10:48:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Bell.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Border.c b/xc/lib/X11/Border.c index 98456f472..ff2718b13 100644 --- a/xc/lib/X11/Border.c +++ b/xc/lib/X11/Border.c @@ -1,4 +1,4 @@ -/* $TOG: Border.c /main/7 1998/02/06 17:04:17 kaleb $ */ +/* $Xorg: Border.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Border.c,v 1.2 1999/05/09 10:48:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Border.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CCC.c b/xc/lib/X11/CCC.c index 257a1673d..95608a460 100644 --- a/xc/lib/X11/CCC.c +++ b/xc/lib/X11/CCC.c @@ -1,4 +1,4 @@ -/* $TOG: CCC.c /main/15 1998/02/06 17:04:41 kaleb $" */ +/* $Xorg: CCC.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -33,7 +33,7 @@ * * */ -/* $XFree86: xc/lib/X11/CCC.c,v 1.2 1999/05/09 10:48:58 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CCC.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ /* diff --git a/xc/lib/X11/ChAccCon.c b/xc/lib/X11/ChAccCon.c index 570897d9a..4ff66e902 100644 --- a/xc/lib/X11/ChAccCon.c +++ b/xc/lib/X11/ChAccCon.c @@ -1,4 +1,4 @@ -/* $TOG: ChAccCon.c /main/6 1998/02/06 17:04:54 kaleb $ */ +/* $Xorg: ChAccCon.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChAccCon.c,v 1.2 1999/05/09 10:48:58 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChAccCon.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChActPGb.c b/xc/lib/X11/ChActPGb.c index 271d5e8fd..dce139095 100644 --- a/xc/lib/X11/ChActPGb.c +++ b/xc/lib/X11/ChActPGb.c @@ -1,4 +1,4 @@ -/* $TOG: ChActPGb.c /main/6 1998/02/06 17:05:07 kaleb $ */ +/* $Xorg: ChActPGb.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChActPGb.c,v 1.2 1999/05/09 10:48:59 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChActPGb.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChClMode.c b/xc/lib/X11/ChClMode.c index 2ac66355a..6d12ae4c4 100644 --- a/xc/lib/X11/ChClMode.c +++ b/xc/lib/X11/ChClMode.c @@ -1,4 +1,4 @@ -/* $TOG: ChClMode.c /main/6 1998/02/06 17:05:21 kaleb $ */ +/* $Xorg: ChClMode.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChClMode.c,v 1.2 1999/05/09 10:48:59 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChClMode.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChCmap.c b/xc/lib/X11/ChCmap.c index 3eae3b1c9..184d8701c 100644 --- a/xc/lib/X11/ChCmap.c +++ b/xc/lib/X11/ChCmap.c @@ -1,4 +1,4 @@ -/* $TOG: ChCmap.c /main/7 1998/02/06 17:05:35 kaleb $ */ +/* $Xorg: ChCmap.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChCmap.c,v 1.2 1999/05/09 10:48:59 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChCmap.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChGC.c b/xc/lib/X11/ChGC.c index e38845414..1d62feba4 100644 --- a/xc/lib/X11/ChGC.c +++ b/xc/lib/X11/ChGC.c @@ -1,4 +1,4 @@ -/* $TOG: ChGC.c /main/8 1998/02/06 17:05:48 kaleb $ */ +/* $Xorg: ChGC.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChGC.c,v 1.2 1999/05/09 10:49:00 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChGC.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChKeyCon.c b/xc/lib/X11/ChKeyCon.c index 1f3c1b719..4dd752f85 100644 --- a/xc/lib/X11/ChKeyCon.c +++ b/xc/lib/X11/ChKeyCon.c @@ -1,4 +1,4 @@ -/* $TOG: ChKeyCon.c /main/10 1998/02/06 17:06:01 kaleb $ */ +/* $Xorg: ChKeyCon.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChKeyCon.c,v 1.2 1999/05/09 10:49:00 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChKeyCon.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChPntCon.c b/xc/lib/X11/ChPntCon.c index 9dfde201f..0bd8ee6af 100644 --- a/xc/lib/X11/ChPntCon.c +++ b/xc/lib/X11/ChPntCon.c @@ -1,4 +1,4 @@ -/* $TOG: ChPntCon.c /main/7 1998/02/06 17:07:27 kaleb $ */ +/* $Xorg: ChPntCon.c,v 1.3 2000/08/17 19:44:30 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChPntCon.c,v 1.2 1999/05/09 10:49:01 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChPntCon.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChProp.c b/xc/lib/X11/ChProp.c index 7cca688bd..1d64a267b 100644 --- a/xc/lib/X11/ChProp.c +++ b/xc/lib/X11/ChProp.c @@ -1,4 +1,4 @@ -/* $TOG: ChProp.c /main/17 1998/02/06 17:07:40 kaleb $ */ +/* $Xorg: ChProp.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChProp.c,v 1.2 1999/05/09 10:49:01 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChProp.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChSaveSet.c b/xc/lib/X11/ChSaveSet.c index 4d526d498..4fbb3abe8 100644 --- a/xc/lib/X11/ChSaveSet.c +++ b/xc/lib/X11/ChSaveSet.c @@ -1,4 +1,4 @@ -/* $TOG: ChSaveSet.c /main/6 1998/02/06 17:07:53 kaleb $ */ +/* $Xorg: ChSaveSet.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChSaveSet.c,v 1.2 1999/05/09 10:49:01 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChSaveSet.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChWAttrs.c b/xc/lib/X11/ChWAttrs.c index 666817502..bc9d3bd7a 100644 --- a/xc/lib/X11/ChWAttrs.c +++ b/xc/lib/X11/ChWAttrs.c @@ -1,4 +1,4 @@ -/* $TOG: ChWAttrs.c /main/7 1998/02/06 17:08:08 kaleb $ */ +/* $Xorg: ChWAttrs.c,v 1.4 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChWAttrs.c,v 1.2 1999/05/09 10:49:02 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChWAttrs.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChWindow.c b/xc/lib/X11/ChWindow.c index a6c9704e0..5955053ff 100644 --- a/xc/lib/X11/ChWindow.c +++ b/xc/lib/X11/ChWindow.c @@ -1,4 +1,4 @@ -/* $TOG: ChWindow.c /main/10 1998/02/06 17:08:21 kaleb $ */ +/* $Xorg: ChWindow.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ChWindow.c,v 1.4 1999/05/09 10:49:02 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ChWindow.c,v 1.5 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ChkIfEv.c b/xc/lib/X11/ChkIfEv.c index d3a141dc8..e64af509e 100644 --- a/xc/lib/X11/ChkIfEv.c +++ b/xc/lib/X11/ChkIfEv.c @@ -1,4 +1,4 @@ -/* $TOG: ChkIfEv.c /main/11 1998/02/06 17:06:16 kaleb $ */ +/* $Xorg: ChkIfEv.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1985, 1987, 1998 The Open Group diff --git a/xc/lib/X11/ChkMaskEv.c b/xc/lib/X11/ChkMaskEv.c index 280be6ef8..2ccf4144d 100644 --- a/xc/lib/X11/ChkMaskEv.c +++ b/xc/lib/X11/ChkMaskEv.c @@ -1,4 +1,4 @@ -/* $TOG: ChkMaskEv.c /main/18 1998/02/06 17:06:30 kaleb $ */ +/* $Xorg: ChkMaskEv.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1985, 1987, 1998 The Open Group diff --git a/xc/lib/X11/ChkTypEv.c b/xc/lib/X11/ChkTypEv.c index cdcff3f97..8b52e0ea2 100644 --- a/xc/lib/X11/ChkTypEv.c +++ b/xc/lib/X11/ChkTypEv.c @@ -1,4 +1,4 @@ -/* $TOG: ChkTypEv.c /main/10 1998/02/06 17:06:46 kaleb $ */ +/* $Xorg: ChkTypEv.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1985, 1987, 1998 The Open Group diff --git a/xc/lib/X11/ChkTypWEv.c b/xc/lib/X11/ChkTypWEv.c index 957efe426..897117077 100644 --- a/xc/lib/X11/ChkTypWEv.c +++ b/xc/lib/X11/ChkTypWEv.c @@ -1,4 +1,4 @@ -/* $TOG: ChkTypWEv.c /main/10 1998/02/06 17:06:59 kaleb $ */ +/* $Xorg: ChkTypWEv.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1985, 1987, 1998 The Open Group diff --git a/xc/lib/X11/ChkWinEv.c b/xc/lib/X11/ChkWinEv.c index 2c25778d5..1b777bf0b 100644 --- a/xc/lib/X11/ChkWinEv.c +++ b/xc/lib/X11/ChkWinEv.c @@ -1,4 +1,4 @@ -/* $TOG: ChkWinEv.c /main/18 1998/02/06 17:07:14 kaleb $ */ +/* $Xorg: ChkWinEv.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1985, 1987, 1998 The Open Group diff --git a/xc/lib/X11/CirWin.c b/xc/lib/X11/CirWin.c index cc194bc49..dbe79f57f 100644 --- a/xc/lib/X11/CirWin.c +++ b/xc/lib/X11/CirWin.c @@ -1,4 +1,4 @@ -/* $TOG: CirWin.c /main/6 1998/02/06 17:08:59 kaleb $ */ +/* $Xorg: CirWin.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CirWin.c,v 1.2 1999/05/09 10:49:03 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CirWin.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CirWinDn.c b/xc/lib/X11/CirWinDn.c index 6a2334d6f..13260f4d1 100644 --- a/xc/lib/X11/CirWinDn.c +++ b/xc/lib/X11/CirWinDn.c @@ -1,4 +1,4 @@ -/* $TOG: CirWinDn.c /main/6 1998/02/06 17:08:34 kaleb $ */ +/* $Xorg: CirWinDn.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CirWinDn.c,v 1.2 1999/05/09 10:49:04 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CirWinDn.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CirWinUp.c b/xc/lib/X11/CirWinUp.c index 389bacf0b..c1bed4b3d 100644 --- a/xc/lib/X11/CirWinUp.c +++ b/xc/lib/X11/CirWinUp.c @@ -1,4 +1,4 @@ -/* $TOG: CirWinUp.c /main/6 1998/02/06 17:08:47 kaleb $ */ +/* $Xorg: CirWinUp.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CirWinUp.c,v 1.2 1999/05/09 10:49:04 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CirWinUp.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ClDisplay.c b/xc/lib/X11/ClDisplay.c index 451d5f58c..a7c1b801f 100644 --- a/xc/lib/X11/ClDisplay.c +++ b/xc/lib/X11/ClDisplay.c @@ -1,4 +1,4 @@ -/* $TOG: ClDisplay.c /main/23 1998/02/06 17:09:12 kaleb $ */ +/* $Xorg: ClDisplay.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ClDisplay.c,v 1.2 1999/05/09 10:49:05 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ClDisplay.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Clear.c b/xc/lib/X11/Clear.c index 68b87a870..dc972bdd5 100644 --- a/xc/lib/X11/Clear.c +++ b/xc/lib/X11/Clear.c @@ -1,4 +1,4 @@ -/* $TOG: Clear.c /main/6 1998/02/06 17:09:43 kaleb $ */ +/* $Xorg: Clear.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Clear.c,v 1.2 1999/05/09 10:49:05 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Clear.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ClearArea.c b/xc/lib/X11/ClearArea.c index b0e9d7f73..9dde05db3 100644 --- a/xc/lib/X11/ClearArea.c +++ b/xc/lib/X11/ClearArea.c @@ -1,4 +1,4 @@ -/* $TOG: ClearArea.c /main/6 1998/02/06 17:09:29 kaleb $ */ +/* $Xorg: ClearArea.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ClearArea.c,v 1.2 1999/05/09 10:49:06 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ClearArea.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ConfWind.c b/xc/lib/X11/ConfWind.c index afe698ceb..931ed28a4 100644 --- a/xc/lib/X11/ConfWind.c +++ b/xc/lib/X11/ConfWind.c @@ -1,4 +1,4 @@ -/* $TOG: ConfWind.c /main/9 1998/02/06 17:12:00 kaleb $ */ +/* $Xorg: ConfWind.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ConfWind.c,v 1.2 1999/05/09 10:49:06 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ConfWind.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ConnDis.c b/xc/lib/X11/ConnDis.c index 3fd039fcb..6436a72dc 100644 --- a/xc/lib/X11/ConnDis.c +++ b/xc/lib/X11/ConnDis.c @@ -1,4 +1,4 @@ -/* $TOG: ConnDis.c /main/115 1998/02/06 17:12:13 kaleb $ */ +/* $Xorg: ConnDis.c,v 1.7 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ConnDis.c,v 3.17 2000/01/29 18:58:08 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ConnDis.c,v 3.18 2001/01/17 19:41:33 dawes Exp $ */ /* * This file contains operating system dependencies. @@ -122,6 +122,9 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp, int connect_stat; #ifdef LOCALCONN struct utsname sys; +#ifdef TCPCONN + char *tcphostname = NULL; /* A place to save hostname pointer */ +#endif #endif p = display_name; @@ -183,10 +186,20 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp, p = lastc; #ifdef LOCALCONN - /* check if phostname == localnodename */ - if (phostname && uname(&sys) >= 0 && - !strncmp(phostname, sys.nodename, strlen(sys.nodename))) + /* check if phostname == localnodename AND protocol not specified */ + if (!pprotocol && phostname && uname(&sys) >= 0 && + !strncmp(phostname, sys.nodename, + (strlen(sys.nodename) < strlen(phostname) ? + strlen(phostname) : strlen(sys.nodename)))) { +#ifdef TCPCONN + /* + * We'll first attempt to connect using the local transport. If + * this fails (which is the case if sshd X protocol forwarding is + * being used), retry using tcp and this hostname. + */ + tcphostname = copystring(phostname, strlen(phostname)); +#endif Xfree (phostname); phostname = copystring ("unix", 4); } @@ -282,6 +295,7 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp, } #endif + connect: /* * This seems kind of backwards, but we need to put the protocol, * host, and port back together to pass to _X11TransOpenCOTSClient(). @@ -396,6 +410,16 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp, if (saddr) free ((char *) saddr); if (pprotocol) Xfree (pprotocol); if (phostname) Xfree (phostname); + +#if defined(LOCALCONN) && defined(TCPCONN) + if (tcphostname) { + pprotocol = copystring("tcp", 3); + phostname = tcphostname; + tcphostname = NULL; + goto connect; + } +#endif + if (pdpynum) Xfree (pdpynum); if (pscrnum) Xfree (pscrnum); return NULL; diff --git a/xc/lib/X11/Context.c b/xc/lib/X11/Context.c index dd24ba000..a104a0954 100644 --- a/xc/lib/X11/Context.c +++ b/xc/lib/X11/Context.c @@ -1,4 +1,4 @@ -/* $TOG: Context.c /main/22 1998/02/06 17:12:29 kaleb $ */ +/* $Xorg: Context.c,v 1.4 2000/08/17 19:44:31 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard, @@ -46,7 +46,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Context.c,v 1.2 1999/05/09 10:49:07 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Context.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ /* This module implements a simple sparse array. diff --git a/xc/lib/X11/ConvSel.c b/xc/lib/X11/ConvSel.c index 849065a93..7b65cb40b 100644 --- a/xc/lib/X11/ConvSel.c +++ b/xc/lib/X11/ConvSel.c @@ -1,4 +1,4 @@ -/* $TOG: ConvSel.c /main/6 1998/02/06 17:12:42 kaleb $ */ +/* $Xorg: ConvSel.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986,1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ConvSel.c,v 1.2 1999/05/09 10:49:07 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ConvSel.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CopyArea.c b/xc/lib/X11/CopyArea.c index 45f982ca2..8753acbea 100644 --- a/xc/lib/X11/CopyArea.c +++ b/xc/lib/X11/CopyArea.c @@ -1,4 +1,4 @@ -/* $TOG: CopyArea.c /main/6 1998/02/06 17:12:55 kaleb $ */ +/* $Xorg: CopyArea.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CopyArea.c,v 1.2 1999/05/09 10:49:08 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CopyArea.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CopyCmap.c b/xc/lib/X11/CopyCmap.c index 8acfe9d5c..b1d3b7ff4 100644 --- a/xc/lib/X11/CopyCmap.c +++ b/xc/lib/X11/CopyCmap.c @@ -1,4 +1,4 @@ -/* $TOG: CopyCmap.c /main/7 1998/02/06 17:13:08 kaleb $ */ +/* $Xorg: CopyCmap.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CopyCmap.c,v 1.2 1999/05/09 10:49:08 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CopyCmap.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/CopyGC.c b/xc/lib/X11/CopyGC.c index 884398d03..3809349f7 100644 --- a/xc/lib/X11/CopyGC.c +++ b/xc/lib/X11/CopyGC.c @@ -1,4 +1,4 @@ -/* $TOG: CopyGC.c /main/10 1998/02/06 17:13:20 kaleb $ */ +/* $Xorg: CopyGC.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CopyGC.c,v 1.2 1999/05/09 10:49:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CopyGC.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CopyPlane.c b/xc/lib/X11/CopyPlane.c index 594d8ba12..7493b84ca 100644 --- a/xc/lib/X11/CopyPlane.c +++ b/xc/lib/X11/CopyPlane.c @@ -1,4 +1,4 @@ -/* $TOG: CopyPlane.c /main/6 1998/02/06 17:13:33 kaleb $ */ +/* $Xorg: CopyPlane.c,v 1.3 2000/08/17 19:44:31 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CopyPlane.c,v 1.2 1999/05/09 10:49:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CopyPlane.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CrBFData.c b/xc/lib/X11/CrBFData.c index 88cdbdb52..b7ffda2de 100644 --- a/xc/lib/X11/CrBFData.c +++ b/xc/lib/X11/CrBFData.c @@ -1,4 +1,4 @@ -/* $TOG: CrBFData.c /main/13 1998/02/06 17:13:46 kaleb $ */ +/* $Xorg: CrBFData.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group diff --git a/xc/lib/X11/CrCmap.c b/xc/lib/X11/CrCmap.c index dd845fdd8..435a8433c 100644 --- a/xc/lib/X11/CrCmap.c +++ b/xc/lib/X11/CrCmap.c @@ -1,4 +1,4 @@ -/* $TOG: CrCmap.c /main/7 1998/02/06 17:13:58 kaleb $ */ +/* $Xorg: CrCmap.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CrCmap.c,v 1.2 1999/05/09 10:49:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CrCmap.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/CrCursor.c b/xc/lib/X11/CrCursor.c index 46ee13276..7b1193a54 100644 --- a/xc/lib/X11/CrCursor.c +++ b/xc/lib/X11/CrCursor.c @@ -1,4 +1,4 @@ -/* $TOG: CrCursor.c /main/5 1998/02/06 17:14:11 kaleb $ */ +/* $Xorg: CrCursor.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/CrGC.c b/xc/lib/X11/CrGC.c index d16490780..45b122ea2 100644 --- a/xc/lib/X11/CrGC.c +++ b/xc/lib/X11/CrGC.c @@ -1,4 +1,4 @@ -/* $TOG: CrGC.c /main/27 1998/02/06 17:14:22 kaleb $ */ +/* $Xorg: CrGC.c,v 1.4 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CrGC.c,v 3.3 1999/05/09 10:49:10 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CrGC.c,v 3.4 2001/01/17 19:41:33 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CrGlCur.c b/xc/lib/X11/CrGlCur.c index bce043fdd..b21e3621d 100644 --- a/xc/lib/X11/CrGlCur.c +++ b/xc/lib/X11/CrGlCur.c @@ -1,4 +1,4 @@ -/* $TOG: CrGlCur.c /main/5 1998/02/06 17:14:36 kaleb $ */ +/* $Xorg: CrGlCur.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/CrGlCur.c,v 1.2 2000/01/29 18:58:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CrGlCur.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/CrPFBData.c b/xc/lib/X11/CrPFBData.c index 1fd027f31..49546554e 100644 --- a/xc/lib/X11/CrPFBData.c +++ b/xc/lib/X11/CrPFBData.c @@ -1,4 +1,4 @@ -/* $TOG: CrPFBData.c /main/9 1998/02/06 17:14:49 kaleb $ */ +/* $Xorg: CrPFBData.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group diff --git a/xc/lib/X11/CrPixmap.c b/xc/lib/X11/CrPixmap.c index 54f5803f3..4081274f7 100644 --- a/xc/lib/X11/CrPixmap.c +++ b/xc/lib/X11/CrPixmap.c @@ -1,4 +1,4 @@ -/* $TOG: CrPixmap.c /main/5 1998/02/06 17:15:01 kaleb $ */ +/* $Xorg: CrPixmap.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/CrWindow.c b/xc/lib/X11/CrWindow.c index 3a6fc9c2d..4841fb992 100644 --- a/xc/lib/X11/CrWindow.c +++ b/xc/lib/X11/CrWindow.c @@ -1,4 +1,4 @@ -/* $TOG: CrWindow.c /main/8 1998/02/06 17:15:28 kaleb $ */ +/* $Xorg: CrWindow.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/Cursor.c b/xc/lib/X11/Cursor.c index 767970bd6..7795d4ffd 100644 --- a/xc/lib/X11/Cursor.c +++ b/xc/lib/X11/Cursor.c @@ -1,4 +1,4 @@ -/* $TOG: Cursor.c /main/8 1998/02/06 17:16:09 kaleb $ */ +/* $Xorg: Cursor.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Cursor.c,v 1.2 2000/01/29 18:58:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Cursor.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" static XColor _Xconst foreground = { 0, 0, 0, 0 }; /* black */ diff --git a/xc/lib/X11/CvColW.c b/xc/lib/X11/CvColW.c index 4f139e5dd..34be833c2 100644 --- a/xc/lib/X11/CvColW.c +++ b/xc/lib/X11/CvColW.c @@ -1,4 +1,4 @@ -/* $XConsortium: CvColW.c,v 1.4 91/05/13 23:19:33 rws Exp $" */ +/* $Xorg: CvColW.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -33,7 +33,7 @@ * * */ -/* $XFree86: xc/lib/X11/CvColW.c,v 1.2 1999/05/09 10:49:10 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CvColW.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/CvCols.c b/xc/lib/X11/CvCols.c index 0a6708bdc..1c16de1c3 100644 --- a/xc/lib/X11/CvCols.c +++ b/xc/lib/X11/CvCols.c @@ -1,4 +1,4 @@ -/* $XConsortium: CvCols.c,v 1.12 93/09/07 21:30:32 rws Exp $" */ +/* $Xorg: CvCols.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -33,7 +33,7 @@ * * */ -/* $XFree86: xc/lib/X11/CvCols.c,v 1.2 1999/05/09 10:49:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/CvCols.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/DefCursor.c b/xc/lib/X11/DefCursor.c index be99698a5..2270619ba 100644 --- a/xc/lib/X11/DefCursor.c +++ b/xc/lib/X11/DefCursor.c @@ -1,4 +1,4 @@ -/* $TOG: DefCursor.c /main/7 1998/02/06 17:16:48 kaleb $ */ +/* $Xorg: DefCursor.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986,1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DefCursor.c,v 1.2 1999/05/09 10:49:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DefCursor.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DelProp.c b/xc/lib/X11/DelProp.c index 47e6274ed..1d0bf8910 100644 --- a/xc/lib/X11/DelProp.c +++ b/xc/lib/X11/DelProp.c @@ -1,4 +1,4 @@ -/* $TOG: DelProp.c /main/6 1998/02/06 17:17:00 kaleb $ */ +/* $Xorg: DelProp.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DelProp.c,v 1.2 1999/05/09 10:49:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DelProp.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Depths.c b/xc/lib/X11/Depths.c index 3787e4de0..5913b9c72 100644 --- a/xc/lib/X11/Depths.c +++ b/xc/lib/X11/Depths.c @@ -1,4 +1,4 @@ -/* $TOG: Depths.c /main/8 1998/02/06 17:17:12 kaleb $ */ +/* $Xorg: Depths.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/X11/DestSubs.c b/xc/lib/X11/DestSubs.c index 0f2cb474c..554c68bd4 100644 --- a/xc/lib/X11/DestSubs.c +++ b/xc/lib/X11/DestSubs.c @@ -1,4 +1,4 @@ -/* $TOG: DestSubs.c /main/6 1998/02/06 17:17:24 kaleb $ */ +/* $Xorg: DestSubs.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DestSubs.c,v 1.2 1999/05/09 10:49:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DestSubs.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DestWind.c b/xc/lib/X11/DestWind.c index c6b003668..60d8a724e 100644 --- a/xc/lib/X11/DestWind.c +++ b/xc/lib/X11/DestWind.c @@ -1,4 +1,4 @@ -/* $TOG: DestWind.c /main/6 1998/02/06 17:17:37 kaleb $ */ +/* $Xorg: DestWind.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DestWind.c,v 1.2 1999/05/09 10:49:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DestWind.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DisName.c b/xc/lib/X11/DisName.c index cd2074ee2..dc5b273e5 100644 --- a/xc/lib/X11/DisName.c +++ b/xc/lib/X11/DisName.c @@ -1,4 +1,4 @@ -/* $TOG: DisName.c /main/6 1998/02/06 17:17:50 kaleb $ */ +/* $Xorg: DisName.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/DrArc.c b/xc/lib/X11/DrArc.c index 6e184828f..fc42b460e 100644 --- a/xc/lib/X11/DrArc.c +++ b/xc/lib/X11/DrArc.c @@ -1,4 +1,4 @@ -/* $TOG: DrArc.c /main/9 1998/02/06 17:18:14 kaleb $ */ +/* $Xorg: DrArc.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrArc.c,v 1.2 1999/05/09 10:49:13 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrArc.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ /* Note to future maintainers: XDrawArc does NOT batch successive PolyArc requests into a single request like XDrawLine, XDrawPoint, etc. diff --git a/xc/lib/X11/DrArcs.c b/xc/lib/X11/DrArcs.c index 847efd24c..abe7111ec 100644 --- a/xc/lib/X11/DrArcs.c +++ b/xc/lib/X11/DrArcs.c @@ -1,4 +1,4 @@ -/* $TOG: DrArcs.c /main/14 1998/02/06 17:18:02 kaleb $ */ +/* $Xorg: DrArcs.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrArcs.c,v 1.2 1999/05/09 10:49:13 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrArcs.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrLine.c b/xc/lib/X11/DrLine.c index 4538415db..0cb19391c 100644 --- a/xc/lib/X11/DrLine.c +++ b/xc/lib/X11/DrLine.c @@ -1,4 +1,4 @@ -/* $TOG: DrLine.c /main/9 1998/02/06 17:18:37 kaleb $ */ +/* $Xorg: DrLine.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrLine.c,v 1.2 1999/05/09 10:49:14 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrLine.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrLines.c b/xc/lib/X11/DrLines.c index f7bd24678..104c053b4 100644 --- a/xc/lib/X11/DrLines.c +++ b/xc/lib/X11/DrLines.c @@ -1,4 +1,4 @@ -/* $TOG: DrLines.c /main/11 1998/02/06 17:18:25 kaleb $ */ +/* $Xorg: DrLines.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrLines.c,v 1.2 1999/05/09 10:49:14 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrLines.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrPoint.c b/xc/lib/X11/DrPoint.c index 31d363cd9..abd292204 100644 --- a/xc/lib/X11/DrPoint.c +++ b/xc/lib/X11/DrPoint.c @@ -1,4 +1,4 @@ -/* $TOG: DrPoint.c /main/9 1998/02/06 17:19:00 kaleb $ */ +/* $Xorg: DrPoint.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrPoint.c,v 1.2 1999/05/09 10:49:15 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrPoint.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrPoints.c b/xc/lib/X11/DrPoints.c index 03145117b..17e481b1a 100644 --- a/xc/lib/X11/DrPoints.c +++ b/xc/lib/X11/DrPoints.c @@ -1,4 +1,4 @@ -/* $TOG: DrPoints.c /main/12 1998/02/06 17:18:48 kaleb $ */ +/* $Xorg: DrPoints.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrPoints.c,v 1.2 1999/05/09 10:49:15 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrPoints.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrRect.c b/xc/lib/X11/DrRect.c index 9bafc6040..9433df1ba 100644 --- a/xc/lib/X11/DrRect.c +++ b/xc/lib/X11/DrRect.c @@ -1,4 +1,4 @@ -/* $TOG: DrRect.c /main/9 1998/02/06 17:19:23 kaleb $ */ +/* $Xorg: DrRect.c,v 1.3 2000/08/17 19:44:32 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrRect.c,v 1.2 1999/05/09 10:49:15 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrRect.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrRects.c b/xc/lib/X11/DrRects.c index 119120a0b..6ca54c824 100644 --- a/xc/lib/X11/DrRects.c +++ b/xc/lib/X11/DrRects.c @@ -1,4 +1,4 @@ -/* $TOG: DrRects.c /main/11 1998/02/06 17:19:12 kaleb $ */ +/* $Xorg: DrRects.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrRects.c,v 1.2 1999/05/09 10:49:16 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrRects.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/DrSegs.c b/xc/lib/X11/DrSegs.c index 23f155631..a7c7bef92 100644 --- a/xc/lib/X11/DrSegs.c +++ b/xc/lib/X11/DrSegs.c @@ -1,4 +1,4 @@ -/* $TOG: DrSegs.c /main/10 1998/02/06 17:19:40 kaleb $ */ +/* $Xorg: DrSegs.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/DrSegs.c,v 1.2 1999/05/09 10:49:16 dawes Exp $ */ +/* $XFree86: xc/lib/X11/DrSegs.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ErrDes.c b/xc/lib/X11/ErrDes.c index e7c82f2a7..9c459fad9 100644 --- a/xc/lib/X11/ErrDes.c +++ b/xc/lib/X11/ErrDes.c @@ -1,5 +1,5 @@ /* - * $TOG: ErrDes.c /main/44 1998/04/28 17:17:38 kaleb $ + * $Xorg: ErrDes.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/ErrDes.c,v 3.7 1999/05/09 10:49:16 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ErrDes.c,v 3.8 2001/01/17 19:41:34 dawes Exp $ */ #include "Xlibint.h" #include <X11/Xos.h> diff --git a/xc/lib/X11/ErrHndlr.c b/xc/lib/X11/ErrHndlr.c index 080ae4cfb..23af5d661 100644 --- a/xc/lib/X11/ErrHndlr.c +++ b/xc/lib/X11/ErrHndlr.c @@ -1,4 +1,4 @@ -/* $TOG: ErrHndlr.c /main/14 1998/02/06 17:20:03 kaleb $ */ +/* $Xorg: ErrHndlr.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ErrHndlr.c,v 1.3 1999/03/02 11:49:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ErrHndlr.c,v 1.4 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/EvToWire.c b/xc/lib/X11/EvToWire.c index de9d63a6d..49d48ee27 100644 --- a/xc/lib/X11/EvToWire.c +++ b/xc/lib/X11/EvToWire.c @@ -1,4 +1,4 @@ -/* $TOG: EvToWire.c /main/13 1998/02/06 17:20:28 kaleb $ */ +/* $Xorg: EvToWire.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/EvToWire.c,v 1.2 1999/05/09 10:49:17 dawes Exp $ */ +/* $XFree86: xc/lib/X11/EvToWire.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ /* * XEvToWire.c - Internal support routines for the C subroutine diff --git a/xc/lib/X11/FSSaver.c b/xc/lib/X11/FSSaver.c index 08162422e..232d4878a 100644 --- a/xc/lib/X11/FSSaver.c +++ b/xc/lib/X11/FSSaver.c @@ -1,4 +1,4 @@ -/* $TOG: FSSaver.c /main/6 1998/02/06 17:23:57 kaleb $ */ +/* $Xorg: FSSaver.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FSSaver.c,v 1.2 1999/05/09 10:49:17 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FSSaver.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FSWrap.c b/xc/lib/X11/FSWrap.c index 142a66869..365cd0c83 100644 --- a/xc/lib/X11/FSWrap.c +++ b/xc/lib/X11/FSWrap.c @@ -1,4 +1,4 @@ -/* $TOG: FSWrap.c /main/16 1998/05/29 14:46:29 kaleb $ */ +/* $Xorg: FSWrap.c,v 1.4 2000/08/17 19:44:33 cpqbld Exp $ */ /* * Copyright 1991 by the Open Software Foundation @@ -52,7 +52,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/X11/FSWrap.c,v 1.4 1999/05/09 10:49:18 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FSWrap.c,v 1.5 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/FetchName.c b/xc/lib/X11/FetchName.c index fd9a59c6e..27d9ae4f1 100644 --- a/xc/lib/X11/FetchName.c +++ b/xc/lib/X11/FetchName.c @@ -1,4 +1,4 @@ -/* $TOG: FetchName.c /main/11 1998/02/06 17:20:40 kaleb $ */ +/* $Xorg: FetchName.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/FillArc.c b/xc/lib/X11/FillArc.c index 6f89ae75a..0ea2dfcae 100644 --- a/xc/lib/X11/FillArc.c +++ b/xc/lib/X11/FillArc.c @@ -1,4 +1,4 @@ -/* $TOG: FillArc.c /main/9 1998/02/06 17:21:02 kaleb $ */ +/* $Xorg: FillArc.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FillArc.c,v 1.2 1999/05/09 10:49:18 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FillArc.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FillArcs.c b/xc/lib/X11/FillArcs.c index c0e99441c..4a0edc672 100644 --- a/xc/lib/X11/FillArcs.c +++ b/xc/lib/X11/FillArcs.c @@ -1,4 +1,4 @@ -/* $TOG: FillArcs.c /main/12 1998/02/06 17:20:51 kaleb $ */ +/* $Xorg: FillArcs.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FillArcs.c,v 1.2 1999/05/09 10:49:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FillArcs.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FillPoly.c b/xc/lib/X11/FillPoly.c index afba3f03f..202c6ec23 100644 --- a/xc/lib/X11/FillPoly.c +++ b/xc/lib/X11/FillPoly.c @@ -1,4 +1,4 @@ -/* $TOG: FillPoly.c /main/11 1998/02/06 17:21:14 kaleb $ */ +/* $Xorg: FillPoly.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FillPoly.c,v 1.2 1999/05/09 10:49:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FillPoly.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FillRct.c b/xc/lib/X11/FillRct.c index a2bf1fd54..4241de86f 100644 --- a/xc/lib/X11/FillRct.c +++ b/xc/lib/X11/FillRct.c @@ -1,4 +1,4 @@ -/* $TOG: FillRct.c /main/9 1998/02/06 17:21:38 kaleb $ */ +/* $Xorg: FillRct.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FillRct.c,v 1.2 1999/05/09 10:49:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FillRct.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FillRcts.c b/xc/lib/X11/FillRcts.c index 1fd9e5e77..5fd2b5159 100644 --- a/xc/lib/X11/FillRcts.c +++ b/xc/lib/X11/FillRcts.c @@ -1,4 +1,4 @@ -/* $TOG: FillRcts.c /main/11 1998/02/06 17:21:26 kaleb $ */ +/* $Xorg: FillRcts.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FillRcts.c,v 1.2 1999/05/09 10:49:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FillRcts.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FilterEv.c b/xc/lib/X11/FilterEv.c index fa6b313d9..0621146fd 100644 --- a/xc/lib/X11/FilterEv.c +++ b/xc/lib/X11/FilterEv.c @@ -1,4 +1,4 @@ -/* $TOG: FilterEv.c /main/10 1998/02/06 17:21:51 kaleb $ */ +/* $Xorg: FilterEv.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* * Copyright 1990, 1991 by OMRON Corporation diff --git a/xc/lib/X11/Flush.c b/xc/lib/X11/Flush.c index f823194b5..fbbe25595 100644 --- a/xc/lib/X11/Flush.c +++ b/xc/lib/X11/Flush.c @@ -1,4 +1,4 @@ -/* $TOG: Flush.c /main/7 1998/02/06 17:22:02 kaleb $ */ +/* $Xorg: Flush.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Flush.c,v 1.2 1999/05/09 10:49:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Flush.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Font.c b/xc/lib/X11/Font.c index 600c233d2..29d98a9d9 100644 --- a/xc/lib/X11/Font.c +++ b/xc/lib/X11/Font.c @@ -1,4 +1,4 @@ -/* $TOG: Font.c /main/30 1998/02/06 17:22:37 kaleb $ */ +/* $Xorg: Font.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright (c) 1986 X Consortium @@ -28,7 +28,7 @@ sale, use or other dealings in this Software without prior written authorization from the X Consortium and the XFree86 Project. */ -/* $XFree86: xc/lib/X11/Font.c,v 1.11 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/Font.c,v 1.12 2001/01/17 19:41:35 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/FontInfo.c b/xc/lib/X11/FontInfo.c index 434dde7ee..7710985c5 100644 --- a/xc/lib/X11/FontInfo.c +++ b/xc/lib/X11/FontInfo.c @@ -1,4 +1,4 @@ -/* $TOG: FontInfo.c /main/17 1998/02/06 17:22:14 kaleb $ */ +/* $Xorg: FontInfo.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FontInfo.c,v 1.4 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/FontInfo.c,v 1.5 2001/01/17 19:41:35 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/FontNames.c b/xc/lib/X11/FontNames.c index d3f63f9fe..26541a1c8 100644 --- a/xc/lib/X11/FontNames.c +++ b/xc/lib/X11/FontNames.c @@ -1,4 +1,4 @@ -/* $TOG: FontNames.c /main/14 1998/05/17 09:16:03 kaleb $ */ +/* $Xorg: FontNames.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FontNames.c,v 1.4 1999/05/09 10:49:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FontNames.c,v 1.5 2001/01/17 19:41:35 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/FreeCmap.c b/xc/lib/X11/FreeCmap.c index 4a58df557..2d76de43d 100644 --- a/xc/lib/X11/FreeCmap.c +++ b/xc/lib/X11/FreeCmap.c @@ -1,4 +1,4 @@ -/* $TOG: FreeCmap.c /main/9 1998/02/06 17:22:49 kaleb $ */ +/* $Xorg: FreeCmap.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FreeCmap.c,v 1.2 1999/05/09 10:49:22 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FreeCmap.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FreeCols.c b/xc/lib/X11/FreeCols.c index d6f2f069a..604b43fab 100644 --- a/xc/lib/X11/FreeCols.c +++ b/xc/lib/X11/FreeCols.c @@ -1,4 +1,4 @@ -/* $TOG: FreeCols.c /main/8 1998/02/06 17:23:00 kaleb $ */ +/* $Xorg: FreeCols.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FreeCols.c,v 1.2 1999/05/09 10:49:22 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FreeCols.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FreeCurs.c b/xc/lib/X11/FreeCurs.c index f2bd966de..3eb0143c6 100644 --- a/xc/lib/X11/FreeCurs.c +++ b/xc/lib/X11/FreeCurs.c @@ -1,4 +1,4 @@ -/* $TOG: FreeCurs.c /main/6 1998/02/06 17:23:13 kaleb $ */ +/* $Xorg: FreeCurs.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FreeCurs.c,v 1.2 1999/05/09 10:49:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FreeCurs.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FreeEData.c b/xc/lib/X11/FreeEData.c index 89069b3a4..69ee8ab16 100644 --- a/xc/lib/X11/FreeEData.c +++ b/xc/lib/X11/FreeEData.c @@ -1,4 +1,4 @@ -/* $TOG: FreeEData.c /main/6 1998/02/06 17:23:24 kaleb $ */ +/* $Xorg: FreeEData.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FreeEData.c,v 1.2 1999/05/09 10:49:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FreeEData.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FreeGC.c b/xc/lib/X11/FreeGC.c index 58e33765f..afabdcb39 100644 --- a/xc/lib/X11/FreeGC.c +++ b/xc/lib/X11/FreeGC.c @@ -1,4 +1,4 @@ -/* $TOG: FreeGC.c /main/9 1998/02/06 17:23:35 kaleb $ */ +/* $Xorg: FreeGC.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FreeGC.c,v 1.2 1999/05/09 10:49:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FreeGC.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/FreePix.c b/xc/lib/X11/FreePix.c index 9fd60239e..87ff5af8a 100644 --- a/xc/lib/X11/FreePix.c +++ b/xc/lib/X11/FreePix.c @@ -1,4 +1,4 @@ -/* $TOG: FreePix.c /main/6 1998/02/06 17:23:46 kaleb $ */ +/* $Xorg: FreePix.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/FreePix.c,v 1.2 1999/05/09 10:49:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/FreePix.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/GCMisc.c b/xc/lib/X11/GCMisc.c index 9b43412e8..5a992501a 100644 --- a/xc/lib/X11/GCMisc.c +++ b/xc/lib/X11/GCMisc.c @@ -1,4 +1,4 @@ -/* $TOG: GCMisc.c /main/6 1998/02/06 17:24:20 kaleb $ */ +/* $Xorg: GCMisc.c,v 1.3 2000/08/17 19:44:33 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GCMisc.c,v 1.2 1999/05/09 10:49:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GCMisc.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Geom.c b/xc/lib/X11/Geom.c index 7c6909e7d..9d8bce6f4 100644 --- a/xc/lib/X11/Geom.c +++ b/xc/lib/X11/Geom.c @@ -1,4 +1,4 @@ -/* $TOG: Geom.c /main/9 1998/02/06 17:24:31 kaleb $ */ +/* $Xorg: Geom.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/GetAtomNm.c b/xc/lib/X11/GetAtomNm.c index e03cbf14e..0bc558489 100644 --- a/xc/lib/X11/GetAtomNm.c +++ b/xc/lib/X11/GetAtomNm.c @@ -1,4 +1,4 @@ -/* $TOG: GetAtomNm.c /main/12 1998/02/06 17:24:48 kaleb $ */ +/* $Xorg: GetAtomNm.c,v 1.4 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetAtomNm.c,v 3.2 1999/05/09 10:49:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetAtomNm.c,v 3.3 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetColor.c b/xc/lib/X11/GetColor.c index adfb41977..9e6bf86e8 100644 --- a/xc/lib/X11/GetColor.c +++ b/xc/lib/X11/GetColor.c @@ -1,4 +1,4 @@ -/* $TOG: GetColor.c /main/19 1998/02/06 17:24:59 kaleb $ */ +/* $Xorg: GetColor.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetColor.c,v 1.2 1999/05/09 10:49:25 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetColor.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include <stdio.h> diff --git a/xc/lib/X11/GetDflt.c b/xc/lib/X11/GetDflt.c index 258d9c18a..df97eb0f4 100644 --- a/xc/lib/X11/GetDflt.c +++ b/xc/lib/X11/GetDflt.c @@ -1,4 +1,4 @@ -/* $TOG: GetDflt.c /main/59 1998/05/12 11:19:09 kaleb $ */ +/* $Xorg: GetDflt.c,v 1.5 2000/08/17 19:44:34 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/GetDflt.c,v 3.16 1999/05/09 10:49:25 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetDflt.c,v 3.17 2001/01/17 19:41:36 dawes Exp $ */ #include "Xlibint.h" #include <X11/Xos.h> diff --git a/xc/lib/X11/GetFPath.c b/xc/lib/X11/GetFPath.c index 3a31174ee..cda2c6079 100644 --- a/xc/lib/X11/GetFPath.c +++ b/xc/lib/X11/GetFPath.c @@ -1,4 +1,4 @@ -/* $TOG: GetFPath.c /main/8 1998/02/06 17:25:22 kaleb $ */ +/* $Xorg: GetFPath.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetFPath.c,v 1.2 1999/05/09 10:49:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetFPath.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetFProp.c b/xc/lib/X11/GetFProp.c index 6abeb69f3..9428c5ff9 100644 --- a/xc/lib/X11/GetFProp.c +++ b/xc/lib/X11/GetFProp.c @@ -1,4 +1,4 @@ -/* $TOG: GetFProp.c /main/5 1998/02/06 17:25:33 kaleb $ */ +/* $Xorg: GetFProp.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GetGCVals.c b/xc/lib/X11/GetGCVals.c index 8b65bc6bc..2fc1d633f 100644 --- a/xc/lib/X11/GetGCVals.c +++ b/xc/lib/X11/GetGCVals.c @@ -1,4 +1,4 @@ -/* $TOG: GetGCVals.c /main/5 1998/02/06 17:25:45 kaleb $ */ +/* $Xorg: GetGCVals.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/GetGeom.c b/xc/lib/X11/GetGeom.c index 187e7d175..7093d6ff0 100644 --- a/xc/lib/X11/GetGeom.c +++ b/xc/lib/X11/GetGeom.c @@ -1,4 +1,4 @@ -/* $TOG: GetGeom.c /main/7 1998/02/06 17:25:56 kaleb $ */ +/* $Xorg: GetGeom.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GetHColor.c b/xc/lib/X11/GetHColor.c index 1f33c77e7..a83621ce8 100644 --- a/xc/lib/X11/GetHColor.c +++ b/xc/lib/X11/GetHColor.c @@ -1,4 +1,4 @@ -/* $TOG: GetHColor.c /main/5 1998/02/06 17:26:07 kaleb $ */ +/* $Xorg: GetHColor.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GetHints.c b/xc/lib/X11/GetHints.c index 3e48f512d..0564544d2 100644 --- a/xc/lib/X11/GetHints.c +++ b/xc/lib/X11/GetHints.c @@ -1,4 +1,4 @@ -/* $TOG: GetHints.c /main/23 1998/02/06 17:26:18 kaleb $ */ +/* $Xorg: GetHints.c,v 1.4 2000/08/17 19:44:34 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/GetHints.c,v 1.2 1999/05/09 10:49:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetHints.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xos.h> diff --git a/xc/lib/X11/GetIFocus.c b/xc/lib/X11/GetIFocus.c index 4a2915671..ba44da243 100644 --- a/xc/lib/X11/GetIFocus.c +++ b/xc/lib/X11/GetIFocus.c @@ -1,4 +1,4 @@ -/* $TOG: GetIFocus.c /main/6 1998/02/06 17:26:31 kaleb $ */ +/* $Xorg: GetIFocus.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetIFocus.c,v 1.2 1999/05/09 10:49:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetIFocus.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetImage.c b/xc/lib/X11/GetImage.c index 7d3d03eaf..5ad4513f0 100644 --- a/xc/lib/X11/GetImage.c +++ b/xc/lib/X11/GetImage.c @@ -1,4 +1,4 @@ -/* $TOG: GetImage.c /main/17 1998/02/06 17:26:43 kaleb $ */ +/* $Xorg: GetImage.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetImage.c,v 1.2 1999/05/09 10:49:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetImage.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetKCnt.c b/xc/lib/X11/GetKCnt.c index 62fc6b529..14e43e48a 100644 --- a/xc/lib/X11/GetKCnt.c +++ b/xc/lib/X11/GetKCnt.c @@ -1,4 +1,4 @@ -/* $TOG: GetKCnt.c /main/13 1998/02/06 17:26:54 kaleb $ */ +/* $Xorg: GetKCnt.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetKCnt.c,v 1.4 1999/05/09 10:49:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetKCnt.c,v 1.5 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetMoEv.c b/xc/lib/X11/GetMoEv.c index bac14e85b..dc589a9f7 100644 --- a/xc/lib/X11/GetMoEv.c +++ b/xc/lib/X11/GetMoEv.c @@ -1,4 +1,4 @@ -/* $TOG: GetMoEv.c /main/10 1998/02/06 17:27:07 kaleb $ */ +/* $Xorg: GetMoEv.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GetNrmHint.c b/xc/lib/X11/GetNrmHint.c index 1669da80e..03e28e682 100644 --- a/xc/lib/X11/GetNrmHint.c +++ b/xc/lib/X11/GetNrmHint.c @@ -1,4 +1,4 @@ -/* $TOG: GetNrmHint.c /main/8 1998/02/06 17:27:17 kaleb $ */ +/* $Xorg: GetNrmHint.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca, Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, diff --git a/xc/lib/X11/GetPCnt.c b/xc/lib/X11/GetPCnt.c index 95637afa7..70becef91 100644 --- a/xc/lib/X11/GetPCnt.c +++ b/xc/lib/X11/GetPCnt.c @@ -1,4 +1,4 @@ -/* $TOG: GetPCnt.c /main/6 1998/02/06 17:27:29 kaleb $ */ +/* $Xorg: GetPCnt.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetPCnt.c,v 1.2 1999/05/09 10:49:28 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetPCnt.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetPntMap.c b/xc/lib/X11/GetPntMap.c index 9e0b57dbe..5303ad6f3 100644 --- a/xc/lib/X11/GetPntMap.c +++ b/xc/lib/X11/GetPntMap.c @@ -1,4 +1,4 @@ -/* $TOG: GetPntMap.c /main/14 1998/05/30 08:06:05 kaleb $ */ +/* $Xorg: GetPntMap.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetPntMap.c,v 1.4 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/GetPntMap.c,v 1.5 2001/01/17 19:41:36 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetProp.c b/xc/lib/X11/GetProp.c index 9222f6c07..09679e3e4 100644 --- a/xc/lib/X11/GetProp.c +++ b/xc/lib/X11/GetProp.c @@ -1,4 +1,4 @@ -/* $TOG: GetProp.c /main/11 1998/02/06 17:27:52 kaleb $ */ +/* $Xorg: GetProp.c,v 1.4 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetProp.c,v 1.3 2000/06/15 23:59:06 keithp Exp $ */ +/* $XFree86: xc/lib/X11/GetProp.c,v 1.4 2001/01/17 19:41:37 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetRGBCMap.c b/xc/lib/X11/GetRGBCMap.c index 4370e0314..5aee235ac 100644 --- a/xc/lib/X11/GetRGBCMap.c +++ b/xc/lib/X11/GetRGBCMap.c @@ -1,4 +1,4 @@ -/* $TOG: GetRGBCMap.c /main/7 1998/02/06 17:28:03 kaleb $ */ +/* $Xorg: GetRGBCMap.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/GetSOwner.c b/xc/lib/X11/GetSOwner.c index 0096d4e14..a8d8e72d5 100644 --- a/xc/lib/X11/GetSOwner.c +++ b/xc/lib/X11/GetSOwner.c @@ -1,4 +1,4 @@ -/* $TOG: GetSOwner.c /main/5 1998/02/06 17:28:14 kaleb $ */ +/* $Xorg: GetSOwner.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GetSSaver.c b/xc/lib/X11/GetSSaver.c index 79595e014..70063f3fc 100644 --- a/xc/lib/X11/GetSSaver.c +++ b/xc/lib/X11/GetSSaver.c @@ -1,4 +1,4 @@ -/* $TOG: GetSSaver.c /main/6 1998/02/06 17:28:26 kaleb $ */ +/* $Xorg: GetSSaver.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GetSSaver.c,v 1.2 1999/05/09 10:49:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GetSSaver.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/GetStCmap.c b/xc/lib/X11/GetStCmap.c index d9857e684..586c20e94 100644 --- a/xc/lib/X11/GetStCmap.c +++ b/xc/lib/X11/GetStCmap.c @@ -1,4 +1,4 @@ -/* $TOG: GetStCmap.c /main/10 1998/02/06 17:28:37 kaleb $ */ +/* $Xorg: GetStCmap.c,v 1.3 2000/08/17 19:44:34 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/GetTxtProp.c b/xc/lib/X11/GetTxtProp.c index db59b0667..489359ec1 100644 --- a/xc/lib/X11/GetTxtProp.c +++ b/xc/lib/X11/GetTxtProp.c @@ -1,4 +1,4 @@ -/* $TOG: GetTxtProp.c /main/8 1998/02/06 17:28:48 kaleb $ */ +/* $Xorg: GetTxtProp.c,v 1.3 2000/08/17 19:44:35 cpqbld Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca., diff --git a/xc/lib/X11/GetWAttrs.c b/xc/lib/X11/GetWAttrs.c index 8cce8484b..1479d6960 100644 --- a/xc/lib/X11/GetWAttrs.c +++ b/xc/lib/X11/GetWAttrs.c @@ -1,4 +1,4 @@ -/* $TOG: GetWAttrs.c /main/10 1998/02/06 17:29:01 kaleb $ */ +/* $Xorg: GetWAttrs.c,v 1.3 2000/08/17 19:44:35 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GetWMCMapW.c b/xc/lib/X11/GetWMCMapW.c index 4104276d6..f5d307b49 100644 --- a/xc/lib/X11/GetWMCMapW.c +++ b/xc/lib/X11/GetWMCMapW.c @@ -1,4 +1,4 @@ -/* $TOG: GetWMCMapW.c /main/7 1998/02/06 17:29:13 kaleb $ */ +/* $Xorg: GetWMCMapW.c,v 1.3 2000/08/17 19:44:35 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/GetWMProto.c b/xc/lib/X11/GetWMProto.c index f84af7c69..570c9a9d6 100644 --- a/xc/lib/X11/GetWMProto.c +++ b/xc/lib/X11/GetWMProto.c @@ -1,4 +1,4 @@ -/* $TOG: GetWMProto.c /main/7 1998/02/06 17:29:24 kaleb $ */ +/* $Xorg: GetWMProto.c,v 1.3 2000/08/17 19:44:35 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/GrButton.c b/xc/lib/X11/GrButton.c index 37e6d0c56..f242ffa07 100644 --- a/xc/lib/X11/GrButton.c +++ b/xc/lib/X11/GrButton.c @@ -1,4 +1,4 @@ -/* $TOG: GrButton.c /main/6 1998/02/06 17:29:47 kaleb $ */ +/* $Xorg: GrButton.c,v 1.3 2000/08/17 19:44:35 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GrButton.c,v 1.2 1999/05/09 10:49:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GrButton.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/GrKey.c b/xc/lib/X11/GrKey.c index f1bdc0a0d..dabe9a18b 100644 --- a/xc/lib/X11/GrKey.c +++ b/xc/lib/X11/GrKey.c @@ -1,4 +1,4 @@ -/* $TOG: GrKey.c /main/7 1998/02/06 17:30:10 kaleb $ */ +/* $Xorg: GrKey.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GrKey.c,v 1.2 1999/05/09 10:49:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GrKey.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/GrKeybd.c b/xc/lib/X11/GrKeybd.c index 85dc708d6..15028dfe1 100644 --- a/xc/lib/X11/GrKeybd.c +++ b/xc/lib/X11/GrKeybd.c @@ -1,4 +1,4 @@ -/* $TOG: GrKeybd.c /main/6 1998/02/06 17:29:58 kaleb $ */ +/* $Xorg: GrKeybd.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GrPointer.c b/xc/lib/X11/GrPointer.c index db8b2a9f8..ca54284de 100644 --- a/xc/lib/X11/GrPointer.c +++ b/xc/lib/X11/GrPointer.c @@ -1,4 +1,4 @@ -/* $TOG: GrPointer.c /main/5 1998/02/06 17:30:21 kaleb $ */ +/* $Xorg: GrPointer.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/GrServer.c b/xc/lib/X11/GrServer.c index 34aac9186..e16fc2fa6 100644 --- a/xc/lib/X11/GrServer.c +++ b/xc/lib/X11/GrServer.c @@ -1,4 +1,4 @@ -/* $TOG: GrServer.c /main/6 1998/02/06 17:30:31 kaleb $ */ +/* $Xorg: GrServer.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/GrServer.c,v 1.2 1999/05/09 10:49:30 dawes Exp $ */ +/* $XFree86: xc/lib/X11/GrServer.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/HVC.c b/xc/lib/X11/HVC.c index 34b4106e8..894e8ddf0 100644 --- a/xc/lib/X11/HVC.c +++ b/xc/lib/X11/HVC.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVC.c,v 1.13 93/09/07 21:30:46 rws Exp $ */ +/* $Xorg: HVC.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -47,7 +47,7 @@ * DOCUMENTATION * "TekColor Color Management System, System Implementor's Manual" */ -/* $XFree86: xc/lib/X11/HVC.c,v 1.2 1999/05/09 10:49:30 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCGcC.c b/xc/lib/X11/HVCGcC.c index efe3ad385..9260c3927 100644 --- a/xc/lib/X11/HVCGcC.c +++ b/xc/lib/X11/HVCGcC.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCGcC.c,v 1.8 93/07/05 11:43:37 rws Exp $" */ +/* $Xorg: HVCGcC.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -43,7 +43,7 @@ * Source for XcmsTekHVCClipC() gamut compression routine. * */ -/* $XFree86: xc/lib/X11/HVCGcC.c,v 1.2 1999/05/09 10:49:31 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVCGcC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCGcV.c b/xc/lib/X11/HVCGcV.c index f2738c818..eeb6262a7 100644 --- a/xc/lib/X11/HVCGcV.c +++ b/xc/lib/X11/HVCGcV.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCGcV.c,v 1.8 93/09/07 21:30:49 rws Exp $" */ +/* $Xorg: HVCGcV.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -43,7 +43,7 @@ * Source for XcmsTekHVCClipV() gamut compression routine. * */ -/* $XFree86: xc/lib/X11/HVCGcV.c,v 1.2 1999/05/09 10:49:31 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVCGcV.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCGcVC.c b/xc/lib/X11/HVCGcVC.c index 1ee0cc8c3..d1cebc836 100644 --- a/xc/lib/X11/HVCGcVC.c +++ b/xc/lib/X11/HVCGcVC.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCGcVC.c,v 1.11 94/02/07 22:30:20 rws Exp $" */ +/* $Xorg: HVCGcVC.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -43,7 +43,7 @@ * Source for XcmsTekHVCClipVC() gamut * compression function. */ -/* $XFree86: xc/lib/X11/HVCGcVC.c,v 1.2 1999/05/09 10:49:32 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVCGcVC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCMnV.c b/xc/lib/X11/HVCMnV.c index ac5ab8f48..f66e0e1cd 100644 --- a/xc/lib/X11/HVCMnV.c +++ b/xc/lib/X11/HVCMnV.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCMnV.c,v 1.7 93/09/07 21:30:53 rws Exp $" */ +/* $Xorg: HVCMnV.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/HVCMxC.c b/xc/lib/X11/HVCMxC.c index 9c2d524c0..20aa9ef9e 100644 --- a/xc/lib/X11/HVCMxC.c +++ b/xc/lib/X11/HVCMxC.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCMxC.c,v 1.9 93/09/07 21:30:55 rws Exp $" */ +/* $Xorg: HVCMxC.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -44,7 +44,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/HVCMxC.c,v 1.2 1999/05/09 10:49:32 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVCMxC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCMxV.c b/xc/lib/X11/HVCMxV.c index eb0e037a9..fec1c3b7b 100644 --- a/xc/lib/X11/HVCMxV.c +++ b/xc/lib/X11/HVCMxV.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCMxV.c,v 1.9 93/09/07 21:30:58 rws Exp $" */ +/* $Xorg: HVCMxV.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -44,7 +44,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/HVCMxV.c,v 1.2 1999/05/09 10:49:32 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVCMxV.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCMxVC.c b/xc/lib/X11/HVCMxVC.c index 4e4751628..7c8ec7d06 100644 --- a/xc/lib/X11/HVCMxVC.c +++ b/xc/lib/X11/HVCMxVC.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCMxVC.c,v 1.8 93/10/07 18:49:10 rws Exp $" */ +/* $Xorg: HVCMxVC.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/HVCMxVs.c b/xc/lib/X11/HVCMxVs.c index c32fc63ed..6f98d0d58 100644 --- a/xc/lib/X11/HVCMxVs.c +++ b/xc/lib/X11/HVCMxVs.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCMxVs.c,v 1.7 93/09/07 21:31:03 rws Exp $" */ +/* $Xorg: HVCMxVs.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -43,7 +43,7 @@ * Source for the XcmsTekHVCQueryMaxVSamples() gamut boundary * querying routine. */ -/* $XFree86: xc/lib/X11/HVCMxVs.c,v 1.2 1999/05/09 10:49:33 dawes Exp $ */ +/* $XFree86: xc/lib/X11/HVCMxVs.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/HVCWpAj.c b/xc/lib/X11/HVCWpAj.c index c93690330..76e64c050 100644 --- a/xc/lib/X11/HVCWpAj.c +++ b/xc/lib/X11/HVCWpAj.c @@ -1,4 +1,4 @@ -/* $XConsortium: HVCWpAj.c,v 1.4 91/05/13 22:48:45 rws Exp $" */ +/* $Xorg: HVCWpAj.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/Host.c b/xc/lib/X11/Host.c index 0ff29a35e..12e9891e6 100644 --- a/xc/lib/X11/Host.c +++ b/xc/lib/X11/Host.c @@ -1,4 +1,4 @@ -/* $TOG: Host.c /main/8 1998/02/06 17:30:43 kaleb $ */ +/* $Xorg: Host.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Host.c,v 1.2 1999/05/09 10:49:33 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Host.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ /* this might be rightly reguarded an os dependent file */ diff --git a/xc/lib/X11/ICWrap.c b/xc/lib/X11/ICWrap.c index 486fbc9ae..3aafe7686 100644 --- a/xc/lib/X11/ICWrap.c +++ b/xc/lib/X11/ICWrap.c @@ -1,5 +1,5 @@ /* - * $TOG: ICWrap.c /main/10 1998/02/06 17:32:58 kaleb $ + * $Xorg: ICWrap.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* @@ -60,7 +60,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ICWrap.c,v 1.3 2000/11/29 17:40:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ICWrap.c,v 1.4 2001/01/17 19:41:37 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/IMWrap.c b/xc/lib/X11/IMWrap.c index 17562c22f..e40f4fd18 100644 --- a/xc/lib/X11/IMWrap.c +++ b/xc/lib/X11/IMWrap.c @@ -1,5 +1,5 @@ /* - * $TOG: IMWrap.c /main/14 1998/02/06 17:37:48 kaleb $ + * $Xorg: IMWrap.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /* @@ -53,7 +53,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/X11/IMWrap.c,v 3.6 1998/12/20 11:56:55 dawes Exp $ */ +/* $XFree86: xc/lib/X11/IMWrap.c,v 3.7 2001/01/17 19:41:37 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/Iconify.c b/xc/lib/X11/Iconify.c index 00b2abfb5..fd7588faf 100644 --- a/xc/lib/X11/Iconify.c +++ b/xc/lib/X11/Iconify.c @@ -1,4 +1,4 @@ -/* $TOG: Iconify.c /main/9 1998/02/06 17:32:48 kaleb $ */ +/* $Xorg: Iconify.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca. diff --git a/xc/lib/X11/IdOfPr.c b/xc/lib/X11/IdOfPr.c index 1d1b3cb30..d84986eb0 100644 --- a/xc/lib/X11/IdOfPr.c +++ b/xc/lib/X11/IdOfPr.c @@ -1,4 +1,4 @@ -/* $XConsortium: IdOfPr.c,v 1.6 91/11/06 16:45:23 rws Exp $" */ +/* $Xorg: IdOfPr.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/IfEvent.c b/xc/lib/X11/IfEvent.c index 096558bd7..02f10c52f 100644 --- a/xc/lib/X11/IfEvent.c +++ b/xc/lib/X11/IfEvent.c @@ -1,4 +1,4 @@ -/* $TOG: IfEvent.c /main/9 1998/02/06 17:33:19 kaleb $ */ +/* $Xorg: IfEvent.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/IfEvent.c,v 1.2 1999/05/09 10:49:35 dawes Exp $ */ +/* $XFree86: xc/lib/X11/IfEvent.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/ImText.c b/xc/lib/X11/ImText.c index 48274986e..75749f884 100644 --- a/xc/lib/X11/ImText.c +++ b/xc/lib/X11/ImText.c @@ -1,4 +1,4 @@ -/* $TOG: ImText.c /main/12 1998/02/06 17:36:40 kaleb $ */ +/* $Xorg: ImText.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ImText.c,v 1.2 1999/05/09 10:49:36 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ImText.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/ImText16.c b/xc/lib/X11/ImText16.c index 7bce69a9c..c6987df46 100644 --- a/xc/lib/X11/ImText16.c +++ b/xc/lib/X11/ImText16.c @@ -1,4 +1,4 @@ -/* $TOG: ImText16.c /main/12 1998/02/06 17:36:32 kaleb $ */ +/* $Xorg: ImText16.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ImText16.c,v 1.2 1999/05/09 10:49:36 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ImText16.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/ImUtil.c b/xc/lib/X11/ImUtil.c index 4799c10d2..dfae9c318 100644 --- a/xc/lib/X11/ImUtil.c +++ b/xc/lib/X11/ImUtil.c @@ -1,4 +1,4 @@ -/* $TOG: ImUtil.c /main/48 1998/02/06 17:37:38 kaleb $ */ +/* $Xorg: ImUtil.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ImUtil.c,v 3.6 2000/01/29 18:58:10 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ImUtil.c,v 3.7 2001/01/17 19:41:38 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xutil.h> diff --git a/xc/lib/X11/Imakefile b/xc/lib/X11/Imakefile index f1665c994..00b6b3e37 100644 --- a/xc/lib/X11/Imakefile +++ b/xc/lib/X11/Imakefile @@ -1,9 +1,10 @@ -XCOMM $TOG: Imakefile /main/196 1997/05/20 10:06:09 kaleb $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ -XCOMM $XFree86: xc/lib/X11/Imakefile,v 3.34 2000/11/28 18:49:25 dawes Exp $ +XCOMM $XFree86: xc/lib/X11/Imakefile,v 3.35 2001/01/17 19:41:38 dawes Exp $ + #define DoNormalLib NormalLibX11 #define DoSharedLib SharedLibX11 #define DoExtraLib SharedLibX11 diff --git a/xc/lib/X11/InitExt.c b/xc/lib/X11/InitExt.c index 296b0b268..8127e753e 100644 --- a/xc/lib/X11/InitExt.c +++ b/xc/lib/X11/InitExt.c @@ -1,4 +1,4 @@ -/* $TOG: InitExt.c /main/23 1998/02/06 17:37:56 kaleb $ */ +/* $Xorg: InitExt.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/InitExt.c,v 1.4 1999/05/09 10:49:37 dawes Exp $ */ +/* $XFree86: xc/lib/X11/InitExt.c,v 1.5 2001/01/17 19:41:38 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xos.h> diff --git a/xc/lib/X11/InsCmap.c b/xc/lib/X11/InsCmap.c index 100903d72..21e282300 100644 --- a/xc/lib/X11/InsCmap.c +++ b/xc/lib/X11/InsCmap.c @@ -1,4 +1,4 @@ -/* $TOG: InsCmap.c /main/6 1998/02/06 17:38:04 kaleb $ */ +/* $Xorg: InsCmap.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/InsCmap.c,v 1.2 1999/05/09 10:49:37 dawes Exp $ */ +/* $XFree86: xc/lib/X11/InsCmap.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/IntAtom.c b/xc/lib/X11/IntAtom.c index b1c3b8095..73e99f491 100644 --- a/xc/lib/X11/IntAtom.c +++ b/xc/lib/X11/IntAtom.c @@ -1,4 +1,4 @@ -/* $TOG: IntAtom.c /main/20 1998/02/06 17:38:11 kaleb $ */ +/* $Xorg: IntAtom.c,v 1.4 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1986, 1990, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/IntAtom.c,v 1.2 1999/05/09 10:49:38 dawes Exp $ */ +/* $XFree86: xc/lib/X11/IntAtom.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/KeyBind.c b/xc/lib/X11/KeyBind.c index 92894be2d..a3186cbbb 100644 --- a/xc/lib/X11/KeyBind.c +++ b/xc/lib/X11/KeyBind.c @@ -1,4 +1,4 @@ -/* $TOG: KeyBind.c /main/56 1998/02/06 17:38:19 kaleb $ */ +/* $Xorg: KeyBind.c,v 1.3 2000/08/17 19:44:38 cpqbld Exp $ */ /* Copyright 1985, 1987, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/KeyBind.c,v 1.3 2000/01/31 14:40:58 dawes Exp $ */ +/* $XFree86: xc/lib/X11/KeyBind.c,v 1.4 2001/01/17 19:41:38 dawes Exp $ */ /* Beware, here be monsters (still under construction... - JG */ diff --git a/xc/lib/X11/KeysymStr.c b/xc/lib/X11/KeysymStr.c index d7ce1e7dd..09df3cc0b 100644 --- a/xc/lib/X11/KeysymStr.c +++ b/xc/lib/X11/KeysymStr.c @@ -1,4 +1,4 @@ -/* $TOG: KeysymStr.c /main/13 1998/02/06 17:38:27 kaleb $ */ +/* $Xorg: KeysymStr.c,v 1.4 2000/08/17 19:44:39 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/KeysymStr.c,v 3.5 2000/12/06 22:00:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/KeysymStr.c,v 3.6 2001/01/17 19:41:38 dawes Exp $ */ #include "Xlibint.h" #include <X11/Xresource.h> diff --git a/xc/lib/X11/KillCl.c b/xc/lib/X11/KillCl.c index 554f2a44e..78889789d 100644 --- a/xc/lib/X11/KillCl.c +++ b/xc/lib/X11/KillCl.c @@ -1,4 +1,4 @@ -/* $TOG: KillCl.c /main/6 1998/02/06 17:38:34 kaleb $ */ +/* $Xorg: KillCl.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/KillCl.c,v 1.2 1999/05/09 10:49:39 dawes Exp $ */ +/* $XFree86: xc/lib/X11/KillCl.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/LRGB.c b/xc/lib/X11/LRGB.c index 259b1dac4..eb7dfaf62 100644 --- a/xc/lib/X11/LRGB.c +++ b/xc/lib/X11/LRGB.c @@ -1,4 +1,4 @@ -/* $XConsortium: LRGB.c,v 1.32 95/06/08 23:20:39 gildea Exp $" */ +/* $Xorg: LRGB.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -35,7 +35,7 @@ * 4. RGB intensity to CIE XYZ * */ -/* $XFree86: xc/lib/X11/LRGB.c,v 3.3 1999/05/09 10:49:40 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LRGB.c,v 3.4 2001/01/17 19:41:38 dawes Exp $ */ #include <stdio.h> #include <X11/Xos.h> diff --git a/xc/lib/X11/Lab.c b/xc/lib/X11/Lab.c index c07e0ce48..b33ba712a 100644 --- a/xc/lib/X11/Lab.c +++ b/xc/lib/X11/Lab.c @@ -1,4 +1,4 @@ -/* $XConsortium: Lab.c,v 1.11 93/09/07 21:31:18 rws Exp $ */ +/* $Xorg: Lab.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -36,7 +36,7 @@ * * Note that the range for L* is 0 to 1. */ -/* $XFree86: xc/lib/X11/Lab.c,v 1.2 1999/05/09 10:49:40 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Lab.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */ #include <X11/Xos.h> diff --git a/xc/lib/X11/LabGcC.c b/xc/lib/X11/LabGcC.c index 57ad714fb..a23496716 100644 --- a/xc/lib/X11/LabGcC.c +++ b/xc/lib/X11/LabGcC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabGcC.c,v 1.1 91/07/24 23:26:14 rws Exp $ */ +/* $Xorg: LabGcC.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -30,7 +30,7 @@ * Source for XcmsCIELabClipuv() gamut compression routine. * */ -/* $XFree86: xc/lib/X11/LabGcC.c,v 1.2 1999/05/09 10:49:41 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LabGcC.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LabGcL.c b/xc/lib/X11/LabGcL.c index a146dfb1f..4dc64a94e 100644 --- a/xc/lib/X11/LabGcL.c +++ b/xc/lib/X11/LabGcL.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabGcL.c,v 1.3 93/09/07 21:31:21 rws Exp $ */ +/* $Xorg: LabGcL.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -30,7 +30,7 @@ * Source for XcmsCIELabClipL() gamut compression routine. * */ -/* $XFree86: xc/lib/X11/LabGcL.c,v 1.2 1999/05/09 10:49:41 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LabGcL.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LabGcLC.c b/xc/lib/X11/LabGcLC.c index 2356519e4..d48972dee 100644 --- a/xc/lib/X11/LabGcLC.c +++ b/xc/lib/X11/LabGcLC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabGcLC.c,v 1.3 93/09/07 21:31:25 rws Exp $ */ +/* $Xorg: LabGcLC.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -30,7 +30,7 @@ * Source for XcmsCIELabClipLab() gamut * compression function. */ -/* $XFree86: xc/lib/X11/LabGcLC.c,v 1.2 1999/05/09 10:49:41 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LabGcLC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LabMnL.c b/xc/lib/X11/LabMnL.c index 8ca56302c..b61638426 100644 --- a/xc/lib/X11/LabMnL.c +++ b/xc/lib/X11/LabMnL.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabMnL.c /main/4 1995/10/24 11:18:39 gildea $ */ +/* $Xorg: LabMnL.c,v 1.3 2000/08/17 19:44:39 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -31,7 +31,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/LabMnL.c,v 1.2 1999/05/09 10:49:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LabMnL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LabMxC.c b/xc/lib/X11/LabMxC.c index a792a8386..53e5c2e27 100644 --- a/xc/lib/X11/LabMxC.c +++ b/xc/lib/X11/LabMxC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabMxC.c,v 1.3 93/09/07 21:31:29 rws Exp $ */ +/* $Xorg: LabMxC.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -33,7 +33,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/LabMxC.c,v 1.2 1999/05/09 10:49:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LabMxC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LabMxL.c b/xc/lib/X11/LabMxL.c index d0f472354..8022a7d33 100644 --- a/xc/lib/X11/LabMxL.c +++ b/xc/lib/X11/LabMxL.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabMxL.c /main/4 1995/10/24 11:18:46 gildea $ */ +/* $Xorg: LabMxL.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -31,7 +31,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/LabMxL.c,v 1.2 1999/05/09 10:49:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LabMxL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LabMxLC.c b/xc/lib/X11/LabMxLC.c index 779ecb3c4..6fdeeb1b6 100644 --- a/xc/lib/X11/LabMxLC.c +++ b/xc/lib/X11/LabMxLC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabMxLC.c,v 1.4 93/10/07 18:49:34 rws Exp $ */ +/* $Xorg: LabMxLC.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/LabWpAj.c b/xc/lib/X11/LabWpAj.c index ca938c59c..b4fc4a321 100644 --- a/xc/lib/X11/LabWpAj.c +++ b/xc/lib/X11/LabWpAj.c @@ -1,4 +1,4 @@ -/* $XConsortium: LabWpAj.c,v 1.4 91/05/13 22:20:55 rws Exp $" */ +/* $Xorg: LabWpAj.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/LiHosts.c b/xc/lib/X11/LiHosts.c index 26b8425df..188c40003 100644 --- a/xc/lib/X11/LiHosts.c +++ b/xc/lib/X11/LiHosts.c @@ -1,4 +1,4 @@ -/* $TOG: LiHosts.c /main/15 1998/02/06 17:41:59 kaleb $ */ +/* $Xorg: LiHosts.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/LiICmaps.c b/xc/lib/X11/LiICmaps.c index f43eb4e77..ba49b007a 100644 --- a/xc/lib/X11/LiICmaps.c +++ b/xc/lib/X11/LiICmaps.c @@ -1,4 +1,4 @@ -/* $TOG: LiICmaps.c /main/7 1998/02/06 17:42:04 kaleb $ */ +/* $Xorg: LiICmaps.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/LiICmaps.c,v 1.2 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/LiICmaps.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/LiProps.c b/xc/lib/X11/LiProps.c index 3713d6f97..4007cfc6d 100644 --- a/xc/lib/X11/LiProps.c +++ b/xc/lib/X11/LiProps.c @@ -1,4 +1,4 @@ -/* $TOG: LiProps.c /main/8 1998/02/06 17:42:10 kaleb $ */ +/* $Xorg: LiProps.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/LiProps.c,v 1.2 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/LiProps.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/ListExt.c b/xc/lib/X11/ListExt.c index 2f30bede9..d98a6adc1 100644 --- a/xc/lib/X11/ListExt.c +++ b/xc/lib/X11/ListExt.c @@ -1,4 +1,4 @@ -/* $TOG: ListExt.c /main/9 1998/02/06 17:42:15 kaleb $ */ +/* $Xorg: ListExt.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ListExt.c,v 1.2 1999/05/09 10:49:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ListExt.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/LoadFont.c b/xc/lib/X11/LoadFont.c index df58de846..975f348cf 100644 --- a/xc/lib/X11/LoadFont.c +++ b/xc/lib/X11/LoadFont.c @@ -1,4 +1,4 @@ -/* $TOG: LoadFont.c /main/8 1998/02/06 17:42:20 kaleb $ */ +/* $Xorg: LoadFont.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/LockDis.c b/xc/lib/X11/LockDis.c index 891241b7c..9615cba2c 100644 --- a/xc/lib/X11/LockDis.c +++ b/xc/lib/X11/LockDis.c @@ -1,4 +1,4 @@ -/* $TOG: LockDis.c /main/11 1998/02/06 17:42:26 kaleb $ */ +/* $Xorg: LockDis.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/LookupCol.c b/xc/lib/X11/LookupCol.c index a63fce18f..674f1d4f4 100644 --- a/xc/lib/X11/LookupCol.c +++ b/xc/lib/X11/LookupCol.c @@ -1,4 +1,4 @@ -/* $TOG: LookupCol.c /main/19 1998/02/06 17:42:44 kaleb $ */ +/* $Xorg: LookupCol.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/LookupCol.c,v 1.2 1999/05/09 10:49:44 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LookupCol.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #define NEED_REPLIES #include <stdio.h> diff --git a/xc/lib/X11/LowerWin.c b/xc/lib/X11/LowerWin.c index 3ebcf8e73..21e4c0929 100644 --- a/xc/lib/X11/LowerWin.c +++ b/xc/lib/X11/LowerWin.c @@ -1,4 +1,4 @@ -/* $TOG: LowerWin.c /main/8 1998/02/06 17:42:50 kaleb $ */ +/* $Xorg: LowerWin.c,v 1.3 2000/08/17 19:44:40 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/LowerWin.c,v 1.2 1999/05/09 10:49:44 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LowerWin.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Luv.c b/xc/lib/X11/Luv.c index a7e59d22b..9569db039 100644 --- a/xc/lib/X11/Luv.c +++ b/xc/lib/X11/Luv.c @@ -1,4 +1,4 @@ -/* $XConsortium: Luv.c,v 1.13 93/09/07 21:31:42 rws Exp $ */ +/* $Xorg: Luv.c,v 1.3 2000/08/17 19:44:41 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -38,7 +38,7 @@ * Fred W. Billmeyer & Max Saltzman, "Principles of Color * Technology", John Wily & Sons, Inc, 1981. */ -/* $XFree86: xc/lib/X11/Luv.c,v 1.2 1999/05/09 10:49:44 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Luv.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include <X11/Xos.h> #include "Xlibint.h" diff --git a/xc/lib/X11/LuvGcC.c b/xc/lib/X11/LuvGcC.c index c4168bdb6..67da68a62 100644 --- a/xc/lib/X11/LuvGcC.c +++ b/xc/lib/X11/LuvGcC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvGcC.c,v 1.1 91/07/24 23:26:39 rws Exp $ */ +/* $Xorg: LuvGcC.c,v 1.3 2000/08/17 19:44:41 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -30,7 +30,7 @@ * Source for XcmsCIELuvClipuv() gamut compression routine. * */ -/* $XFree86: xc/lib/X11/LuvGcC.c,v 1.2 1999/05/09 10:49:45 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LuvGcC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LuvGcL.c b/xc/lib/X11/LuvGcL.c index aceab8598..1ae8513b7 100644 --- a/xc/lib/X11/LuvGcL.c +++ b/xc/lib/X11/LuvGcL.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvGcL.c,v 1.3 93/09/07 21:31:45 rws Exp $ */ +/* $Xorg: LuvGcL.c,v 1.3 2000/08/17 19:44:41 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -30,7 +30,7 @@ * Source for XcmsCIELuvClipL() gamut compression routine. * */ -/* $XFree86: xc/lib/X11/LuvGcL.c,v 1.2 1999/05/09 10:49:45 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LuvGcL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LuvGcLC.c b/xc/lib/X11/LuvGcLC.c index 0e346116e..7db28f7f8 100644 --- a/xc/lib/X11/LuvGcLC.c +++ b/xc/lib/X11/LuvGcLC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvGcLC.c,v 1.3 93/09/07 21:31:47 rws Exp $ */ +/* $Xorg: LuvGcLC.c,v 1.3 2000/08/17 19:44:41 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -30,7 +30,7 @@ * Source for XcmsCIELuvClipLuv() gamut * compression function. */ -/* $XFree86: xc/lib/X11/LuvGcLC.c,v 1.2 1999/05/09 10:49:46 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LuvGcLC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LuvMnL.c b/xc/lib/X11/LuvMnL.c index 1308498c5..c9e27eb11 100644 --- a/xc/lib/X11/LuvMnL.c +++ b/xc/lib/X11/LuvMnL.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvMnL.c /main/4 1995/10/24 11:18:53 gildea $ */ +/* $Xorg: LuvMnL.c,v 1.3 2000/08/17 19:44:41 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -31,7 +31,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/LuvMnL.c,v 1.2 1999/05/09 10:49:46 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LuvMnL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LuvMxC.c b/xc/lib/X11/LuvMxC.c index 409d3e6e3..b3ede8404 100644 --- a/xc/lib/X11/LuvMxC.c +++ b/xc/lib/X11/LuvMxC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvMxC.c,v 1.3 93/09/07 21:31:54 rws Exp $ */ +/* $Xorg: LuvMxC.c,v 1.3 2000/08/17 19:44:41 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -33,7 +33,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/LuvMxC.c,v 1.2 1999/05/09 10:49:47 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LuvMxC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LuvMxL.c b/xc/lib/X11/LuvMxL.c index 4a5f0f72f..932bc0112 100644 --- a/xc/lib/X11/LuvMxL.c +++ b/xc/lib/X11/LuvMxL.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvMxL.c /main/4 1995/10/24 11:18:58 gildea $ */ +/* $Xorg: LuvMxL.c,v 1.3 2000/08/17 19:44:45 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -31,7 +31,7 @@ * querying routine. * */ -/* $XFree86: xc/lib/X11/LuvMxL.c,v 1.2 1999/05/09 10:49:47 dawes Exp $ */ +/* $XFree86: xc/lib/X11/LuvMxL.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/LuvMxLC.c b/xc/lib/X11/LuvMxLC.c index a4290da5c..337bbbf23 100644 --- a/xc/lib/X11/LuvMxLC.c +++ b/xc/lib/X11/LuvMxLC.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvMxLC.c,v 1.4 93/10/07 18:49:37 rws Exp $ */ +/* $Xorg: LuvMxLC.c,v 1.3 2000/08/17 19:44:45 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/LuvWpAj.c b/xc/lib/X11/LuvWpAj.c index 5dff3a5f7..5083ccb7c 100644 --- a/xc/lib/X11/LuvWpAj.c +++ b/xc/lib/X11/LuvWpAj.c @@ -1,4 +1,4 @@ -/* $XConsortium: LuvWpAj.c,v 1.4 91/05/13 22:22:56 rws Exp $" */ +/* $Xorg: LuvWpAj.c,v 1.3 2000/08/17 19:44:45 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/Macros.c b/xc/lib/X11/Macros.c index 71a643745..100049afd 100644 --- a/xc/lib/X11/Macros.c +++ b/xc/lib/X11/Macros.c @@ -1,4 +1,4 @@ -/* $TOG: Macros.c /main/16 1998/02/06 17:43:56 kaleb $ */ +/* $Xorg: Macros.c,v 1.3 2000/08/17 19:44:45 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Macros.c,v 1.2 1999/05/09 10:49:47 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Macros.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" /* diff --git a/xc/lib/X11/MapRaised.c b/xc/lib/X11/MapRaised.c index 69e9a2ede..a7d06fc4c 100644 --- a/xc/lib/X11/MapRaised.c +++ b/xc/lib/X11/MapRaised.c @@ -1,4 +1,4 @@ -/* $TOG: MapRaised.c /main/7 1998/02/06 17:44:01 kaleb $ */ +/* $Xorg: MapRaised.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/MapRaised.c,v 1.2 1999/05/09 10:49:48 dawes Exp $ */ +/* $XFree86: xc/lib/X11/MapRaised.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/MapSubs.c b/xc/lib/X11/MapSubs.c index 3aaf0867d..6d6c22ff5 100644 --- a/xc/lib/X11/MapSubs.c +++ b/xc/lib/X11/MapSubs.c @@ -1,4 +1,4 @@ -/* $TOG: MapSubs.c /main/6 1998/02/06 17:44:07 kaleb $ */ +/* $Xorg: MapSubs.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/MapSubs.c,v 1.2 1999/05/09 10:49:48 dawes Exp $ */ +/* $XFree86: xc/lib/X11/MapSubs.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/MapWindow.c b/xc/lib/X11/MapWindow.c index 77fa79b5e..b1e25a143 100644 --- a/xc/lib/X11/MapWindow.c +++ b/xc/lib/X11/MapWindow.c @@ -1,4 +1,4 @@ -/* $TOG: MapWindow.c /main/6 1998/02/06 17:44:12 kaleb $ */ +/* $Xorg: MapWindow.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/MapWindow.c,v 1.2 1999/05/09 10:49:49 dawes Exp $ */ +/* $XFree86: xc/lib/X11/MapWindow.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/MaskEvent.c b/xc/lib/X11/MaskEvent.c index 2960b795b..a7321f3c3 100644 --- a/xc/lib/X11/MaskEvent.c +++ b/xc/lib/X11/MaskEvent.c @@ -1,4 +1,4 @@ -/* $TOG: MaskEvent.c /main/14 1998/02/06 17:44:18 kaleb $ */ +/* $Xorg: MaskEvent.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/MaskEvent.c,v 3.2 1999/05/09 10:49:49 dawes Exp $ */ +/* $XFree86: xc/lib/X11/MaskEvent.c,v 3.3 2001/01/17 19:41:40 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/Misc.c b/xc/lib/X11/Misc.c index d6d898066..45d4ec49f 100644 --- a/xc/lib/X11/Misc.c +++ b/xc/lib/X11/Misc.c @@ -1,4 +1,4 @@ -/* $TOG: Misc.c /main/8 1998/02/06 17:44:35 kaleb $ */ +/* $Xorg: Misc.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1988, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Misc.c,v 1.2 1999/05/09 10:49:49 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Misc.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ModMap.c b/xc/lib/X11/ModMap.c index 6370ad5c7..dd859da63 100644 --- a/xc/lib/X11/ModMap.c +++ b/xc/lib/X11/ModMap.c @@ -1,4 +1,4 @@ -/* $TOG: ModMap.c /main/16 1998/02/06 17:44:41 kaleb $ */ +/* $Xorg: ModMap.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ModMap.c,v 1.2 1999/05/09 10:49:50 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ModMap.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/MoveWin.c b/xc/lib/X11/MoveWin.c index 068d24ed4..f357b0b0f 100644 --- a/xc/lib/X11/MoveWin.c +++ b/xc/lib/X11/MoveWin.c @@ -1,4 +1,4 @@ -/* $TOG: MoveWin.c /main/9 1998/02/06 17:44:47 kaleb $ */ +/* $Xorg: MoveWin.c,v 1.3 2000/08/17 19:44:46 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/MoveWin.c,v 1.2 1999/05/09 10:49:50 dawes Exp $ */ +/* $XFree86: xc/lib/X11/MoveWin.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/NextEvent.c b/xc/lib/X11/NextEvent.c index 5eed79e6c..4e0e24a3b 100644 --- a/xc/lib/X11/NextEvent.c +++ b/xc/lib/X11/NextEvent.c @@ -1,4 +1,4 @@ -/* $TOG: NextEvent.c /main/8 1998/02/06 17:44:53 kaleb $ */ +/* $Xorg: NextEvent.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/NextEvent.c,v 1.2 1999/05/09 10:49:51 dawes Exp $ */ +/* $XFree86: xc/lib/X11/NextEvent.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/OCWrap.c b/xc/lib/X11/OCWrap.c index 9510f19b9..14bc22e51 100644 --- a/xc/lib/X11/OCWrap.c +++ b/xc/lib/X11/OCWrap.c @@ -1,4 +1,4 @@ -/* $XConsortium: OCWrap.c,v 1.1 94/01/20 17:54:55 rws Exp $ */ +/* $Xorg: OCWrap.c,v 1.4 2000/08/17 19:44:47 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/OCWrap.c,v 1.2 1999/05/09 10:49:51 dawes Exp $ */ +/* $XFree86: xc/lib/X11/OCWrap.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/OMWrap.c b/xc/lib/X11/OMWrap.c index 40d9db172..ff22f38f6 100644 --- a/xc/lib/X11/OMWrap.c +++ b/xc/lib/X11/OMWrap.c @@ -1,4 +1,4 @@ -/* $XConsortium: OMWrap.c /main/3 1996/01/05 11:22:34 kaleb $ */ +/* $Xorg: OMWrap.c,v 1.4 2000/08/17 19:44:47 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/OMWrap.c,v 1.2 1999/05/09 10:49:51 dawes Exp $ */ +/* $XFree86: xc/lib/X11/OMWrap.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/OfCCC.c b/xc/lib/X11/OfCCC.c index 8c5a7c108..20d3a9bef 100644 --- a/xc/lib/X11/OfCCC.c +++ b/xc/lib/X11/OfCCC.c @@ -1,4 +1,4 @@ -/* $XConsortium: OfCCC.c,v 1.1 91/05/13 22:37:17 rws Exp $ */ +/* $Xorg: OfCCC.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/OpenDis.c b/xc/lib/X11/OpenDis.c index 4aa970bbd..813369eac 100644 --- a/xc/lib/X11/OpenDis.c +++ b/xc/lib/X11/OpenDis.c @@ -1,4 +1,4 @@ -/* $TOG: OpenDis.c /main/111 1998/02/06 17:46:07 kaleb $ */ +/* $Xorg: OpenDis.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /* Copyright 1985, 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/OpenDis.c,v 3.8 2000/11/27 05:06:44 dawes Exp $ */ +/* $XFree86: xc/lib/X11/OpenDis.c,v 3.9 2001/01/17 19:41:41 dawes Exp $ */ #define NEED_REPLIES #define NEED_EVENTS diff --git a/xc/lib/X11/ParseCmd.c b/xc/lib/X11/ParseCmd.c index 6d8cf2e83..1f9521303 100644 --- a/xc/lib/X11/ParseCmd.c +++ b/xc/lib/X11/ParseCmd.c @@ -1,4 +1,4 @@ -/* $TOG: ParseCmd.c /main/26 1998/02/06 17:46:14 kaleb $ */ +/* $Xorg: ParseCmd.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/ParseCmd.c,v 1.2 1998/12/20 11:56:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ParseCmd.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ /* XrmParseCommand() diff --git a/xc/lib/X11/ParseCol.c b/xc/lib/X11/ParseCol.c index 4111ef68b..5f0e44457 100644 --- a/xc/lib/X11/ParseCol.c +++ b/xc/lib/X11/ParseCol.c @@ -1,4 +1,4 @@ -/* $TOG: ParseCol.c /main/20 1998/02/06 17:46:21 kaleb $ */ +/* $Xorg: ParseCol.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ParseCol.c,v 1.2 1999/05/09 10:49:52 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ParseCol.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #define NEED_REPLIES #include <stdio.h> diff --git a/xc/lib/X11/ParseGeom.c b/xc/lib/X11/ParseGeom.c index c77f7f58d..8bed8c2d3 100644 --- a/xc/lib/X11/ParseGeom.c +++ b/xc/lib/X11/ParseGeom.c @@ -1,4 +1,4 @@ -/* $TOG: ParseGeom.c /main/11 1998/02/06 17:46:27 kaleb $ */ +/* $Xorg: ParseGeom.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/PeekEvent.c b/xc/lib/X11/PeekEvent.c index 6bf6e8753..255c35227 100644 --- a/xc/lib/X11/PeekEvent.c +++ b/xc/lib/X11/PeekEvent.c @@ -1,4 +1,4 @@ -/* $TOG: PeekEvent.c /main/8 1998/02/06 17:46:33 kaleb $ */ +/* $Xorg: PeekEvent.c,v 1.3 2000/08/17 19:44:47 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PeekEvent.c,v 1.2 1999/05/09 10:49:53 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PeekEvent.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/PeekIfEv.c b/xc/lib/X11/PeekIfEv.c index 4b8b6c13b..b49636ade 100644 --- a/xc/lib/X11/PeekIfEv.c +++ b/xc/lib/X11/PeekIfEv.c @@ -1,4 +1,4 @@ -/* $TOG: PeekIfEv.c /main/9 1998/02/06 17:46:39 kaleb $ */ +/* $Xorg: PeekIfEv.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PeekIfEv.c,v 1.2 1999/05/09 10:49:53 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PeekIfEv.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/Pending.c b/xc/lib/X11/Pending.c index b04e7e4ac..9c1146426 100644 --- a/xc/lib/X11/Pending.c +++ b/xc/lib/X11/Pending.c @@ -1,4 +1,4 @@ -/* $TOG: Pending.c /main/7 1998/02/06 17:46:45 kaleb $ */ +/* $Xorg: Pending.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/PixFormats.c b/xc/lib/X11/PixFormats.c index 7340787cb..efd94fede 100644 --- a/xc/lib/X11/PixFormats.c +++ b/xc/lib/X11/PixFormats.c @@ -1,4 +1,4 @@ -/* $TOG: PixFormats.c /main/7 1998/02/06 17:46:50 kaleb $ */ +/* $Xorg: PixFormats.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/X11/PmapBgnd.c b/xc/lib/X11/PmapBgnd.c index 171bb2a73..3f5346e75 100644 --- a/xc/lib/X11/PmapBgnd.c +++ b/xc/lib/X11/PmapBgnd.c @@ -1,4 +1,4 @@ -/* $TOG: PmapBgnd.c /main/7 1998/02/06 17:46:56 kaleb $ */ +/* $Xorg: PmapBgnd.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PmapBgnd.c,v 1.2 1999/05/09 10:49:53 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PmapBgnd.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/PmapBord.c b/xc/lib/X11/PmapBord.c index eba7ac484..645ae55ed 100644 --- a/xc/lib/X11/PmapBord.c +++ b/xc/lib/X11/PmapBord.c @@ -1,4 +1,4 @@ -/* $TOG: PmapBord.c /main/7 1998/02/06 17:47:02 kaleb $ */ +/* $Xorg: PmapBord.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PmapBord.c,v 1.2 1999/05/09 10:49:54 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PmapBord.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/PolyReg.c b/xc/lib/X11/PolyReg.c index d44b61383..62cfd4db3 100644 --- a/xc/lib/X11/PolyReg.c +++ b/xc/lib/X11/PolyReg.c @@ -1,4 +1,4 @@ -/* $TOG: PolyReg.c /main/15 1998/02/06 17:47:08 kaleb $ */ +/* $Xorg: PolyReg.c,v 1.4 2000/08/17 19:44:48 cpqbld Exp $ */ /************************************************************************ Copyright 1987, 1998 The Open Group @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ************************************************************************/ -/* $XFree86: xc/lib/X11/PolyReg.c,v 1.4 1998/10/03 08:41:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PolyReg.c,v 1.5 2001/01/17 19:41:41 dawes Exp $ */ #define LARGE_COORDINATE 1000000 #define SMALL_COORDINATE -LARGE_COORDINATE diff --git a/xc/lib/X11/PolyTxt.c b/xc/lib/X11/PolyTxt.c index a9ef121ed..b205d6886 100644 --- a/xc/lib/X11/PolyTxt.c +++ b/xc/lib/X11/PolyTxt.c @@ -1,4 +1,4 @@ -/* $TOG: PolyTxt.c /main/15 1998/02/06 17:47:21 kaleb $ */ +/* $Xorg: PolyTxt.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PolyTxt.c,v 3.3 1999/05/09 10:49:54 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PolyTxt.c,v 3.4 2001/01/17 19:41:41 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/PolyTxt16.c b/xc/lib/X11/PolyTxt16.c index 2bff5cbb0..a1000d13c 100644 --- a/xc/lib/X11/PolyTxt16.c +++ b/xc/lib/X11/PolyTxt16.c @@ -1,4 +1,4 @@ -/* $TOG: PolyTxt16.c /main/14 1998/02/06 17:47:14 kaleb $ */ +/* $Xorg: PolyTxt16.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PolyTxt16.c,v 1.2 1999/05/09 10:49:54 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PolyTxt16.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/PrOfId.c b/xc/lib/X11/PrOfId.c index 07d3d1035..7b301e41c 100644 --- a/xc/lib/X11/PrOfId.c +++ b/xc/lib/X11/PrOfId.c @@ -1,4 +1,4 @@ -/* $XConsortium: PrOfId.c,v 1.5 91/05/13 23:26:56 rws Exp $" */ +/* $Xorg: PrOfId.c,v 1.3 2000/08/17 19:44:48 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/PropAlloc.c b/xc/lib/X11/PropAlloc.c index 2c20ebe72..3020ad786 100644 --- a/xc/lib/X11/PropAlloc.c +++ b/xc/lib/X11/PropAlloc.c @@ -1,4 +1,4 @@ -/* $TOG: PropAlloc.c /main/7 1998/02/06 17:47:38 kaleb $ */ +/* $Xorg: PropAlloc.c,v 1.4 2000/08/17 19:44:48 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PropAlloc.c,v 1.2 1999/05/09 10:49:55 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PropAlloc.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ #include "Xlibint.h" #include "Xutil.h" diff --git a/xc/lib/X11/PutBEvent.c b/xc/lib/X11/PutBEvent.c index d7f360082..34303a8ba 100644 --- a/xc/lib/X11/PutBEvent.c +++ b/xc/lib/X11/PutBEvent.c @@ -1,4 +1,4 @@ -/* $TOG: PutBEvent.c /main/8 1998/02/06 17:47:43 kaleb $ */ +/* $Xorg: PutBEvent.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PutBEvent.c,v 1.2 1999/05/09 10:49:55 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PutBEvent.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */ /* XPutBackEvent puts an event back at the head of the queue. */ #define NEED_EVENTS diff --git a/xc/lib/X11/PutImage.c b/xc/lib/X11/PutImage.c index 597d28c36..1003620d6 100644 --- a/xc/lib/X11/PutImage.c +++ b/xc/lib/X11/PutImage.c @@ -1,4 +1,4 @@ -/* $TOG: PutImage.c /main/44 1998/02/06 17:47:49 kaleb $ */ +/* $Xorg: PutImage.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/PutImage.c,v 3.5 1999/05/09 10:49:56 dawes Exp $ */ +/* $XFree86: xc/lib/X11/PutImage.c,v 3.6 2001/01/17 19:41:41 dawes Exp $ */ #include "Xlibint.h" #include "Xutil.h" diff --git a/xc/lib/X11/QBlack.c b/xc/lib/X11/QBlack.c index cde59b43b..c54dccb42 100644 --- a/xc/lib/X11/QBlack.c +++ b/xc/lib/X11/QBlack.c @@ -1,4 +1,4 @@ -/* $XConsortium: QBlack.c,v 1.3 93/09/07 21:32:17 rws Exp $ */ +/* $Xorg: QBlack.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/QBlue.c b/xc/lib/X11/QBlue.c index 863449162..2bca3877f 100644 --- a/xc/lib/X11/QBlue.c +++ b/xc/lib/X11/QBlue.c @@ -1,4 +1,4 @@ -/* $XConsortium: QBlue.c,v 1.3 93/09/07 21:32:19 rws Exp $ */ +/* $Xorg: QBlue.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/QGreen.c b/xc/lib/X11/QGreen.c index b75504ba9..f7858c32a 100644 --- a/xc/lib/X11/QGreen.c +++ b/xc/lib/X11/QGreen.c @@ -1,4 +1,4 @@ -/* $XConsortium: QGreen.c,v 1.3 93/09/07 21:32:21 rws Exp $ */ +/* $Xorg: QGreen.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/QRed.c b/xc/lib/X11/QRed.c index b5c23b3c0..136ebc2e7 100644 --- a/xc/lib/X11/QRed.c +++ b/xc/lib/X11/QRed.c @@ -1,4 +1,4 @@ -/* $XConsortium: QRed.c,v 1.3 93/09/07 21:32:24 rws Exp $ */ +/* $Xorg: QRed.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/QWhite.c b/xc/lib/X11/QWhite.c index 84c0dd05b..93d37d38c 100644 --- a/xc/lib/X11/QWhite.c +++ b/xc/lib/X11/QWhite.c @@ -1,4 +1,4 @@ -/* $XConsortium: QWhite.c,v 1.3 93/09/07 21:32:26 rws Exp $ */ +/* $Xorg: QWhite.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/QuBest.c b/xc/lib/X11/QuBest.c index 9b9a4dc31..3b8b48a1e 100644 --- a/xc/lib/X11/QuBest.c +++ b/xc/lib/X11/QuBest.c @@ -1,4 +1,4 @@ -/* $TOG: QuBest.c /main/5 1998/02/06 17:48:26 kaleb $ */ +/* $Xorg: QuBest.c,v 1.3 2000/08/17 19:44:49 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/QuCol.c b/xc/lib/X11/QuCol.c index 44e22c5c1..0df0e66c1 100644 --- a/xc/lib/X11/QuCol.c +++ b/xc/lib/X11/QuCol.c @@ -1,4 +1,4 @@ -/* $XConsortium: QuCol.c,v 1.4 91/05/13 23:27:56 rws Exp $" */ +/* $Xorg: QuCol.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/QuCol.c,v 1.2 1999/05/09 10:49:56 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuCol.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/QuColor.c b/xc/lib/X11/QuColor.c index 4524903a2..64f31c379 100644 --- a/xc/lib/X11/QuColor.c +++ b/xc/lib/X11/QuColor.c @@ -1,4 +1,4 @@ -/* $TOG: QuColor.c /main/8 1998/02/06 17:48:39 kaleb $ */ +/* $Xorg: QuColor.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/QuColor.c,v 1.2 1999/05/09 10:49:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuColor.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/QuColors.c b/xc/lib/X11/QuColors.c index 781d7bae5..334453c3d 100644 --- a/xc/lib/X11/QuColors.c +++ b/xc/lib/X11/QuColors.c @@ -1,4 +1,4 @@ -/* $TOG: QuColors.c /main/11 1998/02/06 17:48:32 kaleb $ */ +/* $Xorg: QuColors.c,v 1.4 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/QuColors.c,v 1.2 1999/05/09 10:49:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuColors.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/QuCols.c b/xc/lib/X11/QuCols.c index f4a4df0d9..c857e46b6 100644 --- a/xc/lib/X11/QuCols.c +++ b/xc/lib/X11/QuCols.c @@ -1,4 +1,4 @@ -/* $XConsortium: QuCols.c,v 1.4 91/05/13 23:28:26 rws Exp $" */ +/* $Xorg: QuCols.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/QuCols.c,v 1.2 1999/05/09 10:49:57 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuCols.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/QuCurShp.c b/xc/lib/X11/QuCurShp.c index e863d8f9d..9a73e9b92 100644 --- a/xc/lib/X11/QuCurShp.c +++ b/xc/lib/X11/QuCurShp.c @@ -1,4 +1,4 @@ -/* $TOG: QuCurShp.c /main/5 1998/02/06 17:48:56 kaleb $ */ +/* $Xorg: QuCurShp.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/QuExt.c b/xc/lib/X11/QuExt.c index 036cdf74b..36fd840cb 100644 --- a/xc/lib/X11/QuExt.c +++ b/xc/lib/X11/QuExt.c @@ -1,4 +1,4 @@ -/* $TOG: QuExt.c /main/9 1998/02/06 17:49:02 kaleb $ */ +/* $Xorg: QuExt.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/QuKeybd.c b/xc/lib/X11/QuKeybd.c index 23438e73a..705d4b733 100644 --- a/xc/lib/X11/QuKeybd.c +++ b/xc/lib/X11/QuKeybd.c @@ -1,4 +1,4 @@ -/* $TOG: QuKeybd.c /main/8 1998/02/06 17:49:08 kaleb $ */ +/* $Xorg: QuKeybd.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/QuKeybd.c,v 1.2 1999/05/09 10:49:58 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuKeybd.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/QuPntr.c b/xc/lib/X11/QuPntr.c index 12fead63a..0f85c857d 100644 --- a/xc/lib/X11/QuPntr.c +++ b/xc/lib/X11/QuPntr.c @@ -1,4 +1,4 @@ -/* $TOG: QuPntr.c /main/6 1998/02/06 17:49:13 kaleb $ */ +/* $Xorg: QuPntr.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/QuStipShp.c b/xc/lib/X11/QuStipShp.c index 8ce3dae03..9ca68d9f1 100644 --- a/xc/lib/X11/QuStipShp.c +++ b/xc/lib/X11/QuStipShp.c @@ -1,4 +1,4 @@ -/* $TOG: QuStipShp.c /main/5 1998/02/06 17:49:18 kaleb $ */ +/* $Xorg: QuStipShp.c,v 1.3 2000/08/17 19:44:50 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/QuTextE16.c b/xc/lib/X11/QuTextE16.c index 6b53eaf8c..4c0dc3efc 100644 --- a/xc/lib/X11/QuTextE16.c +++ b/xc/lib/X11/QuTextE16.c @@ -1,4 +1,4 @@ -/* $TOG: QuTextE16.c /main/14 1998/02/06 17:49:24 kaleb $ */ +/* $Xorg: QuTextE16.c,v 1.4 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1986, 1987, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/QuTextE16.c,v 1.2 1999/05/09 10:49:58 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuTextE16.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/QuTextExt.c b/xc/lib/X11/QuTextExt.c index 96a4dad44..68716d0e8 100644 --- a/xc/lib/X11/QuTextExt.c +++ b/xc/lib/X11/QuTextExt.c @@ -1,4 +1,4 @@ -/* $TOG: QuTextExt.c /main/15 1998/02/06 17:49:30 kaleb $ */ +/* $Xorg: QuTextExt.c,v 1.4 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1986, 1987, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/QuTextExt.c,v 1.2 1999/05/09 10:49:58 dawes Exp $ */ +/* $XFree86: xc/lib/X11/QuTextExt.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/QuTileShp.c b/xc/lib/X11/QuTileShp.c index f87ed5773..5c0005ccf 100644 --- a/xc/lib/X11/QuTileShp.c +++ b/xc/lib/X11/QuTileShp.c @@ -1,4 +1,4 @@ -/* $TOG: QuTileShp.c /main/5 1998/02/06 17:49:36 kaleb $ */ +/* $Xorg: QuTileShp.c,v 1.3 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/QuTree.c b/xc/lib/X11/QuTree.c index 63240355f..30b4d5fe0 100644 --- a/xc/lib/X11/QuTree.c +++ b/xc/lib/X11/QuTree.c @@ -1,4 +1,4 @@ -/* $TOG: QuTree.c /main/8 1998/02/06 17:49:41 kaleb $ */ +/* $Xorg: QuTree.c,v 1.3 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/QuTree.c,v 1.4 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/QuTree.c,v 1.5 2001/01/17 19:41:42 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" diff --git a/xc/lib/X11/Quarks.c b/xc/lib/X11/Quarks.c index 1d74f7554..eb2b907b9 100644 --- a/xc/lib/X11/Quarks.c +++ b/xc/lib/X11/Quarks.c @@ -1,4 +1,4 @@ -/* $TOG: Quarks.c /main/43 1998/02/06 17:48:19 kaleb $ */ +/* $Xorg: Quarks.c,v 1.4 2000/08/17 19:44:51 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard, @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Quarks.c,v 1.2 1999/05/09 10:49:59 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Quarks.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" #include <X11/Xresource.h> @@ -159,7 +159,7 @@ char *Xpermalloc(length) if ((sizeof(TestType1) != (sizeof(TestType2) - sizeof(unsigned long) + sizeof(double))) && !(length & (DALIGN-1)) && - (i = (NEVERFREETABLESIZE - neverFreeTableSize) & (DALIGN-1))) { + ((i = (NEVERFREETABLESIZE - neverFreeTableSize) & (DALIGN-1)))) { neverFreeTableSize -= DALIGN - i; neverFreeTable += DALIGN - i; } else diff --git a/xc/lib/X11/RaiseWin.c b/xc/lib/X11/RaiseWin.c index 17b68d198..e0ac5f60f 100644 --- a/xc/lib/X11/RaiseWin.c +++ b/xc/lib/X11/RaiseWin.c @@ -1,4 +1,4 @@ -/* $TOG: RaiseWin.c /main/7 1998/02/06 17:49:52 kaleb $ */ +/* $Xorg: RaiseWin.c,v 1.3 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RaiseWin.c,v 1.2 1999/05/09 10:49:59 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RaiseWin.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/RdBitF.c b/xc/lib/X11/RdBitF.c index 1596b1d4e..6de97e960 100644 --- a/xc/lib/X11/RdBitF.c +++ b/xc/lib/X11/RdBitF.c @@ -1,4 +1,4 @@ -/* $TOG: RdBitF.c /main/20 1998/02/06 17:49:57 kaleb $ */ +/* $Xorg: RdBitF.c,v 1.4 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RdBitF.c,v 3.2 1999/05/09 10:50:00 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RdBitF.c,v 3.3 2001/01/17 19:41:42 dawes Exp $ */ /* * Code to read bitmaps from disk files. Interprets diff --git a/xc/lib/X11/RecolorC.c b/xc/lib/X11/RecolorC.c index 54469ed42..e0261d182 100644 --- a/xc/lib/X11/RecolorC.c +++ b/xc/lib/X11/RecolorC.c @@ -1,4 +1,4 @@ -/* $TOG: RecolorC.c /main/6 1998/02/06 17:50:03 kaleb $ */ +/* $Xorg: RecolorC.c,v 1.3 2000/08/17 19:44:51 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RecolorC.c,v 1.2 1999/05/09 10:50:00 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RecolorC.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ReconfWM.c b/xc/lib/X11/ReconfWM.c index 8cf8572e0..6e950e0b7 100644 --- a/xc/lib/X11/ReconfWM.c +++ b/xc/lib/X11/ReconfWM.c @@ -1,4 +1,4 @@ -/* $TOG: ReconfWM.c /main/10 1998/02/06 17:50:16 kaleb $ */ +/* $Xorg: ReconfWM.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/ReconfWin.c b/xc/lib/X11/ReconfWin.c index 80ff67655..6e756845d 100644 --- a/xc/lib/X11/ReconfWin.c +++ b/xc/lib/X11/ReconfWin.c @@ -1,4 +1,4 @@ -/* $TOG: ReconfWin.c /main/10 1998/02/06 17:50:10 kaleb $ */ +/* $Xorg: ReconfWin.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/ReconfWin.c,v 1.2 1999/05/09 10:50:01 dawes Exp $ */ +/* $XFree86: xc/lib/X11/ReconfWin.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Region.c b/xc/lib/X11/Region.c index b08e6d7f7..6f77517da 100644 --- a/xc/lib/X11/Region.c +++ b/xc/lib/X11/Region.c @@ -1,4 +1,4 @@ -/* $TOG: Region.c /main/31 1998/02/06 17:50:22 kaleb $ */ +/* $Xorg: Region.c,v 1.5 2000/08/17 19:44:52 cpqbld Exp $ */ /************************************************************************ Copyright 1987, 1988, 1998 The Open Group @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ************************************************************************/ -/* $XFree86: xc/lib/X11/Region.c,v 1.5 1999/05/09 10:50:01 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Region.c,v 1.6 2001/01/17 19:41:42 dawes Exp $ */ /* * The functions in this file implement the Region abstraction, similar to one * used in the X11 sample server. A Region is simply an area, as the name diff --git a/xc/lib/X11/RegstFlt.c b/xc/lib/X11/RegstFlt.c index 644a434a4..cc4c57ed7 100644 --- a/xc/lib/X11/RegstFlt.c +++ b/xc/lib/X11/RegstFlt.c @@ -1,4 +1,4 @@ -/* $TOG: RegstFlt.c /main/12 1998/02/06 17:50:36 kaleb $ */ +/* $Xorg: RegstFlt.c,v 1.4 2000/08/17 19:44:52 cpqbld Exp $ */ /* * Copyright 1990, 1991 by OMRON Corporation @@ -48,7 +48,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RegstFlt.c,v 1.2 1999/05/09 10:50:01 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RegstFlt.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/RepWindow.c b/xc/lib/X11/RepWindow.c index f00a1e94e..dd2b8094d 100644 --- a/xc/lib/X11/RepWindow.c +++ b/xc/lib/X11/RepWindow.c @@ -1,4 +1,4 @@ -/* $TOG: RepWindow.c /main/6 1998/02/06 17:50:42 kaleb $ */ +/* $Xorg: RepWindow.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RepWindow.c,v 1.2 1999/05/09 10:50:02 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RepWindow.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/RestackWs.c b/xc/lib/X11/RestackWs.c index c597259d3..87ed63094 100644 --- a/xc/lib/X11/RestackWs.c +++ b/xc/lib/X11/RestackWs.c @@ -1,4 +1,4 @@ -/* $TOG: RestackWs.c /main/10 1998/02/06 17:50:47 kaleb $ */ +/* $Xorg: RestackWs.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RestackWs.c,v 1.2 1999/05/09 10:50:02 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RestackWs.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/RotProp.c b/xc/lib/X11/RotProp.c index 008d1d2b6..bc802ab64 100644 --- a/xc/lib/X11/RotProp.c +++ b/xc/lib/X11/RotProp.c @@ -1,4 +1,4 @@ -/* $TOG: RotProp.c /main/9 1998/02/06 17:50:53 kaleb $ */ +/* $Xorg: RotProp.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/RotProp.c,v 1.2 1999/05/09 10:50:03 dawes Exp $ */ +/* $XFree86: xc/lib/X11/RotProp.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/ScrResStr.c b/xc/lib/X11/ScrResStr.c index e2951fadc..22e49ea6b 100644 --- a/xc/lib/X11/ScrResStr.c +++ b/xc/lib/X11/ScrResStr.c @@ -1,4 +1,4 @@ -/* $TOG: ScrResStr.c /main/4 1998/02/06 17:50:58 kaleb $ */ +/* $Xorg: ScrResStr.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group diff --git a/xc/lib/X11/SelInput.c b/xc/lib/X11/SelInput.c index 13882ad26..091102d78 100644 --- a/xc/lib/X11/SelInput.c +++ b/xc/lib/X11/SelInput.c @@ -1,4 +1,4 @@ -/* $TOG: SelInput.c /main/8 1998/02/06 17:51:04 kaleb $ */ +/* $Xorg: SelInput.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SelInput.c,v 1.2 1999/05/09 10:50:03 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SelInput.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SendEvent.c b/xc/lib/X11/SendEvent.c index 8b556f13d..b23160765 100644 --- a/xc/lib/X11/SendEvent.c +++ b/xc/lib/X11/SendEvent.c @@ -1,4 +1,4 @@ -/* $TOG: SendEvent.c /main/9 1998/02/06 17:51:10 kaleb $ */ +/* $Xorg: SendEvent.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/SetBack.c b/xc/lib/X11/SetBack.c index d1a3b0067..1f9a9e947 100644 --- a/xc/lib/X11/SetBack.c +++ b/xc/lib/X11/SetBack.c @@ -1,4 +1,4 @@ -/* $TOG: SetBack.c /main/6 1998/02/06 17:51:16 kaleb $ */ +/* $Xorg: SetBack.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetBack.c,v 1.2 1999/05/09 10:50:03 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetBack.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetCCC.c b/xc/lib/X11/SetCCC.c index b31c856be..d58daf8ab 100644 --- a/xc/lib/X11/SetCCC.c +++ b/xc/lib/X11/SetCCC.c @@ -1,4 +1,4 @@ -/* $XConsortium: SetCCC.c,v 1.5 93/09/07 21:32:37 rws Exp $ */ +/* $Xorg: SetCCC.c,v 1.3 2000/08/17 19:44:52 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/SetCRects.c b/xc/lib/X11/SetCRects.c index 5f1c87d99..ae4a973de 100644 --- a/xc/lib/X11/SetCRects.c +++ b/xc/lib/X11/SetCRects.c @@ -1,4 +1,4 @@ -/* $TOG: SetCRects.c /main/13 1998/02/06 17:51:38 kaleb $ */ +/* $Xorg: SetCRects.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetCRects.c,v 1.2 1999/05/09 10:50:05 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetCRects.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetClMask.c b/xc/lib/X11/SetClMask.c index e97e7d2a7..e95fa1397 100644 --- a/xc/lib/X11/SetClMask.c +++ b/xc/lib/X11/SetClMask.c @@ -1,4 +1,4 @@ -/* $TOG: SetClMask.c /main/7 1998/02/06 17:51:27 kaleb $ */ +/* $Xorg: SetClMask.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetClMask.c,v 1.2 1999/05/09 10:50:06 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetClMask.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetClOrig.c b/xc/lib/X11/SetClOrig.c index d6514539e..50086c076 100644 --- a/xc/lib/X11/SetClOrig.c +++ b/xc/lib/X11/SetClOrig.c @@ -1,4 +1,4 @@ -/* $TOG: SetClOrig.c /main/6 1998/02/06 17:51:33 kaleb $ */ +/* $Xorg: SetClOrig.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetClOrig.c,v 1.2 1999/05/09 10:50:06 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetClOrig.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetDashes.c b/xc/lib/X11/SetDashes.c index 20020adb1..7458739d5 100644 --- a/xc/lib/X11/SetDashes.c +++ b/xc/lib/X11/SetDashes.c @@ -1,4 +1,4 @@ -/* $TOG: SetDashes.c /main/9 1998/02/06 17:51:44 kaleb $ */ +/* $Xorg: SetDashes.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetDashes.c,v 1.2 1999/05/09 10:50:07 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetDashes.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetFPath.c b/xc/lib/X11/SetFPath.c index 33338b2f4..ae33a3bfb 100644 --- a/xc/lib/X11/SetFPath.c +++ b/xc/lib/X11/SetFPath.c @@ -1,4 +1,4 @@ -/* $TOG: SetFPath.c /main/10 1998/02/06 17:51:59 kaleb $ */ +/* $Xorg: SetFPath.c,v 1.4 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetFPath.c,v 1.4 1999/05/09 10:50:07 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetFPath.c,v 1.5 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetFont.c b/xc/lib/X11/SetFont.c index 74b77b4c4..8d705a4d1 100644 --- a/xc/lib/X11/SetFont.c +++ b/xc/lib/X11/SetFont.c @@ -1,4 +1,4 @@ -/* $TOG: SetFont.c /main/6 1998/02/06 17:51:49 kaleb $ */ +/* $Xorg: SetFont.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetFont.c,v 1.2 1999/05/09 10:50:07 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetFont.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetFore.c b/xc/lib/X11/SetFore.c index 24deb28dd..a515061fa 100644 --- a/xc/lib/X11/SetFore.c +++ b/xc/lib/X11/SetFore.c @@ -1,4 +1,4 @@ -/* $TOG: SetFore.c /main/6 1998/02/06 17:51:54 kaleb $ */ +/* $Xorg: SetFore.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetFore.c,v 1.2 1999/05/09 10:50:08 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetFore.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetFunc.c b/xc/lib/X11/SetFunc.c index df4d6035e..fd8c95b06 100644 --- a/xc/lib/X11/SetFunc.c +++ b/xc/lib/X11/SetFunc.c @@ -1,4 +1,4 @@ -/* $TOG: SetFunc.c /main/6 1998/02/06 17:52:05 kaleb $ */ +/* $Xorg: SetFunc.c,v 1.3 2000/08/17 19:44:53 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetFunc.c,v 1.2 1999/05/09 10:50:08 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetFunc.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetGetCols.c b/xc/lib/X11/SetGetCols.c index 1986cab66..5ee689852 100644 --- a/xc/lib/X11/SetGetCols.c +++ b/xc/lib/X11/SetGetCols.c @@ -1,4 +1,4 @@ -/* $XConsortium: SetGetCols.c,v 1.5 91/05/13 23:28:55 rws Exp $" */ +/* $Xorg: SetGetCols.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/SetHints.c b/xc/lib/X11/SetHints.c index 8b6756771..61cc42bb5 100644 --- a/xc/lib/X11/SetHints.c +++ b/xc/lib/X11/SetHints.c @@ -1,4 +1,4 @@ -/* $TOG: SetHints.c /main/25 1998/02/06 17:52:15 kaleb $ */ +/* $Xorg: SetHints.c,v 1.4 2000/08/17 19:44:54 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/SetHints.c,v 1.2 1999/05/09 10:50:08 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetHints.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xutil.h> diff --git a/xc/lib/X11/SetIFocus.c b/xc/lib/X11/SetIFocus.c index cd744d7c4..238769c4f 100644 --- a/xc/lib/X11/SetIFocus.c +++ b/xc/lib/X11/SetIFocus.c @@ -1,4 +1,4 @@ -/* $TOG: SetIFocus.c /main/6 1998/02/06 17:52:22 kaleb $ */ +/* $Xorg: SetIFocus.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetIFocus.c,v 1.2 1999/05/09 10:50:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetIFocus.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetLStyle.c b/xc/lib/X11/SetLStyle.c index 3a5b31ec6..4f65fac7b 100644 --- a/xc/lib/X11/SetLStyle.c +++ b/xc/lib/X11/SetLStyle.c @@ -1,4 +1,4 @@ -/* $TOG: SetLStyle.c /main/6 1998/02/06 17:52:34 kaleb $ */ +/* $Xorg: SetLStyle.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetLStyle.c,v 1.2 1999/05/09 10:50:09 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetLStyle.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetLocale.c b/xc/lib/X11/SetLocale.c index 4c1d30374..0147bce8d 100644 --- a/xc/lib/X11/SetLocale.c +++ b/xc/lib/X11/SetLocale.c @@ -1,4 +1,4 @@ -/* $TOG: SetLocale.c /main/42 1998/06/17 14:47:35 kaleb $ */ +/* $Xorg: SetLocale.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* * Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation, @@ -51,7 +51,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetLocale.c,v 3.12 2000/09/27 18:51:07 keithp Exp $ */ +/* $XFree86: xc/lib/X11/SetLocale.c,v 3.13 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/SetNrmHint.c b/xc/lib/X11/SetNrmHint.c index f74dd15e2..419a4dfab 100644 --- a/xc/lib/X11/SetNrmHint.c +++ b/xc/lib/X11/SetNrmHint.c @@ -1,4 +1,4 @@ -/* $TOG: SetNrmHint.c /main/5 1998/02/06 17:52:40 kaleb $ */ +/* $Xorg: SetNrmHint.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca, diff --git a/xc/lib/X11/SetPMask.c b/xc/lib/X11/SetPMask.c index e14800a69..33e550f59 100644 --- a/xc/lib/X11/SetPMask.c +++ b/xc/lib/X11/SetPMask.c @@ -1,4 +1,4 @@ -/* $TOG: SetPMask.c /main/6 1998/02/06 17:52:46 kaleb $ */ +/* $Xorg: SetPMask.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetPMask.c,v 1.2 1999/05/09 10:50:10 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetPMask.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetPntMap.c b/xc/lib/X11/SetPntMap.c index b09f3053b..8478da1ad 100644 --- a/xc/lib/X11/SetPntMap.c +++ b/xc/lib/X11/SetPntMap.c @@ -1,4 +1,4 @@ -/* $TOG: SetPntMap.c /main/14 1998/02/06 17:52:52 kaleb $ */ +/* $Xorg: SetPntMap.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetPntMap.c,v 1.2 1999/05/09 10:50:10 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetPntMap.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #define NEED_REPLIES diff --git a/xc/lib/X11/SetRGBCMap.c b/xc/lib/X11/SetRGBCMap.c index f552225ae..f26b61333 100644 --- a/xc/lib/X11/SetRGBCMap.c +++ b/xc/lib/X11/SetRGBCMap.c @@ -1,4 +1,4 @@ -/* $TOG: SetRGBCMap.c /main/6 1998/02/06 17:52:57 kaleb $ */ +/* $Xorg: SetRGBCMap.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/X11/SetSOwner.c b/xc/lib/X11/SetSOwner.c index ddad6b505..a9f678206 100644 --- a/xc/lib/X11/SetSOwner.c +++ b/xc/lib/X11/SetSOwner.c @@ -1,4 +1,4 @@ -/* $TOG: SetSOwner.c /main/6 1998/02/06 17:53:03 kaleb $ */ +/* $Xorg: SetSOwner.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetSOwner.c,v 1.2 1999/05/09 10:50:10 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetSOwner.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetSSaver.c b/xc/lib/X11/SetSSaver.c index 0eb3fa0ed..ae4c686f3 100644 --- a/xc/lib/X11/SetSSaver.c +++ b/xc/lib/X11/SetSSaver.c @@ -1,4 +1,4 @@ -/* $TOG: SetSSaver.c /main/6 1998/02/06 17:53:09 kaleb $ */ +/* $Xorg: SetSSaver.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetSSaver.c,v 1.2 1999/05/09 10:50:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetSSaver.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetStCmap.c b/xc/lib/X11/SetStCmap.c index c302990a3..d81e11756 100644 --- a/xc/lib/X11/SetStCmap.c +++ b/xc/lib/X11/SetStCmap.c @@ -1,4 +1,4 @@ -/* $TOG: SetStCmap.c /main/8 1998/02/06 17:53:20 kaleb $ */ +/* $Xorg: SetStCmap.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/SetState.c b/xc/lib/X11/SetState.c index fc683f28a..d90f1abf5 100644 --- a/xc/lib/X11/SetState.c +++ b/xc/lib/X11/SetState.c @@ -1,4 +1,4 @@ -/* $TOG: SetState.c /main/6 1998/02/06 17:53:15 kaleb $ */ +/* $Xorg: SetState.c,v 1.3 2000/08/17 19:44:54 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetState.c,v 1.2 1999/05/09 10:50:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetState.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetStip.c b/xc/lib/X11/SetStip.c index 39c190ff7..69314382e 100644 --- a/xc/lib/X11/SetStip.c +++ b/xc/lib/X11/SetStip.c @@ -1,4 +1,4 @@ -/* $TOG: SetStip.c /main/7 1998/02/06 17:53:26 kaleb $ */ +/* $Xorg: SetStip.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetStip.c,v 1.2 1999/05/09 10:50:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetStip.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetTSOrig.c b/xc/lib/X11/SetTSOrig.c index 5d87e43bb..e5adb5090 100644 --- a/xc/lib/X11/SetTSOrig.c +++ b/xc/lib/X11/SetTSOrig.c @@ -1,4 +1,4 @@ -/* $TOG: SetTSOrig.c /main/6 1998/02/06 17:53:37 kaleb $ */ +/* $Xorg: SetTSOrig.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetTSOrig.c,v 1.2 1999/05/09 10:50:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetTSOrig.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetTile.c b/xc/lib/X11/SetTile.c index dcd345836..095475b95 100644 --- a/xc/lib/X11/SetTile.c +++ b/xc/lib/X11/SetTile.c @@ -1,4 +1,4 @@ -/* $TOG: SetTile.c /main/7 1998/02/06 17:53:31 kaleb $ */ +/* $Xorg: SetTile.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/SetTile.c,v 1.2 1999/05/09 10:50:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/SetTile.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/SetTxtProp.c b/xc/lib/X11/SetTxtProp.c index bd17732eb..e2e6ce2cb 100644 --- a/xc/lib/X11/SetTxtProp.c +++ b/xc/lib/X11/SetTxtProp.c @@ -1,4 +1,4 @@ -/* $TOG: SetTxtProp.c /main/7 1998/02/06 17:53:43 kaleb $ */ +/* $Xorg: SetTxtProp.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca. diff --git a/xc/lib/X11/SetWMCMapW.c b/xc/lib/X11/SetWMCMapW.c index 3bec3ebe6..24d1f54f8 100644 --- a/xc/lib/X11/SetWMCMapW.c +++ b/xc/lib/X11/SetWMCMapW.c @@ -1,4 +1,4 @@ -/* $TOG: SetWMCMapW.c /main/6 1998/02/06 17:53:48 kaleb $ */ +/* $Xorg: SetWMCMapW.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/SetWMProto.c b/xc/lib/X11/SetWMProto.c index 5be77e56d..b761a319b 100644 --- a/xc/lib/X11/SetWMProto.c +++ b/xc/lib/X11/SetWMProto.c @@ -1,4 +1,4 @@ -/* $TOG: SetWMProto.c /main/6 1998/02/06 17:53:54 kaleb $ */ +/* $Xorg: SetWMProto.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/StBytes.c b/xc/lib/X11/StBytes.c index 5c8acf263..81b3eb311 100644 --- a/xc/lib/X11/StBytes.c +++ b/xc/lib/X11/StBytes.c @@ -1,4 +1,4 @@ -/* $TOG: StBytes.c /main/13 1998/02/06 17:54:00 kaleb $ */ +/* $Xorg: StBytes.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/StBytes.c,v 1.2 1999/05/09 10:50:13 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StBytes.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xatom.h> diff --git a/xc/lib/X11/StCol.c b/xc/lib/X11/StCol.c index a7592fb24..546768625 100644 --- a/xc/lib/X11/StCol.c +++ b/xc/lib/X11/StCol.c @@ -1,4 +1,4 @@ -/* $XConsortium: StCol.c,v 1.5 91/09/21 21:49:25 rws Exp $" */ +/* $Xorg: StCol.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/StCol.c,v 1.2 1999/05/09 10:50:13 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StCol.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/StColor.c b/xc/lib/X11/StColor.c index 7f08b303f..b8aadab3f 100644 --- a/xc/lib/X11/StColor.c +++ b/xc/lib/X11/StColor.c @@ -1,4 +1,4 @@ -/* $TOG: StColor.c /main/9 1998/02/06 17:54:13 kaleb $ */ +/* $Xorg: StColor.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/StColor.c,v 1.2 1999/05/09 10:50:13 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StColor.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/StColors.c b/xc/lib/X11/StColors.c index 437cc9ca2..ebd39162d 100644 --- a/xc/lib/X11/StColors.c +++ b/xc/lib/X11/StColors.c @@ -1,4 +1,4 @@ -/* $TOG: StColors.c /main/9 1998/02/06 17:54:07 kaleb $ */ +/* $Xorg: StColors.c,v 1.3 2000/08/17 19:44:55 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/StColors.c,v 1.2 1999/05/09 10:50:14 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StColors.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/StCols.c b/xc/lib/X11/StCols.c index 86f9b41ea..d35bd3369 100644 --- a/xc/lib/X11/StCols.c +++ b/xc/lib/X11/StCols.c @@ -1,4 +1,4 @@ -/* $XConsortium: StCols.c,v 1.8 93/09/07 21:32:42 rws Exp $" */ +/* $Xorg: StCols.c,v 1.3 2000/08/17 19:44:56 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/StCols.c,v 1.2 1999/05/09 10:50:14 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StCols.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/StNColor.c b/xc/lib/X11/StNColor.c index f0593abd3..710f9a535 100644 --- a/xc/lib/X11/StNColor.c +++ b/xc/lib/X11/StNColor.c @@ -1,4 +1,4 @@ -/* $TOG: StNColor.c /main/21 1998/02/06 17:54:35 kaleb $ */ +/* $Xorg: StNColor.c,v 1.3 2000/08/17 19:44:56 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/StNColor.c,v 1.2 1999/05/09 10:50:15 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StNColor.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include <stdio.h> #include "Xlibint.h" diff --git a/xc/lib/X11/StName.c b/xc/lib/X11/StName.c index ddc21d292..5f752da04 100644 --- a/xc/lib/X11/StName.c +++ b/xc/lib/X11/StName.c @@ -1,4 +1,4 @@ -/* $TOG: StName.c /main/10 1998/02/06 17:54:29 kaleb $ */ +/* $Xorg: StName.c,v 1.3 2000/08/17 19:44:56 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/StName.c,v 1.2 1999/05/09 10:50:15 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StName.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xatom.h> diff --git a/xc/lib/X11/StrKeysym.c b/xc/lib/X11/StrKeysym.c index 94c6314db..5a2d72b6e 100644 --- a/xc/lib/X11/StrKeysym.c +++ b/xc/lib/X11/StrKeysym.c @@ -1,4 +1,4 @@ -/* $TOG: StrKeysym.c /main/18 1998/02/06 17:54:40 kaleb $ */ +/* $Xorg: StrKeysym.c,v 1.4 2000/08/17 19:44:56 cpqbld Exp $ */ /* Copyright 1985, 1987, 1990, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/StrKeysym.c,v 3.3 2000/12/02 01:16:03 dawes Exp $ */ +/* $XFree86: xc/lib/X11/StrKeysym.c,v 3.4 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" #include <X11/Xresource.h> diff --git a/xc/lib/X11/StrToText.c b/xc/lib/X11/StrToText.c index 6c41623fe..80aa63e73 100644 --- a/xc/lib/X11/StrToText.c +++ b/xc/lib/X11/StrToText.c @@ -1,4 +1,4 @@ -/* $TOG: StrToText.c /main/6 1998/02/06 17:54:45 kaleb $ */ +/* $Xorg: StrToText.c,v 1.3 2000/08/17 19:44:56 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/X11/Sync.c b/xc/lib/X11/Sync.c index 779273860..f7de9c690 100644 --- a/xc/lib/X11/Sync.c +++ b/xc/lib/X11/Sync.c @@ -1,4 +1,4 @@ -/* $TOG: Sync.c /main/8 1998/02/06 17:54:56 kaleb $ */ +/* $Xorg: Sync.c,v 1.3 2000/08/17 19:44:56 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Sync.c,v 1.2 1999/05/09 10:50:16 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Sync.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #define NEED_REPLIES #define NEED_EVENTS diff --git a/xc/lib/X11/Synchro.c b/xc/lib/X11/Synchro.c index a693675eb..05dc8cfd9 100644 --- a/xc/lib/X11/Synchro.c +++ b/xc/lib/X11/Synchro.c @@ -1,4 +1,4 @@ -/* $TOG: Synchro.c /main/11 1998/02/06 17:54:51 kaleb $ */ +/* $Xorg: Synchro.c,v 1.3 2000/08/17 19:44:56 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/Text.c b/xc/lib/X11/Text.c index bbf2bd5a6..625b4e445 100644 --- a/xc/lib/X11/Text.c +++ b/xc/lib/X11/Text.c @@ -1,4 +1,4 @@ -/* $TOG: Text.c /main/14 1998/02/06 17:55:26 kaleb $ */ +/* $Xorg: Text.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Text.c,v 1.2 1999/05/09 10:50:16 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Text.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Text16.c b/xc/lib/X11/Text16.c index 7bd74c0c8..618f06ad7 100644 --- a/xc/lib/X11/Text16.c +++ b/xc/lib/X11/Text16.c @@ -1,4 +1,4 @@ -/* $TOG: Text16.c /main/13 1998/02/06 17:55:02 kaleb $ */ +/* $Xorg: Text16.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Text16.c,v 1.2 1999/05/09 10:50:16 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Text16.c,v 1.4 2001/01/21 22:58:08 keithp Exp $ */ #include "Xlibint.h" @@ -97,7 +97,7 @@ XDrawString16(dpy, d, gc, x, y, string, length) } } #else - memcpy ((char *) (elt + 1), (char *)CharacterOffset, 254 * 2); + memcpy (((char *) elt) + 2, (char *)CharacterOffset, 254 * 2); #endif PartialNChars = PartialNChars - 254; CharacterOffset += 254; @@ -120,7 +120,7 @@ XDrawString16(dpy, d, gc, x, y, string, length) } } #else - memcpy((char *)(elt + 1), (char *)CharacterOffset, PartialNChars * 2); + memcpy(((char *)elt) + 2, (char *)CharacterOffset, PartialNChars * 2); #endif } } diff --git a/xc/lib/X11/TextExt.c b/xc/lib/X11/TextExt.c index b72661176..1d6b7a96f 100644 --- a/xc/lib/X11/TextExt.c +++ b/xc/lib/X11/TextExt.c @@ -1,4 +1,4 @@ -/* $TOG: TextExt.c /main/22 1998/02/06 17:55:14 kaleb $ */ +/* $Xorg: TextExt.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/TextExt.c,v 1.2 1999/05/09 10:50:17 dawes Exp $ */ +/* $XFree86: xc/lib/X11/TextExt.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ /* * Copyright 1995 by FUJITSU LIMITED * This is source code modified by FUJITSU LIMITED under the Joint diff --git a/xc/lib/X11/TextExt16.c b/xc/lib/X11/TextExt16.c index 6656044d1..0a0d3ff28 100644 --- a/xc/lib/X11/TextExt16.c +++ b/xc/lib/X11/TextExt16.c @@ -1,4 +1,4 @@ -/* $TOG: TextExt16.c /main/17 1998/02/06 17:55:08 kaleb $ */ +/* $Xorg: TextExt16.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/TextExt16.c,v 1.2 1999/05/09 10:50:17 dawes Exp $ */ +/* $XFree86: xc/lib/X11/TextExt16.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ /* * Copyright 1995 by FUJITSU LIMITED * This is source code modified by FUJITSU LIMITED under the Joint diff --git a/xc/lib/X11/TextToStr.c b/xc/lib/X11/TextToStr.c index 42b6c61ba..2c7bc68f8 100644 --- a/xc/lib/X11/TextToStr.c +++ b/xc/lib/X11/TextToStr.c @@ -1,4 +1,4 @@ -/* $TOG: TextToStr.c /main/6 1998/02/06 17:55:20 kaleb $ */ +/* $Xorg: TextToStr.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/TextToStr.c,v 1.3 1998/10/03 08:41:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/TextToStr.c,v 1.4 2001/01/17 19:41:45 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xatom.h> diff --git a/xc/lib/X11/TrCoords.c b/xc/lib/X11/TrCoords.c index e94b2ec9c..77080ec18 100644 --- a/xc/lib/X11/TrCoords.c +++ b/xc/lib/X11/TrCoords.c @@ -1,4 +1,4 @@ -/* $TOG: TrCoords.c /main/7 1998/02/06 17:55:31 kaleb $ */ +/* $Xorg: TrCoords.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/UNDEFINED.c b/xc/lib/X11/UNDEFINED.c index ad0139d25..a4e05551a 100644 --- a/xc/lib/X11/UNDEFINED.c +++ b/xc/lib/X11/UNDEFINED.c @@ -1,4 +1,4 @@ -/* $XConsortium: UNDEFINED.c,v 1.5 91/07/25 01:10:56 rws Exp $" */ +/* $Xorg: UNDEFINED.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/UndefCurs.c b/xc/lib/X11/UndefCurs.c index 56262f40a..a2ca0612c 100644 --- a/xc/lib/X11/UndefCurs.c +++ b/xc/lib/X11/UndefCurs.c @@ -1,4 +1,4 @@ -/* $TOG: UndefCurs.c /main/7 1998/02/06 17:55:44 kaleb $ */ +/* $Xorg: UndefCurs.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UndefCurs.c,v 1.2 1999/05/09 10:50:18 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UndefCurs.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UngrabBut.c b/xc/lib/X11/UngrabBut.c index 6175c48ea..bb05af178 100644 --- a/xc/lib/X11/UngrabBut.c +++ b/xc/lib/X11/UngrabBut.c @@ -1,4 +1,4 @@ -/* $TOG: UngrabBut.c /main/6 1998/02/06 17:55:56 kaleb $ */ +/* $Xorg: UngrabBut.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UngrabBut.c,v 1.2 1999/05/09 10:50:18 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UngrabBut.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UngrabKbd.c b/xc/lib/X11/UngrabKbd.c index c20d22f8f..16251645f 100644 --- a/xc/lib/X11/UngrabKbd.c +++ b/xc/lib/X11/UngrabKbd.c @@ -1,4 +1,4 @@ -/* $TOG: UngrabKbd.c /main/6 1998/02/06 17:56:02 kaleb $ */ +/* $Xorg: UngrabKbd.c,v 1.3 2000/08/17 19:44:57 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UngrabKbd.c,v 1.2 1999/05/09 10:50:18 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UngrabKbd.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UngrabKey.c b/xc/lib/X11/UngrabKey.c index f9075bbe8..38e4a7cc0 100644 --- a/xc/lib/X11/UngrabKey.c +++ b/xc/lib/X11/UngrabKey.c @@ -1,4 +1,4 @@ -/* $TOG: UngrabKey.c /main/6 1998/02/06 17:56:08 kaleb $ */ +/* $Xorg: UngrabKey.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UngrabKey.c,v 1.2 1999/05/09 10:50:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UngrabKey.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UngrabPtr.c b/xc/lib/X11/UngrabPtr.c index 61ca84749..9ae977438 100644 --- a/xc/lib/X11/UngrabPtr.c +++ b/xc/lib/X11/UngrabPtr.c @@ -1,4 +1,4 @@ -/* $TOG: UngrabPtr.c /main/6 1998/02/06 17:56:13 kaleb $ */ +/* $Xorg: UngrabPtr.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UngrabPtr.c,v 1.2 1999/05/09 10:50:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UngrabPtr.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UngrabSvr.c b/xc/lib/X11/UngrabSvr.c index fc60e1d71..a0451d4a7 100644 --- a/xc/lib/X11/UngrabSvr.c +++ b/xc/lib/X11/UngrabSvr.c @@ -1,4 +1,4 @@ -/* $TOG: UngrabSvr.c /main/6 1998/02/06 17:56:19 kaleb $ */ +/* $Xorg: UngrabSvr.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UngrabSvr.c,v 1.2 1999/05/09 10:50:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UngrabSvr.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UninsCmap.c b/xc/lib/X11/UninsCmap.c index 426d4cba1..d650fd934 100644 --- a/xc/lib/X11/UninsCmap.c +++ b/xc/lib/X11/UninsCmap.c @@ -1,4 +1,4 @@ -/* $TOG: UninsCmap.c /main/6 1998/02/06 17:56:24 kaleb $ */ +/* $Xorg: UninsCmap.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UninsCmap.c,v 1.2 1999/05/09 10:50:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UninsCmap.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UnldFont.c b/xc/lib/X11/UnldFont.c index 54ad6c12b..977ee6cf2 100644 --- a/xc/lib/X11/UnldFont.c +++ b/xc/lib/X11/UnldFont.c @@ -1,4 +1,4 @@ - /* $TOG: UnldFont.c /main/6 1998/02/06 17:56:30 kaleb $ */ + /* $Xorg: UnldFont.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UnldFont.c,v 1.2 1999/05/09 10:50:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UnldFont.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UnmapSubs.c b/xc/lib/X11/UnmapSubs.c index c66fa1079..cb5bbc632 100644 --- a/xc/lib/X11/UnmapSubs.c +++ b/xc/lib/X11/UnmapSubs.c @@ -1,4 +1,4 @@ -/* $TOG: UnmapSubs.c /main/6 1998/02/06 17:56:35 kaleb $ */ +/* $Xorg: UnmapSubs.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UnmapSubs.c,v 1.2 1999/05/09 10:50:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UnmapSubs.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/UnmapWin.c b/xc/lib/X11/UnmapWin.c index 30ee84e4e..eb3e63759 100644 --- a/xc/lib/X11/UnmapWin.c +++ b/xc/lib/X11/UnmapWin.c @@ -1,4 +1,4 @@ -/* $TOG: UnmapWin.c /main/6 1998/02/06 17:56:41 kaleb $ */ +/* $Xorg: UnmapWin.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/UnmapWin.c,v 1.2 1999/05/09 10:50:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/UnmapWin.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/VisUtil.c b/xc/lib/X11/VisUtil.c index c418c9366..1a7a8e298 100644 --- a/xc/lib/X11/VisUtil.c +++ b/xc/lib/X11/VisUtil.c @@ -1,4 +1,4 @@ -/* $TOG: VisUtil.c /main/11 1998/02/06 17:56:53 kaleb $ */ +/* $Xorg: VisUtil.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group diff --git a/xc/lib/X11/WMGeom.c b/xc/lib/X11/WMGeom.c index 9f6888e96..121cc979a 100644 --- a/xc/lib/X11/WMGeom.c +++ b/xc/lib/X11/WMGeom.c @@ -1,4 +1,4 @@ -/* $TOG: WMGeom.c /main/6 1998/02/06 17:57:27 kaleb $ */ +/* $Xorg: WMGeom.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/X11/WMProps.c b/xc/lib/X11/WMProps.c index e9f88a3b5..17619ba2e 100644 --- a/xc/lib/X11/WMProps.c +++ b/xc/lib/X11/WMProps.c @@ -1,4 +1,4 @@ -/* $TOG: WMProps.c /main/10 1998/02/06 17:57:32 kaleb $ */ +/* $Xorg: WMProps.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1987, 1988, 1993, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/WMProps.c,v 3.3 2000/03/31 20:13:12 dawes Exp $ */ +/* $XFree86: xc/lib/X11/WMProps.c,v 3.4 2001/01/17 19:41:46 dawes Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca., diff --git a/xc/lib/X11/WarpPtr.c b/xc/lib/X11/WarpPtr.c index 48fc3b740..1a65685dd 100644 --- a/xc/lib/X11/WarpPtr.c +++ b/xc/lib/X11/WarpPtr.c @@ -1,4 +1,4 @@ -/* $TOG: WarpPtr.c /main/6 1998/02/06 17:56:58 kaleb $ */ +/* $Xorg: WarpPtr.c,v 1.3 2000/08/17 19:44:58 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/WarpPtr.c,v 1.2 1999/05/09 10:50:22 dawes Exp $ */ +/* $XFree86: xc/lib/X11/WarpPtr.c,v 1.3 2001/01/17 19:41:47 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/WinEvent.c b/xc/lib/X11/WinEvent.c index 80e460ba8..e3d9792d7 100644 --- a/xc/lib/X11/WinEvent.c +++ b/xc/lib/X11/WinEvent.c @@ -1,4 +1,4 @@ -/* $TOG: WinEvent.c /main/13 1998/02/06 17:57:15 kaleb $ */ +/* $Xorg: WinEvent.c,v 1.3 2000/08/17 19:44:59 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/WinEvent.c,v 3.2 1999/05/09 10:50:22 dawes Exp $ */ +/* $XFree86: xc/lib/X11/WinEvent.c,v 3.3 2001/01/17 19:41:47 dawes Exp $ */ #define NEED_EVENTS #include "Xlibint.h" diff --git a/xc/lib/X11/Window.c b/xc/lib/X11/Window.c index 5228fcfc6..6a35ab0d3 100644 --- a/xc/lib/X11/Window.c +++ b/xc/lib/X11/Window.c @@ -1,4 +1,4 @@ -/* $TOG: Window.c /main/10 1998/02/06 17:57:10 kaleb $ */ +/* $Xorg: Window.c,v 1.4 2000/08/17 19:44:59 cpqbld Exp $ */ /* Copyright 1986, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Window.c,v 1.2 1999/05/09 10:50:22 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Window.c,v 1.3 2001/01/17 19:41:47 dawes Exp $ */ #include "Xlibint.h" diff --git a/xc/lib/X11/Withdraw.c b/xc/lib/X11/Withdraw.c index 5e58aceae..0485c7193 100644 --- a/xc/lib/X11/Withdraw.c +++ b/xc/lib/X11/Withdraw.c @@ -1,4 +1,4 @@ -/* $TOG: Withdraw.c /main/7 1998/02/06 17:57:21 kaleb $ */ +/* $Xorg: Withdraw.c,v 1.3 2000/08/17 19:44:59 cpqbld Exp $ */ /*********************************************************** Copyright 1988 by Wyse Technology, Inc., San Jose, Ca., diff --git a/xc/lib/X11/WrBitF.c b/xc/lib/X11/WrBitF.c index 45a7bd116..eb2f47752 100644 --- a/xc/lib/X11/WrBitF.c +++ b/xc/lib/X11/WrBitF.c @@ -1,4 +1,4 @@ -/* $TOG: WrBitF.c /main/14 1998/02/06 17:57:38 kaleb $ */ +/* $Xorg: WrBitF.c,v 1.3 2000/08/17 19:44:59 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/WrBitF.c,v 3.2 1998/10/03 08:41:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/WrBitF.c,v 3.3 2001/01/17 19:41:47 dawes Exp $ */ #include "Xlibint.h" #include <X11/Xos.h> diff --git a/xc/lib/X11/X11-def.cpp b/xc/lib/X11/X11-def.cpp index 9c862e86f..71a2a3e1b 100644 --- a/xc/lib/X11/X11-def.cpp +++ b/xc/lib/X11/X11-def.cpp @@ -840,5 +840,7 @@ EXPORTS XkbUpdateKeyTypeVirtualMods XkbUpdateMapFromCore XkbXlibControlsImplemented -/* $TOG: X11-def.cpp /main/19 1998/06/16 16:04:58 kaleb $ */ -/* $XFree86: xc/lib/X11/X11-def.cpp,v 1.6 2000/08/09 23:40:12 dawes Exp $ */ + Xutf8TextPropertyToTextList + +/* $Xorg: X11-def.cpp,v 1.3 2000/08/17 19:44:59 cpqbld Exp $ */ +/* $XFree86: xc/lib/X11/X11-def.cpp,v 1.8 2001/02/13 19:19:11 dawes Exp $ */ diff --git a/xc/lib/X11/XErrorDB b/xc/lib/X11/XErrorDB index dfcffe3da..37c66d53e 100644 --- a/xc/lib/X11/XErrorDB +++ b/xc/lib/X11/XErrorDB @@ -1,4 +1,4 @@ -! $TOG: XErrorDB /main/48 1998/02/11 15:36:23 kaleb $ +! $Xorg: XErrorDB,v 1.3 2000/08/17 19:44:59 cpqbld Exp $ ! Copyright 1993, 1995, 1998 The Open Group ! All Rights Reserved. @@ -19,7 +19,7 @@ ! other dealings in this Software without prior written authorization ! from The Open Group. ! -! $XFree86: xc/lib/X11/XErrorDB,v 3.33 2000/04/17 16:29:48 eich Exp $ +! $XFree86: xc/lib/X11/XErrorDB,v 3.34 2001/01/17 19:41:47 dawes Exp $ ! ! these are used in XGetErrorMessage. XlibMessage.XError: X Error of failed request diff --git a/xc/lib/X11/XKB.c b/xc/lib/X11/XKB.c index 5865e870d..dd93e08a1 100644 --- a/xc/lib/X11/XKB.c +++ b/xc/lib/X11/XKB.c @@ -1,4 +1,4 @@ -/* $TOG: XKB.c /main/23 1997/11/10 15:13:33 kaleb $ */ +/* $Xorg: XKB.c,v 1.3 2000/08/17 19:44:59 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKB.c,v 1.3 1999/05/09 10:50:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKB.c,v 1.4 2001/01/17 19:41:48 dawes Exp $ */ #include <stdio.h> #define NEED_REPLIES diff --git a/xc/lib/X11/XKBAlloc.c b/xc/lib/X11/XKBAlloc.c index 18db21a1f..c6fd855fe 100644 --- a/xc/lib/X11/XKBAlloc.c +++ b/xc/lib/X11/XKBAlloc.c @@ -1,4 +1,4 @@ -/* $TOG: XKBAlloc.c /main/7 1997/08/17 20:47:47 kaleb $ */ +/* $Xorg: XKBAlloc.c,v 1.4 2000/08/17 19:44:59 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBAlloc.c,v 3.4 1998/08/20 08:55:49 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBAlloc.c,v 3.5 2001/01/17 19:41:48 dawes Exp $ */ #ifndef XKB_IN_SERVER diff --git a/xc/lib/X11/XKBBell.c b/xc/lib/X11/XKBBell.c index b2417d654..3b6bb850f 100644 --- a/xc/lib/X11/XKBBell.c +++ b/xc/lib/X11/XKBBell.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBBell.c /main/4 1996/01/01 11:25:48 kaleb $ */ +/* $Xorg: XKBBell.c,v 1.3 2000/08/17 19:45:00 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBBind.c b/xc/lib/X11/XKBBind.c index c7f5d8ce0..3ed7bddd8 100644 --- a/xc/lib/X11/XKBBind.c +++ b/xc/lib/X11/XKBBind.c @@ -1,4 +1,4 @@ -/* $TOG: XKBBind.c /main/28 1998/02/06 17:59:23 kaleb $ */ +/* $Xorg: XKBBind.c,v 1.3 2000/08/17 19:45:00 cpqbld Exp $ */ /* Copyright 1985, 1987, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/XKBBind.c,v 3.12 2000/08/26 15:11:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBBind.c,v 3.13 2001/01/17 19:41:48 dawes Exp $ */ /* the new monsters ate the old ones */ diff --git a/xc/lib/X11/XKBCompat.c b/xc/lib/X11/XKBCompat.c index 4a1b81650..73c7d76d1 100644 --- a/xc/lib/X11/XKBCompat.c +++ b/xc/lib/X11/XKBCompat.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBCompat.c /main/8 1996/03/01 14:29:32 kaleb $ */ +/* $Xorg: XKBCompat.c,v 1.3 2000/08/17 19:45:00 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBCtrls.c b/xc/lib/X11/XKBCtrls.c index 4e5439b36..1d4527866 100644 --- a/xc/lib/X11/XKBCtrls.c +++ b/xc/lib/X11/XKBCtrls.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBCtrls.c /main/7 1996/02/02 14:09:20 kaleb $ */ +/* $Xorg: XKBCtrls.c,v 1.3 2000/08/17 19:45:00 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBCtrls.c,v 1.2 2000/08/26 15:11:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBCtrls.c,v 1.3 2001/01/17 19:41:48 dawes Exp $ */ #include <stdio.h> #define NEED_REPLIES diff --git a/xc/lib/X11/XKBCvt.c b/xc/lib/X11/XKBCvt.c index 71d3d05ae..3e0eadd4d 100644 --- a/xc/lib/X11/XKBCvt.c +++ b/xc/lib/X11/XKBCvt.c @@ -1,4 +1,4 @@ -/* $TOG: XKBCvt.c /main/35 1998/05/30 20:29:41 kaleb $ */ +/* $Xorg: XKBCvt.c,v 1.4 2000/08/17 19:45:00 cpqbld Exp $ */ /* Copyright 1988, 1989, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/XKBCvt.c,v 3.28 2000/11/28 17:25:07 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBCvt.c,v 3.30 2001/02/09 00:02:53 dawes Exp $ */ #include <stdio.h> #include <sys/types.h> @@ -266,7 +266,7 @@ _XkbGetConverters(encoding_name, cvt_rtrn) */ #define CHARSET_FILE "/usr/lib/X11/input/charsets" -static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:eo=iso8859-3:sp=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:he=iso8859-8:tr=iso8859-9:lt,lv=iso8859-13:et,fi=iso8859-15:ru=koi8-r:uk=koi8-u:th,th_TH,th_TH.TACTIS=tactis:hy=armscii-8:vi=tcvn-5712:ka=georgian-academy:be,bg=microsoft-cp1251"; +static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:eo=iso8859-3:sp=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:he=iso8859-8:tr=iso8859-9:lt,lv=iso8859-13:et,fi=iso8859-15:ru=koi8-r:uk=koi8-u:th,th_TH,th_TH.TIS620=tis620:hy=armscii-8:vi=tcvn-5712:ka=georgian-academy:be,bg=microsoft-cp1251"; char * _XkbGetCharset() diff --git a/xc/lib/X11/XKBExtDev.c b/xc/lib/X11/XKBExtDev.c index d0056089a..6d6f40417 100644 --- a/xc/lib/X11/XKBExtDev.c +++ b/xc/lib/X11/XKBExtDev.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBExtDev.c /main/3 1996/08/31 12:44:26 kaleb $ */ +/* $Xorg: XKBExtDev.c,v 1.3 2000/08/17 19:45:01 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBExtDev.c,v 3.2 1999/05/09 10:50:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBExtDev.c,v 3.3 2001/01/17 19:41:48 dawes Exp $ */ #include <stdio.h> #define NEED_REPLIES diff --git a/xc/lib/X11/XKBGAlloc.c b/xc/lib/X11/XKBGAlloc.c index be3639afc..44a74c6a8 100644 --- a/xc/lib/X11/XKBGAlloc.c +++ b/xc/lib/X11/XKBGAlloc.c @@ -1,4 +1,4 @@ -/* $TOG: XKBGAlloc.c /main/8 1997/08/17 20:49:48 kaleb $ */ +/* $Xorg: XKBGAlloc.c,v 1.3 2000/08/17 19:45:01 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBGAlloc.c,v 3.3 1997/10/26 13:24:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBGAlloc.c,v 3.4 2001/01/17 19:41:48 dawes Exp $ */ #define NEED_EVENTS #define NEED_REPLIES diff --git a/xc/lib/X11/XKBGeom.c b/xc/lib/X11/XKBGeom.c index ae4fd473b..afe76489e 100644 --- a/xc/lib/X11/XKBGeom.c +++ b/xc/lib/X11/XKBGeom.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBGeom.c /main/7 1996/02/02 14:38:29 kaleb $ */ +/* $Xorg: XKBGeom.c,v 1.4 2000/08/17 19:45:01 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBGeom.c,v 1.2 1999/05/09 10:50:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBGeom.c,v 1.3 2001/01/17 19:41:48 dawes Exp $ */ #ifdef DEBUG #include <stdio.h> diff --git a/xc/lib/X11/XKBGetByName.c b/xc/lib/X11/XKBGetByName.c index 8460664c1..411be961f 100644 --- a/xc/lib/X11/XKBGetByName.c +++ b/xc/lib/X11/XKBGetByName.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBGetByName.c /main/4 1996/01/01 11:26:52 kaleb $ */ +/* $Xorg: XKBGetByName.c,v 1.3 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBGetMap.c b/xc/lib/X11/XKBGetMap.c index db447ed33..a5df0ec07 100644 --- a/xc/lib/X11/XKBGetMap.c +++ b/xc/lib/X11/XKBGetMap.c @@ -1,4 +1,4 @@ -/* $TOG: XKBGetMap.c /main/11 1998/06/17 13:24:49 kaleb $ */ +/* $Xorg: XKBGetMap.c,v 1.4 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -25,7 +25,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBGetMap.c,v 1.5 2000/02/17 14:16:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBGetMap.c,v 1.6 2001/01/17 19:41:48 dawes Exp $ */ #define NEED_REPLIES #define NEED_EVENTS diff --git a/xc/lib/X11/XKBList.c b/xc/lib/X11/XKBList.c index 69b4732d7..9f521a607 100644 --- a/xc/lib/X11/XKBList.c +++ b/xc/lib/X11/XKBList.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBList.c /main/3 1996/02/05 06:00:46 kaleb $ */ +/* $Xorg: XKBList.c,v 1.3 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBMAlloc.c b/xc/lib/X11/XKBMAlloc.c index 3dd900145..29cdc3c80 100644 --- a/xc/lib/X11/XKBMAlloc.c +++ b/xc/lib/X11/XKBMAlloc.c @@ -1,4 +1,4 @@ -/* $TOG: XKBMAlloc.c /main/8 1997/08/17 20:51:56 kaleb $ */ +/* $Xorg: XKBMAlloc.c,v 1.4 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBMAlloc.c,v 3.10 1998/10/03 08:41:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBMAlloc.c,v 3.11 2001/01/17 19:41:48 dawes Exp $ */ #ifndef XKB_IN_SERVER diff --git a/xc/lib/X11/XKBMisc.c b/xc/lib/X11/XKBMisc.c index f2a44aafe..2e4fe9666 100644 --- a/xc/lib/X11/XKBMisc.c +++ b/xc/lib/X11/XKBMisc.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBMisc.c /main/3 1996/03/01 14:29:50 kaleb $ */ +/* $Xorg: XKBMisc.c,v 1.4 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBMisc.c,v 3.2 1999/05/09 10:50:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBMisc.c,v 3.3 2001/01/17 19:41:48 dawes Exp $ */ #ifndef XKB_IN_SERVER @@ -474,7 +474,7 @@ KeySym * syms; unsigned char explicit,mods; XkbSymInterpretPtr *interps,ibuf[IBUF_SIZE]; int n,nSyms,found; -unsigned changed,tmp; +unsigned changed,tmp; if ((!xkb)||(!xkb->map)||(!xkb->map->key_sym_map)|| (!xkb->compat)||(!xkb->compat->sym_interpret)|| diff --git a/xc/lib/X11/XKBNames.c b/xc/lib/X11/XKBNames.c index b1a5ea43d..22439d291 100644 --- a/xc/lib/X11/XKBNames.c +++ b/xc/lib/X11/XKBNames.c @@ -1,4 +1,4 @@ -/* $TOG: XKBNames.c /main/10 1997/09/08 13:56:03 kaleb $ */ +/* $Xorg: XKBNames.c,v 1.3 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBRdBuf.c b/xc/lib/X11/XKBRdBuf.c index a6449ed4a..11a9ba71b 100644 --- a/xc/lib/X11/XKBRdBuf.c +++ b/xc/lib/X11/XKBRdBuf.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBRdBuf.c /main/7 1996/01/14 16:43:48 kaleb $ */ +/* $Xorg: XKBRdBuf.c,v 1.3 2000/08/17 19:45:02 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBSetGeom.c b/xc/lib/X11/XKBSetGeom.c index afa4f06a5..72d7f3d74 100644 --- a/xc/lib/X11/XKBSetGeom.c +++ b/xc/lib/X11/XKBSetGeom.c @@ -1,4 +1,4 @@ -/* $TOG: XKBSetGeom.c /main/8 1997/06/10 06:53:24 kaleb $ */ +/* $Xorg: XKBSetGeom.c,v 1.3 2000/08/17 19:45:03 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBSetMap.c b/xc/lib/X11/XKBSetMap.c index 414e722e6..331ad4025 100644 --- a/xc/lib/X11/XKBSetMap.c +++ b/xc/lib/X11/XKBSetMap.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBSetMap.c /main/8 1996/03/01 14:30:01 kaleb $ */ +/* $Xorg: XKBSetMap.c,v 1.4 2000/08/17 19:45:03 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBSetMap.c,v 3.1 1999/05/09 10:50:25 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBSetMap.c,v 3.2 2001/01/17 19:41:49 dawes Exp $ */ #include <stdio.h> #define NEED_REPLIES diff --git a/xc/lib/X11/XKBUse.c b/xc/lib/X11/XKBUse.c index 51e53d3eb..a1a2347af 100644 --- a/xc/lib/X11/XKBUse.c +++ b/xc/lib/X11/XKBUse.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBUse.c /main/15 1996/09/28 16:34:51 rws $ */ +/* $Xorg: XKBUse.c,v 1.3 2000/08/17 19:45:03 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBUse.c,v 3.3 2000/08/26 15:11:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBUse.c,v 3.4 2001/01/17 19:41:49 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/X11/XKBleds.c b/xc/lib/X11/XKBleds.c index 4d368e0b3..a46361571 100644 --- a/xc/lib/X11/XKBleds.c +++ b/xc/lib/X11/XKBleds.c @@ -1,4 +1,4 @@ -/* $XConsortium: XKBleds.c /main/6 1996/01/14 16:43:58 kaleb $ */ +/* $Xorg: XKBleds.c,v 1.3 2000/08/17 19:45:03 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/X11/XKBlib.h b/xc/lib/X11/XKBlib.h index 333d132e1..0369c8c66 100644 --- a/xc/lib/X11/XKBlib.h +++ b/xc/lib/X11/XKBlib.h @@ -1,4 +1,4 @@ -/* $TOG: XKBlib.h /main/18 1997/12/12 09:03:32 kaleb $ */ +/* $Xorg: XKBlib.h,v 1.6 2000/08/17 19:45:03 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -28,6 +28,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef _XKBLIB_H_ #define _XKBLIB_H_ +#include <X11/Xlib.h> #include <X11/extensions/XKBstr.h> typedef struct _XkbAnyEvent { diff --git a/xc/lib/X11/XKBlibint.h b/xc/lib/X11/XKBlibint.h index 2945fc7cc..b287cf67d 100644 --- a/xc/lib/X11/XKBlibint.h +++ b/xc/lib/X11/XKBlibint.h @@ -1,4 +1,4 @@ -/* $TOG: XKBlibint.h /main/15 1997/06/10 06:53:27 kaleb $ */ +/* $Xorg: XKBlibint.h,v 1.3 2000/08/17 19:45:04 cpqbld Exp $ */ /************************************************************ Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/X11/XKBlibint.h,v 3.3 1997/06/22 10:16:51 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XKBlibint.h,v 3.4 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XKBLIBINT_H_ #define _XKBLIBINT_H_ diff --git a/xc/lib/X11/XKeysymDB b/xc/lib/X11/XKeysymDB index f2518d2cd..80a2ad19e 100644 --- a/xc/lib/X11/XKeysymDB +++ b/xc/lib/X11/XKeysymDB @@ -1,4 +1,4 @@ -! $XConsortium: XKeysymDB,v 1.14 94/07/07 09:35:29 rws Exp $ +! $Xorg: XKeysymDB,v 1.3 2000/08/17 19:45:04 cpqbld Exp $ ! Copyright 1993 Massachusetts Institute of Technology ! ! Permission to use, copy, modify, distribute, and sell this software and @@ -11,7 +11,7 @@ ! suitability of this software for any purpose. It is provided "as is" ! without express or implied warranty. ! -! $XFree86: xc/lib/X11/XKeysymDB,v 3.6 2000/11/02 02:51:10 dawes Exp $ +! $XFree86: xc/lib/X11/XKeysymDB,v 3.7 2001/01/17 19:41:49 dawes Exp $ hpmute_acute :100000A8 hpmute_grave :100000A9 diff --git a/xc/lib/X11/XRGB.c b/xc/lib/X11/XRGB.c index 46b9aafca..7e5b7f846 100644 --- a/xc/lib/X11/XRGB.c +++ b/xc/lib/X11/XRGB.c @@ -1,4 +1,4 @@ -/* $XConsortium: XRGB.c,v 1.6 95/06/08 23:20:39 gildea Exp $" */ +/* $Xorg: XRGB.c,v 1.3 2000/08/17 19:45:04 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/XYZ.c b/xc/lib/X11/XYZ.c index 65e5e566f..55040cb60 100644 --- a/xc/lib/X11/XYZ.c +++ b/xc/lib/X11/XYZ.c @@ -1,4 +1,4 @@ -/* $XConsortium: XYZ.c,v 1.8 92/06/11 16:26:24 converse Exp $ */ +/* $Xorg: XYZ.c,v 1.3 2000/08/17 19:45:04 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -33,7 +33,7 @@ * * */ -/* $XFree86: xc/lib/X11/XYZ.c,v 1.2 1999/05/09 10:50:25 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XYZ.c,v 1.3 2001/01/17 19:41:49 dawes Exp $ */ #include <X11/Xos.h> #include "Xlibint.h" diff --git a/xc/lib/X11/Xaixlcint.h b/xc/lib/X11/Xaixlcint.h index 213a125d1..2e4f3f521 100644 --- a/xc/lib/X11/Xaixlcint.h +++ b/xc/lib/X11/Xaixlcint.h @@ -1,4 +1,4 @@ -/* $XConsortium: Xaixlcint.h,v 1.3 95/04/07 19:22:34 kaleb Exp $ */ +/* $Xorg: Xaixlcint.h,v 1.3 2000/08/17 19:45:04 cpqbld Exp $ */ /* * * Copyright IBM Corporation 1993 diff --git a/xc/lib/X11/Xatomtype.h b/xc/lib/X11/Xatomtype.h index 8bdfcded0..5f522be6b 100644 --- a/xc/lib/X11/Xatomtype.h +++ b/xc/lib/X11/Xatomtype.h @@ -1,4 +1,4 @@ -/* $TOG: Xatomtype.h /main/10 1998/02/06 17:57:49 kaleb $ */ +/* $Xorg: Xatomtype.h,v 1.3 2000/08/17 19:45:04 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/X11/Xcms.h b/xc/lib/X11/Xcms.h index 3ce1733ff..4b71af45c 100644 --- a/xc/lib/X11/Xcms.h +++ b/xc/lib/X11/Xcms.h @@ -1,4 +1,4 @@ -/* $XConsortium: Xcms.h,v 1.15 92/11/19 16:43:04 rws Exp $ */ +/* $Xorg: Xcms.h,v 1.6 2000/08/17 19:45:04 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -27,10 +27,12 @@ * DESCRIPTION * Public include file for X Color Management System */ -/* $XFree86: xc/lib/X11/Xcms.h,v 1.4 1999/03/14 03:21:04 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xcms.h,v 1.5 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XCMS_H_ #define _XCMS_H_ +#include <X11/Xlib.h> + /* * XCMS Status Values */ diff --git a/xc/lib/X11/Xcmsint.h b/xc/lib/X11/Xcmsint.h index a3c06e3fb..96f68bc6c 100644 --- a/xc/lib/X11/Xcmsint.h +++ b/xc/lib/X11/Xcmsint.h @@ -1,4 +1,4 @@ -/* $XConsortium: Xcmsint.h,v 1.19 95/06/08 23:20:39 gildea Exp $ */ +/* $Xorg: Xcmsint.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -29,7 +29,7 @@ * (i.e., for API internal use only) * */ -/* $XFree86: xc/lib/X11/Xcmsint.h,v 3.1 2000/01/29 18:58:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xcmsint.h,v 3.2 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XCMSINT_H_ #define _XCMSINT_H_ diff --git a/xc/lib/X11/XimImSw.h b/xc/lib/X11/XimImSw.h index 4307d6fdc..eac278439 100644 --- a/xc/lib/X11/XimImSw.h +++ b/xc/lib/X11/XimImSw.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimImSw.h,v 1.3 94/03/31 22:01:03 rws Exp $ */ +/* $Xorg: XimImSw.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993 by FUJITSU LIMITED diff --git a/xc/lib/X11/XimProto.h b/xc/lib/X11/XimProto.h index 08b8d00a1..fe6e5f693 100644 --- a/xc/lib/X11/XimProto.h +++ b/xc/lib/X11/XimProto.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimProto.h,v 1.4 94/09/01 18:44:49 kaleb Exp $ */ +/* $Xorg: XimProto.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993 by FUJITSU LIMITED diff --git a/xc/lib/X11/XimThai.h b/xc/lib/X11/XimThai.h index ccbb6e4b7..e74875023 100644 --- a/xc/lib/X11/XimThai.h +++ b/xc/lib/X11/XimThai.h @@ -1,4 +1,4 @@ -/* $TOG: XimThai.h /main/5 1998/02/06 17:58:47 kaleb $ */ +/* $Xorg: XimThai.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /*********************************************************** Copyright 1993, 1998 The Open Group @@ -41,6 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ +/* $XFree86: xc/lib/X11/XimThai.h,v 1.2 2001/02/09 00:02:53 dawes Exp $ */ /* **++ @@ -61,7 +62,7 @@ SOFTWARE. #include <X11/Xlib.h> -/* Classification of characters in TACTIS according to WTT */ +/* Classification of characters in TIS620 according to WTT */ #define CTRL 0 /* control chars */ #define NON 1 /* non composibles */ diff --git a/xc/lib/X11/XimTrInt.h b/xc/lib/X11/XimTrInt.h index e3aa4e5ed..b10898b31 100644 --- a/xc/lib/X11/XimTrInt.h +++ b/xc/lib/X11/XimTrInt.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimTrInt.h,v 1.4 94/03/26 16:57:07 rws Exp $ */ +/* $Xorg: XimTrInt.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Sun Microsystems, Inc. diff --git a/xc/lib/X11/XimTrX.h b/xc/lib/X11/XimTrX.h index 7206e4ff2..489a0e3cf 100644 --- a/xc/lib/X11/XimTrX.h +++ b/xc/lib/X11/XimTrX.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimTrX.h,v 1.4 94/03/31 22:01:43 rws Exp $ */ +/* $Xorg: XimTrX.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Sun Microsystems, Inc. diff --git a/xc/lib/X11/XimTrans.h b/xc/lib/X11/XimTrans.h index 282c0e334..6914190e9 100644 --- a/xc/lib/X11/XimTrans.h +++ b/xc/lib/X11/XimTrans.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimTrans.h,v 1.3 94/03/26 16:57:12 rws Exp $ */ +/* $Xorg: XimTrans.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Sun Microsystems, Inc. diff --git a/xc/lib/X11/Ximint.h b/xc/lib/X11/Ximint.h index dae046ff7..210bdfd76 100644 --- a/xc/lib/X11/Ximint.h +++ b/xc/lib/X11/Ximint.h @@ -1,4 +1,4 @@ -/* $TOG: Ximint.h /main/12 1998/06/16 16:05:08 kaleb $ */ +/* $Xorg: Ximint.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -30,7 +30,7 @@ PERFORMANCE OF THIS SOFTWARE. makoto@sm.sony.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/Ximint.h,v 3.8 2000/12/04 18:49:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Ximint.h,v 3.9 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XIMINT_H #define _XIMINT_H diff --git a/xc/lib/X11/XimintL.h b/xc/lib/X11/XimintL.h index be61ca417..4c93a96cc 100644 --- a/xc/lib/X11/XimintL.h +++ b/xc/lib/X11/XimintL.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimintL.h,v 1.6 94/07/06 14:46:45 kaleb Exp $ */ +/* $Xorg: XimintL.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1991, 1992, 1993, 1994 by FUJITSU LIMITED @@ -32,7 +32,7 @@ THIS SOFTWARE. frankyling@hgrd01.enet.dec.com ******************************************************************/ -/* $XFree86: xc/lib/X11/XimintL.h,v 1.6 2000/12/04 18:49:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XimintL.h,v 1.7 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XIMINTL_H #define _XIMINTL_H diff --git a/xc/lib/X11/XimintP.h b/xc/lib/X11/XimintP.h index 05d8e24c4..b56fe172a 100644 --- a/xc/lib/X11/XimintP.h +++ b/xc/lib/X11/XimintP.h @@ -1,4 +1,4 @@ -/* $XConsortium: XimintP.h,v 1.6 94/03/26 16:57:21 rws Exp $ */ +/* $Xorg: XimintP.h,v 1.3 2000/08/17 19:45:05 cpqbld Exp $ */ /****************************************************************** Copyright 1991, 1992 by Sun Microsystems, Inc. @@ -35,7 +35,7 @@ PERFORMANCE OF THIS SOFTWARE. miyamoto@jrd.dec.com ******************************************************************/ -/* $XFree86: xc/lib/X11/XimintP.h,v 1.6 2000/12/04 18:49:19 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XimintP.h,v 1.7 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XIMINTP_H #define _XIMINTP_H diff --git a/xc/lib/X11/XlcGeneric.h b/xc/lib/X11/XlcGeneric.h index f8992a541..508745a91 100644 --- a/xc/lib/X11/XlcGeneric.h +++ b/xc/lib/X11/XlcGeneric.h @@ -1,4 +1,4 @@ -/* $XConsortium: XlcGeneric.h /main/7 1996/12/05 10:38:44 swick $ */ +/* $Xorg: XlcGeneric.h,v 1.3 2000/08/17 19:45:06 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -31,7 +31,7 @@ * Modifier: Takanori Tateno FUJITSU LIMITED * */ -/* $XFree86: xc/lib/X11/XlcGeneric.h,v 1.2 2000/02/25 18:27:53 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XlcGeneric.h,v 1.3 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XLCGENERIC_H_ #define _XLCGENERIC_H_ diff --git a/xc/lib/X11/XlcPubI.h b/xc/lib/X11/XlcPubI.h index 4c1462127..f6213f920 100644 --- a/xc/lib/X11/XlcPubI.h +++ b/xc/lib/X11/XlcPubI.h @@ -1,4 +1,4 @@ -/* $TOG: XlcPubI.h /main/8 1997/06/03 15:52:40 kaleb $ */ +/* $Xorg: XlcPubI.h,v 1.3 2000/08/17 19:45:06 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/XlcPubI.h,v 3.7 2000/12/04 18:49:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XlcPubI.h,v 3.8 2001/01/17 19:41:49 dawes Exp $ */ #ifndef _XLCPUBLICI_H_ #define _XLCPUBLICI_H_ diff --git a/xc/lib/X11/XlcPublic.h b/xc/lib/X11/XlcPublic.h index 3f7b30152..dc8667031 100644 --- a/xc/lib/X11/XlcPublic.h +++ b/xc/lib/X11/XlcPublic.h @@ -1,4 +1,4 @@ -/* $TOG: XlcPublic.h /main/6 1997/06/22 07:38:55 kaleb $ */ +/* $Xorg: XlcPublic.h,v 1.3 2000/08/17 19:45:06 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -31,7 +31,7 @@ * Modifier: Takanori Tateno FUJITSU LIMITED * */ -/* $XFree86: xc/lib/X11/XlcPublic.h,v 1.8 2000/12/04 18:49:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XlcPublic.h,v 1.9 2001/01/17 19:41:49 dawes Exp $ */ /* * Most of this API is documented in i18n/Framework.PS */ diff --git a/xc/lib/X11/Xlcint.h b/xc/lib/X11/Xlcint.h index cb9d69aed..2716d5e56 100644 --- a/xc/lib/X11/Xlcint.h +++ b/xc/lib/X11/Xlcint.h @@ -1,4 +1,4 @@ -/* $TOG: Xlcint.h /main/26 1998/02/06 18:01:56 kaleb $ */ +/* $Xorg: Xlcint.h,v 1.3 2000/08/17 19:45:06 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Xlcint.h,v 3.7 2000/12/02 15:30:22 tsi Exp $ */ +/* $XFree86: xc/lib/X11/Xlcint.h,v 3.8 2001/01/17 19:41:49 dawes Exp $ */ /* * Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation, diff --git a/xc/lib/X11/Xlib.h b/xc/lib/X11/Xlib.h index 91c7850f2..ab6fdd971 100644 --- a/xc/lib/X11/Xlib.h +++ b/xc/lib/X11/Xlib.h @@ -1,4 +1,4 @@ -/* $TOG: Xlib.h /main/122 1998/03/22 18:22:09 barstow $ */ +/* $Xorg: Xlib.h,v 1.5 2000/08/17 19:45:06 cpqbld Exp $ */ /* Copyright 1985, 1986, 1987, 1991, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Xlib.h,v 3.18 2000/12/04 18:49:20 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xlib.h,v 3.19 2001/01/17 19:41:50 dawes Exp $ */ /* diff --git a/xc/lib/X11/XlibAsync.c b/xc/lib/X11/XlibAsync.c index d7f2d029b..fa7009458 100644 --- a/xc/lib/X11/XlibAsync.c +++ b/xc/lib/X11/XlibAsync.c @@ -1,4 +1,4 @@ -/* $TOG: XlibAsync.c /main/10 1998/02/06 18:02:17 kaleb $ */ +/* $Xorg: XlibAsync.c,v 1.3 2000/08/17 19:45:07 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/X11/XlibInt.c b/xc/lib/X11/XlibInt.c index 04977d997..61e5bc1f2 100644 --- a/xc/lib/X11/XlibInt.c +++ b/xc/lib/X11/XlibInt.c @@ -1,4 +1,4 @@ -/* $TOG: XlibInt.c /main/186 1998/02/06 18:02:22 kaleb $ */ +/* $Xorg: XlibInt.c,v 1.7 2000/08/17 19:45:07 cpqbld Exp $ */ /* Copyright 1985, 1986, 1987, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/XlibInt.c,v 3.23 2000/11/30 23:29:59 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XlibInt.c,v 3.25 2001/01/25 16:21:44 keithp Exp $ */ /* * XlibInt.c - Internal support routines for the C subroutine @@ -588,10 +588,18 @@ static void _XFlushInt (dpy, cv) register char *bufindex; _XExtension *ext; - if (dpy->flags & XlibDisplayIOError) { - dpy->bufptr = dpy->buffer; /* reset to avoid buffer overflows */ + /* This fix resets the bufptr to the front of the buffer so + * additional appends to the bufptr will not corrupt memory. Since + * the server is down, these appends are no-op's anyway but + * callers of _XFlush() are not verifying this before they call it. + */ + if (dpy->flags & XlibDisplayIOError) + { + dpy->bufptr = dpy->buffer; + dpy->last_req = (char *)&_dummy_request; return; } + #ifdef XTHREADS while (dpy->flags & XlibDisplayWriting) { if (dpy->lock) { @@ -743,6 +751,7 @@ _XEventsQueued (dpy, mode) */ if (!pend && !dpy->qlen && ++dpy->conn_checker >= XCONN_CHECK_FREQ) { + int result; #ifdef USE_POLL struct pollfd filedes; #else @@ -754,14 +763,14 @@ _XEventsQueued (dpy, mode) #ifdef USE_POLL filedes.fd = dpy->fd; filedes.events = POLLIN; - if ((pend = poll(&filedes, 1, 0))) + if ((result = poll(&filedes, 1, 0))) #else FD_ZERO(&r_mask); FD_SET(dpy->fd, &r_mask); - if (pend = Select(dpy->fd + 1, &r_mask, NULL, NULL, &zero_time)) + if ((result = Select(dpy->fd + 1, &r_mask, NULL, NULL, &zero_time))) #endif { - if (pend > 0) + if (result > 0) { if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0) _XIOError(dpy); @@ -769,7 +778,7 @@ _XEventsQueued (dpy, mode) if (!pend) pend = SIZEOF(xReply); } - else if (pend < 0 && !ECHECK(EINTR)) + else if (result < 0 && !ECHECK(EINTR)) _XIOError(dpy); } } diff --git a/xc/lib/X11/Xlibint.h b/xc/lib/X11/Xlibint.h index ef106bba0..298d229d7 100644 --- a/xc/lib/X11/Xlibint.h +++ b/xc/lib/X11/Xlibint.h @@ -1,4 +1,4 @@ -/* $TOG: Xlibint.h /main/117 1998/06/17 08:44:01 barstow $ */ +/* $Xorg: Xlibint.h,v 1.4 2000/08/17 19:45:07 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Xlibint.h,v 3.15 2000/02/08 17:18:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xlibint.h,v 3.16 2001/01/17 19:41:50 dawes Exp $ */ #ifndef _XLIBINT_H_ #define _XLIBINT_H_ 1 @@ -561,6 +561,18 @@ extern int errno; /* Internal system error number. */ Data32(dpy, (long *)&_BRdat, 4); \ } #else +#ifdef LONG64 +#define MakeBigReq(req,n) \ + { \ + CARD64 _BRdat; \ + CARD32 _BRlen = req->length - 1; \ + req->length = 0; \ + _BRdat = ((CARD32 *)req)[_BRlen]; \ + memmove(((char *)req) + 8, ((char *)req) + 4, _BRlen << 2); \ + ((CARD32 *)req)[1] = _BRlen + n + 2; \ + Data32(dpy, &_BRdat, 4); \ + } +#else #define MakeBigReq(req,n) \ { \ CARD32 _BRdat; \ @@ -572,6 +584,7 @@ extern int errno; /* Internal system error number. */ Data32(dpy, &_BRdat, 4); \ } #endif +#endif #define SetReqLen(req,n,badlen) \ if ((req->length + n) > (unsigned)65535) { \ diff --git a/xc/lib/X11/Xlocale.h b/xc/lib/X11/Xlocale.h index de1b6bd9b..4b63b31c1 100644 --- a/xc/lib/X11/Xlocale.h +++ b/xc/lib/X11/Xlocale.h @@ -1,4 +1,4 @@ -/* $TOG: Xlocale.h /main/11 1998/02/06 18:02:56 kaleb $ */ +/* $Xorg: Xlocale.h,v 1.3 2000/08/17 19:45:07 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group diff --git a/xc/lib/X11/XomGeneric.h b/xc/lib/X11/XomGeneric.h index f1e4933a7..019d0115e 100644 --- a/xc/lib/X11/XomGeneric.h +++ b/xc/lib/X11/XomGeneric.h @@ -1,4 +1,4 @@ -/* $XConsortium: XomGeneric.h /main/4 1996/12/05 10:40:15 swick $ */ +/* $Xorg: XomGeneric.h,v 1.3 2000/08/17 19:45:08 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -31,7 +31,7 @@ * Modifier: Takanori Tateno FUJITSU LIMITED * */ -/* $XFree86: xc/lib/X11/XomGeneric.h,v 1.3 2000/11/29 17:40:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/XomGeneric.h,v 1.4 2001/01/17 19:41:50 dawes Exp $ */ #ifndef _XOMGENERIC_H_ #define _XOMGENERIC_H_ diff --git a/xc/lib/X11/Xresource.h b/xc/lib/X11/Xresource.h index 7f4e80a90..ba45fa018 100644 --- a/xc/lib/X11/Xresource.h +++ b/xc/lib/X11/Xresource.h @@ -1,4 +1,4 @@ -/* $TOG: Xresource.h /main/39 1998/02/06 18:03:08 kaleb $ */ +/* $Xorg: Xresource.h,v 1.6 2000/08/17 19:45:08 cpqbld Exp $ */ /*********************************************************** @@ -42,13 +42,15 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/Xresource.h,v 3.5 2000/11/28 18:49:28 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xresource.h,v 3.6 2001/01/17 19:41:50 dawes Exp $ */ #ifndef _XRESOURCE_H_ #define _XRESOURCE_H_ /* You must include <X11/Xlib.h> before including this file */ +#include <X11/Xlib.h> + /**************************************************************** **************************************************************** *** *** diff --git a/xc/lib/X11/Xrm.c b/xc/lib/X11/Xrm.c index b065365be..f74e40527 100644 --- a/xc/lib/X11/Xrm.c +++ b/xc/lib/X11/Xrm.c @@ -1,4 +1,4 @@ -/* $TOG: Xrm.c /main/94 1998/02/06 18:03:25 kaleb $ */ +/* $Xorg: Xrm.c,v 1.6 2000/08/17 19:45:08 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Xrm.c,v 3.14 2000/11/28 18:49:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xrm.c,v 3.15 2001/01/17 19:41:50 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/X11/XrmI.h b/xc/lib/X11/XrmI.h index 183b5e091..f274988f6 100644 --- a/xc/lib/X11/XrmI.h +++ b/xc/lib/X11/XrmI.h @@ -1,4 +1,4 @@ -/* $TOG: XrmI.h /main/11 1998/02/06 18:03:19 kaleb $ */ +/* $Xorg: XrmI.h,v 1.3 2000/08/17 19:45:08 cpqbld Exp $ */ /* Copyright 1990, 1998 The Open Group diff --git a/xc/lib/X11/Xutil.h b/xc/lib/X11/Xutil.h index d92f0d9f6..814140a29 100644 --- a/xc/lib/X11/Xutil.h +++ b/xc/lib/X11/Xutil.h @@ -1,4 +1,4 @@ -/* $TOG: Xutil.h /main/45 1998/02/06 18:03:35 kaleb $ */ +/* $Xorg: Xutil.h,v 1.7 2000/08/17 19:45:08 cpqbld Exp $ */ /*********************************************************** @@ -42,12 +42,13 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/Xutil.h,v 3.2 2000/11/28 18:49:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xutil.h,v 3.3 2001/01/17 19:41:50 dawes Exp $ */ #ifndef _XUTIL_H_ #define _XUTIL_H_ /* You must include <X11/Xlib.h> before including this file */ +#include <X11/Xlib.h> /* * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding diff --git a/xc/lib/X11/Xvarargs.h b/xc/lib/X11/Xvarargs.h index 78c2e42d9..0f2717072 100644 --- a/xc/lib/X11/Xvarargs.h +++ b/xc/lib/X11/Xvarargs.h @@ -1,4 +1,4 @@ -/* $TOG: Xvarargs.h /main/5 1998/02/06 18:03:41 kaleb $ */ +/* $Xorg: Xvarargs.h,v 1.3 2000/08/17 19:45:08 cpqbld Exp $ */ /* Copyright 1985, 1986, 1987, 1988, 1989, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/Xvarargs.h,v 1.2 2000/11/28 18:49:30 dawes Exp $ */ +/* $XFree86: xc/lib/X11/Xvarargs.h,v 1.3 2001/01/17 19:41:50 dawes Exp $ */ #ifndef _XVARARGS_H_ #define _XVARARGS_H_ diff --git a/xc/lib/X11/cmsAllCol.c b/xc/lib/X11/cmsAllCol.c index 2abdd282c..3cfce4966 100644 --- a/xc/lib/X11/cmsAllCol.c +++ b/xc/lib/X11/cmsAllCol.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsAllCol.c,v 1.5 91/05/13 23:03:17 rws Exp $" */ +/* $Xorg: cmsAllCol.c,v 1.3 2000/08/17 19:45:08 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/cmsAllCol.c,v 1.2 1999/05/09 10:50:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsAllCol.c,v 1.3 2001/01/17 19:41:50 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/cmsAllNCol.c b/xc/lib/X11/cmsAllNCol.c index 47d5c5046..2d5e46e6a 100644 --- a/xc/lib/X11/cmsAllNCol.c +++ b/xc/lib/X11/cmsAllNCol.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsAllNCol.c,v 1.9 93/09/07 21:32:50 rws Exp $" */ +/* $Xorg: cmsAllNCol.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/cmsAllNCol.c,v 1.2 1999/05/09 10:50:28 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsAllNCol.c,v 1.3 2001/01/17 19:41:50 dawes Exp $ */ #define NEED_REPLIES #include <stdio.h> diff --git a/xc/lib/X11/cmsCmap.c b/xc/lib/X11/cmsCmap.c index eb5fdac6c..84d60a469 100644 --- a/xc/lib/X11/cmsCmap.c +++ b/xc/lib/X11/cmsCmap.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsCmap.c,v 1.17 95/04/27 18:28:37 converse Exp $ */ +/* $Xorg: cmsCmap.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. diff --git a/xc/lib/X11/cmsColNm.c b/xc/lib/X11/cmsColNm.c index 373184ce4..cc62eb18e 100644 --- a/xc/lib/X11/cmsColNm.c +++ b/xc/lib/X11/cmsColNm.c @@ -1,4 +1,4 @@ -/* $TOG: cmsColNm.c /main/32 1998/03/13 14:14:50 barstow $" */ +/* $Xorg: cmsColNm.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -31,7 +31,7 @@ * * */ -/* $XFree86: xc/lib/X11/cmsColNm.c,v 3.6 2000/01/29 18:58:14 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsColNm.c,v 3.7 2001/01/17 19:41:51 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/cmsGlobls.c b/xc/lib/X11/cmsGlobls.c index 962bce543..accb6d85b 100644 --- a/xc/lib/X11/cmsGlobls.c +++ b/xc/lib/X11/cmsGlobls.c @@ -1,4 +1,4 @@ -/*$XConsortium: cmsGlobls.c,v 1.10 93/07/05 11:44:05 rws Exp $ */ +/*$Xorg: cmsGlobls.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/cmsGlobls.c,v 1.3 2000/01/29 18:58:14 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsGlobls.c,v 1.4 2001/01/17 19:41:51 dawes Exp $ */ #include "Xlibint.h" #include "Xcmsint.h" diff --git a/xc/lib/X11/cmsInt.c b/xc/lib/X11/cmsInt.c index fc8808f2b..cf492a535 100644 --- a/xc/lib/X11/cmsInt.c +++ b/xc/lib/X11/cmsInt.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsInt.c,v 1.12 94/04/17 20:21:58 rws Exp $" */ +/* $Xorg: cmsInt.c,v 1.4 2000/08/17 19:45:09 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -34,7 +34,7 @@ * * */ -/* $XFree86: xc/lib/X11/cmsInt.c,v 1.2 1999/05/09 10:50:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsInt.c,v 1.3 2001/01/17 19:41:51 dawes Exp $ */ /* #define NEED_EVENTS */ #include <stdio.h> diff --git a/xc/lib/X11/cmsLkCol.c b/xc/lib/X11/cmsLkCol.c index 428436f56..15e4d4b55 100644 --- a/xc/lib/X11/cmsLkCol.c +++ b/xc/lib/X11/cmsLkCol.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsLkCol.c,v 1.14 94/03/31 21:51:17 rws Exp $ */ +/* $Xorg: cmsLkCol.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -32,7 +32,7 @@ * * */ -/* $XFree86: xc/lib/X11/cmsLkCol.c,v 1.2 1999/05/09 10:50:29 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsLkCol.c,v 1.3 2001/01/17 19:41:51 dawes Exp $ */ #define NEED_REPLIES #include <stdio.h> diff --git a/xc/lib/X11/cmsMath.c b/xc/lib/X11/cmsMath.c index 328576901..c35b78af3 100644 --- a/xc/lib/X11/cmsMath.c +++ b/xc/lib/X11/cmsMath.c @@ -1,4 +1,4 @@ -/* $TOG: cmsMath.c /main/12 1998/02/06 17:11:19 kaleb $ */ +/* $Xorg: cmsMath.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */ /* diff --git a/xc/lib/X11/cmsProp.c b/xc/lib/X11/cmsProp.c index 9a533b69d..28d7a8803 100644 --- a/xc/lib/X11/cmsProp.c +++ b/xc/lib/X11/cmsProp.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsProp.c,v 1.11 93/09/22 22:30:00 rws Exp $" */ +/* $Xorg: cmsProp.c,v 1.3 2000/08/17 19:45:10 cpqbld Exp $ */ /* * diff --git a/xc/lib/X11/cmsTrig.c b/xc/lib/X11/cmsTrig.c index 64731d868..f61d2f984 100644 --- a/xc/lib/X11/cmsTrig.c +++ b/xc/lib/X11/cmsTrig.c @@ -1,4 +1,4 @@ -/* $XConsortium: cmsTrig.c,v 1.7 95/06/08 23:20:39 gildea Exp $" */ +/* $Xorg: cmsTrig.c,v 1.3 2000/08/17 19:45:10 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -24,7 +24,7 @@ * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/X11/cmsTrig.c,v 3.5 2000/08/31 19:03:54 tsi Exp $ */ +/* $XFree86: xc/lib/X11/cmsTrig.c,v 3.6 2001/01/17 19:41:51 dawes Exp $ */ /* * It should be pointed out that for simplicity's sake, the * environment parameters are defined as floating point constants, diff --git a/xc/lib/X11/cursorfont.h b/xc/lib/X11/cursorfont.h index 10e1c096a..cfae2f57b 100644 --- a/xc/lib/X11/cursorfont.h +++ b/xc/lib/X11/cursorfont.h @@ -1,4 +1,4 @@ -/* $TOG: cursorfont.h /main/5 1998/02/06 17:15:54 kaleb $ */ +/* $Xorg: cursorfont.h,v 1.3 2000/08/17 19:45:10 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group diff --git a/xc/lib/X11/evtomask.c b/xc/lib/X11/evtomask.c index 80b56de23..e575576c3 100644 --- a/xc/lib/X11/evtomask.c +++ b/xc/lib/X11/evtomask.c @@ -1,4 +1,4 @@ -/* $TOG: evtomask.c /main/11 1998/02/06 17:20:16 kaleb $ */ +/* $Xorg: evtomask.c,v 1.3 2000/08/17 19:45:10 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group diff --git a/xc/lib/X11/globals.c b/xc/lib/X11/globals.c index 9f13d5e4a..b973232b7 100644 --- a/xc/lib/X11/globals.c +++ b/xc/lib/X11/globals.c @@ -1,4 +1,4 @@ -/* $TOG: globals.c /main/20 1998/02/06 17:29:35 kaleb $ */ +/* $Xorg: globals.c,v 1.3 2000/08/17 19:45:10 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/X11/imCallbk.c b/xc/lib/X11/imCallbk.c index 0079ba4b7..da0b34593 100644 --- a/xc/lib/X11/imCallbk.c +++ b/xc/lib/X11/imCallbk.c @@ -1,4 +1,4 @@ -/* $XConsortium: imCallbk.c /main/16 1996/09/28 16:37:06 rws $ */ +/* $Xorg: imCallbk.c,v 1.4 2000/08/17 19:45:10 cpqbld Exp $ */ /*********************************************************************** Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts, Copyright 1994 by FUJITSU LIMITED @@ -32,7 +32,7 @@ PERFORMANCE OF THIS SOFTWARE. makoto@sm.sony.co.jp ***********************************************************************/ -/* $XFree86: xc/lib/X11/imCallbk.c,v 3.4 1999/05/09 10:50:30 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imCallbk.c,v 3.5 2001/01/17 19:41:51 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" @@ -545,7 +545,7 @@ _read_text_from_packet(im, buf, text_ptr) tmp_len = (int)*(CARD16*)buf; buf += sz_CARD16; - if ((tmp_buf = (char*)Xmalloc(tmp_len + 1)) != 0) { + if ((tmp_buf = (char*)Xmalloc(tmp_len + 1))) { memcpy(tmp_buf, buf, tmp_len); tmp_buf[tmp_len] = '\0'; diff --git a/xc/lib/X11/imConv.c b/xc/lib/X11/imConv.c index 5863e7294..339ba13c3 100644 --- a/xc/lib/X11/imConv.c +++ b/xc/lib/X11/imConv.c @@ -33,7 +33,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ /* 2000 Modifier: Ivan Pascal The XFree86 Project. */ -/* $XFree86: xc/lib/X11/imConv.c,v 1.30 2000/12/04 18:49:21 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imConv.c,v 1.31 2001/02/09 00:02:53 dawes Exp $ */ #define NEED_EVENTS #include <stdio.h> @@ -76,7 +76,7 @@ struct SubstRec { static struct SubstRec SubstTable[] = { {"STRING", "ISO8859-1"}, - {"TACTIS", "TIS620.2533-1"}, + {"TIS620", "TIS620-0"}, {"UTF-8", "ISO10646-1"} }; #define num_substitute (sizeof SubstTable / sizeof SubstTable[0]) diff --git a/xc/lib/X11/imDefFlt.c b/xc/lib/X11/imDefFlt.c index 63d610198..19a67cfdd 100644 --- a/xc/lib/X11/imDefFlt.c +++ b/xc/lib/X11/imDefFlt.c @@ -1,4 +1,4 @@ -/* $TOG: imDefFlt.c /main/9 1997/04/28 16:39:25 barstow $ */ +/* $Xorg: imDefFlt.c,v 1.4 2000/08/17 19:45:11 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -26,7 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imDefFlt.c,v 1.3 1999/05/09 10:50:31 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imDefFlt.c,v 1.4 2001/01/17 19:41:51 dawes Exp $ */ #include <X11/Xatom.h> #define NEED_EVENTS diff --git a/xc/lib/X11/imDefIc.c b/xc/lib/X11/imDefIc.c index 7c6202201..69a492dd1 100644 --- a/xc/lib/X11/imDefIc.c +++ b/xc/lib/X11/imDefIc.c @@ -1,4 +1,4 @@ -/* $TOG: imDefIc.c /main/18 1997/06/22 18:11:11 kaleb $ */ +/* $Xorg: imDefIc.c,v 1.5 2000/08/17 19:45:11 cpqbld Exp $ */ /****************************************************************** Copyright 1991, 1992 by Sun Microsystems, Inc. @@ -28,7 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imDefIc.c,v 3.7 2000/11/28 18:49:35 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imDefIc.c,v 3.8 2001/01/17 19:41:51 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/imDefIm.c b/xc/lib/X11/imDefIm.c index 6c8441aca..606029a99 100644 --- a/xc/lib/X11/imDefIm.c +++ b/xc/lib/X11/imDefIm.c @@ -1,4 +1,4 @@ -/* $XConsortium: imDefIm.c /main/19 1996/01/21 15:11:43 kaleb $ */ +/* $Xorg: imDefIm.c,v 1.5 2000/08/17 19:45:12 cpqbld Exp $ */ /****************************************************************** Copyright 1990, 1991, 1992 by Sun Microsystems, Inc. Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -31,7 +31,7 @@ OF THIS SOFTWARE. makoto@sm.sony.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imDefIm.c,v 1.7 2000/12/04 18:49:22 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imDefIm.c,v 1.8 2001/01/17 19:41:51 dawes Exp $ */ #include <X11/Xatom.h> #define NEED_EVENTS diff --git a/xc/lib/X11/imDefLkup.c b/xc/lib/X11/imDefLkup.c index 1c88cc0fd..3db58223e 100644 --- a/xc/lib/X11/imDefLkup.c +++ b/xc/lib/X11/imDefLkup.c @@ -1,4 +1,4 @@ -/* $TOG: imDefLkup.c /main/18 1998/04/28 17:33:12 kaleb $ */ +/* $Xorg: imDefLkup.c,v 1.3 2000/08/17 19:45:12 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -26,7 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imDefLkup.c,v 3.7 2000/11/28 18:49:36 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imDefLkup.c,v 3.8 2001/01/17 19:41:51 dawes Exp $ */ #include <X11/Xatom.h> #define NEED_EVENTS diff --git a/xc/lib/X11/imDispch.c b/xc/lib/X11/imDispch.c index 9e45052c0..830b8b5aa 100644 --- a/xc/lib/X11/imDispch.c +++ b/xc/lib/X11/imDispch.c @@ -1,4 +1,4 @@ -/* $XConsortium: imDispch.c,v 1.4 94/03/26 16:57:53 rws Exp $ */ +/* $Xorg: imDispch.c,v 1.3 2000/08/17 19:45:12 cpqbld Exp $ */ /****************************************************************** Copyright 1993, 1994 by FUJITSU LIMITED @@ -26,7 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imDispch.c,v 1.2 1999/05/09 10:50:33 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imDispch.c,v 1.3 2001/01/17 19:41:51 dawes Exp $ */ #include <X11/Xlib.h> #include "Xlibint.h" diff --git a/xc/lib/X11/imEvToWire.c b/xc/lib/X11/imEvToWire.c index a329225e6..1bbf74e6f 100644 --- a/xc/lib/X11/imEvToWire.c +++ b/xc/lib/X11/imEvToWire.c @@ -1,4 +1,4 @@ -/* $XConsortium: imEvToWire.c,v 1.4 94/04/17 20:22:04 rws Exp $ */ +/* $Xorg: imEvToWire.c,v 1.3 2000/08/17 19:45:12 cpqbld Exp $ */ /*********************************************************** Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts, diff --git a/xc/lib/X11/imExten.c b/xc/lib/X11/imExten.c index 43c79cc80..c73bcf06e 100644 --- a/xc/lib/X11/imExten.c +++ b/xc/lib/X11/imExten.c @@ -1,4 +1,4 @@ -/* $XConsortium: imExten.c /main/6 1995/12/06 11:23:36 kaleb $ */ +/* $Xorg: imExten.c,v 1.3 2000/08/17 19:45:12 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED diff --git a/xc/lib/X11/imImSw.c b/xc/lib/X11/imImSw.c index bed76f840..c6e5d8192 100644 --- a/xc/lib/X11/imImSw.c +++ b/xc/lib/X11/imImSw.c @@ -1,4 +1,4 @@ -/* $XConsortium: imImSw.c,v 1.2 94/01/20 18:04:32 rws Exp $ */ +/* $Xorg: imImSw.c,v 1.3 2000/08/17 19:45:12 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993 by FUJITSU LIMITED @@ -32,7 +32,7 @@ THIS SOFTWARE. frankyling@hgrd01.enet.dec.com ******************************************************************/ -/* $XFree86: xc/lib/X11/imImSw.c,v 1.2 1999/05/09 10:50:33 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imImSw.c,v 1.3 2001/01/17 19:41:51 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/imInsClbk.c b/xc/lib/X11/imInsClbk.c index 2df4276f9..ea28ff36e 100644 --- a/xc/lib/X11/imInsClbk.c +++ b/xc/lib/X11/imInsClbk.c @@ -1,5 +1,4 @@ -/* $XConsortium: imInsClbk.c /main/4 1995/11/18 16:08:11 kaleb $ */ -/* $XFree86: xc/lib/X11/imInsClbk.c,v 3.0 1996/02/09 08:18:54 dawes Exp $ */ +/* $Xorg: imInsClbk.c,v 1.3 2000/08/17 19:45:13 cpqbld Exp $ */ /****************************************************************** Copyright 1993, 1994 by Sony Corporation @@ -27,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. makoto@sm.sony.co.jp ******************************************************************/ +/* $XFree86: xc/lib/X11/imInsClbk.c,v 3.1 2001/01/17 19:41:51 dawes Exp $ */ #include <X11/Xatom.h> #define NEED_EVENTS diff --git a/xc/lib/X11/imInt.c b/xc/lib/X11/imInt.c index df566db63..9ba3962ab 100644 --- a/xc/lib/X11/imInt.c +++ b/xc/lib/X11/imInt.c @@ -1,4 +1,4 @@ -/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ +/* $Xorg: imInt.c,v 1.8 2000/08/17 19:45:13 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -26,7 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imInt.c,v 3.8 2000/06/13 02:28:28 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imInt.c,v 3.9 2001/01/17 19:41:51 dawes Exp $ */ #include <X11/Xatom.h> #include <X11/Xlib.h> @@ -166,7 +166,7 @@ _XimStrstr(src, dest) int len; len = strlen(dest); - while ((src = strchr(src, *dest)) != 0) { + while((src = strchr(src, *dest))) { if(!strncmp(src, dest, len)) return src; src++; @@ -194,22 +194,18 @@ _XimMakeImName(lcd) end = begin += strlen(ximmodifier); while (*end && *end != '@') end++; - ret = Xmalloc(end - begin + 1); - if (ret != NULL) { - if (begin != NULL && end != NULL) { - (void)strncpy(ret, begin, end - begin); - ret[end - begin] = '\0'; - } - } - return ret; } } - - /* else return an empty string */ - ret = Xmalloc(1); + ret = Xmalloc(end - begin + 1); if (ret != NULL) { - ret[0] = '\0'; + if (begin != NULL && end != NULL) { + (void)strncpy(ret, begin, end - begin); + ret[end - begin] = '\0'; + } else { + ret[0] = '\0'; + } } + return ret; } diff --git a/xc/lib/X11/imLcFlt.c b/xc/lib/X11/imLcFlt.c index e3460f51d..85130137a 100644 --- a/xc/lib/X11/imLcFlt.c +++ b/xc/lib/X11/imLcFlt.c @@ -1,4 +1,4 @@ -/* $XConsortium: imLcFlt.c /main/5 1995/11/18 16:08:14 kaleb $ */ +/* $Xorg: imLcFlt.c,v 1.3 2000/08/17 19:45:13 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Fuji Xerox Co., Ltd. diff --git a/xc/lib/X11/imLcGIc.c b/xc/lib/X11/imLcGIc.c index 366888d2e..4f37fd047 100644 --- a/xc/lib/X11/imLcGIc.c +++ b/xc/lib/X11/imLcGIc.c @@ -1,4 +1,4 @@ -/* $XConsortium: imLcGIc.c,v 1.3 94/03/26 17:00:30 rws Exp $ */ +/* $Xorg: imLcGIc.c,v 1.3 2000/08/17 19:45:13 cpqbld Exp $ */ /****************************************************************** Copyright 1992,1993, 1994 by FUJITSU LIMITED diff --git a/xc/lib/X11/imLcIc.c b/xc/lib/X11/imLcIc.c index bca64aad6..740d22fa3 100644 --- a/xc/lib/X11/imLcIc.c +++ b/xc/lib/X11/imLcIc.c @@ -1,4 +1,4 @@ -/* $XConsortium: imLcIc.c /main/6 1996/10/22 14:24:42 kaleb $ */ +/* $Xorg: imLcIc.c,v 1.3 2000/08/17 19:45:13 cpqbld Exp $ */ /****************************************************************** Copyright 1992,1993, 1994 by FUJITSU LIMITED @@ -26,7 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imLcIc.c,v 1.3 2000/11/28 18:49:36 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imLcIc.c,v 1.4 2001/01/17 19:41:52 dawes Exp $ */ #include <stdio.h> #include <X11/Xlib.h> diff --git a/xc/lib/X11/imLcIm.c b/xc/lib/X11/imLcIm.c index a007680a2..4e8aabcdd 100644 --- a/xc/lib/X11/imLcIm.c +++ b/xc/lib/X11/imLcIm.c @@ -1,4 +1,4 @@ -/* $TOG: imLcIm.c /main/12 1998/06/16 16:05:15 kaleb $ */ +/* $Xorg: imLcIm.c,v 1.3 2000/08/17 19:45:14 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -32,7 +32,7 @@ THIS SOFTWARE. frankyling@hgrd01.enet.dec.com ******************************************************************/ -/* $XFree86: xc/lib/X11/imLcIm.c,v 1.8 2000/12/04 18:49:23 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imLcIm.c,v 1.9 2001/01/17 19:41:52 dawes Exp $ */ #include <stdio.h> /* diff --git a/xc/lib/X11/imLcLkup.c b/xc/lib/X11/imLcLkup.c index bf287344b..fff99b48d 100644 --- a/xc/lib/X11/imLcLkup.c +++ b/xc/lib/X11/imLcLkup.c @@ -1,4 +1,4 @@ -/* $TOG: imLcLkup.c /main/9 1998/04/28 17:34:55 kaleb $ */ +/* $Xorg: imLcLkup.c,v 1.3 2000/08/17 19:45:14 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Fuji Xerox Co., Ltd. @@ -29,7 +29,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imLcLkup.c,v 3.4 2000/12/04 18:49:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imLcLkup.c,v 3.5 2001/01/17 19:41:52 dawes Exp $ */ #include <stdio.h> #include <X11/Xatom.h> diff --git a/xc/lib/X11/imLcPrs.c b/xc/lib/X11/imLcPrs.c index f9ecd6d27..f7fd981c5 100644 --- a/xc/lib/X11/imLcPrs.c +++ b/xc/lib/X11/imLcPrs.c @@ -1,4 +1,4 @@ -/* $TOG: imLcPrs.c /main/11 1998/06/17 12:19:31 kaleb $ */ +/* $Xorg: imLcPrs.c,v 1.3 2000/08/17 19:45:14 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Oki Technosystems Laboratory, Inc. @@ -30,7 +30,7 @@ OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/imLcPrs.c,v 1.5 2000/11/28 18:49:38 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imLcPrs.c,v 1.6 2001/01/17 19:41:52 dawes Exp $ */ #include <X11/Xlib.h> #include <X11/Xmd.h> diff --git a/xc/lib/X11/imLcSIc.c b/xc/lib/X11/imLcSIc.c index 07fca8c05..16ada9bcb 100644 --- a/xc/lib/X11/imLcSIc.c +++ b/xc/lib/X11/imLcSIc.c @@ -1,4 +1,4 @@ -/* $XConsortium: imLcSIc.c,v 1.3 94/03/26 17:00:41 rws Exp $ */ +/* $Xorg: imLcSIc.c,v 1.3 2000/08/17 19:45:14 cpqbld Exp $ */ /****************************************************************** Copyright 1990, 1991, 1992, 1993, 1994 by FUJITSU LIMITED diff --git a/xc/lib/X11/imRm.c b/xc/lib/X11/imRm.c index f1fa5af42..3af7c391e 100644 --- a/xc/lib/X11/imRm.c +++ b/xc/lib/X11/imRm.c @@ -1,4 +1,4 @@ -/* $TOG: imRm.c /main/14 1998/06/01 09:55:01 kaleb $ */ +/* $Xorg: imRm.c,v 1.4 2000/08/17 19:45:14 cpqbld Exp $ */ /****************************************************************** Copyright 1990, 1991, 1992,1993, 1994 by FUJITSU LIMITED @@ -30,7 +30,7 @@ PERFORMANCE OF THIS SOFTWARE. makoto@sm.sony.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imRm.c,v 3.9 2000/09/26 15:56:51 tsi Exp $ */ +/* $XFree86: xc/lib/X11/imRm.c,v 3.11 2001/01/22 21:32:32 dawes Exp $ */ #include <stdio.h> #include <X11/Xlib.h> @@ -39,13 +39,6 @@ PERFORMANCE OF THIS SOFTWARE. #include "Ximint.h" #include "Xresource.h" -#ifndef isalnum -#define isalnum(c) \ - (('0' <= (c) && (c) <= '9') || \ - ('A' <= (c) && (c) <= 'Z') || \ - ('a' <= (c) && (c) <= 'z')) -#endif - typedef struct _XimValueOffsetInfo { char *name; XrmQuark quark; @@ -2798,17 +2791,17 @@ _XimSetICValueData(ic, top, res_list, list_num, values, mode, flag) return p->name; } if(res->xrm_name == pre_quark) { - if((name = _XimSetICValueData(ic, + if(((name = _XimSetICValueData(ic, (XPointer)(&((XimDefICValues *)top)->preedit_attr), res_list, list_num, (XIMArg *)p->value, - (mode | XIM_PREEDIT_ATTR), flag))) { + (mode | XIM_PREEDIT_ATTR), flag)))) { return name; } } else if(res->xrm_name == sts_quark) { - if((name = _XimSetICValueData(ic, + if(((name = _XimSetICValueData(ic, (XPointer)(&((XimDefICValues *)top)->status_attr), res_list, list_num, (XIMArg *)p->value, - (mode | XIM_STATUS_ATTR), flag))) { + (mode | XIM_STATUS_ATTR), flag)))) { return name; } } else { diff --git a/xc/lib/X11/imRmAttr.c b/xc/lib/X11/imRmAttr.c index b37ca5b03..60745be84 100644 --- a/xc/lib/X11/imRmAttr.c +++ b/xc/lib/X11/imRmAttr.c @@ -1,4 +1,4 @@ -/* $TOG: imRmAttr.c /main/13 1997/06/22 18:11:18 kaleb $ */ +/* $Xorg: imRmAttr.c,v 1.4 2000/08/17 19:45:15 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -26,7 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imRmAttr.c,v 1.4 2000/09/26 15:56:52 tsi Exp $ */ +/* $XFree86: xc/lib/X11/imRmAttr.c,v 1.5 2001/01/17 19:41:52 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/imThaiFlt.c b/xc/lib/X11/imThaiFlt.c index 3ef81d132..8a025942b 100644 --- a/xc/lib/X11/imThaiFlt.c +++ b/xc/lib/X11/imThaiFlt.c @@ -1,4 +1,4 @@ -/* $TOG: imThaiFlt.c /main/10 1998/02/06 17:36:48 kaleb $ */ +/* $Xorg: imThaiFlt.c,v 1.4 2000/08/17 19:45:15 cpqbld Exp $ */ /*********************************************************** Copyright 1993, 1998 The Open Group @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/imThaiFlt.c,v 3.6 2000/12/02 15:30:22 tsi Exp $ */ +/* $XFree86: xc/lib/X11/imThaiFlt.c,v 3.7 2001/01/17 19:41:52 dawes Exp $ */ /* **++ @@ -1234,7 +1234,7 @@ XPointer client_data; * Thai Input sequence check */ isc_mode = IC_IscMode(ic); - if (!IC_GetPreviousChar(ic, previous_char)) previous_char = ' '; + if (!(IC_GetPreviousChar(ic, previous_char))) previous_char = ' '; if (!THAI_isaccepted(buf[0],previous_char, isc_mode)) { /* reject character */ XBell(ev->xkey.display, BellVolume); diff --git a/xc/lib/X11/imThaiIc.c b/xc/lib/X11/imThaiIc.c index 5c2c0836e..711654f5a 100644 --- a/xc/lib/X11/imThaiIc.c +++ b/xc/lib/X11/imThaiIc.c @@ -1,4 +1,4 @@ -/* $XConsortium: imThaiIc.c /main/5 1996/10/22 14:24:50 kaleb $ */ +/* $Xorg: imThaiIc.c,v 1.3 2000/08/17 19:45:15 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -32,7 +32,7 @@ THIS SOFTWARE. frankyling@hgrd01.enet.dec.com ******************************************************************/ -/* $XFree86: xc/lib/X11/imThaiIc.c,v 1.3 2000/11/29 17:40:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imThaiIc.c,v 1.4 2001/01/17 19:41:52 dawes Exp $ */ #include <stdio.h> #include <X11/Xlib.h> diff --git a/xc/lib/X11/imThaiIm.c b/xc/lib/X11/imThaiIm.c index e21bfa7b2..ad97e7312 100644 --- a/xc/lib/X11/imThaiIm.c +++ b/xc/lib/X11/imThaiIm.c @@ -1,4 +1,4 @@ -/* $XConsortium: imThaiIm.c /main/5 1996/01/21 15:12:18 kaleb $ */ +/* $Xorg: imThaiIm.c,v 1.3 2000/08/17 19:45:15 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED @@ -32,7 +32,7 @@ THIS SOFTWARE. frankyling@hgrd01.enet.dec.com ******************************************************************/ -/* $XFree86: xc/lib/X11/imThaiIm.c,v 1.6 2000/12/04 18:49:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imThaiIm.c,v 1.7 2001/01/17 19:41:52 dawes Exp $ */ #include <stdio.h> #include <X11/Xlib.h> diff --git a/xc/lib/X11/imTrX.c b/xc/lib/X11/imTrX.c index c383f430e..01bc8286e 100644 --- a/xc/lib/X11/imTrX.c +++ b/xc/lib/X11/imTrX.c @@ -1,4 +1,4 @@ -/* $XConsortium: imTrX.c /main/8 1995/11/18 16:08:29 kaleb $ */ +/* $Xorg: imTrX.c,v 1.4 2000/08/17 19:45:15 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Sun Microsystems, Inc. @@ -105,9 +105,23 @@ _XimXFilterWaitEvent(d, w, ev, arg) { Xim im = (Xim)arg; XSpecRec *spec = (XSpecRec *)im->private.proto.spec; + Bool ret; spec->ev = (XPointer)ev; - return _XimFilterWaitEvent(im); + ret = _XimFilterWaitEvent(im); + + /* + * If ev is a pointer to a stack variable, there could be + * a coredump later on if the pointer is dereferenced. + * Therefore, reset to NULL to force reinitialization in + * _XimXRead(). + * + * Keep in mind _XimXRead may be called again when the stack + * is very different. + */ + spec->ev = (XPointer)NULL; + + return ret; } Private Bool diff --git a/xc/lib/X11/imTrans.c b/xc/lib/X11/imTrans.c index d0a1dae82..53ca201c6 100644 --- a/xc/lib/X11/imTrans.c +++ b/xc/lib/X11/imTrans.c @@ -1,4 +1,4 @@ -/* $XConsortium: imTrans.c /main/7 1996/01/06 11:59:21 kaleb $ */ +/* $Xorg: imTrans.c,v 1.3 2000/08/17 19:45:16 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Sun Microsystems, Inc. diff --git a/xc/lib/X11/imTransR.c b/xc/lib/X11/imTransR.c index 7f7a94621..016c5e47c 100644 --- a/xc/lib/X11/imTransR.c +++ b/xc/lib/X11/imTransR.c @@ -1,4 +1,4 @@ -/* $XConsortium: imTransR.c /main/9 1995/12/06 11:23:40 kaleb $ */ +/* $Xorg: imTransR.c,v 1.4 2000/08/17 19:45:16 cpqbld Exp $ */ /****************************************************************** Copyright 1992 by Sun Microsystems, Inc. @@ -28,7 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imTransR.c,v 3.3 1999/05/09 10:50:37 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imTransR.c,v 3.4 2001/01/17 19:41:52 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/jump_funcs b/xc/lib/X11/jump_funcs index afae6fac5..93387960b 100644 --- a/xc/lib/X11/jump_funcs +++ b/xc/lib/X11/jump_funcs @@ -1,5 +1,9 @@ -# $TOG: jump_funcs /main/8 1998/06/17 15:34:53 kaleb $ -# $XFree86: xc/lib/X11/jump_funcs,v 3.10 1998/10/03 08:41:36 dawes Exp $ +# $Xorg: jump_funcs,v 1.3 2000/08/17 19:45:16 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/X11/jump_funcs,v 3.11 2001/01/17 19:41:52 dawes Exp $ # 00000000 T _XSaveContext libX11 Context 00000000 T _XFindContext libX11 Context diff --git a/xc/lib/X11/jump_ignore b/xc/lib/X11/jump_ignore index f7468065f..b30a10c62 100644 --- a/xc/lib/X11/jump_ignore +++ b/xc/lib/X11/jump_ignore @@ -1,5 +1,9 @@ -# $XConsortium: jump_ignore,v 1.3 95/06/06 21:20:40 kaleb Exp $ -# $XFree86: xc/lib/X11/jump_ignore,v 3.10 1999/05/30 02:27:59 dawes Exp $ +# $Xorg: jump_ignore,v 1.3 2000/08/17 19:45:16 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/X11/jump_ignore,v 3.11 2001/01/17 19:41:52 dawes Exp $ # jump_ignore 00000000 T __XlcAddCT libX11 lcCT 00000000 T __XKeycodeToKeysym libX11 KeyBind diff --git a/xc/lib/X11/jump_vars b/xc/lib/X11/jump_vars index 46f2a9a3a..b1cdfcf05 100644 --- a/xc/lib/X11/jump_vars +++ b/xc/lib/X11/jump_vars @@ -1,5 +1,9 @@ -# $XConsortium: jump_vars,v 1.2 94/12/07 10:48:04 kaleb Exp $ -# $XFree86: xc/lib/X11/jump_vars,v 3.1 1995/01/28 15:42:57 dawes Exp $ +# $Xorg: jump_vars,v 1.3 2000/08/17 19:45:16 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/X11/jump_vars,v 3.2 2001/01/17 19:41:53 dawes Exp $ # 00008000 K __XkeyTable libX11 XStrKeysym 00000100 K __Xevent_to_mask libX11 evtomask diff --git a/xc/lib/X11/lcCT.c b/xc/lib/X11/lcCT.c index 32b465b1a..e9d978d8a 100644 --- a/xc/lib/X11/lcCT.c +++ b/xc/lib/X11/lcCT.c @@ -1,4 +1,4 @@ -/* $TOG: lcCT.c /main/17 1998/06/18 13:17:06 kaleb $ */ +/* $Xorg: lcCT.c,v 1.4 2000/08/17 19:45:16 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -36,7 +36,7 @@ * Modifier: Ivan Pascal The XFree86 Project * Modifier: Bruno Haible The XFree86 Project */ -/* $XFree86: xc/lib/X11/lcCT.c,v 3.22 2000/12/07 20:26:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcCT.c,v 3.24 2001/02/09 00:02:53 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" @@ -78,7 +78,7 @@ static CTDataRec default_ct_data[] = { "ISO8859-16:GR", /* ISO-8859-16 226 */ "\033-f" }, { "JISX0201.1976-0:GL", /* ISO-646-JP 14 */ "\033(J" }, { "JISX0201.1976-0:GR", "\033)I" }, - { "TIS620.2533-1:GR", /* TIS-620 166 */ "\033-T" }, + { "TIS620-0:GR", /* TIS-620 166 */ "\033-T" }, /* Registered character sets with two byte per character */ { "GB2312.1980-0:GL", /* GB_2312-80 58 */ "\033$(A" }, diff --git a/xc/lib/X11/lcCharSet.c b/xc/lib/X11/lcCharSet.c index d014a6f9e..21dea1c1c 100644 --- a/xc/lib/X11/lcCharSet.c +++ b/xc/lib/X11/lcCharSet.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcCharSet.c,v 1.3 95/02/22 22:02:59 kaleb Exp $ */ +/* $Xorg: lcCharSet.c,v 1.3 2000/08/17 19:45:16 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcCharSet.c,v 3.7 2000/12/04 18:49:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcCharSet.c,v 3.8 2001/01/17 19:41:53 dawes Exp $ */ #include <stdio.h> #include "Xlibint.h" diff --git a/xc/lib/X11/lcConv.c b/xc/lib/X11/lcConv.c index e3b0abbf2..2c76f3ee4 100644 --- a/xc/lib/X11/lcConv.c +++ b/xc/lib/X11/lcConv.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcConv.c /main/8 1996/09/28 16:37:28 rws $ */ +/* $Xorg: lcConv.c,v 1.4 2000/08/17 19:45:17 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcConv.c,v 1.5 2000/12/04 18:49:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcConv.c,v 1.6 2001/01/17 19:41:53 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" @@ -302,7 +302,7 @@ _XlcOpenConverter( from_type = XrmStringToQuark(from); to_type = XrmStringToQuark(to); - if ((conv = get_converter(from_lcd, from_type, to_lcd, to_type)) != NULL) + if ((conv = get_converter(from_lcd, from_type, to_lcd, to_type))) return conv; return open_indirect_converter(from_lcd, from, to_lcd, to); diff --git a/xc/lib/X11/lcDB.c b/xc/lib/X11/lcDB.c index 5c4a45443..40db63928 100644 --- a/xc/lib/X11/lcDB.c +++ b/xc/lib/X11/lcDB.c @@ -1,4 +1,4 @@ -/* $TOG: lcDB.c /main/16 1998/06/26 14:37:14 kaleb $ */ +/* $Xorg: lcDB.c,v 1.6 2000/08/17 19:45:17 cpqbld Exp $ */ /* * * Copyright IBM Corporation 1993 @@ -28,7 +28,7 @@ * This is source code modified by FUJITSU LIMITED under the Joint * Development Agreement for the CDE/Motif PST. */ -/* $XFree86: xc/lib/X11/lcDB.c,v 3.12 2000/11/28 18:49:41 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcDB.c,v 3.13 2001/01/17 19:41:53 dawes Exp $ */ diff --git a/xc/lib/X11/lcDefConv.c b/xc/lib/X11/lcDefConv.c index 3e02d5075..2ea3c0401 100644 --- a/xc/lib/X11/lcDefConv.c +++ b/xc/lib/X11/lcDefConv.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcDefConv.c /main/5 1996/10/22 14:24:59 kaleb $ */ +/* $Xorg: lcDefConv.c,v 1.3 2000/08/17 19:45:17 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -27,7 +27,7 @@ * 2000 * Modifier: Ivan Pascal The XFree86 Project */ -/* $XFree86: xc/lib/X11/lcDefConv.c,v 1.5 2000/11/28 18:49:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcDefConv.c,v 1.6 2001/01/17 19:41:53 dawes Exp $ */ /* * The default locale loader. diff --git a/xc/lib/X11/lcDynamic.c b/xc/lib/X11/lcDynamic.c index 88f002832..fce1b4c4f 100644 --- a/xc/lib/X11/lcDynamic.c +++ b/xc/lib/X11/lcDynamic.c @@ -1,4 +1,4 @@ -/* $TOG: lcDynamic.c /main/3 1998/02/06 17:40:11 kaleb $ */ +/* $Xorg: lcDynamic.c,v 1.3 2000/08/17 19:45:17 cpqbld Exp $ */ /* Copyright 1996, 1998 The Open Group @@ -28,7 +28,7 @@ from The Open Group. * Modifier: Takanori Tateno FUJITSU LIMITED * */ -/* $XFree86: xc/lib/X11/lcDynamic.c,v 1.3 2000/11/28 18:49:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcDynamic.c,v 1.4 2001/01/17 19:41:53 dawes Exp $ */ /* * A dynamically loaded locale. diff --git a/xc/lib/X11/lcEuc.c b/xc/lib/X11/lcEuc.c index 417c3075c..4fa819a2b 100644 --- a/xc/lib/X11/lcEuc.c +++ b/xc/lib/X11/lcEuc.c @@ -1,4 +1,4 @@ -/* $TOG: lcEuc.c /main/21 1998/04/30 11:02:13 kaleb $ */ +/* $Xorg: lcEuc.c,v 1.3 2000/08/17 19:45:17 cpqbld Exp $ */ /****************************************************************** Copyright 1992, 1993 by FUJITSU LIMITED @@ -30,7 +30,7 @@ OF THIS SOFTWARE. Yoshiyuki Segawa (segawa@ossi.com) *****************************************************************/ -/* $XFree86: xc/lib/X11/lcEuc.c,v 3.8 2000/11/28 18:49:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcEuc.c,v 3.10 2001/01/17 19:41:53 dawes Exp $ */ /* * An EUC locale. @@ -1084,7 +1084,7 @@ euc_ctstombs( XPointer *args, int num_args) { - const char *inbufptr = *from; + char *inbufptr = *from; XPointer outbufptr = *to; const char *inbuf_base; XPointer outbuf_base = outbufptr; diff --git a/xc/lib/X11/lcFile.c b/xc/lib/X11/lcFile.c index 94179aff4..6de7c6d51 100644 --- a/xc/lib/X11/lcFile.c +++ b/xc/lib/X11/lcFile.c @@ -1,4 +1,4 @@ -/* $TOG: lcFile.c /main/13 1998/05/28 14:21:35 kaleb $ */ +/* $Xorg: lcFile.c,v 1.4 2000/08/17 19:45:17 cpqbld Exp $ */ /* * * Copyright IBM Corporation 1993 @@ -23,7 +23,7 @@ * SOFTWARE. * */ -/* $XFree86: xc/lib/X11/lcFile.c,v 3.19 2000/11/28 18:49:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcFile.c,v 3.21 2001/02/16 13:24:04 eich Exp $ */ #include <stdlib.h> #include <stdio.h> @@ -97,7 +97,11 @@ parse_line( break; } argv[argc++] = p; +#if 0 + while (!isspace(*p) && *p != ':' && *p != '\0') { +#else while (*p != ':' && *p != '\n' && *p != '\0') { +#endif ++p; } if (*p == '\0') { diff --git a/xc/lib/X11/lcGenConv.c b/xc/lib/X11/lcGenConv.c index a3c575549..c4eb74e99 100644 --- a/xc/lib/X11/lcGenConv.c +++ b/xc/lib/X11/lcGenConv.c @@ -1,4 +1,4 @@ -/* $TOG: lcGenConv.c /main/17 1997/11/13 18:54:29 kaleb $ */ +/* $Xorg: lcGenConv.c,v 1.5 2000/08/17 19:45:17 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -35,7 +35,7 @@ * 2000 * Modifier: Ivan Pascal The XFree86 Project */ -/* $XFree86: xc/lib/X11/lcGenConv.c,v 3.17 2000/12/04 18:49:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcGenConv.c,v 3.18 2001/01/17 19:41:54 dawes Exp $ */ /* * A generic locale loader for all kinds of ISO-2022 based codesets. @@ -3076,6 +3076,7 @@ _XlcGenericLoader( XLCdGenericPart *gen; lcd = _XlcCreateLC(name, _XlcGenericMethods); + if (lcd == NULL) return lcd; diff --git a/xc/lib/X11/lcGeneric.c b/xc/lib/X11/lcGeneric.c index 6399b90eb..edf006858 100644 --- a/xc/lib/X11/lcGeneric.c +++ b/xc/lib/X11/lcGeneric.c @@ -1,4 +1,4 @@ -/* $TOG: lcGeneric.c /main/12 1998/06/25 16:09:44 kaleb $ */ +/* $Xorg: lcGeneric.c,v 1.6 2000/08/17 19:45:18 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -28,7 +28,7 @@ * This is source code modified by FUJITSU LIMITED under the Joint * Development Agreement for the CDE/Motif PST. */ -/* $XFree86: xc/lib/X11/lcGeneric.c,v 3.13 2000/12/06 22:00:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcGeneric.c,v 3.14 2001/01/17 19:41:54 dawes Exp $ */ #include <stdio.h> #include "Xlibint.h" @@ -442,7 +442,7 @@ read_charset_define( if (num > 0) { /* hackers will get truncated -- C'est la vie */ strncpy(cset_name,value[0], sizeof cset_name - 1); - cset_name[sizeof cset_name - 1] = '\0'; + cset_name[(sizeof cset_name) - 1] = '\0'; sprintf(name, "%s.%s", csd , "side"); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); if (num > 0) { diff --git a/xc/lib/X11/lcInit.c b/xc/lib/X11/lcInit.c index 63021edd9..93df83f17 100644 --- a/xc/lib/X11/lcInit.c +++ b/xc/lib/X11/lcInit.c @@ -1,4 +1,4 @@ -/* $TOG: lcInit.c /main/5 1997/11/13 18:54:36 kaleb $ */ +/* $Xorg: lcInit.c,v 1.3 2000/08/17 19:45:18 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -31,7 +31,7 @@ * Modifier: Masayoshi Shimamura FUJITSU LIMITED * */ -/* $XFree86: xc/lib/X11/lcInit.c,v 3.7 2000/11/28 18:49:46 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcInit.c,v 3.8 2001/01/17 19:41:54 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/lcJis.c b/xc/lib/X11/lcJis.c index e5314d5da..905a9569c 100644 --- a/xc/lib/X11/lcJis.c +++ b/xc/lib/X11/lcJis.c @@ -1,4 +1,4 @@ -/* $TOG: lcJis.c /main/8 1998/04/30 11:02:21 kaleb $ */ +/* $Xorg: lcJis.c,v 1.3 2000/08/17 19:45:18 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcJis.c,v 1.6 2000/11/28 18:49:46 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcJis.c,v 1.7 2001/01/17 19:41:54 dawes Exp $ */ /* * A Japanese JIS locale. diff --git a/xc/lib/X11/lcPrTxt.c b/xc/lib/X11/lcPrTxt.c index dfa375eb3..9f1d43eaf 100644 --- a/xc/lib/X11/lcPrTxt.c +++ b/xc/lib/X11/lcPrTxt.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcPrTxt.c /main/4 1996/01/05 11:23:11 kaleb $ */ +/* $Xorg: lcPrTxt.c,v 1.3 2000/08/17 19:45:18 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcPrTxt.c,v 1.5 2000/12/15 22:48:39 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcPrTxt.c,v 1.6 2001/01/17 19:41:55 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" diff --git a/xc/lib/X11/lcPubWrap.c b/xc/lib/X11/lcPubWrap.c index 21a239f07..3cc32e488 100644 --- a/xc/lib/X11/lcPubWrap.c +++ b/xc/lib/X11/lcPubWrap.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcPubWrap.c,v 1.3 94/01/20 18:07:08 rws Exp $ */ +/* $Xorg: lcPubWrap.c,v 1.3 2000/08/17 19:45:18 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcPubWrap.c,v 1.3 2000/11/28 18:49:47 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcPubWrap.c,v 1.4 2001/01/17 19:41:55 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" diff --git a/xc/lib/X11/lcPublic.c b/xc/lib/X11/lcPublic.c index 70f6556ab..7d5e30589 100644 --- a/xc/lib/X11/lcPublic.c +++ b/xc/lib/X11/lcPublic.c @@ -1,4 +1,4 @@ -/* $TOG: lcPublic.c /main/11 1998/06/01 16:15:27 kaleb $ */ +/* $Xorg: lcPublic.c,v 1.3 2000/08/17 19:45:19 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcPublic.c,v 1.8 2000/12/06 22:00:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcPublic.c,v 1.9 2001/01/17 19:41:55 dawes Exp $ */ #include <stdio.h> #include "Xlibint.h" diff --git a/xc/lib/X11/lcRM.c b/xc/lib/X11/lcRM.c index bbec4a1aa..2e0f15cc4 100644 --- a/xc/lib/X11/lcRM.c +++ b/xc/lib/X11/lcRM.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcRM.c,v 1.3 94/01/20 18:07:18 rws Exp $ */ +/* $Xorg: lcRM.c,v 1.3 2000/08/17 19:45:19 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -24,7 +24,7 @@ * mopi@osa.ilab.toshiba.co.jp * Bug fixes: Bruno Haible XFree86 Inc. */ -/* $XFree86: xc/lib/X11/lcRM.c,v 1.4 2000/11/28 18:49:48 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcRM.c,v 1.5 2001/01/17 19:41:55 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" diff --git a/xc/lib/X11/lcSjis.c b/xc/lib/X11/lcSjis.c index 94476a664..20796099b 100644 --- a/xc/lib/X11/lcSjis.c +++ b/xc/lib/X11/lcSjis.c @@ -1,4 +1,4 @@ -/* $TOG: lcSjis.c /main/25 1998/04/30 11:02:27 kaleb $ */ +/* $Xorg: lcSjis.c,v 1.3 2000/08/17 19:45:19 cpqbld Exp $ */ /**************************************************************** Copyright 1992, 1993 by FUJITSU LIMITED @@ -35,7 +35,7 @@ OR PERFORMANCE OF THIS SOFTWARE. makoto@sm.sony.co.jp *****************************************************************/ -/* $XFree86: xc/lib/X11/lcSjis.c,v 3.7 2000/11/28 18:49:48 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcSjis.c,v 3.8 2001/01/17 19:41:55 dawes Exp $ */ /* * A Japanese SJIS locale. diff --git a/xc/lib/X11/lcStd.c b/xc/lib/X11/lcStd.c index b1daf516c..9a07bbb48 100644 --- a/xc/lib/X11/lcStd.c +++ b/xc/lib/X11/lcStd.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcStd.c /main/5 1996/10/22 17:22:55 kaleb $ */ +/* $Xorg: lcStd.c,v 1.4 2000/08/17 19:45:20 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcStd.c,v 1.4 2000/11/28 18:49:49 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcStd.c,v 1.5 2001/01/17 19:41:55 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" diff --git a/xc/lib/X11/lcTxtPr.c b/xc/lib/X11/lcTxtPr.c index 1fd72ca5d..117038263 100644 --- a/xc/lib/X11/lcTxtPr.c +++ b/xc/lib/X11/lcTxtPr.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcTxtPr.c /main/7 1996/10/22 17:21:47 kaleb $ */ +/* $Xorg: lcTxtPr.c,v 1.3 2000/08/17 19:45:20 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/lcTxtPr.c,v 3.2 2000/11/28 18:49:49 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcTxtPr.c,v 3.3 2001/01/17 19:41:55 dawes Exp $ */ #include "Xlibint.h" #include "XlcPubI.h" diff --git a/xc/lib/X11/lcUTF8.c b/xc/lib/X11/lcUTF8.c index 3428d3dc2..6e7249618 100644 --- a/xc/lib/X11/lcUTF8.c +++ b/xc/lib/X11/lcUTF8.c @@ -24,7 +24,7 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/X11/lcUTF8.c,v 1.11 2000/12/07 20:26:11 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcUTF8.c,v 1.12 2001/02/09 00:02:53 dawes Exp $ */ /* * This file contains: @@ -267,7 +267,7 @@ static Utf8ConvRec all_charsets[] = { { "JISX0201.1976-0", NULLQUARK, jisx0201_mbtowc, jisx0201_wctomb }, - { "TIS620.2533-1", NULLQUARK, + { "TIS620-0", NULLQUARK, tis620_mbtowc, tis620_wctomb }, { "GB2312.1980-0", NULLQUARK, diff --git a/xc/lib/X11/lcUniConv/8bit_tab_to_h.c b/xc/lib/X11/lcUniConv/8bit_tab_to_h.c index f6776b919..1d7948415 100644 --- a/xc/lib/X11/lcUniConv/8bit_tab_to_h.c +++ b/xc/lib/X11/lcUniConv/8bit_tab_to_h.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/X11/lcUniConv/8bit_tab_to_h.c,v 1.2 2000/12/04 18:49:30 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcUniConv/8bit_tab_to_h.c,v 1.3 2001/02/09 00:02:54 dawes Exp $ */ /* * Generates an 8-bit character set table from a .TXT table as found on @@ -19,7 +19,7 @@ * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < tab8859_14 * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < tab8859_15 * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < jis0201 - * ./8bit_tab_to_h TIS620.2533-1 tis620 < tabtis620 + * ./8bit_tab_to_h TIS620-0 tis620 < tabtis620 * ./8bit_tab_to_h KOI8-R koi8_r < tabkoi8_r * ./8bit_tab_to_h KOI8-U koi8_u < tabkoi8_u * ./8bit_tab_to_h ARMSCII-8 armscii_8 < tabarmscii_8 diff --git a/xc/lib/X11/lcUniConv/tis620.h b/xc/lib/X11/lcUniConv/tis620.h index e883d9113..beb7cd950 100644 --- a/xc/lib/X11/lcUniConv/tis620.h +++ b/xc/lib/X11/lcUniConv/tis620.h @@ -1,7 +1,7 @@ -/* $XFree86: xc/lib/X11/lcUniConv/tis620.h,v 1.3 2000/11/29 17:40:35 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcUniConv/tis620.h,v 1.4 2001/02/09 00:02:54 dawes Exp $ */ /* - * TIS620.2533-1 + * TIS620-0 */ static const unsigned short tis620_2uni[96] = { diff --git a/xc/lib/X11/lcUtil.c b/xc/lib/X11/lcUtil.c index dd8be2183..d27533680 100644 --- a/xc/lib/X11/lcUtil.c +++ b/xc/lib/X11/lcUtil.c @@ -1,4 +1,4 @@ -/* $XConsortium: lcUtil.c,v 1.3 94/01/20 18:07:47 rws Exp $ */ +/* $Xorg: lcUtil.c,v 1.3 2000/08/17 19:45:20 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -24,7 +24,7 @@ * mopi@osa.ilab.toshiba.co.jp * Bug fixes: Bruno Haible XFree86 Inc. */ -/* $XFree86: xc/lib/X11/lcUtil.c,v 1.3 2000/11/29 17:40:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcUtil.c,v 1.4 2001/01/17 19:41:55 dawes Exp $ */ #include <X11/Xlib.h> #include "XlcPublic.h" diff --git a/xc/lib/X11/lcWrap.c b/xc/lib/X11/lcWrap.c index efce702d7..349153fbd 100644 --- a/xc/lib/X11/lcWrap.c +++ b/xc/lib/X11/lcWrap.c @@ -1,4 +1,4 @@ -/* $TOG: lcWrap.c /main/28 1998/06/01 16:15:36 kaleb $ */ +/* $Xorg: lcWrap.c,v 1.4 2000/08/17 19:45:20 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -49,7 +49,7 @@ from The Open Group. * * Katsuhisa Yano TOSHIBA Corp. */ -/* $XFree86: xc/lib/X11/lcWrap.c,v 3.9 2000/11/28 18:49:51 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcWrap.c,v 3.10 2001/01/17 19:41:55 dawes Exp $ */ #include <stdlib.h> #include "Xlibint.h" diff --git a/xc/lib/X11/libX11.elist b/xc/lib/X11/libX11.elist index 4e1fd5eed..511a5edea 100644 --- a/xc/lib/X11/libX11.elist +++ b/xc/lib/X11/libX11.elist @@ -1,4 +1,4 @@ -/* $XConsortium: libX11.elist /main/1 1996/09/28 16:38:57 rws $ */ +/* $Xorg: libX11.elist,v 1.3 2000/08/17 19:45:20 cpqbld Exp $ */ /************************************************************************* * Export list for libX11 diff --git a/xc/lib/X11/locking.c b/xc/lib/X11/locking.c index f4cdd7107..d3a7d13f0 100644 --- a/xc/lib/X11/locking.c +++ b/xc/lib/X11/locking.c @@ -1,4 +1,4 @@ -/* $TOG: locking.c /main/37 1998/02/06 17:42:31 kaleb $ */ +/* $Xorg: locking.c,v 1.4 2000/08/17 19:45:20 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group @@ -315,7 +315,7 @@ static void _XPopReader(dpy, list, tail) } /* signal new front after it is in place */ - if (dpy->lock->reply_first = (dpy->lock->reply_awaiters != NULL)) { + if ((dpy->lock->reply_first = (dpy->lock->reply_awaiters != NULL))) { ConditionSignal(dpy, dpy->lock->reply_awaiters->cv); } else if (dpy->lock->event_awaiters) { ConditionSignal(dpy, dpy->lock->event_awaiters->cv); @@ -429,7 +429,7 @@ static void _XFreeDisplayLock(dpy) xcondition_clear(dpy->lock->writers); xcondition_free(dpy->lock->writers); } - while (cvl = dpy->lock->free_cvls) { + while ((cvl = dpy->lock->free_cvls)) { dpy->lock->free_cvls = cvl->next; xcondition_clear(cvl->cv); Xfree((char *)cvl->cv); diff --git a/xc/lib/X11/locking.h b/xc/lib/X11/locking.h index 945e94fe0..d14432f72 100644 --- a/xc/lib/X11/locking.h +++ b/xc/lib/X11/locking.h @@ -1,4 +1,4 @@ -/* $TOG: locking.h /main/16 1998/02/06 17:42:38 kaleb $ */ +/* $Xorg: locking.h,v 1.3 2000/08/17 19:45:20 cpqbld Exp $ */ /* Copyright 1992, 1998 The Open Group diff --git a/xc/lib/X11/mbWMProps.c b/xc/lib/X11/mbWMProps.c index 01cabefb9..f2d26aaa5 100644 --- a/xc/lib/X11/mbWMProps.c +++ b/xc/lib/X11/mbWMProps.c @@ -1,4 +1,4 @@ -/* $TOG: mbWMProps.c /main/6 1998/02/06 17:44:24 kaleb $ */ +/* $Xorg: mbWMProps.c,v 1.3 2000/08/17 19:45:21 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/mbWMProps.c,v 1.3 2000/11/29 17:40:24 dawes Exp $ */ +/* $XFree86: xc/lib/X11/mbWMProps.c,v 1.4 2001/01/17 19:41:56 dawes Exp $ */ #include <X11/Xlibint.h> #include <X11/Xutil.h> diff --git a/xc/lib/X11/mbWrap.c b/xc/lib/X11/mbWrap.c index bc994a443..a43bb60a5 100644 --- a/xc/lib/X11/mbWrap.c +++ b/xc/lib/X11/mbWrap.c @@ -1,4 +1,4 @@ -/* $TOG: mbWrap.c /main/7 1998/02/06 17:44:30 kaleb $ */ +/* $Xorg: mbWrap.c,v 1.3 2000/08/17 19:45:21 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -46,7 +46,7 @@ from The Open Group. * * M. Collins OSF */ -/* $XFree86: xc/lib/X11/mbWrap.c,v 1.3 2000/11/29 17:40:25 dawes Exp $ */ +/* $XFree86: xc/lib/X11/mbWrap.c,v 1.4 2001/01/17 19:41:56 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/omDefault.c b/xc/lib/X11/omDefault.c index 2d09bfe54..2701d861e 100644 --- a/xc/lib/X11/omDefault.c +++ b/xc/lib/X11/omDefault.c @@ -1,4 +1,4 @@ -/* $TOG: omDefault.c /main/6 1997/06/22 15:53:43 kaleb $ */ +/* $Xorg: omDefault.c,v 1.3 2000/08/17 19:45:21 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -28,7 +28,7 @@ * This is source code modified by FUJITSU LIMITED under the Joint * Development Agreement for the CDE/Motif PST. */ -/* $XFree86: xc/lib/X11/omDefault.c,v 1.4 2000/11/29 17:40:25 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omDefault.c,v 1.5 2001/01/17 19:41:56 dawes Exp $ */ #include "Xlibint.h" #include "XomGeneric.h" diff --git a/xc/lib/X11/omGeneric.c b/xc/lib/X11/omGeneric.c index 0c1d78131..0df63555d 100644 --- a/xc/lib/X11/omGeneric.c +++ b/xc/lib/X11/omGeneric.c @@ -1,4 +1,4 @@ -/* $TOG: omGeneric.c /main/28 1998/06/25 16:15:55 kaleb $ */ +/* $Xorg: omGeneric.c,v 1.6 2000/08/17 19:45:21 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -31,7 +31,7 @@ * Modifier: Takanori Tateno FUJITSU LIMITED * */ -/* $XFree86: xc/lib/X11/omGeneric.c,v 3.17 2000/11/28 18:49:52 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omGeneric.c,v 3.18 2001/01/17 19:41:56 dawes Exp $ */ /* * Fixed the algorithms in parse_fontname() and parse_fontdata() @@ -713,20 +713,23 @@ parse_all_name(oc, font_data, pattern) if(is_match_charset(font_data, pattern) != True) { if ((fn_list = XListFontsWithInfo(dpy, pattern, MAXFONTS, - &list_num, &fs_list)) - && (prop_fname = get_prop_name(dpy, fs_list)) - && (is_match_charset(font_data, prop_fname) != True)) { - if (fn_list) { - XFreeFontInfo(fn_list, fs_list, list_num); - fn_list = NULL; - } - return False; + &list_num, &fs_list)) == NULL) { + return False; + } + else if ((prop_fname = get_prop_name(dpy, fs_list)) == NULL) { + XFreeFontInfo(fn_list, fs_list, list_num); + return False; + } + else if ((is_match_charset(font_data, prop_fname) != True)) { + XFree(prop_fname); + XFreeFontInfo(fn_list, fs_list, list_num); + return False; + } + else { + font_data->xlfd_name = prop_fname; + XFreeFontInfo(fn_list, fs_list, list_num); + return True; } - font_data->xlfd_name = prop_fname; - if (fn_list) { - XFreeFontInfo(fn_list, fs_list, list_num); - } - return True; } font_data->xlfd_name = (char *)Xmalloc(strlen(pattern)+1); diff --git a/xc/lib/X11/omImText.c b/xc/lib/X11/omImText.c index 5b6f6bb1a..c25969f2a 100644 --- a/xc/lib/X11/omImText.c +++ b/xc/lib/X11/omImText.c @@ -1,4 +1,4 @@ -/* $XConsortium: omImText.c,v 1.2 94/01/20 18:08:09 rws Exp $ */ +/* $Xorg: omImText.c,v 1.3 2000/08/17 19:45:22 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/omImText.c,v 1.3 2000/11/29 17:40:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omImText.c,v 1.4 2001/01/17 19:41:56 dawes Exp $ */ #include "Xlibint.h" #include "XomGeneric.h" diff --git a/xc/lib/X11/omText.c b/xc/lib/X11/omText.c index 9bf92d0d4..e7d35c4bf 100644 --- a/xc/lib/X11/omText.c +++ b/xc/lib/X11/omText.c @@ -1,4 +1,4 @@ -/* $TOG: omText.c /main/6 1998/03/14 06:08:58 kaleb $ */ +/* $Xorg: omText.c,v 1.3 2000/08/17 19:45:22 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/omText.c,v 1.3 2000/11/28 18:49:53 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omText.c,v 1.4 2001/01/17 19:41:56 dawes Exp $ */ /* * Copyright 1995 by FUJITSU LIMITED * This is source code modified by FUJITSU LIMITED under the Joint diff --git a/xc/lib/X11/omTextEsc.c b/xc/lib/X11/omTextEsc.c index d62c2df19..ad262ef24 100644 --- a/xc/lib/X11/omTextEsc.c +++ b/xc/lib/X11/omTextEsc.c @@ -1,4 +1,4 @@ -/* $XConsortium: omTextEsc.c /main/4 1996/12/05 10:40:59 swick $ */ +/* $Xorg: omTextEsc.c,v 1.3 2000/08/17 19:45:22 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/omTextEsc.c,v 1.4 2000/11/28 18:49:54 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omTextEsc.c,v 1.5 2001/01/17 19:41:56 dawes Exp $ */ /* * Copyright 1995 by FUJITSU LIMITED * This is source code modified by FUJITSU LIMITED under the Joint diff --git a/xc/lib/X11/omTextExt.c b/xc/lib/X11/omTextExt.c index 7239c4ff7..f4053dfad 100644 --- a/xc/lib/X11/omTextExt.c +++ b/xc/lib/X11/omTextExt.c @@ -1,4 +1,4 @@ -/* $XConsortium: omTextExt.c,v 1.2 94/01/20 18:08:23 rws Exp $ */ +/* $Xorg: omTextExt.c,v 1.3 2000/08/17 19:45:22 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/omTextExt.c,v 1.3 2000/11/29 17:40:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omTextExt.c,v 1.4 2001/01/17 19:41:57 dawes Exp $ */ #include "Xlibint.h" #include "XomGeneric.h" diff --git a/xc/lib/X11/omTextPer.c b/xc/lib/X11/omTextPer.c index 14a295595..fb0a1afd8 100644 --- a/xc/lib/X11/omTextPer.c +++ b/xc/lib/X11/omTextPer.c @@ -1,4 +1,4 @@ -/* $XConsortium: omTextPer.c,v 1.2 94/01/20 18:08:28 rws Exp $ */ +/* $Xorg: omTextPer.c,v 1.3 2000/08/17 19:45:22 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -23,7 +23,7 @@ * Author: Katsuhisa Yano TOSHIBA Corp. * mopi@osa.ilab.toshiba.co.jp */ -/* $XFree86: xc/lib/X11/omTextPer.c,v 1.3 2000/11/29 17:40:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omTextPer.c,v 1.4 2001/01/17 19:41:57 dawes Exp $ */ #include "Xlibint.h" #include "XomGeneric.h" diff --git a/xc/lib/X11/omXChar.c b/xc/lib/X11/omXChar.c index 07fbae07f..ce7b32875 100644 --- a/xc/lib/X11/omXChar.c +++ b/xc/lib/X11/omXChar.c @@ -1,4 +1,4 @@ -/* $TOG: omXChar.c /main/8 1998/03/14 06:09:03 kaleb $ */ +/* $Xorg: omXChar.c,v 1.3 2000/08/17 19:45:23 cpqbld Exp $ */ /* * Copyright 1992, 1993 by TOSHIBA Corp. * @@ -34,7 +34,7 @@ /* * Modifiers: Jeff Walls, Paul Anderson (HEWLETT-PACKARD) */ -/* $XFree86: xc/lib/X11/omXChar.c,v 1.4 2000/11/29 17:40:26 dawes Exp $ */ +/* $XFree86: xc/lib/X11/omXChar.c,v 1.5 2001/01/17 19:41:57 dawes Exp $ */ #include "Xlibint.h" #include "XlcPublic.h" diff --git a/xc/lib/X11/poly.h b/xc/lib/X11/poly.h index 660c689ad..17cbb9b7c 100644 --- a/xc/lib/X11/poly.h +++ b/xc/lib/X11/poly.h @@ -1,4 +1,4 @@ -/* $TOG: poly.h /main/5 1998/02/06 17:47:27 kaleb $ */ +/* $Xorg: poly.h,v 1.3 2000/08/17 19:45:23 cpqbld Exp $ */ /************************************************************************ Copyright 1987, 1998 The Open Group diff --git a/xc/lib/X11/region.h b/xc/lib/X11/region.h index c1a7fd5be..6f9516a80 100644 --- a/xc/lib/X11/region.h +++ b/xc/lib/X11/region.h @@ -1,4 +1,4 @@ -/* $TOG: region.h /main/9 1998/02/06 17:50:30 kaleb $ */ +/* $Xorg: region.h,v 1.3 2000/08/17 19:45:23 cpqbld Exp $ */ /************************************************************************ Copyright 1987, 1998 The Open Group diff --git a/xc/lib/X11/udcInf.c b/xc/lib/X11/udcInf.c index acbd618f6..92574775b 100644 --- a/xc/lib/X11/udcInf.c +++ b/xc/lib/X11/udcInf.c @@ -1,4 +1,4 @@ -/* $TOG: udcInf.c /main/4 1998/02/06 17:55:37 kaleb $ */ +/* $Xorg: udcInf.c,v 1.6 2000/08/17 19:45:23 cpqbld Exp $ */ /* Copyright 1996, 1998 The Open Group @@ -29,7 +29,7 @@ from The Open Group. * */ -/* $XFree86: xc/lib/X11/udcInf.c,v 1.5 2000/12/04 18:49:28 dawes Exp $ */ +/* $XFree86: xc/lib/X11/udcInf.c,v 1.6 2001/01/17 19:41:57 dawes Exp $ */ #include <stdio.h> #include <locale.h> diff --git a/xc/lib/X11/util/makekeys.c b/xc/lib/X11/util/makekeys.c index 82a8449e1..172ad8c4e 100644 --- a/xc/lib/X11/util/makekeys.c +++ b/xc/lib/X11/util/makekeys.c @@ -1,4 +1,4 @@ -/* $TOG: makekeys.c /main/11 1998/02/09 09:22:41 kaleb $ */ +/* $Xorg: makekeys.c,v 1.4 2000/08/17 19:45:24 cpqbld Exp $ */ /* Copyright 1990, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/util/makekeys.c,v 3.4 1998/10/05 13:22:00 dawes Exp $ */ +/* $XFree86: xc/lib/X11/util/makekeys.c,v 3.5 2001/01/17 19:42:20 dawes Exp $ */ /* Constructs hash tables for XStringToKeysym and XKeysymToString. */ diff --git a/xc/lib/X11/uvY.c b/xc/lib/X11/uvY.c index 082afd7a0..a0509f39a 100644 --- a/xc/lib/X11/uvY.c +++ b/xc/lib/X11/uvY.c @@ -1,4 +1,4 @@ -/* $XConsortium: uvY.c,v 1.10 93/09/07 21:33:36 rws Exp $ */ +/* $Xorg: uvY.c,v 1.3 2000/08/17 19:45:23 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -35,7 +35,7 @@ * DOCUMENTATION * "TekColor Color Management System, System Implementor's Manual" */ -/* $XFree86: xc/lib/X11/uvY.c,v 1.2 1999/05/09 10:50:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/uvY.c,v 1.3 2001/01/17 19:41:57 dawes Exp $ */ #include <X11/Xos.h> #include "Xlibint.h" diff --git a/xc/lib/X11/wcWrap.c b/xc/lib/X11/wcWrap.c index 4a05e1d86..c85cf8211 100644 --- a/xc/lib/X11/wcWrap.c +++ b/xc/lib/X11/wcWrap.c @@ -1,4 +1,4 @@ -/* $TOG: wcWrap.c /main/7 1998/02/06 17:57:03 kaleb $ */ +/* $Xorg: wcWrap.c,v 1.3 2000/08/17 19:45:23 cpqbld Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -47,7 +47,7 @@ from The Open Group. * * M. Collins OSF */ -/* $XFree86: xc/lib/X11/wcWrap.c,v 1.3 2000/11/29 17:40:27 dawes Exp $ */ +/* $XFree86: xc/lib/X11/wcWrap.c,v 1.4 2001/01/17 19:41:57 dawes Exp $ */ #include "Xlibint.h" #include "Xlcint.h" diff --git a/xc/lib/X11/xyY.c b/xc/lib/X11/xyY.c index 57df63861..7b1b77318 100644 --- a/xc/lib/X11/xyY.c +++ b/xc/lib/X11/xyY.c @@ -1,4 +1,4 @@ -/* $XConsortium: xyY.c,v 1.10 93/09/07 21:33:40 rws Exp $ */ +/* $Xorg: xyY.c,v 1.3 2000/08/17 19:45:23 cpqbld Exp $ */ /* * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc. @@ -34,7 +34,7 @@ * DOCUMENTATION * "TekColor Color Management System, System Implementor's Manual" */ -/* $XFree86: xc/lib/X11/xyY.c,v 1.2 1999/05/09 10:50:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/xyY.c,v 1.3 2001/01/17 19:41:57 dawes Exp $ */ #include <stdio.h> #include <X11/Xos.h> diff --git a/xc/lib/XIE/Imakefile b/xc/lib/XIE/Imakefile index 09c9e9edc..a77b8b348 100644 --- a/xc/lib/XIE/Imakefile +++ b/xc/lib/XIE/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/7 1996/09/28 16:43:07 rws $ -XCOMM $XFree86: xc/lib/XIE/Imakefile,v 1.2 1998/12/20 11:56:58 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:25 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/XIE/Imakefile,v 1.3 2001/01/17 19:42:20 dawes Exp $ #define DoNormalLib NormalLibXie #define DoSharedLib SharedLibXie diff --git a/xc/lib/XIE/XIE-def.cpp b/xc/lib/XIE/XIE-def.cpp index cbaa648db..b9191e96e 100644 --- a/xc/lib/XIE/XIE-def.cpp +++ b/xc/lib/XIE/XIE-def.cpp @@ -110,4 +110,4 @@ EXPORTS XieTecWhiteAdjustCIELabShift XieTecYCCToRGB XieTecYCbCrToRGB -/* $XConsortium: XIE-def.cpp /main/3 1996/05/07 13:15:28 kaleb $ */ +/* $Xorg: XIE-def.cpp,v 1.3 2000/08/17 19:45:25 cpqbld Exp $ */ diff --git a/xc/lib/XIE/XIElib.h b/xc/lib/XIE/XIElib.h index fcbe74c64..3f1ce364f 100644 --- a/xc/lib/XIE/XIElib.h +++ b/xc/lib/XIE/XIElib.h @@ -1,4 +1,4 @@ -/* $TOG: XIElib.h /main/13 1998/02/06 15:13:26 kaleb $ */ +/* $Xorg: XIElib.h,v 1.5 2000/08/17 19:45:25 cpqbld Exp $ */ /* @@ -246,7 +246,11 @@ typedef struct { XiePhototag src2; XieProcessDomain domain; XieConstant constant; +#if defined(__cplusplus) || defined(c_plusplus) + XieArithmeticOp c_operator; +#else XieArithmeticOp operator; +#endif unsigned int band_mask; } Arithmetic; @@ -283,7 +287,11 @@ typedef struct { XiePhototag src2; XieProcessDomain domain; XieConstant constant; +#if defined(__cplusplus) || defined(c_plusplus) + XieCompareOp c_operator; +#else XieCompareOp operator; +#endif Bool combine; unsigned int band_mask; } Compare; @@ -357,7 +365,11 @@ typedef struct { XiePhototag src2; XieProcessDomain domain; XieConstant constant; +#if defined(__cplusplus) || defined(c_plusplus) + int c_operator; +#else int operator; +#endif unsigned int band_mask; } Logical; @@ -371,7 +383,11 @@ typedef struct { struct { XiePhototag src; XieProcessDomain domain; +#if defined(__cplusplus) || defined(c_plusplus) + XieMathOp c_operator; +#else XieMathOp operator; +#endif unsigned int band_mask; } Math; @@ -861,7 +877,11 @@ typedef struct { unsigned long name_space; XiePhototag phototag; unsigned int elem_type; +#if defined(__cplusplus) || defined(c_plusplus) + unsigned int c_operator; +#else unsigned int operator; +#endif } XieFloOperatorError; typedef struct { diff --git a/xc/lib/XIE/XIElibint.h b/xc/lib/XIE/XIElibint.h index 0e23c69f6..80c29f7cd 100644 --- a/xc/lib/XIE/XIElibint.h +++ b/xc/lib/XIE/XIElibint.h @@ -1,4 +1,4 @@ -/* $TOG: XIElibint.h /main/9 1998/02/06 15:13:20 kaleb $ */ +/* $Xorg: XIElibint.h,v 1.4 2000/08/17 19:45:25 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/XIElibint.h,v 3.3 1999/06/13 16:18:06 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/XIElibint.h,v 3.4 2001/01/17 19:42:21 dawes Exp $ */ #ifndef _XIELIBINT_H_ #define _XIELIBINT_H_ @@ -103,7 +103,7 @@ typedef struct _XieExtInfo #define GET_EXTENSION_INFO(_display, _info) \ \ { \ - if ((_info = _XieExtInfoHeader) != 0) \ + if ((_info = _XieExtInfoHeader)) \ { \ if (_XieExtInfoHeader->display != _display) \ { \ diff --git a/xc/lib/XIE/abort.c b/xc/lib/XIE/abort.c index e1e30d0a4..701917bc3 100644 --- a/xc/lib/XIE/abort.c +++ b/xc/lib/XIE/abort.c @@ -1,4 +1,4 @@ -/* $TOG: abort.c /main/3 1998/02/06 15:11:19 kaleb $ */ +/* $Xorg: abort.c,v 1.3 2000/08/17 19:45:25 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/abort.c,v 1.3 1999/06/13 16:18:07 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/abort.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/await.c b/xc/lib/XIE/await.c index c451fe475..f3037f8f7 100644 --- a/xc/lib/XIE/await.c +++ b/xc/lib/XIE/await.c @@ -1,4 +1,4 @@ -/* $TOG: await.c /main/3 1998/02/06 15:11:25 kaleb $ */ +/* $Xorg: await.c,v 1.3 2000/08/17 19:45:25 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/await.c,v 1.3 1999/06/13 16:18:07 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/await.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/clientdata.c b/xc/lib/XIE/clientdata.c index 2505c45f5..2a07a6fa4 100644 --- a/xc/lib/XIE/clientdata.c +++ b/xc/lib/XIE/clientdata.c @@ -1,4 +1,4 @@ -/* $TOG: clientdata.c /main/5 1998/02/06 15:11:30 kaleb $ */ +/* $Xorg: clientdata.c,v 1.3 2000/08/17 19:45:25 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/clientdata.c,v 1.3 1999/06/13 16:18:07 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/clientdata.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/colorlist.c b/xc/lib/XIE/colorlist.c index cc91fd694..03bf5cbc6 100644 --- a/xc/lib/XIE/colorlist.c +++ b/xc/lib/XIE/colorlist.c @@ -1,4 +1,4 @@ -/* $TOG: colorlist.c /main/7 1998/02/06 15:11:36 kaleb $ */ +/* $Xorg: colorlist.c,v 1.3 2000/08/17 19:45:25 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/colorlist.c,v 1.4 2000/09/26 15:56:53 tsi Exp $ */ +/* $XFree86: xc/lib/XIE/colorlist.c,v 1.5 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/conven.c b/xc/lib/XIE/conven.c index 4f1886aa9..8ecd62e8d 100644 --- a/xc/lib/XIE/conven.c +++ b/xc/lib/XIE/conven.c @@ -1,4 +1,4 @@ -/* $TOG: conven.c /main/10 1998/02/06 15:11:41 kaleb $ */ +/* $Xorg: conven.c,v 1.5 2000/08/17 19:45:25 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/conven.c,v 1.3 1999/06/13 16:18:08 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/conven.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" @@ -168,7 +168,7 @@ XieFloArithmetic ( XiePhototag src2, XieProcessDomain *domain, XieConstant constant, - XieArithmeticOp operator, + XieArithmeticOp op, unsigned int band_mask) { element->elemType = xieElemArithmetic; @@ -180,7 +180,7 @@ XieFloArithmetic ( element->data.Arithmetic.constant[0] = constant[0]; element->data.Arithmetic.constant[1] = constant[1]; element->data.Arithmetic.constant[2] = constant[2]; - element->data.Arithmetic.operator = operator; + element->data.Arithmetic.operator = op; element->data.Arithmetic.band_mask = band_mask; } @@ -262,7 +262,7 @@ XieFloCompare ( XiePhototag src2, XieProcessDomain *domain, XieConstant constant, - XieCompareOp operator, + XieCompareOp op, Bool combine, unsigned int band_mask) { @@ -275,7 +275,7 @@ XieFloCompare ( element->data.Compare.constant[0] = constant[0]; element->data.Compare.constant[1] = constant[1]; element->data.Compare.constant[2] = constant[2]; - element->data.Compare.operator = operator; + element->data.Compare.operator = op; element->data.Compare.combine = combine; element->data.Compare.band_mask = band_mask; } @@ -450,7 +450,7 @@ XieFloLogical ( XiePhototag src2, XieProcessDomain *domain, XieConstant constant, - unsigned long operator, + unsigned long op, unsigned int band_mask) { element->elemType = xieElemLogical; @@ -462,7 +462,7 @@ XieFloLogical ( element->data.Logical.constant[0] = constant[0]; element->data.Logical.constant[1] = constant[1]; element->data.Logical.constant[2] = constant[2]; - element->data.Logical.operator = operator; + element->data.Logical.operator = op; element->data.Logical.band_mask = band_mask; } @@ -490,7 +490,7 @@ XieFloMath ( XiePhotoElement *element, XiePhototag src, XieProcessDomain *domain, - XieMathOp operator, + XieMathOp op, unsigned int band_mask) { element->elemType = xieElemMath; @@ -498,7 +498,7 @@ XieFloMath ( element->data.Math.domain.offset_x = domain->offset_x; element->data.Math.domain.offset_y = domain->offset_y; element->data.Math.domain.phototag = domain->phototag; - element->data.Math.operator = operator; + element->data.Math.operator = op; element->data.Math.band_mask = band_mask; } diff --git a/xc/lib/XIE/elements.c b/xc/lib/XIE/elements.c index c1f144f85..99372d81b 100644 --- a/xc/lib/XIE/elements.c +++ b/xc/lib/XIE/elements.c @@ -1,4 +1,4 @@ -/* $TOG: elements.c /main/6 1998/02/06 15:11:48 kaleb $ */ +/* $Xorg: elements.c,v 1.5 2000/08/17 19:45:26 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/elements.c,v 1.3 1999/06/13 16:18:08 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/elements.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" #include "elements.h" diff --git a/xc/lib/XIE/elements.h b/xc/lib/XIE/elements.h index 718534525..c6dcfe725 100644 --- a/xc/lib/XIE/elements.h +++ b/xc/lib/XIE/elements.h @@ -1,4 +1,4 @@ -/* $TOG: elements.h /main/6 1998/02/06 15:11:55 kaleb $ */ +/* $Xorg: elements.h,v 1.3 2000/08/17 19:45:26 cpqbld Exp $ */ /* diff --git a/xc/lib/XIE/errors.c b/xc/lib/XIE/errors.c index fdd92837b..c2bc2051f 100644 --- a/xc/lib/XIE/errors.c +++ b/xc/lib/XIE/errors.c @@ -1,4 +1,4 @@ -/* $TOG: errors.c /main/6 1998/02/06 15:12:00 kaleb $ */ +/* $Xorg: errors.c,v 1.5 2000/08/17 19:45:26 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/errors.c,v 3.3 1999/06/13 16:18:09 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/errors.c,v 3.4 2001/01/17 19:42:21 dawes Exp $ */ #define NEED_EVENTS /* so XErrorEvent will get pulled in */ diff --git a/xc/lib/XIE/events.c b/xc/lib/XIE/events.c index 0c27b1113..49912d0bf 100644 --- a/xc/lib/XIE/events.c +++ b/xc/lib/XIE/events.c @@ -1,4 +1,4 @@ -/* $TOG: events.c /main/7 1998/02/06 15:12:05 kaleb $ */ +/* $Xorg: events.c,v 1.3 2000/08/17 19:45:26 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/events.c,v 1.3 1999/06/13 16:18:09 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/events.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #define NEED_EVENTS /* so xEvent will get pulled in */ #include "XIElibint.h" diff --git a/xc/lib/XIE/free.c b/xc/lib/XIE/free.c index 4734f7d9d..a3e8030b5 100644 --- a/xc/lib/XIE/free.c +++ b/xc/lib/XIE/free.c @@ -1,4 +1,4 @@ -/* $TOG: free.c /main/4 1998/02/06 15:12:10 kaleb $ */ +/* $Xorg: free.c,v 1.3 2000/08/17 19:45:26 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/free.c,v 1.3 1999/06/13 16:18:10 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/free.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/globals.h b/xc/lib/XIE/globals.h index 58c399ad2..47161773a 100644 --- a/xc/lib/XIE/globals.h +++ b/xc/lib/XIE/globals.h @@ -1,4 +1,4 @@ -/* $TOG: globals.h /main/4 1998/02/06 15:12:14 kaleb $ */ +/* $Xorg: globals.h,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/globals.h,v 1.3 1999/06/13 13:47:01 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/globals.h,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ extern void _XieElemImportClientLUT (char **, XiePhotoElement *); extern void _XieElemImportClientPhoto (char **, XiePhotoElement *); diff --git a/xc/lib/XIE/ieee.c b/xc/lib/XIE/ieee.c index 1533e9365..683f1064a 100644 --- a/xc/lib/XIE/ieee.c +++ b/xc/lib/XIE/ieee.c @@ -1,4 +1,4 @@ -/* $TOG: ieee.c /main/6 1998/02/06 15:12:20 kaleb $ */ +/* $Xorg: ieee.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /****************************************************************************** NOTICE @@ -64,7 +64,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/ieee.c,v 1.3 1999/06/13 16:18:10 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/ieee.c,v 1.4 2001/01/17 19:42:21 dawes Exp $ */ #include "XIElibint.h" #include <math.h> diff --git a/xc/lib/XIE/init.c b/xc/lib/XIE/init.c index f345e2369..9e54faf99 100644 --- a/xc/lib/XIE/init.c +++ b/xc/lib/XIE/init.c @@ -1,4 +1,4 @@ -/* $TOG: init.c /main/12 1998/02/06 15:12:25 kaleb $ */ +/* $Xorg: init.c,v 1.5 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/init.c,v 3.4 2000/09/26 15:56:53 tsi Exp $ */ +/* $XFree86: xc/lib/XIE/init.c,v 3.5 2001/01/17 19:42:21 dawes Exp $ */ #define NEED_EVENTS /* so XErrorEvent will get pulled in */ diff --git a/xc/lib/XIE/init.h b/xc/lib/XIE/init.h index b2cbfaaf1..9381cc97d 100644 --- a/xc/lib/XIE/init.h +++ b/xc/lib/XIE/init.h @@ -1,4 +1,4 @@ -/* $TOG: init.h /main/4 1998/02/06 15:12:30 kaleb $ */ +/* $Xorg: init.h,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* diff --git a/xc/lib/XIE/jump_funcs b/xc/lib/XIE/jump_funcs index e590f57c2..d4d85d123 100644 --- a/xc/lib/XIE/jump_funcs +++ b/xc/lib/XIE/jump_funcs @@ -1,5 +1,9 @@ -# $XConsortium: jump_funcs,v 1.2 94/12/07 10:44:37 kaleb Exp $ -# $XFree86: xc/lib/XIE/jump_funcs,v 3.1 1995/01/28 15:43:09 dawes Exp $ +# $Xorg: jump_funcs,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/XIE/jump_funcs,v 3.2 2001/01/17 19:42:21 dawes Exp $ 00000000 T _XieAbort libXIE abort 00000000 T _XieAwait libXIE await 00000000 T _XiePutClientData libXIE clientdata diff --git a/xc/lib/XIE/jump_ignore b/xc/lib/XIE/jump_ignore index 939a888dc..1a64a1cb0 100644 --- a/xc/lib/XIE/jump_ignore +++ b/xc/lib/XIE/jump_ignore @@ -1,3 +1,7 @@ -# $XConsortium: jump_ignore,v 1.2 94/12/07 10:44:37 kaleb Exp $ -# $XFree86: xc/lib/XIE/jump_ignore,v 3.1 1995/01/28 15:43:12 dawes Exp $ +# $Xorg: jump_ignore,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/XIE/jump_ignore,v 3.2 2001/01/17 19:42:22 dawes Exp $ # jump_ignore diff --git a/xc/lib/XIE/jump_vars b/xc/lib/XIE/jump_vars index 481d2e3f4..5efd0cf77 100644 --- a/xc/lib/XIE/jump_vars +++ b/xc/lib/XIE/jump_vars @@ -1,5 +1,9 @@ -# $XConsortium: jump_vars,v 1.2 94/12/07 10:44:37 kaleb Exp $ -# $XFree86: xc/lib/XIE/jump_vars,v 3.1 1995/01/28 15:43:13 dawes Exp $ +# $Xorg: jump_vars,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/XIE/jump_vars,v 3.2 2001/01/17 19:42:22 dawes Exp $ 00000004 D __XieExtInfoHeader libXIE init 000000b4 D __XieElemFuncs libXIE init 00000004 D __XieTechFuncsInitialized libXIE init diff --git a/xc/lib/XIE/lut.c b/xc/lib/XIE/lut.c index bcfa46cb8..610da4838 100644 --- a/xc/lib/XIE/lut.c +++ b/xc/lib/XIE/lut.c @@ -1,4 +1,4 @@ -/* $TOG: lut.c /main/3 1998/02/06 15:12:36 kaleb $ */ +/* $Xorg: lut.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/lut.c,v 1.3 1999/06/13 16:18:10 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/lut.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/photoflo.c b/xc/lib/XIE/photoflo.c index 43ef91681..a83f577d0 100644 --- a/xc/lib/XIE/photoflo.c +++ b/xc/lib/XIE/photoflo.c @@ -1,4 +1,4 @@ -/* $TOG: photoflo.c /main/7 1998/02/06 15:12:41 kaleb $ */ +/* $Xorg: photoflo.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/photoflo.c,v 1.3 1999/06/13 16:18:11 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/photoflo.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/photomap.c b/xc/lib/XIE/photomap.c index 3ad31dcaa..ea27dc1d8 100644 --- a/xc/lib/XIE/photomap.c +++ b/xc/lib/XIE/photomap.c @@ -1,4 +1,4 @@ -/* $TOG: photomap.c /main/7 1998/02/06 15:12:46 kaleb $ */ +/* $Xorg: photomap.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/photomap.c,v 1.3 1999/06/13 16:18:11 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/photomap.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/photospace.c b/xc/lib/XIE/photospace.c index ff57e5f9e..c52f36809 100644 --- a/xc/lib/XIE/photospace.c +++ b/xc/lib/XIE/photospace.c @@ -1,4 +1,4 @@ -/* $TOG: photospace.c /main/3 1998/02/06 15:12:51 kaleb $ */ +/* $Xorg: photospace.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/photospace.c,v 1.3 1999/06/13 16:18:11 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/photospace.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/roi.c b/xc/lib/XIE/roi.c index 82b9869a9..0c4797c04 100644 --- a/xc/lib/XIE/roi.c +++ b/xc/lib/XIE/roi.c @@ -1,4 +1,4 @@ -/* $TOG: roi.c /main/3 1998/02/06 15:12:57 kaleb $ */ +/* $Xorg: roi.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/roi.c,v 1.3 1999/06/13 16:18:12 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/roi.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/XIE/technique.c b/xc/lib/XIE/technique.c index b4c72c7a0..1f733763f 100644 --- a/xc/lib/XIE/technique.c +++ b/xc/lib/XIE/technique.c @@ -1,4 +1,4 @@ -/* $TOG: technique.c /main/8 1998/02/06 15:13:02 kaleb $ */ +/* $Xorg: technique.c,v 1.3 2000/08/17 19:45:27 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/technique.c,v 1.3 1999/06/13 16:18:12 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/technique.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" #include "technique.h" diff --git a/xc/lib/XIE/technique.h b/xc/lib/XIE/technique.h index 163ce6af8..8acce1df5 100644 --- a/xc/lib/XIE/technique.h +++ b/xc/lib/XIE/technique.h @@ -1,4 +1,4 @@ -/* $TOG: technique.h /main/5 1998/02/06 15:13:09 kaleb $ */ +/* $Xorg: technique.h,v 1.3 2000/08/17 19:45:28 cpqbld Exp $ */ /* diff --git a/xc/lib/XIE/utils.c b/xc/lib/XIE/utils.c index dfd24be10..8efd29d62 100644 --- a/xc/lib/XIE/utils.c +++ b/xc/lib/XIE/utils.c @@ -1,4 +1,4 @@ -/* $TOG: utils.c /main/4 1998/04/30 14:40:10 kaleb $ */ +/* $Xorg: utils.c,v 1.3 2000/08/17 19:45:28 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/XIE/utils.c,v 1.3 1999/06/13 16:18:12 dawes Exp $ */ +/* $XFree86: xc/lib/XIE/utils.c,v 1.4 2001/01/17 19:42:22 dawes Exp $ */ #include "XIElibint.h" diff --git a/xc/lib/Xau/AuDispose.c b/xc/lib/Xau/AuDispose.c index fa2afa99c..5f6bf1bc4 100644 --- a/xc/lib/Xau/AuDispose.c +++ b/xc/lib/Xau/AuDispose.c @@ -1,4 +1,4 @@ -/* $TOG: AuDispose.c /main/6 1998/02/06 14:14:30 kaleb $ */ +/* $Xorg: AuDispose.c,v 1.3 2000/08/17 19:45:28 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuDispose.c,v 1.2 1999/03/14 03:21:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuDispose.c,v 1.3 2001/01/17 19:42:23 dawes Exp $ */ #include <X11/Xauth.h> diff --git a/xc/lib/Xau/AuFileName.c b/xc/lib/Xau/AuFileName.c index 26e86da6d..a4fe1e6f2 100644 --- a/xc/lib/Xau/AuFileName.c +++ b/xc/lib/Xau/AuFileName.c @@ -1,4 +1,4 @@ -/* $TOG: AuFileName.c /main/9 1998/02/06 14:14:36 kaleb $ */ +/* $Xorg: AuFileName.c,v 1.4 2000/08/17 19:45:28 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuFileName.c,v 3.4 1999/05/09 10:51:32 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuFileName.c,v 3.5 2001/01/17 19:42:23 dawes Exp $ */ #include <X11/Xauth.h> #include <X11/Xos.h> diff --git a/xc/lib/Xau/AuGetAddr.c b/xc/lib/Xau/AuGetAddr.c index 1dd8d610b..8ab56ff69 100644 --- a/xc/lib/Xau/AuGetAddr.c +++ b/xc/lib/Xau/AuGetAddr.c @@ -1,4 +1,4 @@ -/* $TOG: AuGetAddr.c /main/14 1998/02/06 14:14:42 kaleb $ */ +/* $Xorg: AuGetAddr.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuGetAddr.c,v 1.3 2000/06/14 00:16:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuGetAddr.c,v 1.4 2001/01/17 19:42:23 dawes Exp $ */ #include <X11/Xauth.h> #include <X11/Xos.h> diff --git a/xc/lib/Xau/AuGetBest.c b/xc/lib/Xau/AuGetBest.c index 8ab89a47b..285fa8a39 100644 --- a/xc/lib/Xau/AuGetBest.c +++ b/xc/lib/Xau/AuGetBest.c @@ -1,4 +1,4 @@ -/* $TOG: AuGetBest.c /main/24 1998/02/06 14:14:47 kaleb $ */ +/* $Xorg: AuGetBest.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuGetBest.c,v 1.3 2000/06/14 00:16:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuGetBest.c,v 1.4 2001/01/17 19:42:23 dawes Exp $ */ #include <X11/Xauth.h> #include <X11/Xos.h> diff --git a/xc/lib/Xau/AuLock.c b/xc/lib/Xau/AuLock.c index 8586e87f4..dd383ae62 100644 --- a/xc/lib/Xau/AuLock.c +++ b/xc/lib/Xau/AuLock.c @@ -1,4 +1,4 @@ -/* $TOG: AuLock.c /main/16 1998/02/06 14:14:52 kaleb $ */ +/* $Xorg: AuLock.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuLock.c,v 3.2 2000/02/14 17:43:40 robin Exp $ */ +/* $XFree86: xc/lib/Xau/AuLock.c,v 3.3 2001/01/17 19:42:24 dawes Exp $ */ #include <X11/Xauth.h> #include <X11/Xos.h> diff --git a/xc/lib/Xau/AuRead.c b/xc/lib/Xau/AuRead.c index 7e5e8dfea..0fc8ec001 100644 --- a/xc/lib/Xau/AuRead.c +++ b/xc/lib/Xau/AuRead.c @@ -1,4 +1,4 @@ -/* $TOG: AuRead.c /main/8 1998/02/06 14:14:57 kaleb $ */ +/* $Xorg: AuRead.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuRead.c,v 1.3 1999/05/09 10:51:33 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuRead.c,v 1.4 2001/01/17 19:42:24 dawes Exp $ */ #include <X11/Xauth.h> diff --git a/xc/lib/Xau/AuUnlock.c b/xc/lib/Xau/AuUnlock.c index 00ff9108b..daf36d840 100644 --- a/xc/lib/Xau/AuUnlock.c +++ b/xc/lib/Xau/AuUnlock.c @@ -1,4 +1,4 @@ -/* $TOG: AuUnlock.c /main/11 1998/02/06 14:15:10 kaleb $ */ +/* $Xorg: AuUnlock.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuUnlock.c,v 1.2 1999/05/09 10:51:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuUnlock.c,v 1.3 2001/01/17 19:42:24 dawes Exp $ */ #include <X11/Xauth.h> #include <X11/Xos.h> diff --git a/xc/lib/Xau/AuWrite.c b/xc/lib/Xau/AuWrite.c index f02008415..4ca8c06ed 100644 --- a/xc/lib/Xau/AuWrite.c +++ b/xc/lib/Xau/AuWrite.c @@ -1,4 +1,4 @@ -/* $TOG: AuWrite.c /main/7 1998/02/06 14:15:18 kaleb $ */ +/* $Xorg: AuWrite.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/AuWrite.c,v 1.2 1999/05/09 10:51:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/AuWrite.c,v 1.3 2001/01/17 19:42:24 dawes Exp $ */ #include <X11/Xauth.h> diff --git a/xc/lib/Xau/Autest.c b/xc/lib/Xau/Autest.c index d6a1ce810..fc2220f8c 100644 --- a/xc/lib/Xau/Autest.c +++ b/xc/lib/Xau/Autest.c @@ -1,4 +1,4 @@ -/* $TOG: Autest.c /main/5 1998/02/06 14:15:03 kaleb $ */ +/* $Xorg: Autest.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* diff --git a/xc/lib/Xau/Imakefile b/xc/lib/Xau/Imakefile index a94ff94fc..9389fe00b 100644 --- a/xc/lib/Xau/Imakefile +++ b/xc/lib/Xau/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/27 1996/09/28 16:43:28 rws $ -XCOMM $XFree86: xc/lib/Xau/Imakefile,v 3.5 1999/04/17 09:08:11 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xau/Imakefile,v 3.6 2001/01/17 19:42:24 dawes Exp $ + #define DoNormalLib NormalLibXau #define DoSharedLib SharedLibXau #define DoExtraLib SharedLibXau diff --git a/xc/lib/Xau/Xauth.h b/xc/lib/Xau/Xauth.h index c20860f08..21b349cf2 100644 --- a/xc/lib/Xau/Xauth.h +++ b/xc/lib/Xau/Xauth.h @@ -1,4 +1,4 @@ -/* $TOG: Xauth.h /main/19 1998/02/06 14:15:45 kaleb $ */ +/* $Xorg: Xauth.h,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xau/Xauth.h,v 1.3 1998/10/11 11:23:43 dawes Exp $ */ +/* $XFree86: xc/lib/Xau/Xauth.h,v 1.4 2001/01/17 19:42:24 dawes Exp $ */ #ifndef _Xauth_h #define _Xauth_h diff --git a/xc/lib/Xau/k5encode.c b/xc/lib/Xau/k5encode.c index 723d064ec..10cc52de1 100644 --- a/xc/lib/Xau/k5encode.c +++ b/xc/lib/Xau/k5encode.c @@ -1,4 +1,4 @@ -/* $TOG: k5encode.c /main/7 1998/02/06 14:15:31 kaleb $ */ +/* $Xorg: k5encode.c,v 1.3 2000/08/17 19:45:29 cpqbld Exp $ */ /* diff --git a/xc/lib/Xaw/AllWidgets.c b/xc/lib/Xaw/AllWidgets.c index 2fcf96670..1ccc4d730 100644 --- a/xc/lib/Xaw/AllWidgets.c +++ b/xc/lib/Xaw/AllWidgets.c @@ -1,4 +1,4 @@ -/* $TOG: AllWidgets.c /main/9 1998/02/06 12:43:49 kaleb $ */ +/* $Xorg: AllWidgets.c,v 1.3 2000/08/17 19:45:30 cpqbld Exp $ */ /* diff --git a/xc/lib/Xaw/AllWidgets.h b/xc/lib/Xaw/AllWidgets.h index 7e33c640c..d5e1b2759 100644 --- a/xc/lib/Xaw/AllWidgets.h +++ b/xc/lib/Xaw/AllWidgets.h @@ -1,5 +1,5 @@ /* - * $TOG: AllWidgets.h /main/4 1998/02/06 12:43:57 kaleb $ + * $Xorg: AllWidgets.h,v 1.4 2000/08/17 19:45:30 cpqbld Exp $ * Copyright 1990, 1998 The Open Group @@ -23,6 +23,8 @@ in this Software without prior written authorization from The Open Group. #ifndef _XawAllWidgets_h #define _XawAllWidgets_h +#include <X11/Xmu/WidgetNode.h> + /* * This file matches the generated AllWidgets.c */ diff --git a/xc/lib/Xaw/AsciiSink.c b/xc/lib/Xaw/AsciiSink.c index a872fe4a6..ae61dcd99 100644 --- a/xc/lib/Xaw/AsciiSink.c +++ b/xc/lib/Xaw/AsciiSink.c @@ -1,4 +1,4 @@ -/* $TOG: AsciiSink.c /main/63 1998/02/06 12:44:08 kaleb $ */ +/* $Xorg: AsciiSink.c,v 1.3 2000/08/17 19:45:30 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/AsciiSink.c,v 1.22 2000/09/26 15:56:53 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiSink.c,v 1.23 2001/01/17 19:42:24 dawes Exp $ */ #include <stdio.h> #include <X11/IntrinsicP.h> diff --git a/xc/lib/Xaw/AsciiSink.h b/xc/lib/Xaw/AsciiSink.h index a25282063..4fc0bd7af 100644 --- a/xc/lib/Xaw/AsciiSink.h +++ b/xc/lib/Xaw/AsciiSink.h @@ -1,5 +1,5 @@ /* - * $TOG: AsciiSink.h /main/10 1998/02/06 12:44:13 kaleb $ + * $Xorg: AsciiSink.h,v 1.3 2000/08/17 19:45:30 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/AsciiSink.h,v 1.4 1998/10/03 08:41:59 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiSink.h,v 1.5 2001/01/17 19:42:25 dawes Exp $ */ #ifndef _XawAsciiSink_h #define _XawAsciiSink_h diff --git a/xc/lib/Xaw/AsciiSinkP.h b/xc/lib/Xaw/AsciiSinkP.h index 7bb45bd73..9c8d8efa9 100644 --- a/xc/lib/Xaw/AsciiSinkP.h +++ b/xc/lib/Xaw/AsciiSinkP.h @@ -1,5 +1,5 @@ /* -* $TOG: AsciiSinkP.h /main/5 1998/02/06 12:44:02 kaleb $ +* $Xorg: AsciiSinkP.h,v 1.3 2000/08/17 19:45:30 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/AsciiSinkP.h,v 1.8 1999/06/20 08:40:55 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiSinkP.h,v 1.9 2001/01/17 19:42:25 dawes Exp $ */ #ifndef _XawAsciiSinkP_h #define _XawAsciiSinkP_h diff --git a/xc/lib/Xaw/AsciiSrc.c b/xc/lib/Xaw/AsciiSrc.c index 097d0555f..674d41989 100644 --- a/xc/lib/Xaw/AsciiSrc.c +++ b/xc/lib/Xaw/AsciiSrc.c @@ -1,4 +1,4 @@ -/* $TOG: AsciiSrc.c /main/69 1998/05/14 14:55:34 kaleb $ */ +/* $Xorg: AsciiSrc.c,v 1.3 2000/08/17 19:45:30 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/AsciiSrc.c,v 1.25 2000/11/28 17:25:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiSrc.c,v 1.27 2001/01/26 22:35:23 herrb Exp $ */ /* * AsciiSrc.c - AsciiSrc object. (For use with the text widget). @@ -1456,7 +1456,7 @@ InitStringOrFile(AsciiSrcObject src, Bool newString) open_mode = O_WRONLY | O_CREAT | O_EXCL; fdopen_mode = "w"; } - else + else { /* O_NOFOLLOW is a FreeBSD & Linux extension */ #ifdef O_NOFOLLOW open_mode = O_RDWR | O_NOFOLLOW; @@ -1464,6 +1464,7 @@ InitStringOrFile(AsciiSrcObject src, Bool newString) open_mode = O_RDWR; /* unsafe; subject to race conditions */ #endif /* O_NOFOLLOW */ fdopen_mode = "r+"; + } break; default: XtErrorMsg("badMode", "asciiSourceCreate", "XawError", diff --git a/xc/lib/Xaw/AsciiSrc.h b/xc/lib/Xaw/AsciiSrc.h index e4d11e60f..611c500ba 100644 --- a/xc/lib/Xaw/AsciiSrc.h +++ b/xc/lib/Xaw/AsciiSrc.h @@ -1,4 +1,4 @@ -/* $TOG: AsciiSrc.h /main/17 1998/02/11 14:53:05 kaleb $ */ +/* $Xorg: AsciiSrc.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/AsciiSrc.h,v 1.6 1999/05/09 10:51:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiSrc.h,v 1.7 2001/01/17 19:42:25 dawes Exp $ */ /* diff --git a/xc/lib/Xaw/AsciiSrcP.h b/xc/lib/Xaw/AsciiSrcP.h index 4513eb4b5..2749875d5 100644 --- a/xc/lib/Xaw/AsciiSrcP.h +++ b/xc/lib/Xaw/AsciiSrcP.h @@ -1,5 +1,5 @@ /* -* $TOG: AsciiSrcP.h /main/13 1998/06/24 11:53:13 kaleb $ +* $Xorg: AsciiSrcP.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/AsciiSrcP.h,v 1.7 1999/06/20 08:40:57 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiSrcP.h,v 1.8 2001/01/17 19:42:25 dawes Exp $ */ /* * AsciiSrcP.h - Private Header for Ascii Text Source. diff --git a/xc/lib/Xaw/AsciiText.c b/xc/lib/Xaw/AsciiText.c index f4d6d52bb..76ca7db7d 100644 --- a/xc/lib/Xaw/AsciiText.c +++ b/xc/lib/Xaw/AsciiText.c @@ -1,4 +1,4 @@ -/* $TOG: AsciiText.c /main/49 1998/02/11 14:53:14 kaleb $ */ +/* $Xorg: AsciiText.c,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ /* @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/Xaw/AsciiText.c,v 3.8 1999/06/13 13:47:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiText.c,v 3.9 2001/01/17 19:42:25 dawes Exp $ */ /* * AsciiText.c - Source code for AsciiText Widget diff --git a/xc/lib/Xaw/AsciiText.h b/xc/lib/Xaw/AsciiText.h index 3772b0f10..4001a5c2d 100644 --- a/xc/lib/Xaw/AsciiText.h +++ b/xc/lib/Xaw/AsciiText.h @@ -1,5 +1,5 @@ /* - * $TOG: AsciiText.h /main/20 1998/02/11 14:53:18 kaleb $ + * $Xorg: AsciiText.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/AsciiText.h,v 1.4 1998/10/03 08:42:01 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiText.h,v 1.5 2001/01/17 19:42:25 dawes Exp $ */ /* * AsciiText.h - Public header file for AsciiText Widget diff --git a/xc/lib/Xaw/AsciiTextP.h b/xc/lib/Xaw/AsciiTextP.h index 806dfe640..ef24deab2 100644 --- a/xc/lib/Xaw/AsciiTextP.h +++ b/xc/lib/Xaw/AsciiTextP.h @@ -1,5 +1,5 @@ /* - * $TOG: AsciiTextP.h /main/19 1998/02/11 14:53:10 kaleb $ + * $Xorg: AsciiTextP.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/AsciiTextP.h,v 1.7 1999/06/20 08:40:57 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/AsciiTextP.h,v 1.8 2001/01/17 19:42:25 dawes Exp $ */ /* * AsciiText.c - Private header file for AsciiText Widget. diff --git a/xc/lib/Xaw/Box.c b/xc/lib/Xaw/Box.c index 1ff4c1734..75932ca35 100644 --- a/xc/lib/Xaw/Box.c +++ b/xc/lib/Xaw/Box.c @@ -1,4 +1,4 @@ -/* $TOG: Box.c /main/50 1998/02/06 12:44:59 kaleb $ */ +/* $Xorg: Box.c,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Box.c,v 1.13 1999/06/06 08:47:53 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Box.c,v 1.14 2001/01/17 19:42:25 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Box.h b/xc/lib/Xaw/Box.h index baaf140c6..6eb7b680e 100644 --- a/xc/lib/Xaw/Box.h +++ b/xc/lib/Xaw/Box.h @@ -1,5 +1,5 @@ /* -* $TOG: Box.h /main/23 1998/02/06 12:45:05 kaleb $ +* $Xorg: Box.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Box.h,v 1.6 1999/06/06 08:47:53 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Box.h,v 1.7 2001/01/17 19:42:25 dawes Exp $ */ #ifndef _XawBox_h #define _XawBox_h diff --git a/xc/lib/Xaw/BoxP.h b/xc/lib/Xaw/BoxP.h index 479b71237..8ee3136f9 100644 --- a/xc/lib/Xaw/BoxP.h +++ b/xc/lib/Xaw/BoxP.h @@ -1,5 +1,5 @@ /* -* $TOG: BoxP.h /main/19 1998/02/06 12:44:53 kaleb $ +* $Xorg: BoxP.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/BoxP.h,v 1.9 1999/06/20 08:40:57 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/BoxP.h,v 1.10 2001/01/17 19:42:25 dawes Exp $ */ #ifndef _XawBoxP_h #define _XawBoxP_h diff --git a/xc/lib/Xaw/Cardinals.h b/xc/lib/Xaw/Cardinals.h index 91dd87683..be31c2e1d 100644 --- a/xc/lib/Xaw/Cardinals.h +++ b/xc/lib/Xaw/Cardinals.h @@ -1,4 +1,4 @@ -/* $TOG: Cardinals.h /main/7 1998/02/06 12:45:10 kaleb $ */ +/* $Xorg: Cardinals.h,v 1.3 2000/08/17 19:45:31 cpqbld Exp $ */ /* Copyright 1985, 1986, 1987, 1998 The Open Group diff --git a/xc/lib/Xaw/Command.c b/xc/lib/Xaw/Command.c index c29d1e89f..d4aff11c2 100644 --- a/xc/lib/Xaw/Command.c +++ b/xc/lib/Xaw/Command.c @@ -1,4 +1,4 @@ -/* $TOG: Command.c /main/80 1998/02/06 12:45:20 kaleb $ */ +/* $Xorg: Command.c,v 1.4 2000/08/17 19:45:31 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Command.c,v 1.11 1999/06/13 13:47:18 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Command.c,v 1.12 2001/01/17 19:42:26 dawes Exp $ */ /* * Command.c - Command button widget diff --git a/xc/lib/Xaw/Command.h b/xc/lib/Xaw/Command.h index 38d417914..2b7c2bb5c 100644 --- a/xc/lib/Xaw/Command.h +++ b/xc/lib/Xaw/Command.h @@ -1,4 +1,4 @@ -/* $TOG: Command.h /main/30 1998/02/06 12:45:25 kaleb $ */ +/* $Xorg: Command.h,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Command.h,v 1.4 1998/10/03 08:42:03 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Command.h,v 1.5 2001/01/17 19:42:26 dawes Exp $ */ #ifndef _XawCommand_h #define _XawCommand_h diff --git a/xc/lib/Xaw/CommandP.h b/xc/lib/Xaw/CommandP.h index 516b86146..b92b39f16 100644 --- a/xc/lib/Xaw/CommandP.h +++ b/xc/lib/Xaw/CommandP.h @@ -1,5 +1,5 @@ /* -* $TOG: CommandP.h /main/28 1998/02/06 12:45:15 kaleb $ +* $Xorg: CommandP.h,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/CommandP.h,v 1.6 1999/06/20 08:40:58 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/CommandP.h,v 1.7 2001/01/17 19:42:26 dawes Exp $ */ #ifndef _XawCommandP_h #define _XawCommandP_h diff --git a/xc/lib/Xaw/Dialog.c b/xc/lib/Xaw/Dialog.c index aabd161bd..7eec21241 100644 --- a/xc/lib/Xaw/Dialog.c +++ b/xc/lib/Xaw/Dialog.c @@ -1,4 +1,4 @@ -/* $TOG: Dialog.c /main/49 1998/02/06 12:45:36 kaleb $ */ +/* $Xorg: Dialog.c,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Dialog.c,v 1.6 2000/06/13 23:15:48 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Dialog.c,v 1.7 2001/01/17 19:42:26 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Dialog.h b/xc/lib/Xaw/Dialog.h index 4a5863b86..0d2dff730 100644 --- a/xc/lib/Xaw/Dialog.h +++ b/xc/lib/Xaw/Dialog.h @@ -1,4 +1,4 @@ -/* $TOG: Dialog.h /main/29 1998/02/06 12:45:41 kaleb $ */ +/* $Xorg: Dialog.h,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Dialog.h,v 1.4 1998/10/03 08:42:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Dialog.h,v 1.5 2001/01/17 19:42:26 dawes Exp $ */ #ifndef _XawDialog_h #define _XawDialog_h diff --git a/xc/lib/Xaw/DialogP.h b/xc/lib/Xaw/DialogP.h index 3e4054ba0..f18f26057 100644 --- a/xc/lib/Xaw/DialogP.h +++ b/xc/lib/Xaw/DialogP.h @@ -1,4 +1,4 @@ -/* $TOG: DialogP.h /main/14 1998/02/06 12:45:30 kaleb $ */ +/* $Xorg: DialogP.h,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */ /*********************************************************** @@ -43,7 +43,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/DialogP.h,v 1.7 1999/06/20 08:40:59 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/DialogP.h,v 1.8 2001/01/17 19:42:26 dawes Exp $ */ #ifndef _DialogP_h #define _DialogP_h diff --git a/xc/lib/Xaw/Form.c b/xc/lib/Xaw/Form.c index 863d2e845..619c08ade 100644 --- a/xc/lib/Xaw/Form.c +++ b/xc/lib/Xaw/Form.c @@ -1,4 +1,4 @@ -/* $TOG: Form.c /main/54 1998/05/14 14:55:45 kaleb $ */ +/* $Xorg: Form.c,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */ /*********************************************************** @@ -43,7 +43,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Form.c,v 1.18 2000/10/26 17:57:49 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Form.c,v 1.20 2001/02/05 22:38:04 paulo Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> @@ -582,6 +582,11 @@ Layout(FormWidget fw, unsigned int width, unsigned int height, always_resize_children = ChangeFormGeometry((Widget)fw, False, maxx, maxy, NULL, NULL); +#ifdef OLDXAW + fw->form.old_width = fw->core.width; + fw->form.old_height = fw->core.height; +#endif + if (force_relayout) ret_val = True; else @@ -656,7 +661,6 @@ ResizeChildren(Widget w) static void LayoutChild(Widget w) { - FormWidget fw = (FormWidget)XtParent(w); FormConstraints form = (FormConstraints)w->core.constraints; Widget ref; @@ -684,22 +688,16 @@ LayoutChild(Widget w) form->form.new_y = form->form.dy; if ((ref = form->form.horiz_base) != NULL) { FormConstraints ref_form = (FormConstraints)ref->core.constraints; - Dimension width; LayoutChild(ref); - width = fw->form.old_width ? - ref_form->form.virtual_width : XtWidth(ref); - form->form.new_x += ref_form->form.new_x + width + + form->form.new_x += ref_form->form.new_x + XtWidth(ref) + (XtBorderWidth(ref) << 1); } if ((ref = form->form.vert_base) != NULL) { FormConstraints ref_form = (FormConstraints)ref->core.constraints; - Dimension height; LayoutChild(ref); - height = fw->form.old_height ? - ref_form->form.virtual_height : XtHeight(ref); - form->form.new_y += ref_form->form.new_y + height + + form->form.new_y += ref_form->form.new_y + XtHeight(ref) + (XtBorderWidth(ref) << 1); } @@ -891,8 +889,6 @@ XawFormGeometryManager(Widget w, XtWidgetGeometry *request, * The window will be updated when no_refigure is set back * to False */ - form->form.virtual_width = XtWidth(w); - form->form.virtual_height = XtHeight(w); form->form.deferred_resize = True; ret_val = XtGeometryDone; } @@ -902,6 +898,8 @@ XawFormGeometryManager(Widget w, XtWidgetGeometry *request, /* * Resets everything. */ + fw->form.old_width = XtWidth(fw); + fw->form.old_height = XtHeight(fw); for (childP = children; childP - children < num_children; childP++) { Widget nw = *childP; @@ -916,8 +914,6 @@ XawFormGeometryManager(Widget w, XtWidgetGeometry *request, nform->form.virtual_height = XtHeight(nw); } } - fw->form.old_width = XtWidth(fw); - fw->form.old_height = XtHeight(fw); } else { XtWidth(w) = old_width; @@ -1022,23 +1018,21 @@ XawFormChangeManaged(Widget w) (*((FormWidgetClass)w->core.widget_class)->form_class.layout) (fw, XtWidth(w), XtHeight(w), True); - if (!fw->form.old_width || !fw->form.old_height) { - fw->form.old_width = XtWidth(w); - fw->form.old_height = XtHeight(w); - for (children = childP = fw->composite.children; - childP - children < num_children; - childP++) { - child = *childP; - if (!XtIsManaged(child)) - continue; - form = (FormConstraints)child->core.constraints; + fw->form.old_width = XtWidth(w); + fw->form.old_height = XtHeight(w); + for (children = childP = fw->composite.children; + childP - children < num_children; + childP++) { + child = *childP; + if (!XtIsManaged(child)) + continue; + form = (FormConstraints)child->core.constraints; #ifndef OLDXAW - form->form.virtual_x = XtX(child); - form->form.virtual_y = XtY(child); + form->form.virtual_x = XtX(child); + form->form.virtual_y = XtY(child); #endif - form->form.virtual_width = XtWidth(child); - form->form.virtual_height = XtHeight(child); - } + form->form.virtual_width = XtWidth(child); + form->form.virtual_height = XtHeight(child); } } diff --git a/xc/lib/Xaw/Form.h b/xc/lib/Xaw/Form.h index 56dfbb30e..fcad058ed 100644 --- a/xc/lib/Xaw/Form.h +++ b/xc/lib/Xaw/Form.h @@ -1,4 +1,4 @@ -/* $TOG: Form.h /main/31 1998/02/06 12:45:58 kaleb $ */ +/* $Xorg: Form.h,v 1.4 2000/08/17 19:45:32 cpqbld Exp $ */ /*********************************************************** @@ -43,12 +43,12 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Form.h,v 1.7 1999/06/06 08:47:56 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Form.h,v 1.8 2001/01/17 19:42:26 dawes Exp $ */ #ifndef _XawForm_h #define _XawForm_h -#include <X11/Constraint.h> +#include <X11/Intrinsic.h> /* Resources: diff --git a/xc/lib/Xaw/FormP.h b/xc/lib/Xaw/FormP.h index 8134ce5c1..c06fe3bb3 100644 --- a/xc/lib/Xaw/FormP.h +++ b/xc/lib/Xaw/FormP.h @@ -1,4 +1,4 @@ -/* $TOG: FormP.h /main/23 1998/02/06 12:45:46 kaleb $ */ +/* $Xorg: FormP.h,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/FormP.h,v 1.11 1999/06/20 08:41:00 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/FormP.h,v 1.12 2001/01/17 19:42:26 dawes Exp $ */ /* Form widget private definitions */ diff --git a/xc/lib/Xaw/Grip.c b/xc/lib/Xaw/Grip.c index c8ac68c3d..d66eeee1f 100644 --- a/xc/lib/Xaw/Grip.c +++ b/xc/lib/Xaw/Grip.c @@ -1,4 +1,4 @@ -/* $TOG: Grip.c /main/34 1998/02/06 12:46:09 kaleb $ */ +/* $Xorg: Grip.c,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Grip.c,v 1.6 1999/06/06 08:47:57 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Grip.c,v 1.7 2001/01/17 19:42:26 dawes Exp $ */ /* * Grip.c - Grip Widget (Used by Paned Widget) diff --git a/xc/lib/Xaw/Grip.h b/xc/lib/Xaw/Grip.h index fe861ac7d..125c455c4 100644 --- a/xc/lib/Xaw/Grip.h +++ b/xc/lib/Xaw/Grip.h @@ -1,4 +1,4 @@ -/* $TOG: Grip.h /main/20 1998/02/06 12:46:14 kaleb $ */ +/* $Xorg: Grip.h,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Grip.h,v 1.5 1999/06/06 08:47:57 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Grip.h,v 1.6 2001/01/17 19:42:26 dawes Exp $ */ /* * Grip.h - Public Definitions for Grip widget (used by VPane Widget) diff --git a/xc/lib/Xaw/GripP.h b/xc/lib/Xaw/GripP.h index ac2d82c27..2dce6312a 100644 --- a/xc/lib/Xaw/GripP.h +++ b/xc/lib/Xaw/GripP.h @@ -1,5 +1,5 @@ /* -* $TOG: GripP.h /main/16 1998/02/06 12:46:03 kaleb $ +* $Xorg: GripP.h,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/GripP.h,v 1.6 1999/06/20 08:41:01 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/GripP.h,v 1.7 2001/01/17 19:42:26 dawes Exp $ */ #ifndef _XawGripP_h #define _XawGripP_h diff --git a/xc/lib/Xaw/Imakefile b/xc/lib/Xaw/Imakefile index 73df2c7cb..ac90b1687 100644 --- a/xc/lib/Xaw/Imakefile +++ b/xc/lib/Xaw/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/87 1996/09/28 16:43:34 rws $ -XCOMM $XFree86: xc/lib/Xaw/Imakefile,v 1.9 2000/05/18 16:29:52 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xaw/Imakefile,v 1.10 2001/01/17 19:42:27 dawes Exp $ + #define DoNormalLib NormalLibXaw #define DoSharedLib SharedLibXaw #define DoExtraLib SharedLibXaw diff --git a/xc/lib/Xaw/Label.c b/xc/lib/Xaw/Label.c index b62fa46ad..5ab12a78a 100644 --- a/xc/lib/Xaw/Label.c +++ b/xc/lib/Xaw/Label.c @@ -1,4 +1,4 @@ -/* $TOG: Label.c /main/98 1998/02/06 12:46:24 kaleb $ */ +/* $Xorg: Label.c,v 1.4 2000/08/17 19:45:33 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Label.c,v 1.11 1999/06/27 14:07:33 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Label.c,v 1.12 2001/01/17 19:42:27 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/Xaw/Label.h b/xc/lib/Xaw/Label.h index 649d39b9a..c9503817e 100644 --- a/xc/lib/Xaw/Label.h +++ b/xc/lib/Xaw/Label.h @@ -1,4 +1,4 @@ -/* $TOG: Label.h /main/35 1998/02/06 12:46:30 kaleb $ */ +/* $Xorg: Label.h,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Label.h,v 1.5 1998/10/03 08:42:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Label.h,v 1.6 2001/01/17 19:42:27 dawes Exp $ */ #ifndef _XawLabel_h #define _XawLabel_h diff --git a/xc/lib/Xaw/LabelP.h b/xc/lib/Xaw/LabelP.h index 55b20ac6f..dd8740851 100644 --- a/xc/lib/Xaw/LabelP.h +++ b/xc/lib/Xaw/LabelP.h @@ -1,5 +1,5 @@ /* -* $TOG: LabelP.h /main/30 1998/02/06 12:46:19 kaleb $ +* $Xorg: LabelP.h,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/LabelP.h,v 1.6 1999/06/20 08:41:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/LabelP.h,v 1.7 2001/01/17 19:42:27 dawes Exp $ */ #ifndef _XawLabelP_h #define _XawLabelP_h diff --git a/xc/lib/Xaw/List.c b/xc/lib/Xaw/List.c index 41876abff..c09daad23 100644 --- a/xc/lib/Xaw/List.c +++ b/xc/lib/Xaw/List.c @@ -1,4 +1,4 @@ -/* $TOG: List.c /main/38 1998/02/11 14:53:23 kaleb $ */ +/* $Xorg: List.c,v 1.3 2000/08/17 19:45:33 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/List.c,v 1.15 2000/04/04 22:36:42 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/List.c,v 1.16 2001/01/17 19:42:27 dawes Exp $ */ /* * List.c - List widget diff --git a/xc/lib/Xaw/List.h b/xc/lib/Xaw/List.h index 3c695a18e..db5933b23 100644 --- a/xc/lib/Xaw/List.h +++ b/xc/lib/Xaw/List.h @@ -1,4 +1,4 @@ -/* $TOG: List.h /main/21 1998/02/11 14:53:28 kaleb $ */ +/* $Xorg: List.h,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/List.h,v 1.6 2000/02/25 18:27:58 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/List.h,v 1.7 2001/01/17 19:42:27 dawes Exp $ */ /* This is the List widget, it is useful to display a list, without the * overhead of having a widget for each item in the list. It allows diff --git a/xc/lib/Xaw/ListP.h b/xc/lib/Xaw/ListP.h index ad68726ac..a08beb3df 100644 --- a/xc/lib/Xaw/ListP.h +++ b/xc/lib/Xaw/ListP.h @@ -1,4 +1,4 @@ -/* $TOG: ListP.h /main/13 1998/02/06 12:46:36 kaleb $ */ +/* $Xorg: ListP.h,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/ListP.h,v 1.7 2000/02/25 18:27:58 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/ListP.h,v 1.8 2001/01/17 19:42:27 dawes Exp $ */ /* diff --git a/xc/lib/Xaw/MenuButtoP.h b/xc/lib/Xaw/MenuButtoP.h index 7110fa0c9..814c6dde1 100644 --- a/xc/lib/Xaw/MenuButtoP.h +++ b/xc/lib/Xaw/MenuButtoP.h @@ -1,4 +1,4 @@ -/* $TOG: MenuButtoP.h /main/10 1998/02/11 14:53:41 kaleb $ +/* $Xorg: MenuButtoP.h,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ * Copyright 1989,1998 The Open Group @@ -18,7 +18,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/MenuButtoP.h,v 1.6 1999/06/20 08:41:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MenuButtoP.h,v 1.7 2001/01/17 19:42:27 dawes Exp $ */ /* * MenuButtonP.h - Private Header file for MenuButton widget. diff --git a/xc/lib/Xaw/MenuButton.c b/xc/lib/Xaw/MenuButton.c index 361667333..958ac4319 100644 --- a/xc/lib/Xaw/MenuButton.c +++ b/xc/lib/Xaw/MenuButton.c @@ -1,4 +1,4 @@ -/* $TOG: MenuButton.c /main/24 1998/06/24 11:53:20 kaleb $ */ +/* $Xorg: MenuButton.c,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * */ -/* $XFree86: xc/lib/Xaw/MenuButton.c,v 3.7 1999/06/06 08:47:59 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MenuButton.c,v 3.8 2001/01/17 19:42:27 dawes Exp $ */ /* * MenuButton.c - Source code for MenuButton widget. diff --git a/xc/lib/Xaw/MenuButton.h b/xc/lib/Xaw/MenuButton.h index b7ff60cef..4a18808c5 100644 --- a/xc/lib/Xaw/MenuButton.h +++ b/xc/lib/Xaw/MenuButton.h @@ -1,5 +1,5 @@ /* - * $TOG: MenuButton.h /main/11 1998/02/11 14:53:37 kaleb $ + * $Xorg: MenuButton.h,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/MenuButton.h,v 1.4 1998/10/03 08:42:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MenuButton.h,v 1.5 2001/01/17 19:42:27 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xaw/MultiSink.c b/xc/lib/Xaw/MultiSink.c index 1b6ec5d17..ca02408df 100644 --- a/xc/lib/Xaw/MultiSink.c +++ b/xc/lib/Xaw/MultiSink.c @@ -1,4 +1,4 @@ -/* $TOG: MultiSink.c /main/7 1998/02/06 12:47:13 kaleb $ */ +/* $Xorg: MultiSink.c,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -66,7 +66,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/MultiSink.c,v 1.18 2000/09/26 15:56:54 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/MultiSink.c,v 1.19 2001/01/17 19:42:27 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/MultiSink.h b/xc/lib/Xaw/MultiSink.h index 679329fde..934bca8aa 100644 --- a/xc/lib/Xaw/MultiSink.h +++ b/xc/lib/Xaw/MultiSink.h @@ -1,4 +1,4 @@ -/* $TOG: MultiSink.h /main/3 1998/02/06 12:47:18 kaleb $ */ +/* $Xorg: MultiSink.h,v 1.3 2000/08/17 19:45:34 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -66,7 +66,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/MultiSink.h,v 1.4 1998/10/03 08:42:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MultiSink.h,v 1.5 2001/01/17 19:42:27 dawes Exp $ */ #ifndef _XawMultiSink_h #define _XawMultiSink_h diff --git a/xc/lib/Xaw/MultiSinkP.h b/xc/lib/Xaw/MultiSinkP.h index 436aeccf4..bad467036 100644 --- a/xc/lib/Xaw/MultiSinkP.h +++ b/xc/lib/Xaw/MultiSinkP.h @@ -1,4 +1,4 @@ -/* $TOG: MultiSinkP.h /main/3 1998/02/06 12:47:08 kaleb $ */ +/* $Xorg: MultiSinkP.h,v 1.3 2000/08/17 19:45:35 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -67,7 +67,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/MultiSinkP.h,v 1.7 1999/06/20 08:41:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MultiSinkP.h,v 1.8 2001/01/17 19:42:28 dawes Exp $ */ #ifndef _XawMultiSinkP_h #define _XawMultiSinkP_h diff --git a/xc/lib/Xaw/MultiSrc.c b/xc/lib/Xaw/MultiSrc.c index b917e671c..efc844b0d 100644 --- a/xc/lib/Xaw/MultiSrc.c +++ b/xc/lib/Xaw/MultiSrc.c @@ -1,4 +1,4 @@ -/* $TOG: MultiSrc.c /main/12 1998/05/14 14:55:50 kaleb $ */ +/* $Xorg: MultiSrc.c,v 1.3 2000/08/17 19:45:35 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -27,7 +27,7 @@ * * Much code taken from X11R3 String and Disk Sources. */ -/* $XFree86: xc/lib/Xaw/MultiSrc.c,v 1.19 1999/07/19 13:36:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MultiSrc.c,v 1.21 2001/01/26 22:45:59 herrb Exp $ */ /* @@ -67,6 +67,10 @@ in this Software without prior written authorization from The Open Group. #include "XawI18n.h" #include "Private.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + #define MAGIC_VALUE ((XawTextPosition)-1) #define streq(a, b) (strcmp((a), (b)) == 0) @@ -1158,7 +1162,9 @@ StorePiecesInString(MultiSrcObject src) static FILE * InitStringOrFile(MultiSrcObject src, Bool newString) { - char *open_mode = NULL; + mode_t open_mode; + const char *fdopen_mode = NULL; + int fd; FILE *file; char fileName[TMPSIZ]; Display *d = XtDisplayOfObject((Widget)src); @@ -1208,7 +1214,8 @@ InitStringOrFile(MultiSrcObject src, Bool newString) XtErrorMsg("NoFile", "multiSourceCreate", "XawError", "Creating a read only disk widget and no file specified.", NULL, 0); - open_mode = "r"; + open_mode = O_RDONLY; + fdopen_mode = "r"; break; case XawtextAppend: case XawtextEdit: @@ -1218,10 +1225,18 @@ InitStringOrFile(MultiSrcObject src, Bool newString) (void)tmpnam((char *)src->multi_src.string); src->multi_src.is_tempfile = True; - open_mode = "w"; + open_mode = O_WRONLY | O_CREAT | O_EXCL; + fdopen_mode = "w"; + } + else { +/* O_NOFOLLOW is a BSD & Linux extension */ +#ifdef O_NOFOLLOW + open_mode = O_RDWR | O_NOFOLLOW; +#else + open_mode = O_RDWR; /* unsafe; subject to race conditions */ +#endif + fdopen_mode = "r+"; } - else - open_mode = "r+"; break; default: XtErrorMsg("badMode", "multiSourceCreate", "XawError", @@ -1243,12 +1258,14 @@ InitStringOrFile(MultiSrcObject src, Bool newString) } if (!src->multi_src.is_tempfile) { - if ((file = fopen((char *)src->multi_src.string, open_mode)) != NULL) { - (void)fseek(file, 0, 2); - src->multi_src.length = ftell(file); - return file; + if ((fd = open((char *)src->multi_src.string, open_mode, 0666)) != 0) { + if ((file = fdopen(fd, fdopen_mode)) != NULL) { + (void)fseek(file, 0, SEEK_END); + src->multi_src.length = (XawTextPosition)ftell(file); + return(file); + } } - else { + { String params[2]; Cardinal num_params = 2; @@ -1258,7 +1275,7 @@ InitStringOrFile(MultiSrcObject src, Bool newString) "openError", "multiSourceCreate", "XawWarning", "Cannot open file %s; %s", params, &num_params); } - } + } src->multi_src.length = 0; return (NULL); } diff --git a/xc/lib/Xaw/MultiSrc.h b/xc/lib/Xaw/MultiSrc.h index 586c06d50..9d9538c0b 100644 --- a/xc/lib/Xaw/MultiSrc.h +++ b/xc/lib/Xaw/MultiSrc.h @@ -1,4 +1,4 @@ -/* $TOG: MultiSrc.h /main/3 1998/02/06 12:47:36 kaleb $ */ +/* $Xorg: MultiSrc.h,v 1.3 2000/08/17 19:45:35 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -45,7 +45,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/MultiSrc.h,v 1.5 1999/05/09 10:51:39 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MultiSrc.h,v 1.6 2001/01/17 19:42:28 dawes Exp $ */ /* * This file was modified from AsciiSrc.h. diff --git a/xc/lib/Xaw/MultiSrcP.h b/xc/lib/Xaw/MultiSrcP.h index 71e58c0bb..f54ad66b2 100644 --- a/xc/lib/Xaw/MultiSrcP.h +++ b/xc/lib/Xaw/MultiSrcP.h @@ -1,4 +1,4 @@ -/* $TOG: MultiSrcP.h /main/5 1998/06/24 11:53:25 kaleb $ */ +/* $Xorg: MultiSrcP.h,v 1.3 2000/08/17 19:45:35 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -67,7 +67,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/MultiSrcP.h,v 1.7 1999/06/20 08:41:03 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/MultiSrcP.h,v 1.8 2001/01/17 19:42:28 dawes Exp $ */ /* * MultiSrcP.h - Private Header for Multi Text Source. diff --git a/xc/lib/Xaw/Paned.c b/xc/lib/Xaw/Paned.c index 6fb6bb52b..25b69f165 100644 --- a/xc/lib/Xaw/Paned.c +++ b/xc/lib/Xaw/Paned.c @@ -1,4 +1,4 @@ -/* $TOG: Paned.c /main/29 1998/02/11 14:53:59 kaleb $ */ +/* $Xorg: Paned.c,v 1.3 2000/08/17 19:45:35 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Paned.c,v 1.9 1999/06/06 08:48:01 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Paned.c,v 1.10 2001/01/17 19:42:28 dawes Exp $ */ /* * Updated and significantly modified from the Athena VPaned Widget. diff --git a/xc/lib/Xaw/Paned.h b/xc/lib/Xaw/Paned.h index aa6763b5e..7f3c08818 100644 --- a/xc/lib/Xaw/Paned.h +++ b/xc/lib/Xaw/Paned.h @@ -1,5 +1,5 @@ /* -* $TOG: Paned.h /main/17 1998/02/11 14:54:05 kaleb $ +* $Xorg: Paned.h,v 1.4 2000/08/17 19:45:35 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Paned.h,v 1.5 1999/05/03 12:15:42 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Paned.h,v 1.6 2001/01/17 19:42:28 dawes Exp $ */ /* * Paned.h - Paned Composite Widget's public header file. @@ -62,7 +62,7 @@ SOFTWARE. #ifndef _XawPaned_h #define _XawPaned_h -#include <X11/Constraint.h> +#include <X11/Intrinsic.h> #include <X11/Xmu/Converters.h> /* RESOURCES: diff --git a/xc/lib/Xaw/PanedP.h b/xc/lib/Xaw/PanedP.h index 9a4ea3236..ae044a8fb 100644 --- a/xc/lib/Xaw/PanedP.h +++ b/xc/lib/Xaw/PanedP.h @@ -1,6 +1,6 @@ /*********************************************************** - $TOG: PanedP.h /main/8 1998/02/11 14:53:55 kaleb $ + $Xorg: PanedP.h,v 1.3 2000/08/17 19:45:35 cpqbld Exp $ Copyright 1987, 1988, 1998 The Open Group @@ -43,7 +43,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/PanedP.h,v 1.6 1999/06/20 08:41:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/PanedP.h,v 1.7 2001/01/17 19:42:28 dawes Exp $ */ /* * Updated and significantly modified from the Athena VPaned Widget. diff --git a/xc/lib/Xaw/Panner.c b/xc/lib/Xaw/Panner.c index 6be4ac896..9e8d6967d 100644 --- a/xc/lib/Xaw/Panner.c +++ b/xc/lib/Xaw/Panner.c @@ -1,5 +1,5 @@ /* - * $TOG: Panner.c /main/54 1998/02/11 14:54:13 kaleb $ + * $Xorg: Panner.c,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/Panner.c,v 3.5 1999/06/06 08:48:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Panner.c,v 3.6 2001/01/17 19:42:28 dawes Exp $ */ #include <ctype.h> #include <math.h> diff --git a/xc/lib/Xaw/Panner.h b/xc/lib/Xaw/Panner.h index 5af7ca759..de1b77965 100644 --- a/xc/lib/Xaw/Panner.h +++ b/xc/lib/Xaw/Panner.h @@ -1,5 +1,5 @@ /* - * $TOG: Panner.h /main/24 1998/02/11 14:54:19 kaleb $ + * $Xorg: Panner.h,v 1.4 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,11 +21,12 @@ in this Software without prior written authorization from The Open Group. * * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/Panner.h,v 1.4 1998/10/03 08:42:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Panner.h,v 1.5 2001/01/17 19:42:28 dawes Exp $ */ #ifndef _XawPanner_h #define _XawPanner_h +#include <X11/Intrinsic.h> #include <X11/Xaw/Reports.h> /***************************************************************************** diff --git a/xc/lib/Xaw/PannerP.h b/xc/lib/Xaw/PannerP.h index 50951e88d..838c650cd 100644 --- a/xc/lib/Xaw/PannerP.h +++ b/xc/lib/Xaw/PannerP.h @@ -1,5 +1,5 @@ /* - * $TOG: PannerP.h /main/21 1998/02/11 14:54:09 kaleb $ + * $Xorg: PannerP.h,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/PannerP.h,v 1.6 1999/06/20 08:41:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/PannerP.h,v 1.7 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _XawPannerP_h #define _XawPannerP_h diff --git a/xc/lib/Xaw/Pixmap.c b/xc/lib/Xaw/Pixmap.c index f64bf87af..4793e90f9 100644 --- a/xc/lib/Xaw/Pixmap.c +++ b/xc/lib/Xaw/Pixmap.c @@ -25,7 +25,7 @@ * XFree86 Project. */ -/* $XFree86: xc/lib/Xaw/Pixmap.c,v 3.15 2000/09/26 15:56:54 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/Pixmap.c,v 3.16 2001/01/30 15:03:34 paulo Exp $ */ #include <string.h> #include <stdio.h> @@ -437,7 +437,7 @@ _XawFindCache(XawCache *xaw, cache = (XawCache **)bsearch(screen, xaw->elems, xaw->num_elems, sizeof(XtPointer), bcmp_long); - if (!cache) + if (!cache || !(*cache)->num_elems) return (NULL); if (flags == FIND_SCREEN) return (*cache); @@ -446,7 +446,7 @@ _XawFindCache(XawCache *xaw, cache = (XawCache **)bsearch((void *)colormap, (*cache)->elems, (*cache)->num_elems, sizeof(XtPointer), bcmp_long); - if (!cache) + if (!cache || !(*cache)->num_elems) return (NULL); if (flags == FIND_COLORMAP) return (*cache); @@ -456,7 +456,7 @@ _XawFindCache(XawCache *xaw, (*cache)->num_elems, sizeof(XtPointer), bcmp_long); - if (!cache) + if (!cache || !(*cache)->num_elems) return (NULL); return (*cache); } diff --git a/xc/lib/Xaw/Porthole.c b/xc/lib/Xaw/Porthole.c index 02a4307dd..099fcf351 100644 --- a/xc/lib/Xaw/Porthole.c +++ b/xc/lib/Xaw/Porthole.c @@ -1,5 +1,5 @@ /* - * $TOG: Porthole.c /main/18 1998/02/11 14:54:27 kaleb $ + * $Xorg: Porthole.c,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1990, 1994, 1998 The Open Group @@ -24,7 +24,7 @@ in this Software without prior written authorization from The Open Group. * This widget is a trivial clipping widget. It is typically used with a * panner or scrollbar to navigate. */ -/* $XFree86: xc/lib/Xaw/Porthole.c,v 1.5 1999/06/06 08:48:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Porthole.c,v 1.6 2001/01/17 19:42:29 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Porthole.h b/xc/lib/Xaw/Porthole.h index fb929145b..b4becadfc 100644 --- a/xc/lib/Xaw/Porthole.h +++ b/xc/lib/Xaw/Porthole.h @@ -1,5 +1,5 @@ /* - * $TOG: Porthole.h /main/4 1998/02/11 14:54:31 kaleb $ + * $Xorg: Porthole.h,v 1.4 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1990, 1998 The Open Group @@ -21,11 +21,12 @@ in this Software without prior written authorization from The Open Group. * * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/Porthole.h,v 1.4 1998/10/03 08:42:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Porthole.h,v 1.5 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _XawPorthole_h #define _XawPorthole_h +#include <X11/Intrinsic.h> #include <X11/Xaw/Reports.h> /***************************************************************************** diff --git a/xc/lib/Xaw/PortholeP.h b/xc/lib/Xaw/PortholeP.h index a6dabd82c..6684b0e25 100644 --- a/xc/lib/Xaw/PortholeP.h +++ b/xc/lib/Xaw/PortholeP.h @@ -1,5 +1,5 @@ /* - * $TOG: PortholeP.h /main/5 1998/02/11 14:54:23 kaleb $ + * $Xorg: PortholeP.h,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1990, 1994, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/PortholeP.h,v 1.6 1999/06/20 08:41:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/PortholeP.h,v 1.7 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _XawPortholeP_h #define _XawPortholeP_h diff --git a/xc/lib/Xaw/Repeater.c b/xc/lib/Xaw/Repeater.c index f8fc16cdc..cf25034eb 100644 --- a/xc/lib/Xaw/Repeater.c +++ b/xc/lib/Xaw/Repeater.c @@ -1,5 +1,5 @@ /* - * $TOG: Repeater.c /main/13 1998/02/11 14:54:39 kaleb $ + * $Xorg: Repeater.c,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1990, 1994, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * * This widget is used for press-and-hold style buttons. */ -/* $XFree86: xc/lib/Xaw/Repeater.c,v 1.5 1999/06/06 08:48:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Repeater.c,v 1.6 2001/01/17 19:42:29 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Repeater.h b/xc/lib/Xaw/Repeater.h index e2cf08f2d..f7d2a05dc 100644 --- a/xc/lib/Xaw/Repeater.h +++ b/xc/lib/Xaw/Repeater.h @@ -1,5 +1,5 @@ /* - * $TOG: Repeater.h /main/6 1998/02/11 14:54:43 kaleb $ + * $Xorg: Repeater.h,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/Repeater.h,v 1.4 1998/10/03 08:42:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Repeater.h,v 1.5 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _XawRepeater_h #define _XawRepeater_h diff --git a/xc/lib/Xaw/RepeaterP.h b/xc/lib/Xaw/RepeaterP.h index 4fcbb51a7..a656322d5 100644 --- a/xc/lib/Xaw/RepeaterP.h +++ b/xc/lib/Xaw/RepeaterP.h @@ -1,5 +1,5 @@ /* - * $TOG: RepeaterP.h /main/6 1998/02/11 14:54:35 kaleb $ + * $Xorg: RepeaterP.h,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/RepeaterP.h,v 1.6 1999/06/20 08:41:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/RepeaterP.h,v 1.7 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _XawRepeaterP_h #define _XawRepeaterP_h diff --git a/xc/lib/Xaw/Reports.h b/xc/lib/Xaw/Reports.h index 2c652d69c..e56edb117 100644 --- a/xc/lib/Xaw/Reports.h +++ b/xc/lib/Xaw/Reports.h @@ -1,5 +1,5 @@ /* - * $TOG: Reports.h /main/5 1998/02/06 12:48:45 kaleb $ + * $Xorg: Reports.h,v 1.4 2000/08/17 19:45:36 cpqbld Exp $ * Copyright 1990, 1998 The Open Group @@ -23,6 +23,8 @@ in this Software without prior written authorization from The Open Group. #ifndef _Xaw_Reports_h #define _Xaw_Reports_h +#include <X11/Intrinsic.h> + /* * XawPannerReport - this structure is used by the reportCallback of the * Panner, Porthole, Viewport, and Scrollbar widgets to report its position. diff --git a/xc/lib/Xaw/Scrollbar.c b/xc/lib/Xaw/Scrollbar.c index 834c8bf0b..3399e6672 100644 --- a/xc/lib/Xaw/Scrollbar.c +++ b/xc/lib/Xaw/Scrollbar.c @@ -1,4 +1,4 @@ -/* $TOG: Scrollbar.c /main/73 1998/02/06 12:48:56 kaleb $ */ +/* $Xorg: Scrollbar.c,v 1.3 2000/08/17 19:45:36 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Scrollbar.c,v 1.11 2000/09/26 15:56:54 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/Scrollbar.c,v 1.12 2001/01/17 19:42:29 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Scrollbar.h b/xc/lib/Xaw/Scrollbar.h index b67f2fde7..ba3a630bd 100644 --- a/xc/lib/Xaw/Scrollbar.h +++ b/xc/lib/Xaw/Scrollbar.h @@ -1,4 +1,4 @@ -/* $TOG: Scrollbar.h /main/9 1998/02/06 12:49:02 kaleb $ */ +/* $Xorg: Scrollbar.h,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ */ /*********************************************************** @@ -43,7 +43,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Scrollbar.h,v 1.5 1999/05/03 12:15:42 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Scrollbar.h,v 1.6 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _Scrollbar_h #define _Scrollbar_h diff --git a/xc/lib/Xaw/ScrollbarP.h b/xc/lib/Xaw/ScrollbarP.h index 45a34d618..1c552498a 100644 --- a/xc/lib/Xaw/ScrollbarP.h +++ b/xc/lib/Xaw/ScrollbarP.h @@ -1,5 +1,5 @@ /* - * $TOG: ScrollbarP.h /main/4 1998/02/06 12:48:51 kaleb $ + * $Xorg: ScrollbarP.h,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/ScrollbarP.h,v 1.6 1999/06/20 08:41:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/ScrollbarP.h,v 1.7 2001/01/17 19:42:29 dawes Exp $ */ #ifndef _ScrollbarP_h #define _ScrollbarP_h diff --git a/xc/lib/Xaw/Simple.c b/xc/lib/Xaw/Simple.c index 66cfa55e0..d813c34ca 100644 --- a/xc/lib/Xaw/Simple.c +++ b/xc/lib/Xaw/Simple.c @@ -1,4 +1,4 @@ -/* $TOG: Simple.c /main/38 1998/06/24 11:53:29 kaleb $ */ +/* $Xorg: Simple.c,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ */ /*********************************************************** @@ -43,7 +43,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Simple.c,v 1.14 1999/06/27 14:07:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Simple.c,v 1.15 2001/01/17 19:42:29 dawes Exp $ */ #include <stdio.h> #include <X11/IntrinsicP.h> diff --git a/xc/lib/Xaw/Simple.h b/xc/lib/Xaw/Simple.h index 6c1794170..cddf967a9 100644 --- a/xc/lib/Xaw/Simple.h +++ b/xc/lib/Xaw/Simple.h @@ -1,4 +1,4 @@ -/* $TOG: Simple.h /main/15 1998/02/06 12:49:39 kaleb $ */ +/* $Xorg: Simple.h,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Simple.h,v 1.7 1999/06/27 14:07:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Simple.h,v 1.8 2001/01/17 19:42:30 dawes Exp $ */ #ifndef _Simple_h #define _Simple_h diff --git a/xc/lib/Xaw/SimpleMenP.h b/xc/lib/Xaw/SimpleMenP.h index 058e91952..c867f8397 100644 --- a/xc/lib/Xaw/SimpleMenP.h +++ b/xc/lib/Xaw/SimpleMenP.h @@ -1,5 +1,5 @@ /* - * $TOG: SimpleMenP.h /main/16 1998/02/11 14:54:47 kaleb $ + * $Xorg: SimpleMenP.h,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. * */ -/* $XFree86: xc/lib/Xaw/SimpleMenP.h,v 1.11 1999/06/20 08:41:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SimpleMenP.h,v 1.12 2001/01/17 19:42:30 dawes Exp $ */ /* * SimpleMenuP.h - Private Header file for SimpleMenu widget. diff --git a/xc/lib/Xaw/SimpleMenu.c b/xc/lib/Xaw/SimpleMenu.c index 500b210bb..a92743719 100644 --- a/xc/lib/Xaw/SimpleMenu.c +++ b/xc/lib/Xaw/SimpleMenu.c @@ -1,4 +1,4 @@ -/* $TOG: SimpleMenu.c /main/47 1998/06/24 11:53:33 kaleb $ */ +/* $Xorg: SimpleMenu.c,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/SimpleMenu.c,v 3.19 1999/07/11 08:49:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SimpleMenu.c,v 3.20 2001/01/17 19:42:30 dawes Exp $ */ /* * SimpleMenu.c - Source code file for SimpleMenu widget. diff --git a/xc/lib/Xaw/SimpleMenu.h b/xc/lib/Xaw/SimpleMenu.h index cf8979ef6..284282619 100644 --- a/xc/lib/Xaw/SimpleMenu.h +++ b/xc/lib/Xaw/SimpleMenu.h @@ -1,5 +1,5 @@ /* - * $TOG: SimpleMenu.h /main/24 1998/02/11 14:54:57 kaleb $ + * $Xorg: SimpleMenu.h,v 1.3 2000/08/17 19:45:37 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Chris D. Peterson, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/SimpleMenu.h,v 1.6 1999/06/13 13:47:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SimpleMenu.h,v 1.7 2001/01/17 19:42:30 dawes Exp $ */ /* * SimpleMenu.h - Public Header file for SimpleMenu widget. diff --git a/xc/lib/Xaw/SimpleP.h b/xc/lib/Xaw/SimpleP.h index 9b6a8c86b..2d9f9b34c 100644 --- a/xc/lib/Xaw/SimpleP.h +++ b/xc/lib/Xaw/SimpleP.h @@ -1,6 +1,6 @@ /*********************************************************** - $TOG: SimpleP.h /main/13 1998/02/06 12:49:30 kaleb $ + $Xorg: SimpleP.h,v 1.3 2000/08/17 19:45:38 cpqbld Exp $ Copyright 1987, 1988, 1994, 1998 The Open Group @@ -43,7 +43,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/SimpleP.h,v 1.10 1999/06/27 14:07:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SimpleP.h,v 1.11 2001/01/17 19:42:30 dawes Exp $ */ #ifndef _SimpleP_h #define _SimpleP_h diff --git a/xc/lib/Xaw/Sme.c b/xc/lib/Xaw/Sme.c index 118957268..02dd05e2e 100644 --- a/xc/lib/Xaw/Sme.c +++ b/xc/lib/Xaw/Sme.c @@ -1,4 +1,4 @@ -/* $TOG: Sme.c /main/14 1998/02/11 14:55:31 kaleb $ */ +/* $Xorg: Sme.c,v 1.3 2000/08/17 19:45:38 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/Sme.c,v 1.5 1999/06/06 08:48:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Sme.c,v 1.6 2001/01/17 19:42:31 dawes Exp $ */ /* * Date: September 26, 1989 diff --git a/xc/lib/Xaw/Sme.h b/xc/lib/Xaw/Sme.h index c592742dd..d529c16fe 100644 --- a/xc/lib/Xaw/Sme.h +++ b/xc/lib/Xaw/Sme.h @@ -1,5 +1,5 @@ /* - * $TOG: Sme.h /main/8 1998/02/11 14:55:35 kaleb $ + * $Xorg: Sme.h,v 1.4 2000/08/17 19:45:38 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/Sme.h,v 1.4 1998/10/03 08:42:20 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Sme.h,v 1.5 2001/01/17 19:42:31 dawes Exp $ */ /* * This is the public header file for the Athena Sme object. @@ -35,6 +35,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _Sme_h #define _Sme_h +#include <X11/Intrinsic.h> #include <X11/RectObj.h> /* Resources: diff --git a/xc/lib/Xaw/SmeBSB.c b/xc/lib/Xaw/SmeBSB.c index f8c65a2df..5df2b1609 100644 --- a/xc/lib/Xaw/SmeBSB.c +++ b/xc/lib/Xaw/SmeBSB.c @@ -1,4 +1,4 @@ -/* $TOG: SmeBSB.c /main/23 1998/06/24 11:53:39 kaleb $ */ +/* $Xorg: SmeBSB.c,v 1.4 2000/08/17 19:45:38 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/SmeBSB.c,v 1.10 1999/06/06 08:48:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeBSB.c,v 1.11 2001/01/17 19:42:31 dawes Exp $ */ /* * SmeBSB.c - Source code file for BSB Menu Entry object. diff --git a/xc/lib/Xaw/SmeBSB.h b/xc/lib/Xaw/SmeBSB.h index 886258085..68f10f5cc 100644 --- a/xc/lib/Xaw/SmeBSB.h +++ b/xc/lib/Xaw/SmeBSB.h @@ -1,5 +1,5 @@ /* - * $TOG: SmeBSB.h /main/9 1998/02/11 14:55:10 kaleb $ + * $Xorg: SmeBSB.h,v 1.3 2000/08/17 19:45:38 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/SmeBSB.h,v 1.5 1999/04/25 10:01:26 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeBSB.h,v 1.6 2001/01/17 19:42:31 dawes Exp $ */ /* * SmeBSB.h - Public Header file for SmeBSB object. diff --git a/xc/lib/Xaw/SmeBSBP.h b/xc/lib/Xaw/SmeBSBP.h index aa2de9f23..e51b6025c 100644 --- a/xc/lib/Xaw/SmeBSBP.h +++ b/xc/lib/Xaw/SmeBSBP.h @@ -1,5 +1,5 @@ /* - * $TOG: SmeBSBP.h /main/10 1998/02/11 14:55:01 kaleb $ + * $Xorg: SmeBSBP.h,v 1.3 2000/08/17 19:45:38 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Chris D. Peterson, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/SmeBSBP.h,v 1.7 1999/06/20 08:41:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeBSBP.h,v 1.8 2001/01/17 19:42:31 dawes Exp $ */ #ifndef _XawSmeBSBP_h #define _XawSmeBSBP_h diff --git a/xc/lib/Xaw/SmeLine.c b/xc/lib/Xaw/SmeLine.c index bc7578082..cb86dc0ab 100644 --- a/xc/lib/Xaw/SmeLine.c +++ b/xc/lib/Xaw/SmeLine.c @@ -1,4 +1,4 @@ -/* $TOG: SmeLine.c /main/17 1998/02/11 14:55:18 kaleb $ */ +/* $Xorg: SmeLine.c,v 1.3 2000/08/17 19:45:38 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Chris D. Peterson, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/SmeLine.c,v 1.6 1999/06/06 08:48:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeLine.c,v 1.7 2001/01/17 19:42:31 dawes Exp $ */ /* * Sme.c - Source code for the generic menu entry diff --git a/xc/lib/Xaw/SmeLine.h b/xc/lib/Xaw/SmeLine.h index 10d411c80..ae53d9baa 100644 --- a/xc/lib/Xaw/SmeLine.h +++ b/xc/lib/Xaw/SmeLine.h @@ -1,5 +1,5 @@ /* - * $TOG: SmeLine.h /main/6 1998/02/11 14:55:23 kaleb $ + * $Xorg: SmeLine.h,v 1.3 2000/08/17 19:45:38 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. * */ -/* $XFree86: xc/lib/Xaw/SmeLine.h,v 1.4 1998/10/03 08:42:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeLine.h,v 1.5 2001/01/17 19:42:31 dawes Exp $ */ /* * This is the public header file for the Athena SmeLine object. diff --git a/xc/lib/Xaw/SmeLineP.h b/xc/lib/Xaw/SmeLineP.h index 50e89768a..90811035e 100644 --- a/xc/lib/Xaw/SmeLineP.h +++ b/xc/lib/Xaw/SmeLineP.h @@ -1,5 +1,5 @@ /* - * $TOG: SmeLineP.h /main/6 1998/02/11 14:55:14 kaleb $ + * $Xorg: SmeLineP.h,v 1.3 2000/08/17 19:45:39 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Chris D. Peterson, MIT X Consortium */ -/* $XFree86: xc/lib/Xaw/SmeLineP.h,v 1.6 1999/06/20 08:41:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeLineP.h,v 1.7 2001/01/17 19:42:31 dawes Exp $ */ #ifndef _XawSmeLineP_h #define _XawSmeLineP_h diff --git a/xc/lib/Xaw/SmeP.h b/xc/lib/Xaw/SmeP.h index 798a8f26a..6306a075c 100644 --- a/xc/lib/Xaw/SmeP.h +++ b/xc/lib/Xaw/SmeP.h @@ -1,5 +1,5 @@ /* - * $TOG: SmeP.h /main/8 1998/02/11 14:55:27 kaleb $ + * $Xorg: SmeP.h,v 1.3 2000/08/17 19:45:39 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/SmeP.h,v 1.6 1999/06/20 08:41:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/SmeP.h,v 1.7 2001/01/17 19:42:32 dawes Exp $ */ /* * This is the private header file for the Athena Sme object. diff --git a/xc/lib/Xaw/StripCharP.h b/xc/lib/Xaw/StripCharP.h index 4aec11ce2..31c2cac22 100644 --- a/xc/lib/Xaw/StripCharP.h +++ b/xc/lib/Xaw/StripCharP.h @@ -1,5 +1,5 @@ /* -* $TOG: StripCharP.h /main/6 1998/02/06 12:50:31 kaleb $ +* $Xorg: StripCharP.h,v 1.3 2000/08/17 19:45:39 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/StripCharP.h,v 1.6 1999/06/20 08:41:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/StripCharP.h,v 1.7 2001/01/17 19:42:32 dawes Exp $ */ #ifndef _XawStripChartP_h #define _XawStripChartP_h diff --git a/xc/lib/Xaw/StripChart.c b/xc/lib/Xaw/StripChart.c index cee988f44..1d4fa8c21 100644 --- a/xc/lib/Xaw/StripChart.c +++ b/xc/lib/Xaw/StripChart.c @@ -1,4 +1,4 @@ -/* $TOG: StripChart.c /main/26 1998/02/06 12:50:36 kaleb $ */ +/* $Xorg: StripChart.c,v 1.3 2000/08/17 19:45:39 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/StripChart.c,v 1.6 1999/06/06 08:48:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/StripChart.c,v 1.7 2001/01/17 19:42:32 dawes Exp $ */ #include <stdio.h> #include <X11/IntrinsicP.h> diff --git a/xc/lib/Xaw/StripChart.h b/xc/lib/Xaw/StripChart.h index 531c43852..afd60485f 100644 --- a/xc/lib/Xaw/StripChart.h +++ b/xc/lib/Xaw/StripChart.h @@ -1,4 +1,4 @@ -/* $TOG: StripChart.h /main/7 1998/02/06 12:50:41 kaleb $ */ +/* $Xorg: StripChart.h,v 1.4 2000/08/17 19:45:39 cpqbld Exp $ */ /*********************************************************** @@ -42,12 +42,20 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/StripChart.h,v 1.4 1998/10/03 08:42:23 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/StripChart.h,v 1.5 2001/01/17 19:42:32 dawes Exp $ */ #ifndef _XawStripChart_h #define _XawStripChart_h -/* Resources: +#include <X11/Intrinsic.h> + +/*********************************************************************** + * + * StripChart Widget + * + ***********************************************************************/ + +/* StripChart resources: Name Class RepType Default Value ---- ----- ------- ------------- diff --git a/xc/lib/Xaw/Template.c b/xc/lib/Xaw/Template.c index 82fcb9f83..97bce11ac 100644 --- a/xc/lib/Xaw/Template.c +++ b/xc/lib/Xaw/Template.c @@ -1,4 +1,4 @@ -/* $TOG: Template.c /main/6 1998/02/06 12:50:51 kaleb $ */ +/* $Xorg: Template.c,v 1.3 2000/08/17 19:45:40 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/Template.c,v 1.6 1999/06/06 08:48:13 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Template.c,v 1.7 2001/01/17 19:42:32 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Template.h b/xc/lib/Xaw/Template.h index 3b5281a16..c728d1b8f 100644 --- a/xc/lib/Xaw/Template.h +++ b/xc/lib/Xaw/Template.h @@ -1,4 +1,4 @@ -/* $TOG: Template.h /main/7 1998/02/06 12:50:56 kaleb $ */ +/* $Xorg: Template.h,v 1.4 2000/08/17 19:45:40 cpqbld Exp $ */ /* @@ -21,11 +21,19 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/Template.h,v 1.4 1998/10/03 08:42:23 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Template.h,v 1.5 2001/01/17 19:42:32 dawes Exp $ */ #ifndef _Template_h #define _Template_h +#include <X11/Intrinsic.h> + +/**************************************************************** + * + * Template widget + * + ****************************************************************/ + /* Resources: Name Class RepType Default Value diff --git a/xc/lib/Xaw/TemplateP.h b/xc/lib/Xaw/TemplateP.h index 8c900ac31..c27874f0f 100644 --- a/xc/lib/Xaw/TemplateP.h +++ b/xc/lib/Xaw/TemplateP.h @@ -1,4 +1,4 @@ -/* $TOG: TemplateP.h /main/8 1998/02/06 12:50:46 kaleb $ */ +/* $Xorg: TemplateP.h,v 1.4 2000/08/17 19:45:40 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/TemplateP.h,v 1.5 1999/06/06 08:48:13 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TemplateP.h,v 1.6 2001/01/17 19:42:32 dawes Exp $ */ #ifndef _TemplateP_h #define _TemplateP_h @@ -54,7 +54,11 @@ typedef struct { typedef struct _TemplateRec { CorePart core; +#if defined(__cplusplus) || defined(c_plusplus) + TemplatePart c_template; +#else TemplatePart template; +#endif } TemplateRec; #endif /* _TemplateP_h */ diff --git a/xc/lib/Xaw/Text.c b/xc/lib/Xaw/Text.c index b2d11ed17..dc5b1819a 100644 --- a/xc/lib/Xaw/Text.c +++ b/xc/lib/Xaw/Text.c @@ -1,4 +1,4 @@ -/* $TOG: Text.c /main/201 1998/06/24 11:53:44 kaleb $ */ +/* $Xorg: Text.c,v 1.3 2000/08/17 19:45:40 cpqbld Exp $ */ /*********************************************************** @@ -70,7 +70,7 @@ SOFTWARE. * XFree86 Project. */ -/* $XFree86: xc/lib/Xaw/Text.c,v 3.40 2000/12/07 20:26:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Text.c,v 3.42 2001/01/30 21:54:33 paulo Exp $ */ #include <stdio.h> #include <X11/IntrinsicP.h> @@ -805,6 +805,7 @@ CreateVScrollBar(TextWidget ctx) XtRealizeWidget(vbar); XtMapWidget(vbar); } + XtSetKeyboardFocus(vbar, (Widget)ctx); } /* @@ -863,6 +864,7 @@ CreateHScrollBar(TextWidget ctx) XtRealizeWidget(hbar); XtMapWidget(hbar); } + XtSetKeyboardFocus(hbar, (Widget)ctx); } /* diff --git a/xc/lib/Xaw/Text.h b/xc/lib/Xaw/Text.h index 7bb3ff0fc..785a12f64 100644 --- a/xc/lib/Xaw/Text.h +++ b/xc/lib/Xaw/Text.h @@ -1,4 +1,4 @@ -/* $TOG: Text.h /main/46 1998/02/06 12:52:13 kaleb $ */ +/* $Xorg: Text.h,v 1.3 2000/08/17 19:45:40 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Text.h,v 1.13 1999/08/15 13:00:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Text.h,v 1.14 2001/01/17 19:42:34 dawes Exp $ */ #ifndef _XawText_h #define _XawText_h diff --git a/xc/lib/Xaw/TextAction.c b/xc/lib/Xaw/TextAction.c index 9a041ff3c..a2ae600c1 100644 --- a/xc/lib/Xaw/TextAction.c +++ b/xc/lib/Xaw/TextAction.c @@ -1,4 +1,4 @@ -/* $TOG: TextAction.c /main/55 1998/02/06 12:51:01 kaleb $ */ +/* $Xorg: TextAction.c,v 1.3 2000/08/17 19:45:40 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/TextAction.c,v 3.35 2000/12/07 20:26:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextAction.c,v 3.39 2001/02/01 19:15:19 paulo Exp $ */ #include <stdio.h> #include <stdlib.h> @@ -2835,12 +2835,23 @@ RedrawDisplay(Widget w, XEvent *event, String *p, Cardinal *n) EndAction((TextWidget)w); } +/* This is kind of a hack, but, only one text widget can have focus at + * a time on one display. There is a problem in the implementation of the + * text widget, the scrollbars can not be adressed via editres, since they + * are not children of a subclass of composite. + * The focus variable is required to make sure only one text window will + * show a block cursor at one time. + */ +struct _focus { Display *display; Widget widget; }; +static struct _focus *focus; +static Cardinal num_focus; /*ARGSUSED*/ static void TextFocusIn(Widget w, XEvent *event, String *p, Cardinal *n) { TextWidget ctx = (TextWidget)w; Bool display_caret = ctx->text.display_caret; + int i; if (event->xfocus.detail == NotifyPointer) return; @@ -2853,6 +2864,25 @@ TextFocusIn(Widget w, XEvent *event, String *p, Cardinal *n) ctx->text.hasfocus = TRUE; if (display_caret) EndAction(ctx); + + for (i = 0; i < num_focus; i++) + if (focus[i].display == XtDisplay(w)) + break; + if (i >= num_focus) { + focus = (struct _focus*) + XtRealloc((XtPointer)focus, sizeof(struct _focus) * (num_focus + 1)); + i = num_focus; + focus[i].widget = w; + focus[i].display = XtDisplay(w); + num_focus++; + } + if (focus[i].widget != w) { + Widget old = focus[i].widget; + + focus[i].widget = w; + if (old != NULL) + TextFocusOut(old, event, p, n); + } } /*ARGSUSED*/ @@ -2861,8 +2891,24 @@ TextFocusOut(Widget w, XEvent *event, String *p, Cardinal *n) { TextWidget ctx = (TextWidget)w; Bool display_caret = ctx->text.display_caret; + Widget shell; + Window window; + int i, revert; + + shell = w; + while (shell) { + if (XtIsShell(shell)) + break; + shell = XtParent(shell); + } - if (event->xfocus.detail == NotifyPointer) + for (i = 0; i < num_focus; i++) + if (focus[i].display == XtDisplay(w)) + break; + XGetInputFocus(XtDisplay(w), &window, &revert); + if ((XtWindow(shell) == window && + (i < num_focus && focus[i].widget == w)) + || event->xfocus.detail == NotifyPointer) return; /* Let the input method know focus has left.*/ @@ -3110,6 +3156,8 @@ InsertChar(Widget w, XEvent *event, String *p, Cardinal *n) FD_ZERO(&fds); FD_SET(ConnectionNumber(XtDisplay(w)), &fds); (void)select(FD_SETSIZE, &fds, NULL, NULL, &tmval); + if (tmval.tv_usec != 500000) + usleep(40000); StartAction(ctx, NULL); #ifndef OLDXAW @@ -3342,8 +3390,9 @@ Numeric(Widget w, XEvent *event, String *params, Cardinal *num_params) return; } else { - mult = mult * 10 + params[0][0] - '0'; - ctx->text.mult = ctx->text.mult * 10 + params[0][0] - '0'; + mult = mult * 10 + (params[0][0] - '0') * (mult < 0 ? -1 : 1); + ctx->text.mult = ctx->text.mult * 10 + (params[0][0] - '0') * + (mult < 0 ? -1 : 1); } if (mult != ctx->text.mult || mult >= 32767) { /* checks for overflow */ XBell(XtDisplay(w), 0); diff --git a/xc/lib/Xaw/TextP.h b/xc/lib/Xaw/TextP.h index 3b9e32d30..0023a43ac 100644 --- a/xc/lib/Xaw/TextP.h +++ b/xc/lib/Xaw/TextP.h @@ -1,5 +1,5 @@ /* -* $TOG: TextP.h /main/55 1998/02/06 12:51:17 kaleb $ +* $Xorg: TextP.h,v 1.3 2000/08/17 19:45:40 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/TextP.h,v 3.18 1999/06/20 08:41:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextP.h,v 3.19 2001/01/17 19:42:34 dawes Exp $ */ #ifndef _XawTextP_h #define _XawTextP_h diff --git a/xc/lib/Xaw/TextPop.c b/xc/lib/Xaw/TextPop.c index ec49be14e..9c53f377b 100644 --- a/xc/lib/Xaw/TextPop.c +++ b/xc/lib/Xaw/TextPop.c @@ -1,4 +1,4 @@ -/* $TOG: TextPop.c /main/34 1998/06/24 11:53:54 kaleb $ */ +/* $Xorg: TextPop.c,v 1.3 2000/08/17 19:45:41 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/TextPop.c,v 1.16 2000/05/18 16:29:52 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextPop.c,v 1.18 2001/02/05 22:38:05 paulo Exp $ */ /* * This file is broken up into three sections one dealing with @@ -837,7 +837,7 @@ AddSearchChildren(Widget form, char *ptr, Widget tw) static Bool DoSearch(struct SearchAndReplace *search) { - char msg[BUFSIZ]; + char msg[37]; Widget tw = XtParent(search->search_popup); XawTextPosition pos; XawTextScanDirection dir; @@ -875,11 +875,27 @@ DoSearch(struct SearchAndReplace *search) GetString to get a tame version */ if (pos == XawTextSearchError) { - (void)XmuSnprintf(msg, sizeof(msg), - "Could not find string ``%s''.", - GetString(search->search_text)); + char *ptr; + int len; + + ptr = GetString(search->search_text); + len = strlen(ptr); + (void)XmuSnprintf(msg, sizeof(msg), "%s", ptr); + + ptr = strchr(msg, '\n'); + if (ptr != NULL || sizeof(msg) - 1 < len) { + if (ptr != NULL) + len = ptr - msg + 4; + else + len = strlen(msg); + + if (len < 4) + strcpy(msg, "..."); + else + strcpy(msg + len - 4, "..."); + } XawTextUnsetSelection(tw); - SetSearchLabels(search, msg, "", True); + SetSearchLabels(search, "Could not find string", msg, True); return (False); } @@ -1019,15 +1035,26 @@ Replace(struct SearchAndReplace *search, Bool once_only, Bool show_current) if (new_pos == XawTextSearchError) { if (count == 0) { - char msg[BUFSIZ]; - - /* The Raw string in find.ptr may be WC I can't use here, - so I call GetString to get a tame version */ - - (void)XmuSnprintf(msg, sizeof(msg), - "Error: Could not find string ``%s''", - GetString(search->search_text)); - SetSearchLabels(search, msg, "", True); + char msg[37]; + char *ptr; + int len; + + ptr = GetString(search->search_text); + len = strlen(ptr); + (void)XmuSnprintf(msg, sizeof(msg), "%s", ptr); + ptr = strchr(msg, '\n'); + if (ptr != NULL || sizeof(msg) - 1 < len) { + if (ptr != NULL) + len = ptr - msg + 4; + else + len = strlen(msg); + + if (len < 4) + strcpy(msg, "..."); + else + strcpy(msg + len - 4, "..."); + } + SetSearchLabels(search, "Could not find string", msg, True); if (redisplay) { XawTextSetInsertionPoint(tw, ipos); @@ -1047,7 +1074,7 @@ Replace(struct SearchAndReplace *search, Bool once_only, Bool show_current) XawTextGetSelectionPos(tw, &pos, &end_pos); if (search->selection_changed) { - SetSearchLabels(search, "Selection has been modified, aborting.", + SetSearchLabels(search, "Selection modified, aborting.", "", True); if (redisplay) { XawTextSetInsertionPoint(tw, ipos); @@ -1067,11 +1094,7 @@ Replace(struct SearchAndReplace *search, Bool once_only, Bool show_current) } if (XawTextReplace(tw, pos, end_pos, &replace) != XawEditDone) { - char msg[BUFSIZ]; - - (void)XmuSnprintf(msg, sizeof(msg), - "'%s' with '%s'", find.ptr, replace.ptr); - SetSearchLabels(search, "Error while replacing", msg, True); + SetSearchLabels(search, "Error while replacing.", "", True); if (redisplay) { XawTextSetInsertionPoint(tw, ipos); XawTextEnableRedisplay(tw); diff --git a/xc/lib/Xaw/TextSink.c b/xc/lib/Xaw/TextSink.c index 205b04ee0..69cc61aaf 100644 --- a/xc/lib/Xaw/TextSink.c +++ b/xc/lib/Xaw/TextSink.c @@ -1,4 +1,4 @@ -/* $TOG: TextSink.c /main/21 1998/02/11 14:55:39 kaleb $ */ +/* $Xorg: TextSink.c,v 1.3 2000/08/17 19:45:41 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/TextSink.c,v 1.17 2000/10/02 02:32:12 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/TextSink.c,v 1.18 2001/01/17 19:42:34 dawes Exp $ */ /* * Author: Chris Peterson, MIT X Consortium. diff --git a/xc/lib/Xaw/TextSink.h b/xc/lib/Xaw/TextSink.h index 13d026697..0e1f57a7e 100644 --- a/xc/lib/Xaw/TextSink.h +++ b/xc/lib/Xaw/TextSink.h @@ -1,5 +1,5 @@ /* - * $TOG: TextSink.h /main/11 1998/02/06 12:51:33 kaleb $ + * $Xorg: TextSink.h,v 1.3 2000/08/17 19:45:41 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/TextSink.h,v 1.8 1999/08/15 13:00:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextSink.h,v 1.9 2001/01/17 19:42:35 dawes Exp $ */ #ifndef _XawTextSink_h #define _XawTextSink_h diff --git a/xc/lib/Xaw/TextSinkP.h b/xc/lib/Xaw/TextSinkP.h index e409721e7..03fc48cc1 100644 --- a/xc/lib/Xaw/TextSinkP.h +++ b/xc/lib/Xaw/TextSinkP.h @@ -1,5 +1,5 @@ /* -* $TOG: TextSinkP.h /main/7 1998/02/06 12:51:22 kaleb $ +* $Xorg: TextSinkP.h,v 1.3 2000/08/17 19:45:41 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/TextSinkP.h,v 1.10 1999/09/06 13:02:17 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextSinkP.h,v 1.11 2001/01/17 19:42:35 dawes Exp $ */ #ifndef _XawTextSinkP_h #define _XawTextSinkP_h diff --git a/xc/lib/Xaw/TextSrc.c b/xc/lib/Xaw/TextSrc.c index 35a079250..2ed775ee2 100644 --- a/xc/lib/Xaw/TextSrc.c +++ b/xc/lib/Xaw/TextSrc.c @@ -1,4 +1,4 @@ -/* $TOG: TextSrc.c /main/21 1998/05/25 08:17:30 kaleb $ */ +/* $Xorg: TextSrc.c,v 1.4 2000/08/17 19:45:41 cpqbld Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/TextSrc.c,v 1.25 2000/09/26 15:56:55 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/TextSrc.c,v 1.27 2001/01/30 15:03:34 paulo Exp $ */ /* * Author: Chris Peterson, MIT X Consortium. @@ -1022,9 +1022,9 @@ XawTextSourceReplace(Widget w, XawTextPosition left, XtFree((XtPointer)entity); if (entity == anchor->entities) { if ((anchor->entities = enext) == NULL) { + eprev = NULL; anchor = XawTextSourceRemoveAnchor(w, anchor); entity = anchor ? anchor->entities : NULL; - eprev = NULL; } else eprev = entity = enext; @@ -1053,6 +1053,7 @@ XawTextSourceReplace(Widget w, XawTextPosition left, XtFree((XtPointer)entity); anchor->cache = NULL; if (entity == anchor->entities) { + eprev = NULL; if ((anchor->entities = enext) == NULL) { if (i == 0) ++i; @@ -1069,7 +1070,6 @@ XawTextSourceReplace(Widget w, XawTextPosition left, break; } anchor = src->textSrc.anchors[i]; - eprev = NULL; entity = anchor->entities; continue; } diff --git a/xc/lib/Xaw/TextSrc.h b/xc/lib/Xaw/TextSrc.h index 26955e934..d14a530bb 100644 --- a/xc/lib/Xaw/TextSrc.h +++ b/xc/lib/Xaw/TextSrc.h @@ -1,5 +1,5 @@ /* - * $TOG: TextSrc.h /main/12 1998/02/06 12:51:49 kaleb $ + * $Xorg: TextSrc.h,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/TextSrc.h,v 1.10 1999/08/15 13:00:38 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextSrc.h,v 1.11 2001/01/17 19:42:35 dawes Exp $ */ #ifndef _XawTextSrc_h #define _XawTextSrc_h diff --git a/xc/lib/Xaw/TextSrcP.h b/xc/lib/Xaw/TextSrcP.h index 25ddb1163..ce5c8a4b7 100644 --- a/xc/lib/Xaw/TextSrcP.h +++ b/xc/lib/Xaw/TextSrcP.h @@ -1,5 +1,5 @@ /* -* $TOG: TextSrcP.h /main/21 1998/02/06 12:51:38 kaleb $ +* $Xorg: TextSrcP.h,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/TextSrcP.h,v 1.12 1999/09/27 06:29:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextSrcP.h,v 1.13 2001/01/17 19:42:35 dawes Exp $ */ #ifndef _XawTextSrcP_h #define _XawTextSrcP_h diff --git a/xc/lib/Xaw/TextTr.c b/xc/lib/Xaw/TextTr.c index c7adda2af..3690766bf 100644 --- a/xc/lib/Xaw/TextTr.c +++ b/xc/lib/Xaw/TextTr.c @@ -1,4 +1,4 @@ -/* $TOG: TextTr.c /main/21 1998/02/06 12:51:54 kaleb $ */ +/* $Xorg: TextTr.c,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/TextTr.c,v 3.14 2000/06/13 23:15:48 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TextTr.c,v 3.15 2001/01/17 19:42:35 dawes Exp $ */ /* INTERNATIONALIZATION: diff --git a/xc/lib/Xaw/Toggle.c b/xc/lib/Xaw/Toggle.c index 9f3de2d98..aa9b2eae9 100644 --- a/xc/lib/Xaw/Toggle.c +++ b/xc/lib/Xaw/Toggle.c @@ -1,4 +1,4 @@ -/* $TOG: Toggle.c /main/30 1998/02/11 14:55:52 kaleb $ */ +/* $Xorg: Toggle.c,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/Toggle.c,v 1.6 1999/06/06 08:48:19 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Toggle.c,v 1.7 2001/01/17 19:42:35 dawes Exp $ */ /* * Author: Chris D. Peterson diff --git a/xc/lib/Xaw/Toggle.h b/xc/lib/Xaw/Toggle.h index 3ef138646..06ee88815 100644 --- a/xc/lib/Xaw/Toggle.h +++ b/xc/lib/Xaw/Toggle.h @@ -1,5 +1,5 @@ /* - * $TOG: Toggle.h /main/18 1998/02/11 14:55:57 kaleb $ + * $Xorg: Toggle.h,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -19,7 +19,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/Toggle.h,v 1.4 1998/10/03 08:42:29 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Toggle.h,v 1.5 2001/01/17 19:42:35 dawes Exp $ */ /* * ToggleP.h - Private definitions for Toggle widget diff --git a/xc/lib/Xaw/ToggleP.h b/xc/lib/Xaw/ToggleP.h index 1cc564bc7..96e2b69a9 100644 --- a/xc/lib/Xaw/ToggleP.h +++ b/xc/lib/Xaw/ToggleP.h @@ -1,4 +1,4 @@ -/* $TOG: ToggleP.h /main/11 1998/02/11 14:55:48 kaleb $ */ +/* $Xorg: ToggleP.h,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/ToggleP.h,v 1.6 1999/06/20 08:41:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/ToggleP.h,v 1.7 2001/01/17 19:42:35 dawes Exp $ */ /* * Author: Chris D. Peterson diff --git a/xc/lib/Xaw/Tree.c b/xc/lib/Xaw/Tree.c index 4a9b0ecd4..3be11bb6d 100644 --- a/xc/lib/Xaw/Tree.c +++ b/xc/lib/Xaw/Tree.c @@ -1,5 +1,5 @@ /* - * $TOG: Tree.c /main/47 1998/02/11 14:56:05 kaleb $ + * $Xorg: Tree.c,v 1.3 2000/08/17 19:45:42 cpqbld Exp $ * Copyright 1990, 1994, 1998 The Open Group @@ -44,7 +44,7 @@ in this Software without prior written authorization from The Open Group. * additional blank space to make the structure of the graph easier to see * as well as to support vertical trees. */ -/* $XFree86: xc/lib/Xaw/Tree.c,v 1.8 1999/07/04 06:38:27 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Tree.c,v 1.9 2001/01/17 19:42:35 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Tree.h b/xc/lib/Xaw/Tree.h index 5071cfa78..789779821 100644 --- a/xc/lib/Xaw/Tree.h +++ b/xc/lib/Xaw/Tree.h @@ -1,5 +1,5 @@ /* - * $TOG: Tree.h /main/15 1998/02/11 14:56:11 kaleb $ + * $Xorg: Tree.h,v 1.3 2000/08/17 19:45:43 cpqbld Exp $ * Copyright 1990, 1994, 1998 The Open Group @@ -44,7 +44,7 @@ in this Software without prior written authorization from The Open Group. * additional blank space to make the structure of the graph easier to see * as well as to support vertical trees. */ -/* $XFree86: xc/lib/Xaw/Tree.h,v 1.5 1999/06/06 08:48:20 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Tree.h,v 1.6 2001/01/17 19:42:35 dawes Exp $ */ #ifndef _XawTree_h diff --git a/xc/lib/Xaw/TreeP.h b/xc/lib/Xaw/TreeP.h index 3e8b14d7a..0093a709b 100644 --- a/xc/lib/Xaw/TreeP.h +++ b/xc/lib/Xaw/TreeP.h @@ -1,5 +1,5 @@ /* - * $TOG: TreeP.h /main/16 1998/02/11 14:56:01 kaleb $ + * $Xorg: TreeP.h,v 1.3 2000/08/17 19:45:43 cpqbld Exp $ * Copyright 1990, 1998 The Open Group @@ -44,7 +44,7 @@ in this Software without prior written authorization from The Open Group. * additional blank space to make the structure of the graph easier to see * as well as to support vertical trees. */ -/* $XFree86: xc/lib/Xaw/TreeP.h,v 1.5 1999/06/20 08:41:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/TreeP.h,v 1.6 2001/01/17 19:42:35 dawes Exp $ */ #ifndef _XawTreeP_h diff --git a/xc/lib/Xaw/Vendor.c b/xc/lib/Xaw/Vendor.c index 96d753568..db6b99054 100644 --- a/xc/lib/Xaw/Vendor.c +++ b/xc/lib/Xaw/Vendor.c @@ -1,4 +1,4 @@ -/* $TOG: Vendor.c /main/28 1998/02/06 12:52:56 kaleb $ */ +/* $Xorg: Vendor.c,v 1.3 2000/08/17 19:45:43 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Vendor.c,v 1.6 1999/03/21 07:34:32 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Vendor.c,v 1.7 2001/01/17 19:42:35 dawes Exp $ */ /* * This is a copy of Xt/Vendor.c with an additional ClassInitialize diff --git a/xc/lib/Xaw/VendorEP.h b/xc/lib/Xaw/VendorEP.h index 309162c16..3e2bd1b17 100644 --- a/xc/lib/Xaw/VendorEP.h +++ b/xc/lib/Xaw/VendorEP.h @@ -1,4 +1,4 @@ -/* $TOG: VendorEP.h /main/3 1998/02/06 12:52:50 kaleb $ */ +/* $Xorg: VendorEP.h,v 1.3 2000/08/17 19:45:43 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -47,7 +47,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/VendorEP.h,v 1.4 1999/06/20 08:41:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/VendorEP.h,v 1.5 2001/01/17 19:42:36 dawes Exp $ */ #ifndef _VendorEP_h #define _VendorEP_h diff --git a/xc/lib/Xaw/Viewport.c b/xc/lib/Xaw/Viewport.c index 4c3c6adc7..92cd6a2c2 100644 --- a/xc/lib/Xaw/Viewport.c +++ b/xc/lib/Xaw/Viewport.c @@ -1,4 +1,4 @@ -/* $TOG: Viewport.c /main/72 1998/02/06 12:53:07 kaleb $ */ +/* $Xorg: Viewport.c,v 1.3 2000/08/17 19:45:43 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Viewport.c,v 1.8 2000/09/26 15:56:55 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/Viewport.c,v 1.9 2001/01/17 19:42:36 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/Viewport.h b/xc/lib/Xaw/Viewport.h index c01e456bf..e0c08be0a 100644 --- a/xc/lib/Xaw/Viewport.h +++ b/xc/lib/Xaw/Viewport.h @@ -1,4 +1,4 @@ -/* $TOG: Viewport.h /main/24 1998/02/06 12:53:14 kaleb $ */ +/* $Xorg: Viewport.h,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ */ /************************************************************ @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xaw/Viewport.h,v 1.5 1999/05/03 12:15:47 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Viewport.h,v 1.6 2001/01/17 19:42:36 dawes Exp $ */ #ifndef _XawViewport_h #define _XawViewport_h diff --git a/xc/lib/Xaw/ViewportP.h b/xc/lib/Xaw/ViewportP.h index c138822d6..0be977dac 100644 --- a/xc/lib/Xaw/ViewportP.h +++ b/xc/lib/Xaw/ViewportP.h @@ -1,5 +1,5 @@ /* - * $TOG: ViewportP.h /main/15 1998/02/06 12:53:02 kaleb $ + * $Xorg: ViewportP.h,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ * Private declarations for ViewportWidgetClass */ @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xaw/ViewportP.h,v 1.6 1999/06/20 08:41:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/ViewportP.h,v 1.7 2001/01/17 19:42:36 dawes Exp $ */ #ifndef _ViewportP_h #define _ViewportP_h diff --git a/xc/lib/Xaw/Xaw-def.cpp b/xc/lib/Xaw/Xaw-def.cpp index cbb5f3c7b..ea3de9a4a 100644 --- a/xc/lib/Xaw/Xaw-def.cpp +++ b/xc/lib/Xaw/Xaw-def.cpp @@ -131,4 +131,4 @@ EXPORTS XawViewportSetLocation XawWidgetArray XawWidgetCount -/* $TOG: Xaw-def.cpp /main/1 1997/09/16 10:04:41 kaleb $ */ +/* $Xorg: Xaw-def.cpp,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ */ diff --git a/xc/lib/Xaw/Xaw.man b/xc/lib/Xaw/Xaw.man index ff21215f8..96a154b7b 100644 --- a/xc/lib/Xaw/Xaw.man +++ b/xc/lib/Xaw/Xaw.man @@ -26,14 +26,14 @@ .\" .\" Author: Paulo César Pereira de Andrade .\" -.\" $XFree86: xc/lib/Xaw/Xaw.man,v 1.4 1999/06/27 14:07:35 dawes Exp $ +.\" $XFree86: xc/lib/Xaw/Xaw.man,v 1.5 2001/01/27 18:20:39 dawes Exp $ .\" .de TQ .br .ns .TP \\$1 .. -.TH XAW 3 "Version 3.9" "XFree86" +.TH XAW 3 __vendorversion__ .SH NAME XAW \- X Athena Widgets diff --git a/xc/lib/Xaw/XawI18n.c b/xc/lib/Xaw/XawI18n.c index 5fdd0a3c5..0965c4934 100644 --- a/xc/lib/Xaw/XawI18n.c +++ b/xc/lib/Xaw/XawI18n.c @@ -1,4 +1,4 @@ -/* $TOG: XawI18n.c /main/7 1998/02/06 12:53:18 kaleb $ */ +/* $Xorg: XawI18n.c,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ */ /* Copyright 1991 NCR Corporation - Dayton, Ohio, USA */ @@ -49,7 +49,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/XawI18n.c,v 1.6 1999/07/19 13:36:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/XawI18n.c,v 1.7 2001/01/17 19:42:36 dawes Exp $ */ #include <X11/IntrinsicP.h> #include "XawI18n.h" diff --git a/xc/lib/Xaw/XawI18n.h b/xc/lib/Xaw/XawI18n.h index d5ae88722..ef7d55638 100644 --- a/xc/lib/Xaw/XawI18n.h +++ b/xc/lib/Xaw/XawI18n.h @@ -1,4 +1,4 @@ -/* $TOG: XawI18n.h /main/13 1998/02/06 12:53:23 kaleb $ */ +/* $Xorg: XawI18n.h,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ */ /************************************************************ @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. ********************************************************/ -/* $XFree86: xc/lib/Xaw/XawI18n.h,v 3.10 1999/12/27 00:39:23 robin Exp $ */ +/* $XFree86: xc/lib/Xaw/XawI18n.h,v 3.11 2001/01/17 19:42:36 dawes Exp $ */ #ifdef HAS_WCTYPE_H #include <wctype.h> diff --git a/xc/lib/Xaw/XawIm.c b/xc/lib/Xaw/XawIm.c index 2f38dc577..44da26c0c 100644 --- a/xc/lib/Xaw/XawIm.c +++ b/xc/lib/Xaw/XawIm.c @@ -1,4 +1,4 @@ -/* $TOG: XawIm.c /main/12 1998/04/21 07:40:26 kaleb $ */ +/* $Xorg: XawIm.c,v 1.4 2000/08/17 19:45:44 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -48,7 +48,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/XawIm.c,v 1.11 2000/09/05 19:51:16 mvojkovi Exp $ */ +/* $XFree86: xc/lib/Xaw/XawIm.c,v 1.12 2001/01/17 19:42:36 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xaw/XawImP.h b/xc/lib/Xaw/XawImP.h index ae6901cc6..53b295fee 100644 --- a/xc/lib/Xaw/XawImP.h +++ b/xc/lib/Xaw/XawImP.h @@ -1,4 +1,4 @@ -/* $TOG: XawImP.h /main/8 1998/04/21 09:44:31 kaleb $ */ +/* $Xorg: XawImP.h,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ */ /* * Copyright 1991 by OMRON Corporation @@ -47,7 +47,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/XawImP.h,v 3.7 1999/03/14 11:17:41 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/XawImP.h,v 3.8 2001/01/17 19:42:36 dawes Exp $ */ #ifndef _XawImP_h #define _XawImP_h diff --git a/xc/lib/Xaw/XawInit.c b/xc/lib/Xaw/XawInit.c index 7b8a55251..816113876 100644 --- a/xc/lib/Xaw/XawInit.c +++ b/xc/lib/Xaw/XawInit.c @@ -1,5 +1,5 @@ /* - * $TOG: XawInit.c /main/4 1998/02/06 12:53:40 kaleb $ + * $Xorg: XawInit.c,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -28,7 +28,7 @@ in this Software without prior written authorization from The Open Group. * call this routine from their ClassInitialize procs (this routine may be * used as the class init proc). */ -/* $XFree86: xc/lib/Xaw/XawInit.c,v 1.8 1999/06/06 08:48:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/XawInit.c,v 1.9 2001/01/17 19:42:36 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/Vendor.h> diff --git a/xc/lib/Xaw/XawInit.h b/xc/lib/Xaw/XawInit.h index b58996a47..cf49b8588 100644 --- a/xc/lib/Xaw/XawInit.h +++ b/xc/lib/Xaw/XawInit.h @@ -1,4 +1,4 @@ -/* $TOG: XawInit.h /main/7 1998/02/06 12:53:44 kaleb $ +/* $Xorg: XawInit.h,v 1.4 2000/08/17 19:45:44 cpqbld Exp $ * Copyright 1989, 1994, 1998 The Open Group @@ -18,7 +18,7 @@ Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xaw/XawInit.h,v 1.11 1999/08/28 09:00:29 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/XawInit.h,v 1.12 2001/01/17 19:42:36 dawes Exp $ */ #ifndef _XawInit_h #define _XawInit_h @@ -33,6 +33,8 @@ in this Software without prior written authorization from The Open Group. typedef struct _XawDL XawDisplayList; #endif /* OLDXAW */ +#include <X11/Xfuncproto.h> + _XFUNCPROTOBEGIN void XawInitializeWidgetSet(void); diff --git a/xc/lib/Xaw/jump_funcs b/xc/lib/Xaw/jump_funcs index df6d0e529..d53aad255 100644 --- a/xc/lib/Xaw/jump_funcs +++ b/xc/lib/Xaw/jump_funcs @@ -1,5 +1,9 @@ -# $XConsortium: jump_funcs,v 1.2 94/12/07 10:46:47 kaleb Exp $ -# $XFree86: xc/lib/Xaw/jump_funcs,v 3.2 1996/02/12 11:11:15 dawes Exp $ +# $Xorg: jump_funcs,v 1.3 2000/08/17 19:45:44 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/Xaw/jump_funcs,v 3.3 2001/01/17 19:42:36 dawes Exp $ # 00000000 T _XawAsciiSourceFreeString libXaw AsciiSrc 00000000 T _XawAsciiSave libXaw AsciiSrc diff --git a/xc/lib/Xaw/jump_ignore b/xc/lib/Xaw/jump_ignore index 253b63da1..0c07b494c 100644 --- a/xc/lib/Xaw/jump_ignore +++ b/xc/lib/Xaw/jump_ignore @@ -1,3 +1,7 @@ -# $XConsortium: jump_ignore,v 1.2 94/12/07 10:46:47 kaleb Exp $ -# $XFree86: xc/lib/Xaw/jump_ignore,v 3.1 1995/01/28 15:43:32 dawes Exp $ +# $Xorg: jump_ignore,v 1.3 2000/08/17 19:45:45 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/Xaw/jump_ignore,v 3.2 2001/01/17 19:42:36 dawes Exp $ # jump_ignore diff --git a/xc/lib/Xaw/jump_vars b/xc/lib/Xaw/jump_vars index 2edecda2e..aa37d41ae 100644 --- a/xc/lib/Xaw/jump_vars +++ b/xc/lib/Xaw/jump_vars @@ -1,5 +1,9 @@ -# $XConsortium: jump_vars,v 1.2 94/12/07 10:46:47 kaleb Exp $ -# $XFree86: xc/lib/Xaw/jump_vars,v 3.1 1995/01/28 15:43:33 dawes Exp $ +# $Xorg: jump_vars,v 1.3 2000/08/17 19:45:45 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/Xaw/jump_vars,v 3.2 2001/01/17 19:42:36 dawes Exp $ # 00001400 D _XawWidgetArray libXaw AllWidgets 00000004 D _XawWidgetCount libXaw AllWidgets diff --git a/xc/lib/Xaw/sharedlib.c b/xc/lib/Xaw/sharedlib.c index 2e83e6f19..3353adc3b 100644 --- a/xc/lib/Xaw/sharedlib.c +++ b/xc/lib/Xaw/sharedlib.c @@ -1,4 +1,4 @@ -/* $TOG: sharedlib.c /main/7 1998/02/06 12:49:07 kaleb $ */ +/* $Xorg: sharedlib.c,v 1.3 2000/08/17 19:45:45 cpqbld Exp $ */ /* Copyright 1991, 1994, 1998 The Open Group diff --git a/xc/lib/Xbsd/Berklib.c b/xc/lib/Xbsd/Berklib.c index 254428fe6..4bde7887f 100644 --- a/xc/lib/Xbsd/Berklib.c +++ b/xc/lib/Xbsd/Berklib.c @@ -1,4 +1,4 @@ -/* $TOG: Berklib.c /main/26 1998/02/06 14:20:17 kaleb $ */ +/* $Xorg: Berklib.c,v 1.3 2000/08/17 19:45:46 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xbsd/Berklib.c,v 3.6 1998/10/03 08:42:49 dawes Exp $ */ +/* $XFree86: xc/lib/Xbsd/Berklib.c,v 3.7 2001/01/17 19:42:42 dawes Exp $ */ /* diff --git a/xc/lib/Xbsd/Imakefile b/xc/lib/Xbsd/Imakefile index 13c6056af..34c0e5eb9 100644 --- a/xc/lib/Xbsd/Imakefile +++ b/xc/lib/Xbsd/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile,v 1.6 94/11/21 18:24:13 kaleb Exp $ -XCOMM $XFree86: xc/lib/Xbsd/Imakefile,v 3.2 1999/04/17 09:08:11 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:46 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xbsd/Imakefile,v 3.3 2001/01/17 19:42:42 dawes Exp $ + SRCS = Berklib.c OBJS = Berklib.o diff --git a/xc/lib/Xdmcp/A8Eq.c b/xc/lib/Xdmcp/A8Eq.c index cbe11421e..336cb54b2 100644 --- a/xc/lib/Xdmcp/A8Eq.c +++ b/xc/lib/Xdmcp/A8Eq.c @@ -1,5 +1,5 @@ /* - * $TOG: A8Eq.c /main/5 1998/02/06 14:38:24 kaleb $ + * $Xorg: A8Eq.c,v 1.3 2000/08/17 19:45:46 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/AA16.c b/xc/lib/Xdmcp/AA16.c index b8ebfb865..3f8b4f398 100644 --- a/xc/lib/Xdmcp/AA16.c +++ b/xc/lib/Xdmcp/AA16.c @@ -1,5 +1,5 @@ /* - * $TOG: AA16.c /main/4 1998/02/06 14:38:30 kaleb $ + * $Xorg: AA16.c,v 1.3 2000/08/17 19:45:47 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/AA16.c,v 1.2 1998/10/10 15:25:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/AA16.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/AA32.c b/xc/lib/Xdmcp/AA32.c index ce7d29d4f..2d71f3d34 100644 --- a/xc/lib/Xdmcp/AA32.c +++ b/xc/lib/Xdmcp/AA32.c @@ -1,5 +1,5 @@ /* - * $TOG: AA32.c /main/4 1998/02/06 14:38:36 kaleb $ + * $Xorg: AA32.c,v 1.3 2000/08/17 19:45:47 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/AA32.c,v 1.2 1998/10/10 15:25:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/AA32.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/AA8.c b/xc/lib/Xdmcp/AA8.c index 0437e6cc9..01597d345 100644 --- a/xc/lib/Xdmcp/AA8.c +++ b/xc/lib/Xdmcp/AA8.c @@ -1,5 +1,5 @@ /* - * $TOG: AA8.c /main/4 1998/02/06 14:38:42 kaleb $ + * $Xorg: AA8.c,v 1.3 2000/08/17 19:45:47 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/AA8.c,v 1.2 1998/10/10 15:25:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/AA8.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Alloc.c b/xc/lib/Xdmcp/Alloc.c index 9e5898402..1ebfb2274 100644 --- a/xc/lib/Xdmcp/Alloc.c +++ b/xc/lib/Xdmcp/Alloc.c @@ -1,5 +1,5 @@ /* - * $TOG: Alloc.c /main/3 1998/02/06 14:38:48 kaleb $ + * $Xorg: Alloc.c,v 1.3 2000/08/17 19:45:47 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/Alloc.c,v 3.2 1998/10/10 15:25:13 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Alloc.c,v 3.3 2001/01/17 19:42:43 dawes Exp $ */ /* stubs for use when Xalloc, Xrealloc and Xfree are not defined */ diff --git a/xc/lib/Xdmcp/AofA8.c b/xc/lib/Xdmcp/AofA8.c index b0597b1e0..77a4be0d2 100644 --- a/xc/lib/Xdmcp/AofA8.c +++ b/xc/lib/Xdmcp/AofA8.c @@ -1,5 +1,5 @@ /* - * $TOG: AofA8.c /main/5 1998/02/06 14:38:53 kaleb $ + * $Xorg: AofA8.c,v 1.3 2000/08/17 19:45:47 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/AofA8.c,v 1.2 1998/10/10 15:25:13 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/AofA8.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/CA8.c b/xc/lib/Xdmcp/CA8.c index 8f20956bd..fe6a115a0 100644 --- a/xc/lib/Xdmcp/CA8.c +++ b/xc/lib/Xdmcp/CA8.c @@ -1,5 +1,5 @@ /* - * $TOG: CA8.c /main/6 1998/02/06 14:38:59 kaleb $ + * $Xorg: CA8.c,v 1.3 2000/08/17 19:45:47 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/CmpKey.c b/xc/lib/Xdmcp/CmpKey.c index dafe102de..1cb49e7a4 100644 --- a/xc/lib/Xdmcp/CmpKey.c +++ b/xc/lib/Xdmcp/CmpKey.c @@ -1,5 +1,5 @@ /* - * $TOG: CmpKey.c /main/4 1998/02/06 14:39:05 kaleb $ + * $Xorg: CmpKey.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/CmpKey.c,v 1.2 1998/10/10 15:25:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/CmpKey.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/DA16.c b/xc/lib/Xdmcp/DA16.c index 67333652a..0e1774053 100644 --- a/xc/lib/Xdmcp/DA16.c +++ b/xc/lib/Xdmcp/DA16.c @@ -1,5 +1,5 @@ /* - * $TOG: DA16.c /main/5 1998/02/06 14:39:10 kaleb $ + * $Xorg: DA16.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/DA16.c,v 1.4 1998/10/10 15:25:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/DA16.c,v 1.5 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/DA32.c b/xc/lib/Xdmcp/DA32.c index e4fcae831..2758c40db 100644 --- a/xc/lib/Xdmcp/DA32.c +++ b/xc/lib/Xdmcp/DA32.c @@ -1,5 +1,5 @@ /* - * $TOG: DA32.c /main/5 1998/02/06 14:39:15 kaleb $ + * $Xorg: DA32.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/DA8.c b/xc/lib/Xdmcp/DA8.c index 2af63d334..be0bb5750 100644 --- a/xc/lib/Xdmcp/DA8.c +++ b/xc/lib/Xdmcp/DA8.c @@ -1,5 +1,5 @@ /* - * $TOG: DA8.c /main/5 1998/02/06 14:39:20 kaleb $ + * $Xorg: DA8.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/DAofA8.c b/xc/lib/Xdmcp/DAofA8.c index 69ac8a61c..b0e853d2d 100644 --- a/xc/lib/Xdmcp/DAofA8.c +++ b/xc/lib/Xdmcp/DAofA8.c @@ -1,5 +1,5 @@ /* - * $TOG: DAofA8.c /main/7 1998/06/25 16:26:01 kaleb $ + * $Xorg: DAofA8.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/DecKey.c b/xc/lib/Xdmcp/DecKey.c index 351bccaa8..f305ee28b 100644 --- a/xc/lib/Xdmcp/DecKey.c +++ b/xc/lib/Xdmcp/DecKey.c @@ -1,5 +1,5 @@ /* - * $TOG: DecKey.c /main/4 1998/02/06 14:39:30 kaleb $ + * $Xorg: DecKey.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/DecKey.c,v 1.2 1998/10/10 15:25:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/DecKey.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Fill.c b/xc/lib/Xdmcp/Fill.c index 15470bd86..df48a6607 100644 --- a/xc/lib/Xdmcp/Fill.c +++ b/xc/lib/Xdmcp/Fill.c @@ -1,5 +1,5 @@ /* - * $TOG: Fill.c /main/12 1998/02/06 14:39:37 kaleb $ + * $Xorg: Fill.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/Fill.c,v 3.6 2000/05/11 18:14:10 tsi Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Fill.c,v 3.7 2001/01/17 19:42:43 dawes Exp $ */ #ifdef WIN32 #define _WILLWINSOCK_ diff --git a/xc/lib/Xdmcp/Flush.c b/xc/lib/Xdmcp/Flush.c index 9de902aab..f02ac27ae 100644 --- a/xc/lib/Xdmcp/Flush.c +++ b/xc/lib/Xdmcp/Flush.c @@ -1,5 +1,5 @@ /* - * $TOG: Flush.c /main/12 1998/02/06 14:39:43 kaleb $ + * $Xorg: Flush.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/Flush.c,v 3.5 1998/10/03 08:42:51 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Flush.c,v 3.6 2001/01/17 19:42:43 dawes Exp $ */ #ifdef WIN32 #define _WILLWINSOCK_ diff --git a/xc/lib/Xdmcp/GenKey.c b/xc/lib/Xdmcp/GenKey.c index 31a73bb72..592f99bf4 100644 --- a/xc/lib/Xdmcp/GenKey.c +++ b/xc/lib/Xdmcp/GenKey.c @@ -1,5 +1,5 @@ /* - * $TOG: GenKey.c /main/7 1998/02/06 14:39:49 kaleb $ + * $Xorg: GenKey.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/GenKey.c,v 3.5 2000/11/14 18:20:33 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/GenKey.c,v 3.6 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Imakefile b/xc/lib/Xdmcp/Imakefile index 62e042db0..8b05c40f1 100644 --- a/xc/lib/Xdmcp/Imakefile +++ b/xc/lib/Xdmcp/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/25 1996/09/28 16:43:40 rws $ -XCOMM $XFree86: xc/lib/Xdmcp/Imakefile,v 3.4 1999/04/17 09:08:12 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xdmcp/Imakefile,v 3.5 2001/01/17 19:42:43 dawes Exp $ + #define DoNormalLib NormalLibXdmcp #define DoSharedLib SharedLibXdmcp #define DoExtraLib SharedLibXdmcp diff --git a/xc/lib/Xdmcp/IncKey.c b/xc/lib/Xdmcp/IncKey.c index 688051951..86408a15e 100644 --- a/xc/lib/Xdmcp/IncKey.c +++ b/xc/lib/Xdmcp/IncKey.c @@ -1,5 +1,5 @@ /* - * $TOG: IncKey.c /main/4 1998/02/06 14:39:54 kaleb $ + * $Xorg: IncKey.c,v 1.3 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/IncKey.c,v 1.2 1998/10/10 15:25:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/IncKey.c,v 1.3 2001/01/17 19:42:43 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/RA16.c b/xc/lib/Xdmcp/RA16.c index 642b70dec..76fafa6bb 100644 --- a/xc/lib/Xdmcp/RA16.c +++ b/xc/lib/Xdmcp/RA16.c @@ -1,5 +1,5 @@ /* - * $TOG: RA16.c /main/7 1998/06/25 16:26:16 kaleb $ + * $Xorg: RA16.c,v 1.4 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -35,8 +35,14 @@ XdmcpReadARRAY16 (buffer, array) { int i; - if (!XdmcpReadCARD8 (buffer, &array->length)) + if (!XdmcpReadCARD8 (buffer, &array->length)) { + + /* Must set array->data to NULL to guarantee safe call of + * XdmcpDisposeARRAY*(array) (which calls Xfree(array->data)); + * see defect 7329 */ + array->data = 0; return FALSE; + } if (!array->length) { array->data = NULL; diff --git a/xc/lib/Xdmcp/RA32.c b/xc/lib/Xdmcp/RA32.c index 5e4cd9cf5..e16d1d118 100644 --- a/xc/lib/Xdmcp/RA32.c +++ b/xc/lib/Xdmcp/RA32.c @@ -1,5 +1,5 @@ /* - * $TOG: RA32.c /main/7 1998/06/25 16:26:21 kaleb $ + * $Xorg: RA32.c,v 1.4 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -35,8 +35,14 @@ XdmcpReadARRAY32 (buffer, array) { int i; - if (!XdmcpReadCARD8 (buffer, &array->length)) + if (!XdmcpReadCARD8 (buffer, &array->length)) { + + /* Must set array->data to NULL to guarantee safe call of + * XdmcpDisposeARRAY*(array) (which calls Xfree(array->data)); + * see defect 7329 */ + array->data = 0; return FALSE; + } if (!array->length) { array->data = NULL; diff --git a/xc/lib/Xdmcp/RA8.c b/xc/lib/Xdmcp/RA8.c index cbba7f18e..a69f6212e 100644 --- a/xc/lib/Xdmcp/RA8.c +++ b/xc/lib/Xdmcp/RA8.c @@ -1,5 +1,5 @@ /* - * $TOG: RA8.c /main/7 1998/06/25 16:26:12 kaleb $ + * $Xorg: RA8.c,v 1.4 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -35,8 +35,14 @@ XdmcpReadARRAY8 (buffer, array) { int i; - if (!XdmcpReadCARD16 (buffer, &array->length)) + if (!XdmcpReadCARD16 (buffer, &array->length)) { + + /* Must set array->data to NULL to guarantee safe call of + * XdmcpDisposeARRAY*(array) (which calls Xfree(array->data)); + * see defect 7329 */ + array->data = 0; return FALSE; + } if (!array->length) { array->data = NULL; diff --git a/xc/lib/Xdmcp/RAofA8.c b/xc/lib/Xdmcp/RAofA8.c index e2e48c6d1..33280ec7f 100644 --- a/xc/lib/Xdmcp/RAofA8.c +++ b/xc/lib/Xdmcp/RAofA8.c @@ -1,5 +1,5 @@ /* - * $TOG: RAofA8.c /main/7 1998/06/25 16:26:07 kaleb $ + * $Xorg: RAofA8.c,v 1.5 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -35,8 +35,14 @@ XdmcpReadARRAYofARRAY8 (buffer, array) { int i; - if (!XdmcpReadCARD8 (buffer, &array->length)) + if (!XdmcpReadCARD8 (buffer, &array->length)) { + + /* Must set array->data to NULL to guarantee safe call of + * XdmcpDisposeARRAY*(array) (which calls Xfree(array->data)); + * see defect 7329 */ + array->data = 0; return FALSE; + } if (!array->length) { array->data = NULL; @@ -49,9 +55,12 @@ XdmcpReadARRAYofARRAY8 (buffer, array) { if (!XdmcpReadARRAY8 (buffer, &array->data[i])) { - Xfree (array->data); - array->data = NULL; - array->length = 0; + + /* All arrays allocated thus far in the loop must be freed + * if there is an error in the read. + * See Defect 7328 */ + array->length = i; + XdmcpDisposeARRAYofARRAY8(array); return FALSE; } } diff --git a/xc/lib/Xdmcp/RC16.c b/xc/lib/Xdmcp/RC16.c index 0e5ddd404..ad504e055 100644 --- a/xc/lib/Xdmcp/RC16.c +++ b/xc/lib/Xdmcp/RC16.c @@ -1,5 +1,5 @@ /* - * $TOG: RC16.c /main/4 1998/02/06 14:40:39 kaleb $ + * $Xorg: RC16.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/RC32.c b/xc/lib/Xdmcp/RC32.c index 364a3b8a7..f4758df04 100644 --- a/xc/lib/Xdmcp/RC32.c +++ b/xc/lib/Xdmcp/RC32.c @@ -1,5 +1,5 @@ /* - * $TOG: RC32.c /main/4 1998/02/06 14:40:44 kaleb $ + * $Xorg: RC32.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/RC8.c b/xc/lib/Xdmcp/RC8.c index 47a263469..13e1d077a 100644 --- a/xc/lib/Xdmcp/RC8.c +++ b/xc/lib/Xdmcp/RC8.c @@ -1,5 +1,5 @@ /* - * $TOG: RC8.c /main/5 1998/02/06 14:40:49 kaleb $ + * $Xorg: RC8.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/RHead.c b/xc/lib/Xdmcp/RHead.c index 688d0f84d..a8d065bbc 100644 --- a/xc/lib/Xdmcp/RHead.c +++ b/xc/lib/Xdmcp/RHead.c @@ -1,5 +1,5 @@ /* - * $TOG: RHead.c /main/4 1998/02/06 14:40:55 kaleb $ + * $Xorg: RHead.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/RR.c b/xc/lib/Xdmcp/RR.c index dc5e1b931..6656f1dc8 100644 --- a/xc/lib/Xdmcp/RR.c +++ b/xc/lib/Xdmcp/RR.c @@ -1,5 +1,5 @@ /* - * $TOG: RR.c /main/4 1998/02/06 14:41:00 kaleb $ + * $Xorg: RR.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/RaA16.c b/xc/lib/Xdmcp/RaA16.c index 7a3db5b61..ac66d48de 100644 --- a/xc/lib/Xdmcp/RaA16.c +++ b/xc/lib/Xdmcp/RaA16.c @@ -1,5 +1,5 @@ /* - * $TOG: RaA16.c /main/4 1998/02/06 14:40:14 kaleb $ + * $Xorg: RaA16.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/RaA16.c,v 1.2 1998/10/10 15:25:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/RaA16.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/RaA32.c b/xc/lib/Xdmcp/RaA32.c index ad53585d1..18939110f 100644 --- a/xc/lib/Xdmcp/RaA32.c +++ b/xc/lib/Xdmcp/RaA32.c @@ -1,5 +1,5 @@ /* - * $TOG: RaA32.c /main/4 1998/02/06 14:40:18 kaleb $ + * $Xorg: RaA32.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/RaA32.c,v 1.2 1998/10/10 15:25:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/RaA32.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/RaA8.c b/xc/lib/Xdmcp/RaA8.c index eee2b37d9..b797e3ea7 100644 --- a/xc/lib/Xdmcp/RaA8.c +++ b/xc/lib/Xdmcp/RaA8.c @@ -1,5 +1,5 @@ /* - * $TOG: RaA8.c /main/4 1998/02/06 14:40:24 kaleb $ + * $Xorg: RaA8.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/RaA8.c,v 1.2 1998/10/10 15:25:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/RaA8.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/RaAoA8.c b/xc/lib/Xdmcp/RaAoA8.c index 21f6f96c3..a135b95c0 100644 --- a/xc/lib/Xdmcp/RaAoA8.c +++ b/xc/lib/Xdmcp/RaAoA8.c @@ -1,5 +1,5 @@ /* - * $TOG: RaAoA8.c /main/4 1998/02/06 14:40:30 kaleb $ + * $Xorg: RaAoA8.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/RaAoA8.c,v 1.2 1998/10/10 15:25:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/RaAoA8.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Unwrap.c b/xc/lib/Xdmcp/Unwrap.c index 76049a049..613b9a771 100644 --- a/xc/lib/Xdmcp/Unwrap.c +++ b/xc/lib/Xdmcp/Unwrap.c @@ -1,5 +1,5 @@ /* - * $TOG: Unwrap.c /main/10 1998/02/06 14:41:06 kaleb $ + * $Xorg: Unwrap.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/Unwrap.c,v 1.2 1998/10/10 15:25:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Unwrap.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/WA16.c b/xc/lib/Xdmcp/WA16.c index 07ad36faa..fb36d187b 100644 --- a/xc/lib/Xdmcp/WA16.c +++ b/xc/lib/Xdmcp/WA16.c @@ -1,5 +1,5 @@ /* - * $TOG: WA16.c /main/5 1998/02/06 14:41:12 kaleb $ + * $Xorg: WA16.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/WA32.c b/xc/lib/Xdmcp/WA32.c index 12a57abd6..f964f2cf5 100644 --- a/xc/lib/Xdmcp/WA32.c +++ b/xc/lib/Xdmcp/WA32.c @@ -1,5 +1,5 @@ /* - * $TOG: WA32.c /main/5 1998/02/06 14:41:17 kaleb $ + * $Xorg: WA32.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/WA8.c b/xc/lib/Xdmcp/WA8.c index fe57f0b48..f89eaca74 100644 --- a/xc/lib/Xdmcp/WA8.c +++ b/xc/lib/Xdmcp/WA8.c @@ -1,5 +1,5 @@ /* - * $TOG: WA8.c /main/5 1998/02/06 14:41:21 kaleb $ + * $Xorg: WA8.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/WAofA8.c b/xc/lib/Xdmcp/WAofA8.c index 5f2b1d8a1..cdb18ca2c 100644 --- a/xc/lib/Xdmcp/WAofA8.c +++ b/xc/lib/Xdmcp/WAofA8.c @@ -1,5 +1,5 @@ /* - * $TOG: WAofA8.c /main/6 1998/02/06 14:41:27 kaleb $ + * $Xorg: WAofA8.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xdmcp/WC16.c b/xc/lib/Xdmcp/WC16.c index d89b813a8..990b2f661 100644 --- a/xc/lib/Xdmcp/WC16.c +++ b/xc/lib/Xdmcp/WC16.c @@ -1,5 +1,5 @@ /* - * $TOG: WC16.c /main/4 1998/02/06 14:41:31 kaleb $ + * $Xorg: WC16.c,v 1.3 2000/08/17 19:45:49 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/WC16.c,v 1.3 1998/10/25 07:11:19 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/WC16.c,v 1.4 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/WC32.c b/xc/lib/Xdmcp/WC32.c index ba8f50fea..02562a19e 100644 --- a/xc/lib/Xdmcp/WC32.c +++ b/xc/lib/Xdmcp/WC32.c @@ -1,5 +1,5 @@ /* - * $TOG: WC32.c /main/4 1998/02/06 14:41:37 kaleb $ + * $Xorg: WC32.c,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. * * * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/WC32.c,v 1.3 1998/10/25 12:47:52 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/WC32.c,v 1.4 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/WC8.c b/xc/lib/Xdmcp/WC8.c index b1a5a9b3a..907b3fa34 100644 --- a/xc/lib/Xdmcp/WC8.c +++ b/xc/lib/Xdmcp/WC8.c @@ -1,5 +1,5 @@ /* - * $TOG: WC8.c /main/4 1998/02/06 14:41:43 kaleb $ + * $Xorg: WC8.c,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/WC8.c,v 1.3 1998/10/25 07:11:20 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/WC8.c,v 1.4 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Whead.c b/xc/lib/Xdmcp/Whead.c index 980d92c12..3905aa077 100644 --- a/xc/lib/Xdmcp/Whead.c +++ b/xc/lib/Xdmcp/Whead.c @@ -1,5 +1,5 @@ /* - * $TOG: Whead.c /main/5 1998/02/06 14:41:48 kaleb $ + * $Xorg: Whead.c,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/Whead.c,v 1.2 1998/10/10 15:25:17 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Whead.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Wrap.c b/xc/lib/Xdmcp/Wrap.c index a9ba4e3f6..cb996a989 100644 --- a/xc/lib/Xdmcp/Wrap.c +++ b/xc/lib/Xdmcp/Wrap.c @@ -1,5 +1,5 @@ /* - * $TOG: Wrap.c /main/10 1998/02/06 14:41:53 kaleb $ + * $Xorg: Wrap.c,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xdmcp/Wrap.c,v 1.2 1998/10/10 15:25:18 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Wrap.c,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ #include <X11/Xos.h> #include <X11/X.h> diff --git a/xc/lib/Xdmcp/Wrap.h b/xc/lib/Xdmcp/Wrap.h index 3e3d0552d..b9ec1cfb2 100644 --- a/xc/lib/Xdmcp/Wrap.h +++ b/xc/lib/Xdmcp/Wrap.h @@ -1,9 +1,9 @@ -/* $XConsortium: Wrap.h,v 1.3 94/02/06 20:09:49 rws Exp $ */ +/* $Xorg: Wrap.h,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ */ /* * header file for compatibility with something useful */ -/* $XFree86: xc/lib/Xdmcp/Wrap.h,v 1.2 1998/10/10 15:25:18 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Wrap.h,v 1.3 2001/01/17 19:42:44 dawes Exp $ */ typedef unsigned char auth_cblock[8]; /* block size */ diff --git a/xc/lib/Xdmcp/Xdmcp.h b/xc/lib/Xdmcp/Xdmcp.h index a84874536..02e4c61ac 100644 --- a/xc/lib/Xdmcp/Xdmcp.h +++ b/xc/lib/Xdmcp/Xdmcp.h @@ -1,4 +1,4 @@ -/* $XConsortium: Xdmcp.h,v 1.9 95/06/07 18:30:59 gildea Exp $ */ +/* $Xorg: Xdmcp.h,v 1.6 2000/08/17 19:45:50 cpqbld Exp $ */ /* * Copyright 1989 Network Computing Devices, Inc., Mountain View, California. * @@ -13,7 +13,7 @@ * without express or implied warranty. * */ -/* $XFree86: xc/lib/Xdmcp/Xdmcp.h,v 3.3 1998/10/25 07:11:20 dawes Exp $ */ +/* $XFree86: xc/lib/Xdmcp/Xdmcp.h,v 3.4 2001/01/17 19:42:44 dawes Exp $ */ #ifndef _XDMCP_H_ #define _XDMCP_H_ diff --git a/xc/lib/Xext/DPMS.c b/xc/lib/Xext/DPMS.c index f4592459b..292341a72 100644 --- a/xc/lib/Xext/DPMS.c +++ b/xc/lib/Xext/DPMS.c @@ -1,4 +1,4 @@ -/* $TOG: DPMS.c /main/1 1997/11/12 14:37:05 kaleb $ */ +/* $Xorg: DPMS.c,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ */ /***************************************************************** Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts. @@ -26,7 +26,7 @@ dealings in this Software without prior written authorization from Digital Equipment Corporation. ******************************************************************/ -/* $XFree86: xc/lib/Xext/DPMS.c,v 3.3 1999/03/07 14:23:31 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/DPMS.c,v 3.4 2001/01/17 19:42:46 dawes Exp $ */ /* * HISTORY diff --git a/xc/lib/Xext/Imakefile b/xc/lib/Xext/Imakefile index 67b86be21..ded7ff6cc 100644 --- a/xc/lib/Xext/Imakefile +++ b/xc/lib/Xext/Imakefile @@ -1,5 +1,10 @@ -XCOMM $TOG: Imakefile /main/62 1997/11/24 16:48:16 kaleb $ -XCOMM $XFree86: xc/lib/Xext/Imakefile,v 1.10 2000/02/27 23:10:03 mvojkovi Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:50 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xext/Imakefile,v 1.11 2001/01/17 19:42:46 dawes Exp $ + #define DoNormalLib NormalLibXext #define DoSharedLib SharedLibXext #define DoExtraLib SharedLibXext diff --git a/xc/lib/Xext/MITMisc.c b/xc/lib/Xext/MITMisc.c index d2681b95e..39c4f1b83 100644 --- a/xc/lib/Xext/MITMisc.c +++ b/xc/lib/Xext/MITMisc.c @@ -1,5 +1,5 @@ /* - * $TOG: MITMisc.c /main/7 1998/02/06 14:51:08 kaleb $ + * $Xorg: MITMisc.c,v 1.3 2000/08/17 19:45:51 cpqbld Exp $ * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xext/XAppgroup.c b/xc/lib/Xext/XAppgroup.c index ed1ee8374..1993803ac 100644 --- a/xc/lib/Xext/XAppgroup.c +++ b/xc/lib/Xext/XAppgroup.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/Xext/XAppgroup.c,v 1.6 1999/07/12 05:57:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/XAppgroup.c,v 1.7 2001/01/17 19:42:46 dawes Exp $ */ /* Copyright 1996, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $TOG: XAppgroup.c /main/6 1998/02/06 14:51:14 kaleb $ */ +/* $Xorg: XAppgroup.c,v 1.4 2000/08/17 19:45:51 cpqbld Exp $ */ #ifdef WIN32 #define BOOL wBOOL diff --git a/xc/lib/Xext/XEVI.c b/xc/lib/Xext/XEVI.c index 0b8a7883e..88e3ff334 100644 --- a/xc/lib/Xext/XEVI.c +++ b/xc/lib/Xext/XEVI.c @@ -1,4 +1,4 @@ -/* $TOG: XEVI.c /main/2 1998/01/11 08:40:32 kaleb $ */ +/* $Xorg: XEVI.c,v 1.3 2000/08/17 19:45:51 cpqbld Exp $ */ /************************************************************ Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc. Permission to use, copy, modify, and distribute this diff --git a/xc/lib/Xext/XLbx.c b/xc/lib/Xext/XLbx.c index 496eddbe9..04ddba3dd 100644 --- a/xc/lib/Xext/XLbx.c +++ b/xc/lib/Xext/XLbx.c @@ -1,5 +1,5 @@ /* - * $XConsortium: XLbx.c /main/4 1996/12/15 21:24:20 rws $ + * $Xorg: XLbx.c,v 1.3 2000/08/17 19:45:51 cpqbld Exp $ * * Copyright 1992 Network Computing Devices * @@ -22,7 +22,7 @@ * * Author: Keith Packard, Network Computing Devices */ -/* $XFree86: xc/lib/Xext/XLbx.c,v 1.2 1999/07/12 05:57:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/XLbx.c,v 1.3 2001/01/17 19:42:46 dawes Exp $ */ #define NEED_EVENTS #define NEED_REPLIES diff --git a/xc/lib/Xext/XMultibuf.c b/xc/lib/Xext/XMultibuf.c index a621e7acb..dd75acfa3 100644 --- a/xc/lib/Xext/XMultibuf.c +++ b/xc/lib/Xext/XMultibuf.c @@ -1,5 +1,5 @@ /* - * $TOG: XMultibuf.c /main/32 1998/02/06 14:51:46 kaleb $ + * $Xorg: XMultibuf.c,v 1.5 2000/08/17 19:45:51 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Authors: Jim Fulton, MIT X Consortium */ -/* $XFree86: xc/lib/Xext/XMultibuf.c,v 1.3 2000/09/26 15:56:56 tsi Exp $ */ +/* $XFree86: xc/lib/Xext/XMultibuf.c,v 1.4 2001/01/17 19:42:46 dawes Exp $ */ #define NEED_EVENTS #define NEED_REPLIES diff --git a/xc/lib/Xext/XSecurity.c b/xc/lib/Xext/XSecurity.c index adae1f793..c87456363 100644 --- a/xc/lib/Xext/XSecurity.c +++ b/xc/lib/Xext/XSecurity.c @@ -1,4 +1,4 @@ -/* $TOG: XSecurity.c /main/6 1998/02/06 14:51:57 kaleb $ */ +/* $Xorg: XSecurity.c,v 1.5 2000/08/17 19:45:51 cpqbld Exp $ */ /* Copyright 1996, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xext/XSecurity.c,v 1.2 1999/07/12 05:57:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/XSecurity.c,v 1.3 2001/01/17 19:42:46 dawes Exp $ */ #include <X11/Xlibint.h> #include <stdio.h> diff --git a/xc/lib/Xext/XShape.c b/xc/lib/Xext/XShape.c index 368a9e135..4e31a2c65 100644 --- a/xc/lib/Xext/XShape.c +++ b/xc/lib/Xext/XShape.c @@ -1,5 +1,5 @@ /* - * $TOG: XShape.c /main/26 1998/02/06 14:52:03 kaleb $ + * $Xorg: XShape.c,v 1.3 2000/08/17 19:45:51 cpqbld Exp $ * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xext/XShm.c b/xc/lib/Xext/XShm.c index c817e7964..60bed482e 100644 --- a/xc/lib/Xext/XShm.c +++ b/xc/lib/Xext/XShm.c @@ -1,5 +1,5 @@ /* - * $TOG: XShm.c /main/19 1998/02/11 15:41:35 kaleb $ + * $Xorg: XShm.c,v 1.3 2000/08/17 19:45:52 cpqbld Exp $ * Copyright 1989, 1998 The Open Group @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. * * Author: Bob Scheifler and Keith Packard, MIT X Consortium */ -/* $XFree86: xc/lib/Xext/XShm.c,v 1.2 1999/07/12 05:57:23 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/XShm.c,v 1.3 2001/01/17 19:42:46 dawes Exp $ */ /* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */ diff --git a/xc/lib/Xext/XSync.c b/xc/lib/Xext/XSync.c index 1ce3cbeb4..75ad58c97 100644 --- a/xc/lib/Xext/XSync.c +++ b/xc/lib/Xext/XSync.c @@ -1,4 +1,4 @@ -/* $TOG: XSync.c /main/10 1998/02/06 14:52:15 kaleb $ */ +/* $Xorg: XSync.c,v 1.4 2000/08/17 19:45:52 cpqbld Exp $ */ /* Copyright 1991, 1993, 1998 The Open Group @@ -46,7 +46,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xext/XSync.c,v 1.3 1999/07/12 10:11:45 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/XSync.c,v 1.4 2001/01/17 19:42:46 dawes Exp $ */ #include <stdio.h> #define NEED_EVENTS diff --git a/xc/lib/Xext/XTestExt1.c b/xc/lib/Xext/XTestExt1.c index d1c274a47..7a21954da 100644 --- a/xc/lib/Xext/XTestExt1.c +++ b/xc/lib/Xext/XTestExt1.c @@ -1,4 +1,4 @@ -/* $TOG: XTestExt1.c /main/10 1998/02/15 16:19:21 kaleb $ */ +/* $Xorg: XTestExt1.c,v 1.3 2000/08/17 19:45:52 cpqbld Exp $ */ /* * File: xtestext1lib.c * @@ -47,7 +47,7 @@ Telephone and Telegraph Company or of the Regents of the University of California. */ -/* $XFree86: xc/lib/Xext/XTestExt1.c,v 1.2 1999/07/12 05:57:24 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/XTestExt1.c,v 1.3 2001/01/17 19:42:46 dawes Exp $ */ /****************************************************************************** * include files diff --git a/xc/lib/Xext/Xcup.c b/xc/lib/Xext/Xcup.c index 5423d1424..507cdf8cb 100644 --- a/xc/lib/Xext/Xcup.c +++ b/xc/lib/Xext/Xcup.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/Xext/Xcup.c,v 1.4 1999/07/12 05:57:24 dawes Exp $ */ +/* $XFree86: xc/lib/Xext/Xcup.c,v 1.5 2001/01/17 19:42:46 dawes Exp $ */ /* Copyright 1987, 1988, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $TOG: Xcup.c /main/4 1998/02/06 14:51:19 kaleb $ */ +/* $Xorg: Xcup.c,v 1.4 2000/08/17 19:45:53 cpqbld Exp $ */ #ifdef WIN32 #define BOOL wBOOL diff --git a/xc/lib/Xext/Xdbe.c b/xc/lib/Xext/Xdbe.c index 31ad6acac..8cf682be5 100644 --- a/xc/lib/Xext/Xdbe.c +++ b/xc/lib/Xext/Xdbe.c @@ -1,4 +1,4 @@ -/* $XConsortium: Xdbe.c /main/3 1995/09/22 10:20:31 dpw $ */ +/* $Xorg: Xdbe.c,v 1.4 2000/08/17 19:45:53 cpqbld Exp $ */ /****************************************************************************** * * Copyright (c) 1994, 1995 Hewlett-Packard Company @@ -30,7 +30,7 @@ * Xlib DBE code * *****************************************************************************/ -/* $XFree86: xc/lib/Xext/Xdbe.c,v 3.2 2000/09/26 15:56:56 tsi Exp $ */ +/* $XFree86: xc/lib/Xext/Xdbe.c,v 3.3 2001/01/17 19:42:46 dawes Exp $ */ #define NEED_EVENTS #define NEED_REPLIES diff --git a/xc/lib/Xext/Xext-def.cpp b/xc/lib/Xext/Xext-def.cpp index ad9bb8e14..dfb724224 100644 --- a/xc/lib/Xext/Xext-def.cpp +++ b/xc/lib/Xext/Xext-def.cpp @@ -138,5 +138,5 @@ EXPORTS XeviQueryExtension XeviQueryVersion XeviGetVisualInfo -/* $TOG: Xext-def.cpp /main/10 1998/01/04 12:31:45 kaleb $ */ -/* $XFree86: xc/lib/Xext/Xext-def.cpp,v 1.6 2000/08/09 23:40:13 dawes Exp $ */ +/* $Xorg: Xext-def.cpp,v 1.3 2000/08/17 19:45:53 cpqbld Exp $ */ +/* $XFree86: xc/lib/Xext/Xext-def.cpp,v 1.7 2001/01/17 19:42:46 dawes Exp $ */ diff --git a/xc/lib/Xext/extutil.c b/xc/lib/Xext/extutil.c index 1aa2ef550..3e49f23a2 100644 --- a/xc/lib/Xext/extutil.c +++ b/xc/lib/Xext/extutil.c @@ -1,5 +1,5 @@ /* - * $TOG: extutil.c /main/20 1998/02/06 14:50:55 kaleb $ + * $Xorg: extutil.c,v 1.3 2000/08/17 19:45:53 cpqbld Exp $ * Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xext/globals.c b/xc/lib/Xext/globals.c index 12b7dfddf..8381950a5 100644 --- a/xc/lib/Xext/globals.c +++ b/xc/lib/Xext/globals.c @@ -1,4 +1,4 @@ -/* $TOG: globals.c /main/6 1998/02/06 14:51:01 kaleb $ */ +/* $Xorg: globals.c,v 1.3 2000/08/17 19:45:53 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group diff --git a/xc/lib/Xft/Imakefile b/xc/lib/Xft/Imakefile index 32396b324..68135d7aa 100644 --- a/xc/lib/Xft/Imakefile +++ b/xc/lib/Xft/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/Xft/Imakefile,v 1.8 2000/12/15 17:12:52 keithp Exp $ +XCOMM $XFree86: xc/lib/Xft/Imakefile,v 1.10 2001/02/09 00:35:03 keithp Exp $ #define DoNormalLib NormalLibXft #define DoSharedLib SharedLibXft @@ -31,10 +31,10 @@ INCLUDES=$(FREETYPE2INCLUDES) DEFINES=-DXFT_DEFAULT_PATH=\"$(XFTCONFIG)\" $(FREETYPE2DEFINES) $(RENDERDEFINES) REQUIREDLIBS=$(LDPRELIBS) $(XRENDERLIB) $(XLIB) $(FREETYPE2LIB) -#ifdef Freetype2Dir +#if HasFreetype2 FT_HEADERS = XftFreetype.h - FT_SRCS = xftdir.c xftfreetype.c xftglyphs.c xftrender.c - FT_OBJS = xftdir.o xftfreetype.o xftglyphs.o xftrender.o + FT_SRCS = xftcache.c xftdir.c xftfreetype.c xftglyphs.c xftrender.c + FT_OBJS = xftcache.o xftdir.o xftfreetype.o xftglyphs.o xftrender.o #endif HEADERS = Xft.h $(FT_HEADERS) diff --git a/xc/lib/Xft/Xft-def.cpp b/xc/lib/Xft/Xft-def.cpp new file mode 100644 index 000000000..0f27d645e --- /dev/null +++ b/xc/lib/Xft/Xft-def.cpp @@ -0,0 +1,146 @@ +LIBRARY Xft +VERSION LIBRARY_VERSION +EXPORTS + +XftConfigAddDir +XftConfigAddEdit +XftConfigGetCache +XftConfigSetCache +XftConfigSubstitute +_XftConfigCompareValue +XftColorAllocName +XftColorAllocValue +XftColorFree +XftCoreConvert16 +XftCoreConvert32 +XftCoreConvertUtf8 +XftCoreExtents16 +XftCoreExtents32 +XftCoreExtents8 +XftCoreExtentsUtf8 +XftCoreGlyphExists +XftEditPrint +XftExprPrint +XftFontSetPrint +XftOpPrint +XftPatternPrint +XftSubstPrint +XftTestPrint +XftValueListPrint +XftValuePrint +XftDefaultGetBool +XftDefaultGetDouble +XftDefaultGetInteger +XftDefaultHasRender +XftDefaultParseBool +XftDefaultSet +XftDefaultSubstitute +XftDisplayGetFontSet +XftDrawChange +XftDrawCorePrepare +XftDrawCreate +XftDrawCreateBitmap +XftDrawDestroy +XftDrawRect +XftDrawRenderPrepare +XftDrawSetClip +XftDrawString16 +XftDrawString32 +XftDrawString8 +XftDrawStringUtf8 +XftTextExtents16 +XftTextExtents32 +XftTextExtents8 +XftTextExtentsUtf8 +XftFontClose +XftFontMatch +XftFontOpen +XftFontOpenName +XftFontOpenPattern +XftFontOpenXlfd +XftGlyphExists +_XftFontDebug +XftFontSetAdd +XftFontSetCreate +XftFontSetDestroy +XftConfigSaveField +XftConfigerror +XftConfigparse +XftConfigwrap +XftEditCreate +XftEditDestroy +XftExprCreateBool +XftExprCreateDouble +XftExprCreateField +XftExprCreateInteger +XftExprCreateNil +XftExprCreateOp +XftExprCreateString +XftExprDestroy +XftTestCreate +XftInit +XftConfigLexFile +XftConfigPushInput +XftConfig_create_buffer +XftConfig_delete_buffer +XftConfig_flush_buffer +XftConfig_init_buffer +XftConfig_load_buffer_state +XftConfig_scan_buffer +XftConfig_scan_bytes +XftConfig_scan_string +XftConfig_switch_to_buffer +XftConfiglex +XftConfigrestart +XftListAppend +XftListFontSets +XftListFonts +XftListFontsPatternObjects +XftListMatch +XftListValueCompare +XftListValueListCompare +XftObjectSetAdd +XftObjectSetBuild +XftObjectSetCreate +XftObjectSetDestroy +XftObjectSetVaBuild +XftFontSetMatch +XftNameConstant +XftNameParse +XftNameUnparse +XftPatternAdd +XftPatternAddBool +XftPatternAddDouble +XftPatternAddInteger +XftPatternAddString +XftPatternBuild +XftPatternCreate +XftPatternDel +XftPatternDestroy +XftPatternDuplicate +XftPatternFind +XftPatternGet +XftPatternGetBool +XftPatternGetDouble +XftPatternGetInteger +XftPatternGetString +XftPatternVaBuild +XftValueDestroy +XftValueListDestroy +XftUtf8Len +XftUtf8ToUcs4 +_XftDownStr +_XftGetInt +_XftMatchSymbolic +_XftSaveString +_XftSplitField +_XftSplitStr +_XftSplitValue +_XftStrCmpIgnoreCase +XftCoreAddFonts +XftCoreClose +XftCoreOpen +XftXlfdParse + + +/* $XFree86: xc/lib/Xft/Xft-def.cpp,v 1.1 2001/02/13 19:19:12 dawes Exp $ */ diff --git a/xc/lib/Xft/Xft.h b/xc/lib/Xft/Xft.h index f72a4b2c0..6304c633b 100644 --- a/xc/lib/Xft/Xft.h +++ b/xc/lib/Xft/Xft.h @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/Xft.h,v 1.13 2000/12/08 07:51:26 keithp Exp $ + * $XFree86: xc/lib/Xft/Xft.h,v 1.17 2001/01/26 20:51:14 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -57,6 +57,7 @@ typedef unsigned int XftChar32; /* defaults from resources */ #define XFT_SCALE "scale" /* double */ #define XFT_RENDER "render" /* Bool */ +#define XFT_MINSPACE "minspace" /* Bool use minimum line spacing */ /* specific to FreeType rasterizer */ #define XFT_CHAR_WIDTH "charwidth" /* Int */ @@ -79,6 +80,8 @@ typedef unsigned int XftChar32; #define XFT_RGBA_NONE 0 #define XFT_RGBA_RGB 1 #define XFT_RGBA_BGR 2 +#define XFT_RGBA_VRGB 3 +#define XFT_RGBA_VBGR 4 typedef enum _XftType { XftTypeVoid, @@ -254,6 +257,16 @@ XftDrawString32 (XftDraw *draw, int y, XftChar32 *string, int len); + +void +XftDrawStringUtf8 (XftDraw *d, + XftColor *color, + XftFont *font, + int x, + int y, + XftChar8 *string, + int len); + void XftDrawRect (XftDraw *d, XftColor *color, @@ -290,6 +303,13 @@ XftTextExtents32 (Display *dpy, int len, XGlyphInfo *extents); +void +XftTextExtentsUtf8 (Display *dpy, + XftFont *font, + XftChar8 *string, + int len, + XGlyphInfo *extents); + /* xftfont.c */ XftPattern * XftFontMatch (Display *dpy, int screen, XftPattern *pattern, XftResult *result); @@ -379,6 +399,9 @@ XftFontSetMatch (XftFontSet **sets, XftPattern * XftNameParse (const char *name); +Bool +XftNameUnparse (XftPattern *pat, char *dest, int len); + /* xftpat.c */ XftPattern * XftPatternCreate (void); @@ -442,6 +465,17 @@ XftPatternBuild (XftPattern *orig, ...); /* xftstr.c */ +int +XftUtf8ToUcs4 (XftChar8 *src_orig, + XftChar32 *dst, + int len); + +Bool +XftUtf8Len (XftChar8 *string, + int len, + int *nchar, + int *wchar); + /* xftxlfd.c */ XftPattern * XftXlfdParse (const char *xlfd_orig, Bool ignore_scalable, Bool complete); @@ -449,6 +483,9 @@ XftXlfdParse (const char *xlfd_orig, Bool ignore_scalable, Bool complete); XFontStruct * XftCoreOpen (Display *dpy, XftPattern *pattern); +void +XftCoreClose (Display *dpy, XFontStruct *font); + _XFUNCPROTOEND #endif /* _XFT_H_ */ diff --git a/xc/lib/Xft/XftFreetype.h b/xc/lib/Xft/XftFreetype.h index 164a2be1f..a8b6fb360 100644 --- a/xc/lib/Xft/XftFreetype.h +++ b/xc/lib/Xft/XftFreetype.h @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/XftFreetype.h,v 1.7 2000/12/15 17:12:52 keithp Exp $ + * $XFree86: xc/lib/Xft/XftFreetype.h,v 1.12 2001/01/02 02:46:50 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -38,15 +38,15 @@ struct _XftFontStruct { GlyphSet glyphset; int min_char; int max_char; - int size; + FT_F26Dot6 size; int ascent; int descent; int height; int max_advance_width; - Bool monospace; + int spacing; int rgba; Bool antialias; - Bool encoded; /* use charmap */ + int charmap; /* -1 for unencoded */ XRenderPictFormat *format; XGlyphInfo **realized; int nrealized; @@ -54,13 +54,32 @@ struct _XftFontStruct { _XFUNCPROTOBEGIN +/* xftdir.c */ +Bool +XftDirScan (XftFontSet *set, const char *dir, Bool force); + +Bool +XftDirSave (XftFontSet *set, const char *dir); + /* xftfreetype.c */ +XftPattern * +XftFreeTypeQuery (const char *file, int id, int *count); + +Bool +XftFreeTypeSetFace (FT_Face face, FT_F26Dot6 size, int charmap); + XftFontStruct * XftFreeTypeOpen (Display *dpy, XftPattern *pattern); void XftFreeTypeClose (Display *dpy, XftFontStruct *font); +XftFontStruct * +XftFreeTypeGet (XftFont *font); + +Bool +XftInitFtLibrary(void); + /* xftglyphs.c */ void XftGlyphLoad (Display *dpy, @@ -104,6 +123,13 @@ XftRenderString32 (Display *dpy, Picture src, XftChar32 *string, int len); void +XftRenderStringUtf8 (Display *dpy, Picture src, + XftFontStruct *font, Picture dst, + int srcx, int srcy, + int x, int y, + XftChar8 *string, int len); + +void XftRenderExtents8 (Display *dpy, XftFontStruct *font, XftChar8 *string, @@ -124,6 +150,13 @@ XftRenderExtents32 (Display *dpy, int len, XGlyphInfo *extents); +void +XftRenderExtentsUtf8 (Display *dpy, + XftFontStruct *font, + XftChar8 *string, + int len, + XGlyphInfo *extents); + XftFontStruct * XftFreeTypeGet (XftFont *font); diff --git a/xc/lib/Xft/xftcache.c b/xc/lib/Xft/xftcache.c new file mode 100644 index 000000000..571d086f5 --- /dev/null +++ b/xc/lib/Xft/xftcache.c @@ -0,0 +1,608 @@ +/* + * $XFree86: xc/lib/Xft/xftcache.c,v 1.1 2001/01/02 02:46:51 keithp Exp $ + * + * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <string.h> +#include <ctype.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "xftint.h" + +typedef struct _XftFileCacheEnt { + struct _XftFileCacheEnt *next; + unsigned int hash; + char *file; + int id; + time_t time; + char *name; + Bool referenced; +} XftFileCacheEnt; + +#define HASH_SIZE 509 + +typedef struct _XftFileCache { + XftFileCacheEnt *ents[HASH_SIZE]; + Bool updated; + int entries; + int referenced; +} XftFileCache; + +static XftFileCache _XftFileCache; + +static unsigned int +_XftFileCacheHash (char *string) +{ + unsigned int h = 0; + char c; + + while ((c = *string++)) + h = (h << 1) ^ c; + return h; +} + +char * +XftFileCacheFind (char *file, int id, int *count) +{ + XftFileCache *cache; + unsigned int hash; + char *match; + XftFileCacheEnt *c, *name; + int maxid; + struct stat statb; + + cache = &_XftFileCache; + match = file; + + hash = _XftFileCacheHash (match); + name = 0; + maxid = -1; + for (c = cache->ents[hash % HASH_SIZE]; c; c = c->next) + { + if (c->hash == hash && !strcmp (match, c->file)) + { + if (c->id > maxid) + maxid = c->id; + if (c->id == id) + { + if (stat (file, &statb) < 0) + { + if (_XftFontDebug () & XFT_DBG_CACHE) + printf (" file missing\n"); + return 0; + } + if (statb.st_mtime != c->time) + { + if (_XftFontDebug () & XFT_DBG_CACHE) + printf (" timestamp mismatch (was %d is %d)\n", + (int) c->time, (int) statb.st_mtime); + return 0; + } + if (!c->referenced) + { + cache->referenced++; + c->referenced = True; + } + name = c; + } + } + } + if (!name) + return 0; + *count = maxid; + return name->name; +} + +/* + * Cache file syntax is quite simple: + * + * "file_name" id time "font_name" \n + */ + +static Bool +_XftFileCacheReadString (FILE *f, char *dest, int len) +{ + int c; + Bool escape; + + while ((c = getc (f)) != EOF) + if (c == '"') + break; + if (c == EOF) + return False; + if (len == 0) + return False; + + escape = False; + while ((c = getc (f)) != EOF) + { + if (!escape) + { + switch (c) { + case '"': + *dest++ = '\0'; + return True; + case '\\': + escape = True; + continue; + } + } + if (--len <= 1) + return False; + *dest++ = c; + escape = False; + } + return False; +} + +static Bool +_XftFileCacheReadUlong (FILE *f, unsigned long *dest) +{ + unsigned long t; + int c; + + while ((c = getc (f)) != EOF) + { + if (!isspace (c)) + break; + } + if (c == EOF) + return False; + t = 0; + for (;;) + { + if (c == EOF || isspace (c)) + break; + if (!isdigit (c)) + return False; + t = t * 10 + (c - '0'); + c = getc (f); + } + *dest = t; + return True; +} + +static Bool +_XftFileCacheReadInt (FILE *f, int *dest) +{ + unsigned long t; + Bool ret; + + ret = _XftFileCacheReadUlong (f, &t); + if (ret) + *dest = (int) t; + return ret; +} + +static Bool +_XftFileCacheReadTime (FILE *f, time_t *dest) +{ + unsigned long t; + Bool ret; + + ret = _XftFileCacheReadUlong (f, &t); + if (ret) + *dest = (time_t) t; + return ret; +} + +static Bool +_XftFileCacheAdd (XftFileCache *cache, + char *file, + int id, + time_t time, + char *name, + Bool replace) +{ + XftFileCacheEnt *c; + XftFileCacheEnt **prev, *old; + unsigned int hash; + + if (_XftFontDebug () & XFT_DBG_CACHE) + { + printf ("%s face %s/%d as %s\n", replace ? "Replace" : "Add", + file, id, name); + } + hash = _XftFileCacheHash (file); + for (prev = &cache->ents[hash % HASH_SIZE]; + (old = *prev); + prev = &(*prev)->next) + { + if (old->hash == hash && old->id == id && !strcmp (old->file, file)) + break; + } + if (*prev) + { + if (!replace) + return False; + + old = *prev; + if (old->referenced) + cache->referenced--; + *prev = old->next; + free (old); + cache->entries--; + } + + c = malloc (sizeof (XftFileCacheEnt) + + strlen (file) + 1 + + strlen (name) + 1); + if (!c) + return False; + c->next = *prev; + *prev = c; + c->hash = hash; + c->file = (char *) (c + 1); + c->id = id; + c->name = c->file + strlen (file) + 1; + strcpy (c->file, file); + c->time = time; + c->referenced = replace; + strcpy (c->name, name); + cache->entries++; + return True; +} + +void +XftFileCacheDispose (void) +{ + XftFileCache *cache; + XftFileCacheEnt *c, *next; + int h; + + cache = &_XftFileCache; + + for (h = 0; h < HASH_SIZE; h++) + { + for (c = cache->ents[h]; c; c = next) + { + next = c->next; + free (c); + } + cache->ents[h] = 0; + } + cache->entries = 0; + cache->referenced = 0; + cache->updated = False; +} + +void +XftFileCacheLoad (char *cache_file) +{ + XftFileCache *cache; + FILE *f; + char file[8192]; + int id; + time_t time; + char name[8192]; + + f = fopen (cache_file, "r"); + if (!f) + return; + + cache = &_XftFileCache; + + cache->updated = False; + while (_XftFileCacheReadString (f, file, sizeof (file)) && + _XftFileCacheReadInt (f, &id) && + _XftFileCacheReadTime (f, &time) && + _XftFileCacheReadString (f, name, sizeof (name))) + { + (void) _XftFileCacheAdd (cache, file, id, time, name, False); + } + fclose (f); +} + +Bool +XftFileCacheUpdate (char *file, int id, char *name) +{ + XftFileCache *cache; + char *match; + struct stat statb; + Bool ret; + + cache = &_XftFileCache; + match = file; + + if (stat (file, &statb) < 0) + return False; + ret = _XftFileCacheAdd (cache, match, id, + statb.st_mtime, name, True); + if (ret) + cache->updated = True; + return ret; +} + +static Bool +_XftFileCacheWriteString (FILE *f, char *string) +{ + char c; + + if (putc ('"', f) == EOF) + return False; + while ((c = *string++)) + { + switch (c) { + case '"': + case '\\': + if (putc ('\\', f) == EOF) + return False; + /* fall through */ + default: + if (putc (c, f) == EOF) + return False; + } + } + if (putc ('"', f) == EOF) + return False; + return True; +} + +static Bool +_XftFileCacheWriteUlong (FILE *f, unsigned long t) +{ + int pow; + unsigned long temp, digit; + + temp = t; + pow = 1; + while (temp >= 10) + { + temp /= 10; + pow *= 10; + } + temp = t; + while (pow) + { + digit = temp / pow; + if (putc ((char) digit + '0', f) == EOF) + return False; + temp = temp - pow * digit; + pow = pow / 10; + } + return True; +} + +static Bool +_XftFileCacheWriteInt (FILE *f, int i) +{ + return _XftFileCacheWriteUlong (f, (unsigned long) i); +} + +static Bool +_XftFileCacheWriteTime (FILE *f, time_t t) +{ + return _XftFileCacheWriteUlong (f, (unsigned long) t); +} + +Bool +XftFileCacheSave (char *cache_file) +{ + XftFileCache *cache; + char *lck; + char *tmp; + FILE *f; + int h; + XftFileCacheEnt *c; + + cache = &_XftFileCache; + + if (!cache->updated && cache->referenced == cache->entries) + return True; + + lck = malloc (strlen (cache_file)*2 + 4); + if (!lck) + goto bail0; + tmp = lck + strlen (cache_file) + 2; + strcpy (lck, cache_file); + strcat (lck, "L"); + strcpy (tmp, cache_file); + strcat (tmp, "T"); + if (link (lck, cache_file) < 0 && errno != ENOENT) + goto bail1; + if (access (tmp, F_OK) == 0) + goto bail2; + f = fopen (tmp, "w"); + if (!f) + goto bail2; + + for (h = 0; h < HASH_SIZE; h++) + { + for (c = cache->ents[h]; c; c = c->next) + { + if (!c->referenced) + continue; + if (!_XftFileCacheWriteString (f, c->file)) + goto bail4; + if (putc (' ', f) == EOF) + goto bail4; + if (!_XftFileCacheWriteInt (f, c->id)) + goto bail4; + if (putc (' ', f) == EOF) + goto bail4; + if (!_XftFileCacheWriteTime (f, c->time)) + goto bail4; + if (putc (' ', f) == EOF) + goto bail4; + if (!_XftFileCacheWriteString (f, c->name)) + goto bail4; + if (putc ('\n', f) == EOF) + goto bail4; + } + } + + if (fclose (f) == EOF) + goto bail3; + + if (rename (tmp, cache_file) < 0) + goto bail3; + + unlink (lck); + cache->updated = False; + return True; + +bail4: + fclose (f); +bail3: + unlink (tmp); +bail2: + unlink (lck); +bail1: + free (lck); +bail0: + return False; +} + +Bool +XftFileCacheReadDir (XftFontSet *set, const char *cache_file) +{ + XftPattern *font; + FILE *f; + char *path; + char *base; + char file[8192]; + int id; + char name[8192]; + Bool ret = False; + + if (_XftFontDebug () & XFT_DBG_CACHE) + { + printf ("XftFileCacheReadDir cache_file \"%s\"\n", cache_file); + } + + f = fopen (cache_file, "r"); + if (!f) + { + if (_XftFontDebug () & XFT_DBG_CACHE) + { + printf (" no cache file\n"); + } + goto bail0; + } + + base = strrchr (cache_file, '/'); + if (!base) + goto bail1; + base++; + path = malloc (base - cache_file + 8192 + 1); + if (!path) + goto bail1; + memcpy (path, cache_file, base - cache_file); + base = path + (base - cache_file); + + while (_XftFileCacheReadString (f, file, sizeof (file)) && + _XftFileCacheReadInt (f, &id) && + _XftFileCacheReadString (f, name, sizeof (name))) + { + font = XftNameParse (name); + if (font) + { + strcpy (base, file); + if (_XftFontDebug () & XFT_DBG_CACHEV) + { + printf (" dir cache file \"%s\"\n", file); + } + XftPatternAddString (font, XFT_FILE, path); + if (!XftFontSetAdd (set, font)) + goto bail2; + } + } + if (_XftFontDebug () & XFT_DBG_CACHE) + { + printf (" cache loaded\n"); + } + + ret = True; +bail2: + free (path); +bail1: + fclose (f); +bail0: + return ret; +} + +Bool +XftFileCacheWriteDir (XftFontSet *set, const char *cache_file) +{ + XftPattern *font; + FILE *f; + char name[8192]; + char *file, *base; + int n; + int id; + + if (_XftFontDebug () & XFT_DBG_CACHE) + printf ("XftFileCacheWriteDir cache_file \"%s\"\n", cache_file); + + f = fopen (cache_file, "w"); + if (!f) + { + if (_XftFontDebug () & XFT_DBG_CACHE) + printf (" can't create \"%s\"\n", cache_file); + goto bail0; + } + for (n = 0; n < set->nfont; n++) + { + font = set->fonts[n]; + if (XftPatternGetString (font, XFT_FILE, 0, &file) != XftResultMatch) + goto bail1; + base = strrchr (file, '/'); + if (base) + base = base + 1; + else + base = file; + if (XftPatternGetInteger (font, XFT_INDEX, 0, &id) != XftResultMatch) + goto bail1; + if (!XftNameUnparse (font, name, sizeof (name))) + goto bail1; + if (_XftFontDebug () & XFT_DBG_CACHEV) + printf (" write file \"%s\"\n", base); + if (!_XftFileCacheWriteString (f, base)) + goto bail1; + if (putc (' ', f) == EOF) + goto bail1; + if (!_XftFileCacheWriteInt (f, id)) + goto bail1; + if (putc (' ', f) == EOF) + goto bail1; + if (!_XftFileCacheWriteString (f, name)) + goto bail1; + if (putc ('\n', f) == EOF) + goto bail1; + } + if (fclose (f) == EOF) + goto bail0; + + if (_XftFontDebug () & XFT_DBG_CACHE) + printf (" cache written\n"); + return True; + +bail1: + fclose (f); +bail0: + unlink (cache_file); + return False; +} diff --git a/xc/lib/Xft/xftcfg.c b/xc/lib/Xft/xftcfg.c index 62881ae87..972d2502c 100644 --- a/xc/lib/Xft/xftcfg.c +++ b/xc/lib/Xft/xftcfg.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftcfg.c,v 1.7 2000/12/17 09:11:37 keithp Exp $ + * $XFree86: xc/lib/Xft/xftcfg.c,v 1.8 2001/01/02 02:46:51 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -35,6 +35,9 @@ static char *XftConfigDefaultDirs[] = { char **XftConfigDirs = XftConfigDefaultDirs; static int XftConfigNdirs; +char XftConfigDefaultCache[] = "~/.xftcache"; +char *XftConfigCache = 0; + static XftSubst *XftSubsts; /* #define XFT_DEBUG_EDIT */ @@ -51,6 +54,8 @@ XftConfigAddDir (char *d) if (!h) return False; dir = (char *) malloc (strlen (h) + strlen (d)); + if (!dir) + return False; strcpy (dir, h); strcat (dir, d+1); } @@ -80,6 +85,41 @@ XftConfigAddDir (char *d) return True; } +Bool +XftConfigSetCache (char *c) +{ + char *new; + char *h; + + if (*c == '~') + { + h = getenv ("HOME"); + if (!h) + return False; + new = (char *) malloc (strlen (h) + strlen (c)); + if (!new) + return False; + strcpy (new, h); + strcat (new, c+1); + } + else + { + new = _XftSaveString (c); + } + if (XftConfigCache) + free (XftConfigCache); + XftConfigCache = new; + return True; +} + +char * +XftConfigGetCache (void) +{ + if (!XftConfigCache) + XftConfigSetCache (XftConfigDefaultCache); + return XftConfigCache; +} + static int XftSubstsMaxObjects; Bool diff --git a/xc/lib/Xft/xftcore.c b/xc/lib/Xft/xftcore.c index ca9139ae7..114533c69 100644 --- a/xc/lib/Xft/xftcore.c +++ b/xc/lib/Xft/xftcore.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftcore.c,v 1.4 2000/12/08 07:51:27 keithp Exp $ + * $XFree86: xc/lib/Xft/xftcore.c,v 1.5 2000/12/20 00:28:44 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -65,6 +65,37 @@ XftCoreConvert32 (XftChar32 *string, return xc; } +XChar2b * +XftCoreConvertUtf8 (XftChar8 *string, + int len, + XChar2b xcloc[XFT_CORE_N16LOCAL], + int *nchar) +{ + XChar2b *xc; + XftChar32 c; + int i; + int n, width; + int clen; + + if (!XftUtf8Len (string, len, &n, &width)) + return 0; + + if (n < XFT_CORE_N16LOCAL) + xc = xcloc; + else + xc = (XChar2b *) malloc (n * sizeof (XChar2b)); + for (i = 0; i < n; i++) + { + clen = XftUtf8ToUcs4 (string, &c, len); + xc[i].byte1 = c & 0xff; + xc[i].byte2 = (c >> 8) & 0xff; + string += clen; + len -= clen; + } + *nchar = n; + return xc; +} + void XftCoreExtents8 (Display *dpy, XFontStruct *fs, @@ -109,6 +140,8 @@ XftCoreExtents16 (Display *dpy, xc = XftCoreConvert16 (string, len, xcloc); XTextExtents16 (fs, xc, len, &direction, &ascent, &descent, &overall); + if (xc != xcloc) + free (xc); if (overall.lbearing < overall.rbearing) { extents->x = overall.lbearing; @@ -140,6 +173,42 @@ XftCoreExtents32 (Display *dpy, xc = XftCoreConvert32 (string, len, xcloc); XTextExtents16 (fs, xc, len, &direction, &ascent, &descent, &overall); + if (xc != xcloc) + free (xc); + if (overall.lbearing < overall.rbearing) + { + extents->x = overall.lbearing; + extents->width = overall.rbearing - overall.lbearing; + } + else + { + extents->x = overall.rbearing; + extents->width = overall.lbearing - overall.rbearing; + } + extents->y = -overall.ascent; + extents->height = overall.ascent + overall.descent; + extents->xOff = overall.width; + extents->yOff = 0; +} + +void +XftCoreExtentsUtf8 (Display *dpy, + XFontStruct *fs, + XftChar8 *string, + int len, + XGlyphInfo *extents) +{ + int direction; + int ascent, descent; + XCharStruct overall; + XChar2b *xc, xcloc[XFT_CORE_N16LOCAL]; + int n; + + xc = XftCoreConvertUtf8 (string, len, xcloc, &n); + XTextExtents16 (fs, xc, n, &direction, + &ascent, &descent, &overall); + if (xc != xcloc) + free (xc); if (overall.lbearing < overall.rbearing) { extents->x = overall.lbearing; diff --git a/xc/lib/Xft/xftdir.c b/xc/lib/Xft/xftdir.c index d515a2ac9..5fc684a01 100644 --- a/xc/lib/Xft/xftdir.c +++ b/xc/lib/Xft/xftdir.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftdir.c,v 1.1 2000/11/29 08:39:21 keithp Exp $ + * $XFree86: xc/lib/Xft/xftdir.c,v 1.2 2001/01/02 02:46:51 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -29,38 +29,73 @@ #include "xftint.h" Bool -XftDirScan (XftFontSet *set, const char *dir) +XftDirScan (XftFontSet *set, const char *dir, Bool force) { DIR *d; struct dirent *e; char *file; char *base; XftPattern *font; + char *name; int count; Bool ret = True; int id; - d = opendir (dir); - if (!d) - return False; file = (char *) malloc (strlen (dir) + 1 + 256 + 1); if (!file) - { - closedir (d); return False; - } + strcpy (file, dir); strcat (file, "/"); base = file + strlen (file); + if (!force) + { + strcpy (base, "XftCache"); + + if (XftFileCacheReadDir (set, file)) + { + free (file); + return True; + } + } + + d = opendir (dir); + if (!d) + { + free (file); + return False; + } while (ret && (e = readdir (d))) { if (e->d_name[0] != '.') { - strcpy (base, e->d_name); id = 0; + strcpy (base, e->d_name); do { - font = XftFreeTypeQuery (file, id, &count); + if (!force) + name = XftFileCacheFind (file, id, &count); + else + name = 0; + if (name) + { + font = XftNameParse (name); + if (font) + XftPatternAddString (font, XFT_FILE, file); + } + else + { + font = XftFreeTypeQuery (file, id, &count); + if (font && !force) + { + char unparse[8192]; + + if (XftNameUnparse (font, unparse, sizeof (unparse))) + { + (void) XftFileCacheUpdate (file, id, unparse); + } + } + } if (font) { if (!XftFontSetAdd (set, font)) @@ -75,4 +110,23 @@ XftDirScan (XftFontSet *set, const char *dir) return ret; } - +Bool +XftDirSave (XftFontSet *set, const char *dir) +{ + char *file; + char *base; + Bool ret; + + file = (char *) malloc (strlen (dir) + 1 + 256 + 1); + if (!file) + return False; + + strcpy (file, dir); + strcat (file, "/"); + base = file + strlen (file); + strcpy (base, "XftCache"); + ret = XftFileCacheWriteDir (set, file); + free (file); + return ret; +} + diff --git a/xc/lib/Xft/xftdpy.c b/xc/lib/Xft/xftdpy.c index 94136fd64..94d7928c1 100644 --- a/xc/lib/Xft/xftdpy.c +++ b/xc/lib/Xft/xftdpy.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftdpy.c,v 1.4 2000/12/17 08:30:45 keithp Exp $ + * $XFree86: xc/lib/Xft/xftdpy.c,v 1.6 2001/01/26 20:51:15 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -22,6 +22,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <X11/Xlibint.h> @@ -81,6 +82,34 @@ _XftDisplayInfoGet (Display *dpy) info->defaults = 0; info->coreFonts = 0; info->hasRender = XRenderFindVisualFormat (dpy, DefaultVisual (dpy, DefaultScreen (dpy))) != 0; + if (_XftFontDebug () & XFT_DBG_RENDER) + { + Visual *visual = DefaultVisual (dpy, DefaultScreen (dpy)); + XRenderPictFormat *format = XRenderFindVisualFormat (dpy, visual); + + printf ("XftDisplayInfoGet Default visual 0x%x ", + (int) visual->visualid); + if (format) + { + if (format->type == PictTypeDirect) + { + printf ("format %d,%d,%d,%d\n", + format->direct.alpha, + format->direct.red, + format->direct.green, + format->direct.blue); + } + else + { + printf ("format indexed\n"); + } + } + else + printf ("No Render format for default visual\n"); + + printf ("XftDisplayInfoGet initialized, hasRender set to \"%s\"\n", + info->hasRender ? "True" : "False"); + } info->next = _XftDisplayInfo; _XftDisplayInfo = info; @@ -89,6 +118,10 @@ _XftDisplayInfoGet (Display *dpy) bail1: free (info); bail0: + if (_XftFontDebug () & XFT_DBG_RENDER) + { + printf ("XftDisplayInfoGet failed to initialize, Xft unhappy\n"); + } return 0; } @@ -209,6 +242,8 @@ _XftDefaultInit (Display *dpy) goto bail1; if (!_XftDefaultInitBool (dpy, pat, XFT_ANTIALIAS)) goto bail1; + if (!_XftDefaultInitBool (dpy, pat, XFT_MINSPACE)) + goto bail1; return pat; @@ -344,6 +379,12 @@ XftDefaultSubstitute (Display *dpy, int screen, XftPattern *pattern) XftDefaultGetInteger (dpy, XFT_RGBA, screen, XFT_RGBA_NONE)); } + if (XftPatternGet (pattern, XFT_MINSPACE, 0, &v) == XftResultNoMatch) + { + XftPatternAddBool (pattern, XFT_MINSPACE, + XftDefaultGetBool (dpy, XFT_MINSPACE, screen, + False)); + } if (XftPatternGet (pattern, XFT_PIXEL_SIZE, 0, &v) == XftResultNoMatch) { int pixels, mm; @@ -369,8 +410,8 @@ XftDefaultSubstitute (Display *dpy, int screen, XftPattern *pattern) } scale = XftDefaultGetDouble (dpy, XFT_SCALE, screen, 1.0); size *= scale; - pixels = DisplayHeight (dpy, DefaultScreen (dpy)); - mm = DisplayHeightMM (dpy, DefaultScreen (dpy)); + pixels = DisplayHeight (dpy, screen); + mm = DisplayHeightMM (dpy, screen); size = size / 72.0; size = size * 25.4; size = size * pixels / mm; diff --git a/xc/lib/Xft/xftdraw.c b/xc/lib/Xft/xftdraw.c index 7ec5290f1..d8f2c9835 100644 --- a/xc/lib/Xft/xftdraw.c +++ b/xc/lib/Xft/xftdraw.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftdraw.c,v 1.10 2000/12/15 17:12:52 keithp Exp $ + * $XFree86: xc/lib/Xft/xftdraw.c,v 1.12 2000/12/20 00:28:44 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -22,6 +22,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdio.h> #include <stdlib.h> #include "xftint.h" #include <X11/Xutil.h> @@ -200,6 +201,14 @@ XftDrawRenderPrepare (XftDraw *draw, return False; if (memcmp (&color->color, &draw->render.fg_color, sizeof (XRenderColor))) { + if (_XftFontDebug () & XFT_DBG_DRAW) + { + printf ("Switching to color %04x,%04x,%04x,%04x\n", + color->color.alpha, + color->color.red, + color->color.green, + color->color.blue); + } XRenderFillRectangle (draw->dpy, PictOpSrc, draw->render.fg_pict, &color->color, 0, 0, 1, 1); draw->render.fg_color = color->color; @@ -255,6 +264,10 @@ XftDrawString8 (XftDraw *draw, XftChar8 *string, int len) { + if (_XftFontDebug () & XFT_DBG_DRAW) + { + printf ("DrawString \"%*.*s\"\n", len, len, string); + } if (font->core) { XftDrawCorePrepare (draw, color, font); @@ -333,6 +346,41 @@ XftDrawString32 (XftDraw *draw, } void +XftDrawStringUtf8 (XftDraw *draw, + XftColor *color, + XftFont *font, + int x, + int y, + XftChar8 *string, + int len) +{ + if (font->core) + { + XChar2b *xc; + XChar2b xcloc[XFT_CORE_N16LOCAL]; + int n; + + XftDrawCorePrepare (draw, color, font); + xc = XftCoreConvertUtf8 (string, len, xcloc, &n); + if (xc) + { + XDrawString16 (draw->dpy, draw->drawable, draw->core.draw_gc, x, y, + xc, n); + } + if (xc != xcloc) + free (xc); + } +#ifdef FREETYPE2 + else if (XftDrawRenderPrepare (draw, color, font)) + { + XftRenderStringUtf8 (draw->dpy, draw->render.fg_pict, font->u.ft.font, + draw->render.pict, 0, 0, x, y, string, len); + } +#endif +} + + +void XftDrawRect (XftDraw *draw, XftColor *color, int x, diff --git a/xc/lib/Xft/xftextent.c b/xc/lib/Xft/xftextent.c index 0270e82c7..3bff6d535 100644 --- a/xc/lib/Xft/xftextent.c +++ b/xc/lib/Xft/xftextent.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftextent.c,v 1.4 2000/12/15 17:12:52 keithp Exp $ + * $XFree86: xc/lib/Xft/xftextent.c,v 1.5 2000/12/20 00:28:44 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -22,6 +22,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdlib.h> #include "xftint.h" void @@ -80,3 +81,109 @@ XftTextExtents32 (Display *dpy, } #endif } + +void +XftTextExtentsUtf8 (Display *dpy, + XftFont *font, + XftChar8 *string, + int len, + XGlyphInfo *extents) +{ + XftChar8 *src; + XftChar32 c; + XftChar32 lbuf[4096]; + XftChar32 *dst; + XftChar8 *dst8; + XftChar16 *dst16; + XftChar32 *dst32; + int rlen, clen; + int width = 1; + int n; + + /* compute needed width */ + src = string; + rlen = len; + n = 0; + while (rlen) + { + clen = XftUtf8ToUcs4 (src, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + { + memset (extents, 0, sizeof (XGlyphInfo)); + return; + } + if (c >= 0x10000) + width = 4; + else if (c >= 0x100) + { + if (width == 1) + width = 2; + } + src += clen; + rlen -= clen; + n++; + } + dst = lbuf; + if (n * width > sizeof (lbuf)) + { + dst = (XftChar32 *) malloc (n * width); + if (!dst) + { + memset (extents, 0, sizeof (XGlyphInfo)); + return; + } + } + + switch (width) { + case 4: + src = string; + rlen = len; + dst32 = dst; + while (rlen) + { + clen = XftUtf8ToUcs4 (src, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + return; + *dst32++ = c; + src += clen; + rlen -= clen; + } + dst32 = dst; + XftTextExtents32 (dpy, font, dst32, n, extents); + break; + case 2: + src = string; + rlen = len; + dst16 = (XftChar16 *) dst; + while (rlen) + { + clen = XftUtf8ToUcs4 (src, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + return; + *dst16++ = c; + src += clen; + rlen -= clen; + } + dst16 = (XftChar16 *) dst; + XftTextExtents16 (dpy, font, dst16, n, extents); + break; + case 1: + src = string; + rlen = len; + dst8 = (XftChar8 *) dst; + while (rlen) + { + clen = XftUtf8ToUcs4 (src, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + return; + *dst8++ = c; + src += clen; + rlen -= clen; + } + dst8 = (XftChar8 *) dst; + XftTextExtents8 (dpy, font, dst8, n, extents); + break; + } + if (dst != lbuf) + free (dst); +} diff --git a/xc/lib/Xft/xftfont.c b/xc/lib/Xft/xftfont.c index c0100f5e0..9c3f071d3 100644 --- a/xc/lib/Xft/xftfont.c +++ b/xc/lib/Xft/xftfont.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftfont.c,v 1.7 2000/12/15 17:12:53 keithp Exp $ + * $XFree86: xc/lib/Xft/xftfont.c,v 1.8 2000/12/20 00:20:48 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -22,9 +22,9 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdio.h> #include <stdlib.h> #include "xftint.h" -#include <stdio.h> XftPattern * XftFontMatch (Display *dpy, int screen, XftPattern *pattern, XftResult *result) @@ -43,8 +43,24 @@ XftFontMatch (Display *dpy, int screen, XftPattern *pattern, XftResult *result) new = XftPatternDuplicate (pattern); if (!new) return 0; + + if (_XftFontDebug () & XFT_DBG_OPENV) + { + printf ("XftFontMatch pattern "); + XftPatternPrint (new); + } XftConfigSubstitute (new); + if (_XftFontDebug () & XFT_DBG_OPENV) + { + printf ("XftFontMatch after XftConfig substitutions "); + XftPatternPrint (new); + } XftDefaultSubstitute (dpy, screen, new); + if (_XftFontDebug () & XFT_DBG_OPENV) + { + printf ("XftFontMatch after X resource substitutions "); + XftPatternPrint (new); + } nsets = 0; #ifdef FREETYPE2 @@ -52,6 +68,11 @@ XftFontMatch (Display *dpy, int screen, XftPattern *pattern, XftResult *result) core = True; (void) XftPatternGetBool (new, XFT_RENDER, 0, &render); (void) XftPatternGetBool (new, XFT_CORE, 0, &core); + if (_XftFontDebug () & XFT_DBG_OPENV) + { + printf ("XftFontMatch: use core fonts \"%s\", use render fonts \"%s\"\n", + core ? "True" : "False", render ? "True" : "False"); + } if (render) { @@ -133,10 +154,17 @@ _XftFontDebug (void) if (!initialized) { + char *e; + initialized = 1; - debug = getenv ("XFT_DEBUG") != 0; - if (debug) - printf ("XFT_DEBUG found\n"); + e = getenv ("XFT_DEBUG"); + if (e) + { + printf ("XFT_DEBUG=%s\n", e); + debug = atoi (e); + if (debug <= 0) + debug = 1; + } } return debug; } @@ -155,12 +183,12 @@ XftFontOpen (Display *dpy, int screen, ...) va_end (va); if (!pat) { - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) printf ("XftFontOpen: Invalid pattern argument\n"); return 0; } match = XftFontMatch (dpy, screen, pat, &result); - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) { printf ("Pattern "); XftPatternPrint (pat); @@ -179,7 +207,7 @@ XftFontOpen (Display *dpy, int screen, ...) font = XftFontOpenPattern (dpy, match); if (!font) { - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) printf ("No Font\n"); XftPatternDestroy (match); } @@ -196,7 +224,7 @@ XftFontOpenName (Display *dpy, int screen, const char *name) XftFont *font; pat = XftNameParse (name); - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) { printf ("XftFontOpenName \"%s\": ", name); if (pat) @@ -208,7 +236,7 @@ XftFontOpenName (Display *dpy, int screen, const char *name) if (!pat) return 0; match = XftFontMatch (dpy, screen, pat, &result); - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) { if (match) { @@ -238,7 +266,7 @@ XftFontOpenXlfd (Display *dpy, int screen, const char *xlfd) XftFont *font; pat = XftXlfdParse (xlfd, False, False); - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) { printf ("XftFontOpenXlfd \"%s\": ", xlfd); if (pat) @@ -250,7 +278,7 @@ XftFontOpenXlfd (Display *dpy, int screen, const char *xlfd) if (!pat) return 0; match = XftFontMatch (dpy, screen, pat, &result); - if (_XftFontDebug ()) + if (_XftFontDebug () & XFT_DBG_OPEN) { if (match) { @@ -275,7 +303,7 @@ void XftFontClose (Display *dpy, XftFont *font) { if (font->core) - XFreeFont (dpy, font->u.core.font); + XftCoreClose (dpy, font->u.core.font); #ifdef FREETYPE2 else XftFreeTypeClose (dpy, font->u.ft.font); diff --git a/xc/lib/Xft/xftfreetype.c b/xc/lib/Xft/xftfreetype.c index 04a0584c9..e891e0577 100644 --- a/xc/lib/Xft/xftfreetype.c +++ b/xc/lib/Xft/xftfreetype.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftfreetype.c,v 1.5 2000/12/15 17:12:53 keithp Exp $ + * $XFree86: xc/lib/Xft/xftfreetype.c,v 1.10 2001/01/26 20:51:15 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -23,6 +23,7 @@ */ #include <stdlib.h> +#include <stdio.h> #include "xftint.h" FT_Library _XftFTlibrary; @@ -32,9 +33,10 @@ typedef struct _XftFtEncoding { FT_Encoding encoding; } XftFtEncoding; -XftFtEncoding xftFtEncoding[] = { +static XftFtEncoding xftFtEncoding[] = { { "iso10646-1", ft_encoding_unicode, }, { "iso8859-1", ft_encoding_unicode, }, + { "apple-roman", ft_encoding_apple_roman }, { "adobe-fontspecific", ft_encoding_symbol, }, { "glyphs-fontspecific",ft_encoding_none, }, }; @@ -74,7 +76,7 @@ XftFreeTypeQuery (const char *file, int id, int *count) slant = XFT_SLANT_ROMAN; if (face->style_flags & FT_STYLE_FLAG_ITALIC) - slant = (XFT_SLANT_ITALIC + XFT_SLANT_OBLIQUE) / 2; + slant = XFT_SLANT_ITALIC; if (!XftPatternAddInteger (pat, XFT_SLANT, slant)) goto bail1; @@ -98,6 +100,10 @@ XftFreeTypeQuery (const char *file, int id, int *count) if (!XftPatternAddInteger (pat, XFT_INDEX, id)) goto bail1; + if ((face->face_flags & FT_FACE_FLAG_FIXED_WIDTH) != 0) + if (!XftPatternAddInteger (pat, XFT_SPACING, XFT_MONO)) + goto bail1; + if (!(face->face_flags & FT_FACE_FLAG_SCALABLE)) { for (i = 0; i < face->num_fixed_sizes; i++) @@ -142,41 +148,185 @@ bail0: return 0; } +/* + * List of all open files (each face in a file is managed separately) + */ +typedef struct _XftFtFile { + struct _XftFtFile *next; + int ref; + + char *file; + int id; + + FT_Face face; + FT_F26Dot6 size; + int charmap; +} XftFtFile; + +static XftFtFile *_XftFtFiles; + +static XftFtFile * +_XftFreeTypeOpenFile (char *file, int id) +{ + XftFtFile *f; + FT_Face face; + + for (f = _XftFtFiles; f; f = f->next) + { + if (!strcmp (f->file, file) && f->id == id) + { + ++f->ref; + if (_XftFontDebug () & XFT_DBG_REF) + printf ("FontFile %s/%d matches existing (%d)\n", + file, id, f->ref); + return f; + } + } + if (FT_New_Face (_XftFTlibrary, file, id, &face)) + return 0; + + f = malloc (sizeof (XftFtFile) + strlen (file) + 1); + if (!f) + return 0; + + if (_XftFontDebug () & XFT_DBG_REF) + printf ("FontFile %s/%d matches new\n", + file, id); + f->next = _XftFtFiles; + _XftFtFiles = f; + f->ref = 1; + + f->file = (char *) (f+1); + strcpy (f->file, file); + f->id = id; + + f->face = face; + f->size = 0; + f->charmap = -1; + return f; +} + +Bool +XftFreeTypeSetFace (FT_Face face, FT_F26Dot6 size, int charmap) +{ + XftFtFile *f, **prev; + + for (prev = &_XftFtFiles; (f = *prev); prev = &f->next) + { + if (f->face == face) + { + /* LRU */ + if (prev != &_XftFtFiles) + { + *prev = f->next; + f->next = _XftFtFiles; + _XftFtFiles = f; + } + if (f->size != size) + { + if (_XftFontDebug() & XFT_DBG_GLYPH) + printf ("Set face size to %d (%d)\n", + (int) (size >> 6), (int) size); + if (FT_Set_Char_Size (face, size, size, 0, 0)) + return False; + f->size = size; + } + if (f->charmap != charmap && charmap != -1) + { + if (_XftFontDebug() & XFT_DBG_GLYPH) + printf ("Set face charmap to %d\n", charmap); + if (FT_Set_Charmap (face, face->charmaps[charmap])) + return False; + f->charmap = charmap; + } + break; + } + } + return True; +} + +static void +_XftFreeTypeCloseFile (XftFtFile *f) +{ + XftFtFile **prev; + + if (--f->ref != 0) + return; + for (prev = &_XftFtFiles; *prev; prev = &(*prev)->next) + { + if (*prev == f) + { + *prev = f->next; + break; + } + } + FT_Done_Face (f->face); + free (f); +} + +/* + * Cache of all glyphsets + */ +typedef struct _XftFtGlyphSet { + struct _XftFtGlyphSet *next; + int ref; + + XftFtFile *file; + Bool minspace; + int char_width; + + XftFontStruct font; +} XftFtGlyphSet; + +static XftFtGlyphSet *_XftFtGlyphSets; + XftFontStruct * XftFreeTypeOpen (Display *dpy, XftPattern *pattern) { - char *file; + XftFtFile *file; + FT_Face face; + XftFtGlyphSet *gs; + char *filename; int id; - double size; + double dsize; + FT_F26Dot6 size; int rgba; int spacing; int char_width; Bool antialias; - Bool encoded; + Bool minspace; char *encoding_name; - FT_Face face; XftFontStruct *font; int j; FT_Encoding encoding; int charmap; - int error; - int height, ascent, descent; int extra; - int div; - + int height, ascent, descent; XRenderPictFormat pf, *format; - if (XftPatternGetString (pattern, XFT_FILE, 0, &file) != XftResultMatch) + /* + * Open the file + */ + if (XftPatternGetString (pattern, XFT_FILE, 0, &filename) != XftResultMatch) goto bail0; if (XftPatternGetInteger (pattern, XFT_INDEX, 0, &id) != XftResultMatch) goto bail0; + file = _XftFreeTypeOpenFile (filename, id); + if (!file) + goto bail0; + + face = file->face; + + /* + * Extract the glyphset information from the pattern + */ if (XftPatternGetString (pattern, XFT_ENCODING, 0, &encoding_name) != XftResultMatch) goto bail0; - if (XftPatternGetDouble (pattern, XFT_PIXEL_SIZE, 0, &size) != XftResultMatch) + if (XftPatternGetDouble (pattern, XFT_PIXEL_SIZE, 0, &dsize) != XftResultMatch) goto bail0; switch (XftPatternGetInteger (pattern, XFT_RGBA, 0, &rgba)) { @@ -199,11 +349,101 @@ XftFreeTypeOpen (Display *dpy, XftPattern *pattern) goto bail0; } + switch (XftPatternGetBool (pattern, XFT_MINSPACE, 0, &minspace)) { + case XftResultNoMatch: + minspace = False; + break; + case XftResultMatch: + break; + default: + goto bail0; + } + + switch (XftPatternGetInteger (pattern, XFT_SPACING, 0, &spacing)) { + case XftResultNoMatch: + spacing = XFT_PROPORTIONAL; + break; + case XftResultMatch: + break; + default: + goto bail1; + } + if (XftPatternGetInteger (pattern, XFT_CHAR_WIDTH, 0, &char_width) != XftResultMatch) { char_width = 0; } + else if (char_width) + spacing = XFT_MONO; + + encoding = face->charmaps[0]->encoding; + + for (j = 0; j < NUM_FT_ENCODINGS; j++) + if (!strcmp (encoding_name, xftFtEncoding[j].name)) + { + encoding = xftFtEncoding[j].encoding; + break; + } + + size = (FT_F26Dot6) (dsize * 64.0); + + if (encoding == ft_encoding_none) + charmap = -1; + else + { + for (charmap = 0; charmap < face->num_charmaps; charmap++) + if (face->charmaps[charmap]->encoding == encoding) + break; + + if (charmap == face->num_charmaps) + goto bail1; + } + + + /* + * Match an existing glyphset + */ + for (gs = _XftFtGlyphSets; gs; gs = gs->next) + { + if (gs->file == file && + gs->minspace == minspace && + gs->char_width == char_width && + gs->font.size == size && + gs->font.spacing == spacing && + gs->font.charmap == charmap && + gs->font.rgba == rgba && + gs->font.antialias == antialias) + { + ++gs->ref; + if (_XftFontDebug () & XFT_DBG_REF) + { + printf ("Face size %g matches existing (%d)\n", + dsize, gs->ref); + } + return &gs->font; + } + } + + if (_XftFontDebug () & XFT_DBG_REF) + { + printf ("Face size %g matches new\n", + dsize); + } + /* + * No existing glyphset, create another + */ + gs = malloc (sizeof (XftFtGlyphSet)); + if (!gs) + goto bail1; + + gs->ref = 1; + + gs->file = file; + gs->minspace = minspace; + gs->char_width = char_width; + + font = &gs->font; if (antialias) { @@ -261,106 +501,60 @@ XftFreeTypeOpen (Display *dpy, XftPattern *pattern) } if (!format) - goto bail0; + goto bail2; - if (FT_New_Face (_XftFTlibrary, file, id, &face)) - goto bail0; + font->size = size; - font = (XftFontStruct *) malloc (sizeof (XftFontStruct)); - if (!font) - goto bail1; - - font->size = (FT_F26Dot6) (size * 64.0); - - if ( FT_Set_Char_Size (face, font->size, font->size, 0, 0) ) + if (!XftFreeTypeSetFace (face, size, charmap)) goto bail2; - encoding = face->charmaps[0]->encoding; - - for (j = 0; j < NUM_FT_ENCODINGS; j++) - if (!strcmp (encoding_name, xftFtEncoding[j].name)) - { - encoding = xftFtEncoding[j].encoding; - break; - } - - if (encoding == ft_encoding_none) - encoded = False; - else + descent = -(face->size->metrics.descender >> 6); + ascent = face->size->metrics.ascender >> 6; + if (minspace) { - encoded = True; - for (charmap = 0; charmap < face->num_charmaps; charmap++) - if (face->charmaps[charmap]->encoding == encoding) - break; - - if (charmap == face->num_charmaps) - goto bail2; - - error = FT_Set_Charmap(face, - face->charmaps[charmap]); - - if (error) - goto bail2; + height = ascent + descent; } - - height = face->height; - ascent = face->ascender; - descent = face->descender; - if (descent < 0) descent = - descent; - extra = (height - (ascent + descent)); - if (extra > 0) + else { - ascent = ascent + extra / 2; - descent = height - ascent; + height = face->size->metrics.height >> 6; + extra = (height - (ascent + descent)); + if (extra > 0) + { + ascent = ascent + extra / 2; + descent = height - ascent; + } + else if (extra < 0) + height = ascent + descent; } - else if (extra < 0) - height = ascent + descent; - div = face->units_per_EM; - if (height > div * 5) - div *= 10; - - div = face->units_per_EM; - if (height > div * 5) - div *= 10; + font->ascent = ascent; + font->descent = descent; + font->height = height; - font->descent = descent * font->size / (64 * div); - font->ascent = ascent * font->size / (64 * div); - font->height = height * font->size / (64 * div); - font->max_advance_width = face->max_advance_width * font->size / (64 * div); - - font->monospace = (face->face_flags & FT_FACE_FLAG_FIXED_WIDTH) != 0; if (char_width) - { font->max_advance_width = char_width; - font->monospace = True; - } - switch (XftPatternGetInteger (pattern, XFT_SPACING, 0, &spacing)) { - case XftResultNoMatch: - break; - case XftResultMatch: - if (spacing != XFT_PROPORTIONAL) - font->monospace = True; - break; - default: - goto bail2; - } + else + font->max_advance_width = face->size->metrics.max_advance >> 6; + + gs->next = _XftFtGlyphSets; + _XftFtGlyphSets = gs; font->glyphset = XRenderCreateGlyphSet (dpy, format); + font->spacing = spacing; font->format = format; font->realized =0; font->nrealized = 0; font->rgba = rgba; font->antialias = antialias; - font->encoded = encoded; + font->charmap = charmap; font->face = face; return font; bail2: - free (font); + free (gs); bail1: - FT_Done_Face (font->face); + _XftFreeTypeCloseFile (file); bail0: return 0; } @@ -368,10 +562,26 @@ bail0: void XftFreeTypeClose (Display *dpy, XftFontStruct *font) { - XRenderFreeGlyphSet (dpy, font->glyphset); - if (font->realized) - free (font->realized); - FT_Done_Face (font->face); + XftFtGlyphSet *gs, **prev; + + for (prev = &_XftFtGlyphSets; (gs = *prev); prev = &gs->next) + { + if (&gs->font == font) + { + if (--gs->ref == 0) + { + XRenderFreeGlyphSet (dpy, font->glyphset); + if (font->realized) + free (font->realized); + + _XftFreeTypeCloseFile (gs->file); + + *prev = gs->next; + free (gs); + } + break; + } + } } XftFontStruct * @@ -388,6 +598,7 @@ Bool XftInitFtLibrary (void) { char **d; + char *cache; if (_XftFTlibrary) return True; @@ -396,16 +607,21 @@ XftInitFtLibrary (void) _XftFontSet = XftFontSetCreate (); if (!_XftFontSet) return False; + cache = XftConfigGetCache (); + if (cache) + XftFileCacheLoad (cache); for (d = XftConfigDirs; d && *d; d++) { #ifdef XFT_DEBUG_FONTSET printf ("scan dir %s\n", *d); #endif - XftDirScan (_XftFontSet, *d); + XftDirScan (_XftFontSet, *d, False); } #ifdef XFT_DEBUG_FONTSET - XftPrintFontSet (_XftFontSet); + XftFontSetPrint (_XftFontSet); #endif + if (cache) + XftFileCacheSave (cache); + XftFileCacheDispose (); return True; } - diff --git a/xc/lib/Xft/xftglyphs.c b/xc/lib/Xft/xftglyphs.c index e773ebc8e..6a6f2c274 100644 --- a/xc/lib/Xft/xftglyphs.c +++ b/xc/lib/Xft/xftglyphs.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftglyphs.c,v 1.6 2000/12/15 17:12:53 keithp Exp $ + * $XFree86: xc/lib/Xft/xftglyphs.c,v 1.9 2001/01/26 20:51:16 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -22,6 +22,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdio.h> #include <stdlib.h> #include "xftint.h" #include <freetype/ftoutln.h> @@ -69,16 +70,32 @@ XftGlyphLoad (Display *dpy, int height; int i; int left, right, top, bottom; - int mul = 1; + int hmul = 1; + int vmul = 1; FT_Bitmap ftbit; FT_Matrix matrix; - if (font->antialias && font->rgba) + if (!XftFreeTypeSetFace (font->face, font->size, font->charmap)) + return ; + + if (font->antialias) { - matrix.xx = 0x30000L; - matrix.yy = 0x10000L; - matrix.xy = matrix.yx = 0; - mul = 3; + switch (font->rgba) { + case XFT_RGBA_RGB: + case XFT_RGBA_BGR: + matrix.xx = 0x30000L; + matrix.yy = 0x10000L; + matrix.xy = matrix.yx = 0; + hmul = 3; + break; + case XFT_RGBA_VRGB: + case XFT_RGBA_VBGR: + matrix.xx = 0x10000L; + matrix.yy = 0x30000L; + matrix.xy = matrix.yx = 0; + vmul = 3; + break; + } } while (nglyph--) { @@ -87,11 +104,16 @@ XftGlyphLoad (Display *dpy, if (!gi) continue; - if (font->encoded) + if (font->charmap != -1) { glyphindex = FT_Get_Char_Index (font->face, charcode); if (!glyphindex) + { + if (_XftFontDebug() & XFT_DBG_GLYPH) + printf ("glyph (%c) %d missing\n", + (int) charcode, (int) charcode); continue; + } } else glyphindex = (FT_UInt) charcode; @@ -112,7 +134,7 @@ XftGlyphLoad (Display *dpy, /* * Try to keep monospace fonts ink-inside */ - if (font->monospace) + if (font->spacing != XFT_PROPORTIONAL) { if (TRUNC(right) > font->max_advance_width) { @@ -134,11 +156,11 @@ XftGlyphLoad (Display *dpy, if ( glyph->format == ft_glyph_format_outline ) { if (font->antialias) - pitch = (width * mul + 3) & ~3; + pitch = (width * hmul + 3) & ~3; else pitch = ((width + 31) & ~31) >> 3; - size = pitch * height; + size = pitch * height * vmul; if (size > bufSize) { @@ -151,8 +173,8 @@ XftGlyphLoad (Display *dpy, } memset (bufBitmap, 0, size); - ftbit.width = width * mul; - ftbit.rows = height; + ftbit.width = width * hmul; + ftbit.rows = height * vmul; ftbit.pitch = pitch; if (font->antialias) ftbit.pixel_mode = ft_pixel_mode_grays; @@ -161,10 +183,10 @@ XftGlyphLoad (Display *dpy, ftbit.buffer = bufBitmap; - if (font->antialias && font->rgba) + if (font->antialias && font->rgba != XFT_RGBA_NONE) FT_Outline_Transform (&glyph->outline, &matrix); - FT_Outline_Translate ( &glyph->outline, -left*mul, -bottom ); + FT_Outline_Translate ( &glyph->outline, -left*hmul, -bottom*vmul ); FT_Outline_Get_Bitmap( _XftFTlibrary, &glyph->outline, &ftbit ); i = size; @@ -192,39 +214,42 @@ XftGlyphLoad (Display *dpy, } } } -#if 0 + if (_XftFontDebug() & XFT_DBG_GLYPH) { - int x, y; - unsigned char *line; - - line = bufBitmap; - printf ("\nchar 0x%x (%c):\n", (int) charcode, (char) charcode); - for (y = 0; y < height; y++) + printf ("char 0x%x (%c):\n", (int) charcode, (char) charcode); + if (_XftFontDebug() & XFT_DBG_GLYPHV) { - if (font->antialias) - { - static char den[] = { " .:;=+*#" }; - for (x = 0; x < pitch; x++) - printf ("%c", den[line[x] >> 5]); - } - else + int x, y; + unsigned char *line; + + line = bufBitmap; + for (y = 0; y < height * vmul; y++) { - for (x = 0; x < pitch * 8; x++) + if (font->antialias) + { + static char den[] = { " .:;=+*#" }; + for (x = 0; x < pitch; x++) + printf ("%c", den[line[x] >> 5]); + } + else { - printf ("%c", line[x>>3] & (1 << (x & 7)) ? '#' : ' '); + for (x = 0; x < pitch * 8; x++) + { + printf ("%c", line[x>>3] & (1 << (x & 7)) ? '#' : ' '); + } } + printf ("\n"); + line += pitch; } printf ("\n"); - line += pitch; } } -#endif } else { -#if 0 - printf ("glyph (%c) %d missing\n", (int) charcode, (int) charcode); -#endif + if (_XftFontDebug() & XFT_DBG_GLYPH) + printf ("glyph (%c) %d no outline\n", + (int) charcode, (int) charcode); continue; } @@ -232,11 +257,16 @@ XftGlyphLoad (Display *dpy, gi->height = height; gi->x = -TRUNC(left); gi->y = TRUNC(top); - if (font->monospace) + if (font->spacing != XFT_PROPORTIONAL) + { gi->xOff = font->max_advance_width; + gi->yOff = 0; + } else - gi->xOff = TRUNC(ROUND(glyph->metrics.horiAdvance)); - gi->yOff = 0; + { + gi->xOff = TRUNC(ROUND(glyph->advance.x)); + gi->yOff = TRUNC(ROUND(glyph->advance.y)); + } g = charcode; if (font->antialias && font->rgba != XFT_RGBA_NONE) @@ -247,18 +277,24 @@ XftGlyphLoad (Display *dpy, unsigned int red, green, blue; int rf, gf, bf; int s; + int o, os; widthrgba = width; pitchrgba = (widthrgba * 4 + 3) & ~3; sizergba = pitchrgba * height; + os = 1; switch (font->rgba) { + case XFT_RGBA_VRGB: + os = pitch; case XFT_RGBA_RGB: default: rf = 0; gf = 1; bf = 2; break; + case XFT_RGBA_VBGR: + os = pitch; case XFT_RGBA_BGR: bf = 0; gf = 1; @@ -281,21 +317,23 @@ XftGlyphLoad (Display *dpy, { in = in_line; out = (unsigned int *) out_line; - in_line += pitch; + in_line += pitch * vmul; out_line += pitchrgba; - for (x = 0; x < width * mul; x += 3) + for (x = 0; x < width * hmul; x += hmul) { red = green = blue = 0; + o = 0; for (s = 0; s < 3; s++) { - red += filters[rf][s]*in[x+s]; - green += filters[gf][s]*in[x+s]; - blue += filters[bf][s]*in[x+s]; + red += filters[rf][s]*in[x+o]; + green += filters[gf][s]*in[x+o]; + blue += filters[bf][s]*in[x+o]; + o += os; } red = red / 65536; green = green / 65536; blue = blue / 65536; - out[x/3] = (green << 24) | (red << 16) | (green << 8) | blue; + *out++ = (green << 24) | (red << 16) | (green << 8) | blue; } } @@ -368,7 +406,10 @@ XftFreeTypeGlyphExists (Display *dpy, XftFontStruct *font, XftChar32 glyph) { - if (font->encoded) + if (font->charmap != -1) + { + FT_Set_Charmap (font->face, font->face->charmaps[font->charmap]); glyph = (XftChar32) FT_Get_Char_Index (font->face, (FT_ULong) glyph); + } return glyph && glyph <= font->face->num_glyphs; } diff --git a/xc/lib/Xft/xftgram.y b/xc/lib/Xft/xftgram.y index bcf399a2a..a6cb6ef4b 100644 --- a/xc/lib/Xft/xftgram.y +++ b/xc/lib/Xft/xftgram.y @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftgram.y,v 1.2 2000/11/30 23:30:00 dawes Exp $ + * $XFree86: xc/lib/Xft/xftgram.y,v 1.3 2001/01/02 02:46:51 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -47,7 +47,8 @@ %token <dval> DOUBLE %token <sval> STRING NAME %token <ival> ANY ALL -%token <ival> DIR INCLUDE INCLUDEIF MATCH EDIT TOK_TRUE TOK_FALSE TOK_NIL +%token <ival> DIR CACHE INCLUDE INCLUDEIF MATCH EDIT +%token <ival> TOK_TRUE TOK_FALSE TOK_NIL %token <ival> EQUAL SEMI %type <eval> expr @@ -75,6 +76,8 @@ configs : configs config ; config : DIR STRING { XftConfigAddDir ($2); } + | CACHE STRING + { XftConfigSetCache ($2); } | INCLUDE STRING { XftConfigPushInput ($2, True); } | INCLUDEIF STRING diff --git a/xc/lib/Xft/xftint.h b/xc/lib/Xft/xftint.h index 6abc0bcea..53b95facc 100644 --- a/xc/lib/Xft/xftint.h +++ b/xc/lib/Xft/xftint.h @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftint.h,v 1.15 2000/12/15 17:12:53 keithp Exp $ + * $XFree86: xc/lib/Xft/xftint.h,v 1.21 2001/01/26 20:51:16 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -84,6 +84,18 @@ extern XftFontSet *_XftFontSet; #define XFT_DEFAULT_PATH "/usr/X11R6/lib/X11/XftConfig" #endif +#define XFT_DBG_OPEN 1 +#define XFT_DBG_OPENV 2 +#define XFT_DBG_RENDER 4 +#define XFT_DBG_DRAW 8 +#define XFT_DBG_REF 16 +#define XFT_DBG_GLYPH 32 +#define XFT_DBG_GLYPHV 64 +#define XFT_DBG_CACHE 128 +#define XFT_DBG_CACHEV 256 +#define XFT_DBG_MATCH 512 +#define XFT_DBG_MATCHV 1024 + typedef enum _XftOp { XftOpInteger, XftOpDouble, XftOpString, XftOpBool, XftOpNil, XftOpField, @@ -191,11 +203,40 @@ _XftPatternVapBuild_return: \ } +/* xftcache.c */ + +char * +XftFileCacheFind (char *file, int id, int *count); + +void +XftFileCacheDispose (void); + +void +XftFileCacheLoad (char *cache); + +Bool +XftFileCacheUpdate (char *file, int id, char *name); + +Bool +XftFileCacheSave (char *cache); + +Bool +XftFileCacheReadDir (XftFontSet *set, const char *cache_file); + +Bool +XftFileCacheWriteDir (XftFontSet *set, const char *cache_file); + /* xftcfg.c */ Bool XftConfigAddDir (char *d); Bool +XftConfigSetCache (char *c); + +char * +XftConfigGetCache (void); + +Bool XftConfigAddEdit (XftTest *test, XftEdit *edit); Bool @@ -217,6 +258,12 @@ XftCoreConvert32 (unsigned int *string, int len, XChar2b xcloc[XFT_CORE_N16LOCAL]); +XChar2b * +XftCoreConvertUtf8 (XftChar8 *string, + int len, + XChar2b xcloc[XFT_CORE_N16LOCAL], + int *nchar); + void XftCoreExtents8 (Display *dpy, XFontStruct *fs, @@ -238,6 +285,13 @@ XftCoreExtents32 (Display *dpy, int len, XGlyphInfo *extents); +void +XftCoreExtentsUtf8 (Display *dpy, + XFontStruct *fs, + XftChar8 *string, + int len, + XGlyphInfo *extents); + Bool XftCoreGlyphExists (Display *dpy, XFontStruct *fs, @@ -259,10 +313,6 @@ XftEditPrint (XftEdit *edit); void XftSubstPrint (XftSubst *subst); -/* xftdir.c */ -Bool -XftDirScan (XftFontSet *set, const char *dir); - /* xftdpy.c */ int XftDefaultParseBool (char *v); @@ -295,12 +345,7 @@ XftDrawCorePrepare (XftDraw *draw, int _XftFontDebug (void); -/* xftfreetype.c */ -XftPattern * -XftFreeTypeQuery (const char *file, int id, int *count); - /* xftfs.c */ -/* xftglyphs.c */ /* xftgram.y */ int XftConfigparse (void); @@ -349,7 +394,7 @@ XftEditDestroy (XftEdit *e); /* xftinit.c */ Bool -XftInitFtLibrary (void); +XftInit (char *config); /* xftlex.l */ extern int XftConfigLineno; @@ -365,9 +410,6 @@ Bool XftConfigPushInput (char *s, Bool complain); /* xftlist.c */ -XftObjectSet * -_XftObjectSetVapBuild (const char *first, va_list *vap); - Bool XftListValueCompare (XftValue v1, XftValue v2); diff --git a/xc/lib/Xft/xftlex.l b/xc/lib/Xft/xftlex.l index f668ae6ff..14773789b 100644 --- a/xc/lib/Xft/xftlex.l +++ b/xc/lib/Xft/xftlex.l @@ -1,6 +1,6 @@ %{ /* - * $XFree86: xc/lib/Xft/xftlex.l,v 1.3 2000/12/15 22:48:39 dawes Exp $ + * $XFree86: xc/lib/Xft/xftlex.l,v 1.4 2001/01/02 02:46:51 keithp Exp $ * * Copyright (c) 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -97,6 +97,7 @@ static void unput (char c) "/\052" _XftConfigSkipComment(); ^# _XftConfigSkipLine(); dir return DIR; +cache return CACHE; include return INCLUDE; includeif return INCLUDEIF; match return MATCH; diff --git a/xc/lib/Xft/xftmatch.c b/xc/lib/Xft/xftmatch.c index 45bde6b4c..2f274c302 100644 --- a/xc/lib/Xft/xftmatch.c +++ b/xc/lib/Xft/xftmatch.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftmatch.c,v 1.3 2000/12/14 23:03:55 keithp Exp $ + * $XFree86: xc/lib/Xft/xftmatch.c,v 1.4 2001/01/26 20:51:17 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -27,8 +27,6 @@ #include "xftint.h" #include <stdio.h> -/* #define XFT_DEBUG_MATCH */ - static double _XftCompareInteger (char *object, XftValue value1, XftValue value2) { @@ -151,9 +149,8 @@ _XftCompareValueList (const char *object, *result = XftResultTypeMismatch; return False; } -#ifdef XFT_DEBUG_MATCH - printf (" v %g j %d ", v, j); -#endif + if (_XftFontDebug () & XFT_DBG_MATCHV) + printf (" v %g j %d ", v, j); v = v * 100 + j; if (v < best) { @@ -164,13 +161,14 @@ _XftCompareValueList (const char *object, } j++; } -#ifdef XFT_DEBUG_MATCH - printf (" %s: %g ", object, best); - XftValueListPrint (v1orig); - printf (", "); - XftValueListPrint (v2orig); - printf ("\n"); -#endif + if (_XftFontDebug () & XFT_DBG_MATCHV) + { + printf (" %s: %g ", object, best); + XftValueListPrint (v1orig); + printf (", "); + XftValueListPrint (v2orig); + printf ("\n"); + } value[i] += best; return True; } @@ -181,22 +179,26 @@ _XftCompareValueList (const char *object, */ static Bool -_XftCompare (XftPattern *p1, XftPattern *p2, double *value, XftResult *result) +_XftCompare (XftPattern *pat, + XftPattern *fnt, + double *value, + XftResult *result) { int i, i1, i2; for (i = 0; i < NUM_MATCHER; i++) value[i] = 0.0; - for (i1 = 0; i1 < p1->num; i1++) - for (i2 = 0; i2 < p2->num; i2++) + for (i1 = 0; i1 < pat->num; i1++) + { + for (i2 = 0; i2 < fnt->num; i2++) { - if (!_XftStrCmpIgnoreCase (p1->elts[i1].object, - p2->elts[i2].object)) + if (!_XftStrCmpIgnoreCase (pat->elts[i1].object, + fnt->elts[i2].object)) { - if (!_XftCompareValueList (p1->elts[i1].object, - p1->elts[i1].values, - p2->elts[i2].values, + if (!_XftCompareValueList (pat->elts[i1].object, + pat->elts[i1].values, + fnt->elts[i2].values, 0, value, result)) @@ -204,6 +206,25 @@ _XftCompare (XftPattern *p1, XftPattern *p2, double *value, XftResult *result) break; } } +#if 0 + /* + * Overspecified patterns are slightly penalized in + * case some other font includes the requested field + */ + if (i2 == fnt->num) + { + for (i2 = 0; i2 < NUM_MATCHER; i2++) + { + if (!_XftStrCmpIgnoreCase (_XftMatchers[i2].object, + pat->elts[i1].object)) + { + value[i2] = 1.0; + break; + } + } + } +#endif + } return True; } @@ -226,29 +247,32 @@ XftFontSetMatch (XftFontSet **sets, for (i = 0; i < NUM_MATCHER; i++) bestscore[i] = 0; best = 0; -#ifdef XFT_DEBUG_MATCH - printf ("Match "); - XftPatternPrint (p); -#endif + if (_XftFontDebug () & XFT_DBG_MATCH) + { + printf ("Match "); + XftPatternPrint (p); + } for (set = 0; set < nsets; set++) { s = sets[set]; for (f = 0; f < s->nfont; f++) { -#ifdef XFT_DEBUG_MATCH - printf ("Font %d ", f); - XftPatternPrint (s->fonts[f]); -#endif + if (_XftFontDebug () & XFT_DBG_MATCH) + { + printf ("Font %d ", f); + XftPatternPrint (s->fonts[f]); + } if (!_XftCompare (p, s->fonts[f], score, result)) return 0; -#ifdef XFT_DEBUG_MATCH - printf ("Score"); - for (i = 0; i < NUM_MATCHER; i++) + if (_XftFontDebug () & XFT_DBG_MATCH) { - printf (" %g", score[i]); + printf ("Score"); + for (i = 0; i < NUM_MATCHER; i++) + { + printf (" %g", score[i]); + } + printf ("\n"); } - printf ("\n"); -#endif for (i = 0; i < NUM_MATCHER; i++) { if (best && bestscore[i] < score[i]) @@ -263,12 +287,13 @@ XftFontSetMatch (XftFontSet **sets, } } } -#ifdef XFT_DEBUG_MATCH - printf ("Best score"); - for (i = 0; i < NUM_MATCHER; i++) - printf (" %g", bestscore[i]); - XftPatternPrint (best); -#endif + if (_XftFontDebug () & XFT_DBG_MATCH) + { + printf ("Best score"); + for (i = 0; i < NUM_MATCHER; i++) + printf (" %g", bestscore[i]); + XftPatternPrint (best); + } if (!best) { *result = XftResultNoMatch; diff --git a/xc/lib/Xft/xftname.c b/xc/lib/Xft/xftname.c index 675b6fb00..39e40e0b5 100644 --- a/xc/lib/Xft/xftname.c +++ b/xc/lib/Xft/xftname.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftname.c,v 1.5 2000/12/14 23:03:56 keithp Exp $ + * $XFree86: xc/lib/Xft/xftname.c,v 1.9 2001/01/26 20:51:17 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -26,13 +26,14 @@ #include <ctype.h> #include <stdlib.h> #include <string.h> +#include <stdio.h> typedef struct _XftObjectType { const char *object; XftType type; } XftObjectType; -const XftObjectType _XftObjectTypes[] = { +static const XftObjectType _XftObjectTypes[] = { { XFT_FAMILY, XftTypeString, }, { XFT_STYLE, XftTypeString, }, { XFT_SLANT, XftTypeInteger, }, @@ -53,6 +54,9 @@ const XftObjectType _XftObjectTypes[] = { { XFT_RGBA, XftTypeInteger, }, { XFT_SCALE, XftTypeDouble, }, { XFT_RENDER, XftTypeBool, }, + { XFT_MINSPACE, XftTypeBool, }, + { XFT_CHAR_WIDTH, XftTypeInteger }, + { XFT_CHAR_HEIGHT, XftTypeInteger }, }; #define NUM_OBJECT_TYPES (sizeof _XftObjectTypes / sizeof _XftObjectTypes[0]) @@ -93,6 +97,8 @@ static XftConstant XftConstants[] = { { "rgb", "rgba", XFT_RGBA_RGB, }, { "bgr", "rgba", XFT_RGBA_BGR, }, + { "vrgb", "rgba", XFT_RGBA_VRGB }, + { "vbgr", "rgba", XFT_RGBA_VBGR }, }; #define NUM_XFT_CONSTANTS (sizeof XftConstants/sizeof XftConstants[0]) @@ -152,9 +158,17 @@ _XftNameFindNext (const char *cur, const char *delim, char *save, char *last) { char c; - while (*cur && !strchr (delim, *cur)) + while ((c = *cur)) { - c = *cur++; + if (c == '\\') + { + ++cur; + if (!(c = *cur)) + break; + } + else if (strchr (delim, c)) + break; + ++cur; *save++ = c; } *save = 0; @@ -211,10 +225,10 @@ XftNameParse (const char *name) } while (delim == ':') { - name = _XftNameFindNext (name, "=-:", save, &delim); + name = _XftNameFindNext (name, "=_:", save, &delim); if (save[0]) { - if (delim == '=' || delim == '-') + if (delim == '=' || delim == '_') { t = XftNameGetType (save); for (;;) @@ -251,3 +265,117 @@ bail1: bail0: return 0; } + +static Bool +_XftNameUnparseString (const char *string, char *escape, char **destp, int *lenp) +{ + int len = *lenp; + char *dest = *destp; + char c; + + while ((c = *string++)) + { + if (escape && strchr (escape, c)) + { + if (len-- == 0) + return False; + *dest++ = escape[0]; + } + if (len-- == 0) + return False; + *dest++ = c; + } + *destp = dest; + *lenp = len; + return True; +} + +static Bool +_XftNameUnparseValue (XftValue v, char *escape, char **destp, int *lenp) +{ + char temp[1024]; + + switch (v.type) { + case XftTypeVoid: + return True; + case XftTypeInteger: + sprintf (temp, "%d", v.u.i); + return _XftNameUnparseString (temp, 0, destp, lenp); + case XftTypeDouble: + sprintf (temp, "%g", v.u.d); + return _XftNameUnparseString (temp, 0, destp, lenp); + case XftTypeString: + return _XftNameUnparseString (v.u.s, escape, destp, lenp); + case XftTypeBool: + return _XftNameUnparseString (v.u.b ? "True" : "False", 0, destp, lenp); + } + return False; +} + +static Bool +_XftNameUnparseValueList (XftValueList *v, char *escape, char **destp, int *lenp) +{ + while (v) + { + if (!_XftNameUnparseValue (v->value, escape, destp, lenp)) + return False; + if ((v = v->next)) + if (!_XftNameUnparseString (",", 0, destp, lenp)) + return False; + } + return True; +} + +#define XFT_ESCAPE_FIXED "\\-:," +#define XFT_ESCAPE_VARIABLE "\\=_:," + +Bool +XftNameUnparse (XftPattern *pat, char *dest, int len) +{ + int i; + XftPatternElt *e; + const XftObjectType *o; + + e = XftPatternFind (pat, XFT_FAMILY, False); + if (e) + { + if (!_XftNameUnparseValueList (e->values, XFT_ESCAPE_FIXED, + &dest, &len)) + return False; + } + e = XftPatternFind (pat, XFT_SIZE, False); + if (e) + { + if (!_XftNameUnparseString ("-", 0, &dest, &len)) + return False; + if (!_XftNameUnparseValueList (e->values, XFT_ESCAPE_FIXED, &dest, &len)) + return False; + } + for (i = 0; i < NUM_OBJECT_TYPES; i++) + { + o = &_XftObjectTypes[i]; + if (!strcmp (o->object, XFT_FAMILY) || + !strcmp (o->object, XFT_SIZE) || + !strcmp (o->object, XFT_FILE)) + continue; + + e = XftPatternFind (pat, o->object, False); + if (e) + { + if (!_XftNameUnparseString (":", 0, &dest, &len)) + return False; + if (!_XftNameUnparseString (o->object, XFT_ESCAPE_VARIABLE, + &dest, &len)) + return False; + if (!_XftNameUnparseString ("=", 0, &dest, &len)) + return False; + if (!_XftNameUnparseValueList (e->values, XFT_ESCAPE_VARIABLE, + &dest, &len)) + return False; + } + } + if (len == 0) + return False; + *dest = '\0'; + return True; +} diff --git a/xc/lib/Xft/xftrender.c b/xc/lib/Xft/xftrender.c index 87b051eb1..d9233c57e 100644 --- a/xc/lib/Xft/xftrender.c +++ b/xc/lib/Xft/xftrender.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftrender.c,v 1.5 2000/12/08 07:51:28 keithp Exp $ + * $XFree86: xc/lib/Xft/xftrender.c,v 1.6 2000/12/20 00:28:45 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -22,6 +22,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdlib.h> #include "xftint.h" void @@ -97,6 +98,93 @@ XftRenderString32 (Display *dpy, Picture src, } void +XftRenderStringUtf8 (Display *dpy, Picture src, + XftFontStruct *font, Picture dst, + int srcx, int srcy, + int x, int y, + XftChar8 *string, int len) +{ + XftChar8 *s; + XftChar32 c; + XftChar32 lbuf[4096]; + XftChar32 *d; + XftChar8 *dst8; + XftChar16 *dst16; + XftChar32 *dst32; + int rlen, clen; + int width = 1; + int n; + + /* compute needed width */ + if (!XftUtf8Len (string, len, &n, &width)) + return; + + d = lbuf; + if (n * width > sizeof (lbuf)) + { + d = (XftChar32 *) malloc (n * width); + if (!d) + return; + } + + switch (width) { + case 4: + s = string; + rlen = len; + dst32 = d; + while (rlen) + { + clen = XftUtf8ToUcs4 (s, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + return; + *dst32++ = c; + s += clen; + rlen -= clen; + } + dst32 = d; + XftRenderString32 (dpy, src, font, dst, srcx, srcy, x, y, + dst32, n); + break; + case 2: + s = string; + rlen = len; + dst16 = (XftChar16 *) d; + while (rlen) + { + clen = XftUtf8ToUcs4 (s, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + return; + *dst16++ = c; + s += clen; + rlen -= clen; + } + dst16 = (XftChar16 *) d; + XftRenderString16 (dpy, src, font, dst, srcx, srcy, x, y, + dst16, n); + break; + case 1: + s = string; + rlen = len; + dst8 = (XftChar8 *) d; + while (rlen) + { + clen = XftUtf8ToUcs4 (s, &c, rlen); + if (clen <= 0) /* malformed UTF8 string */ + return; + *dst8++ = c; + s += clen; + rlen -= clen; + } + dst8 = (XftChar8 *) d; + XftRenderString8 (dpy, src, font, dst, srcx, srcy, x, y, + dst8, n); + break; + } + if (d != lbuf) + free (d); +} + +void XftRenderExtents8 (Display *dpy, XftFontStruct *font, XftChar8 *string, @@ -290,3 +378,86 @@ XftRenderExtents32 (Display *dpy, extents->xOff = x; extents->yOff = y; } + +void +XftRenderExtentsUtf8 (Display *dpy, + XftFontStruct *font, + XftChar8 *string, + int len, + XGlyphInfo *extents) +{ + unsigned int missing[XFT_NMISSING]; + int nmissing; + XftChar8 *s; + XftChar32 c; + int l, clen; + XGlyphInfo *gi; + int x, y; + + s = string; + l = len; + nmissing = 0; + while (l) + { + clen = XftUtf8ToUcs4 (s, &c, l); + if (clen < 0) + break; + XftGlyphCheck (dpy, font, c, missing, &nmissing); + s += clen; + l -= clen; + } + if (nmissing) + XftGlyphLoad (dpy, font, missing, nmissing); + + gi = 0; + while (len) + { + clen = XftUtf8ToUcs4 (string, &c, len); + if (clen < 0) + { + len = 0; + break; + } + len -= clen; + string += clen; + gi = c < font->nrealized ? font->realized[c] : 0; + if (gi) + break; + } + if (len == 0 && !gi) + { + extents->width = 0; + extents->height = 0; + extents->x = 0; + extents->y = 0; + extents->yOff = 0; + extents->xOff = 0; + return; + } + *extents = *gi; + x = gi->xOff; + y = gi->yOff; + while (len) + { + clen = XftUtf8ToUcs4 (string, &c, len); + if (clen < 0) + break; + len -= clen; + string += clen; + gi = c < font->nrealized ? font->realized[c] : 0; + if (!gi) + continue; + if (gi->x + x < extents->x) + extents->x = gi->x + x; + if (gi->y + y < extents->y) + extents->y = gi->y + y; + if (gi->width + x > extents->width) + extents->width = gi->width + x; + if (gi->height + y > extents->height) + extents->height = gi->height + y; + x += gi->xOff; + y += gi->yOff; + } + extents->xOff = x; + extents->yOff = y; +} diff --git a/xc/lib/Xft/xftstr.c b/xc/lib/Xft/xftstr.c index 8d23621ec..e17c0fb40 100644 --- a/xc/lib/Xft/xftstr.c +++ b/xc/lib/Xft/xftstr.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftstr.c,v 1.2 2000/12/14 23:03:57 keithp Exp $ + * $XFree86: xc/lib/Xft/xftstr.c,v 1.4 2000/12/20 10:24:27 keithp Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -150,3 +150,107 @@ _XftStrCmpIgnoreCase (const char *s1, const char *s2) } return (int) c2 - (int) c1; } + +int +XftUtf8ToUcs4 (XftChar8 *src_orig, + XftChar32 *dst, + int len) +{ + XftChar8 *src = src_orig; + XftChar8 s; + int extra; + XftChar32 result; + + if (len == 0) + return 0; + + s = *src++; + len--; + + if (!(s & 0x80)) + { + result = s; + extra = 0; + } + else if (!(s & 0x40)) + { + return -1; + } + else if (!(s & 0x20)) + { + result = s & 0x1f; + extra = 1; + } + else if (!(s & 0x10)) + { + result = s & 0xf; + extra = 2; + } + else if (!(s & 0x08)) + { + result = s & 0x07; + extra = 3; + } + else if (!(s & 0x04)) + { + result = s & 0x03; + extra = 4; + } + else if ( ! (s & 0x02)) + { + result = s & 0x01; + extra = 5; + } + else + { + return -1; + } + if (extra > len) + return -1; + + while (extra--) + { + result <<= 6; + s = *src++; + + if ((s & 0xc0) != 0x80) + return -1; + + result |= s & 0x3f; + } + *dst = result; + return src - src_orig; +} + +Bool +XftUtf8Len (XftChar8 *string, + int len, + int *nchar, + int *wchar) +{ + int n; + int clen; + int width = 1; + XftChar32 c; + + n = 0; + while (len) + { + clen = XftUtf8ToUcs4 (string, &c, len); + if (clen <= 0) /* malformed UTF8 string */ + return False; + if (c >= 0x10000) + width = 4; + else if (c >= 0x100) + { + if (width == 1) + width = 2; + } + string += clen; + len -= clen; + n++; + } + *nchar = n; + *wchar = width; + return True; +} diff --git a/xc/lib/Xft/xftxlfd.c b/xc/lib/Xft/xftxlfd.c index 23c2d74bf..cd7b7b7fb 100644 --- a/xc/lib/Xft/xftxlfd.c +++ b/xc/lib/Xft/xftxlfd.c @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft/xftxlfd.c,v 1.5 2000/12/14 23:03:57 keithp Exp $ + * $XFree86: xc/lib/Xft/xftxlfd.c,v 1.7 2000/12/22 05:05:16 tsi Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -208,9 +208,21 @@ XftCoreAddFonts (XftFontSet *set, Display *dpy, Bool ignore_scalable) return ret; } -XFontStruct * +typedef struct _XftCoreFont { + struct _XftCoreFont *next; + int ref; + + XFontStruct *font; + Display *display; + char *xlfd; +} XftCoreFont; + +static XftCoreFont *_XftCoreFonts; + +XFontStruct* XftCoreOpen (Display *dpy, XftPattern *pattern) { + XftCoreFont *cf; char *xlfd; char *xlfd_pixel = 0; char *i, *o; @@ -258,9 +270,66 @@ XftCoreOpen (Display *dpy, XftPattern *pattern) xlfd = xlfd_pixel; } } - ret = XLoadQueryFont (dpy, xlfd); + for (cf = _XftCoreFonts; cf; cf = cf->next) + { + if (cf->display == dpy && + !_XftStrCmpIgnoreCase (cf->xlfd, xlfd)) + { + cf->ref++; + if (_XftFontDebug () & XFT_DBG_REF) + { + printf ("Xlfd \"%s\" matches existing font (%d)\n", + xlfd, cf->ref); + } + break; + } + } + if (!cf) + { + ret = XLoadQueryFont (dpy, xlfd); + if (!ret) + return 0; + + cf = (XftCoreFont *) malloc (sizeof (XftCoreFont) + + strlen (xlfd) + 1); + if (!cf) + { + XFreeFont (dpy, ret); + return 0; + } + + if (_XftFontDebug () & XFT_DBG_REF) + printf ("Xlfd \"%s\" matches new font\n", xlfd); + + cf->next = _XftCoreFonts; + _XftCoreFonts = cf; + cf->ref = 1; + + cf->font = ret; + cf->xlfd = (char *) (cf + 1); + strcpy (cf->xlfd, xlfd); + } if (xlfd_pixel) free (xlfd_pixel); - return ret; + return cf->font; } +void +XftCoreClose (Display *dpy, XFontStruct *font) +{ + XftCoreFont *cf, **prev; + + for (prev = &_XftCoreFonts; (cf = *prev); prev = &cf->next) + { + if (cf->display == dpy && cf->font == font) + { + if (--cf->ref == 0) + { + XFreeFont (dpy, cf->font); + *prev = cf->next; + free (cf); + } + break; + } + } +} diff --git a/xc/lib/Xi/Imakefile b/xc/lib/Xi/Imakefile index 9a8b87332..5e15daab3 100644 --- a/xc/lib/Xi/Imakefile +++ b/xc/lib/Xi/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile,v 1.17 94/03/27 15:54:53 rws Exp $ -XCOMM $XFree86: xc/lib/Xi/Imakefile,v 1.3 1998/12/20 22:18:56 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:45:53 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xi/Imakefile,v 1.4 2001/01/17 19:42:47 dawes Exp $ + #define DoNormalLib NormalLibXi #define DoSharedLib SharedLibXi #define DoExtraLib SharedLibXi diff --git a/xc/lib/Xi/XAllowDv.c b/xc/lib/Xi/XAllowDv.c index 35aebc859..c5a9e38c2 100644 --- a/xc/lib/Xi/XAllowDv.c +++ b/xc/lib/Xi/XAllowDv.c @@ -1,4 +1,4 @@ -/* $TOG: XAllowDv.c /main/6 1998/02/06 15:01:54 kaleb $ */ +/* $Xorg: XAllowDv.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XAllowDv.c,v 3.1 1998/10/03 09:06:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XAllowDv.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XChgDCtl.c b/xc/lib/Xi/XChgDCtl.c index ba56e68bb..9b088d7c7 100644 --- a/xc/lib/Xi/XChgDCtl.c +++ b/xc/lib/Xi/XChgDCtl.c @@ -1,4 +1,4 @@ -/* $TOG: XChgDCtl.c /main/5 1998/02/06 15:02:00 kaleb $ */ +/* $Xorg: XChgDCtl.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XChgDCtl.c,v 3.1 1998/10/03 09:06:04 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XChgDCtl.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XChgFCtl.c b/xc/lib/Xi/XChgFCtl.c index d81e3ecb3..622f9e2c8 100644 --- a/xc/lib/Xi/XChgFCtl.c +++ b/xc/lib/Xi/XChgFCtl.c @@ -1,4 +1,4 @@ -/* $TOG: XChgFCtl.c /main/8 1998/02/06 15:02:05 kaleb $ */ +/* $Xorg: XChgFCtl.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XChgFCtl.c,v 3.1 1998/10/03 09:06:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XChgFCtl.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XChgKMap.c b/xc/lib/Xi/XChgKMap.c index a10067172..dd77b1078 100644 --- a/xc/lib/Xi/XChgKMap.c +++ b/xc/lib/Xi/XChgKMap.c @@ -1,4 +1,4 @@ -/* $TOG: XChgKMap.c /main/5 1998/02/06 15:02:16 kaleb $ */ +/* $Xorg: XChgKMap.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XChgKMap.c,v 3.1 1998/10/03 09:06:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XChgKMap.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XChgKbd.c b/xc/lib/Xi/XChgKbd.c index f7c2ca693..c8fe980c0 100644 --- a/xc/lib/Xi/XChgKbd.c +++ b/xc/lib/Xi/XChgKbd.c @@ -1,4 +1,4 @@ -/* $TOG: XChgKbd.c /main/7 1998/02/06 15:02:11 kaleb $ */ +/* $Xorg: XChgKbd.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XChgKbd.c,v 3.1 1998/10/03 09:06:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XChgKbd.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XChgPnt.c b/xc/lib/Xi/XChgPnt.c index 59a245c06..e5d8c7c1b 100644 --- a/xc/lib/Xi/XChgPnt.c +++ b/xc/lib/Xi/XChgPnt.c @@ -1,4 +1,4 @@ -/* $TOG: XChgPnt.c /main/7 1998/02/06 15:02:22 kaleb $ */ +/* $Xorg: XChgPnt.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XChgPnt.c,v 3.1 1998/10/03 09:06:05 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XChgPnt.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XChgProp.c b/xc/lib/Xi/XChgProp.c index 8ad8ccaa6..fab8bb861 100644 --- a/xc/lib/Xi/XChgProp.c +++ b/xc/lib/Xi/XChgProp.c @@ -1,4 +1,4 @@ -/* $TOG: XChgProp.c /main/7 1998/02/06 15:02:27 kaleb $ */ +/* $Xorg: XChgProp.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XChgProp.c,v 3.1 1998/10/03 09:06:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XChgProp.c,v 3.2 2001/01/17 19:42:47 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XCloseDev.c b/xc/lib/Xi/XCloseDev.c index f117dc3c8..e9f59ed18 100644 --- a/xc/lib/Xi/XCloseDev.c +++ b/xc/lib/Xi/XCloseDev.c @@ -1,4 +1,4 @@ -/* $TOG: XCloseDev.c /main/6 1998/02/06 15:02:33 kaleb $ */ +/* $Xorg: XCloseDev.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XCloseDev.c,v 3.1 1998/10/03 09:06:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XCloseDev.c,v 3.2 2001/01/17 19:42:48 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XDevBell.c b/xc/lib/Xi/XDevBell.c index 150bf27fc..4dbace3ca 100644 --- a/xc/lib/Xi/XDevBell.c +++ b/xc/lib/Xi/XDevBell.c @@ -1,4 +1,4 @@ -/* $TOG: XDevBell.c /main/6 1998/02/06 15:02:38 kaleb $ */ +/* $Xorg: XDevBell.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XDevBell.c,v 3.1 1998/10/03 09:06:06 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XDevBell.c,v 3.2 2001/01/17 19:42:48 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XExtInt.c b/xc/lib/Xi/XExtInt.c index 7dd80bc1e..94cb5d65e 100644 --- a/xc/lib/Xi/XExtInt.c +++ b/xc/lib/Xi/XExtInt.c @@ -1,4 +1,4 @@ -/* $TOG: XExtInt.c /main/34 1998/04/30 15:52:09 kaleb $ */ +/* $Xorg: XExtInt.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XExtInt.c,v 3.3 1998/10/03 09:06:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XExtInt.c,v 3.4 2001/01/17 19:42:48 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XExtToWire.c b/xc/lib/Xi/XExtToWire.c index 4c7909e86..9cac7b632 100644 --- a/xc/lib/Xi/XExtToWire.c +++ b/xc/lib/Xi/XExtToWire.c @@ -1,4 +1,4 @@ -/* $TOG: XExtToWire.c /main/17 1998/02/06 15:02:48 kaleb $ */ +/* $Xorg: XExtToWire.c,v 1.3 2000/08/17 19:45:54 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XExtToWire.c,v 3.1 1998/10/03 09:06:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XExtToWire.c,v 3.2 2001/01/17 19:42:49 dawes Exp $ */ /**************************************************************** * diff --git a/xc/lib/Xi/XFreeLst.c b/xc/lib/Xi/XFreeLst.c index e28055df9..51e9a537d 100644 --- a/xc/lib/Xi/XFreeLst.c +++ b/xc/lib/Xi/XFreeLst.c @@ -1,4 +1,4 @@ -/* $TOG: XFreeLst.c /main/3 1998/02/06 15:02:54 kaleb $ */ +/* $Xorg: XFreeLst.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ diff --git a/xc/lib/Xi/XGMotion.c b/xc/lib/Xi/XGMotion.c index 14ce0cd5b..27cedf6c0 100644 --- a/xc/lib/Xi/XGMotion.c +++ b/xc/lib/Xi/XGMotion.c @@ -1,4 +1,4 @@ -/* $TOG: XGMotion.c /main/15 1998/04/30 15:52:14 kaleb $ */ +/* $Xorg: XGMotion.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGMotion.c,v 3.1 1998/10/03 09:06:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGMotion.c,v 3.2 2001/01/17 19:42:49 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetBMap.c b/xc/lib/Xi/XGetBMap.c index 6ee5a2d16..50bd0c1a0 100644 --- a/xc/lib/Xi/XGetBMap.c +++ b/xc/lib/Xi/XGetBMap.c @@ -1,4 +1,4 @@ -/* $TOG: XGetBMap.c /main/6 1998/02/06 15:03:00 kaleb $ */ +/* $Xorg: XGetBMap.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetBMap.c,v 3.1 1998/10/03 09:06:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetBMap.c,v 3.2 2001/01/17 19:42:49 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetDCtl.c b/xc/lib/Xi/XGetDCtl.c index d329a6fc7..fac00f323 100644 --- a/xc/lib/Xi/XGetDCtl.c +++ b/xc/lib/Xi/XGetDCtl.c @@ -1,4 +1,4 @@ -/* $TOG: XGetDCtl.c /main/6 1998/04/30 15:52:19 kaleb $ */ +/* $Xorg: XGetDCtl.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetDCtl.c,v 3.1 1998/10/03 09:06:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetDCtl.c,v 3.2 2001/01/17 19:42:49 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetFCtl.c b/xc/lib/Xi/XGetFCtl.c index 4f3e671eb..9b2f75bdd 100644 --- a/xc/lib/Xi/XGetFCtl.c +++ b/xc/lib/Xi/XGetFCtl.c @@ -1,4 +1,4 @@ -/* $TOG: XGetFCtl.c /main/15 1998/04/30 15:52:23 kaleb $ */ +/* $Xorg: XGetFCtl.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetFCtl.c,v 3.1 1998/10/03 09:06:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetFCtl.c,v 3.2 2001/01/17 19:42:49 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetKMap.c b/xc/lib/Xi/XGetKMap.c index f3a4d2e26..93d9cdd20 100644 --- a/xc/lib/Xi/XGetKMap.c +++ b/xc/lib/Xi/XGetKMap.c @@ -1,4 +1,4 @@ -/* $TOG: XGetKMap.c /main/7 1998/02/06 15:03:16 kaleb $ */ +/* $Xorg: XGetKMap.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetKMap.c,v 3.1 1998/10/03 09:06:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetKMap.c,v 3.2 2001/01/17 19:42:49 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetMMap.c b/xc/lib/Xi/XGetMMap.c index 69e151743..1f4c1fadc 100644 --- a/xc/lib/Xi/XGetMMap.c +++ b/xc/lib/Xi/XGetMMap.c @@ -1,4 +1,4 @@ -/* $TOG: XGetMMap.c /main/6 1998/02/06 15:03:21 kaleb $ */ +/* $Xorg: XGetMMap.c,v 1.3 2000/08/17 19:45:55 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetMMap.c,v 3.1 1998/10/03 09:06:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetMMap.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetProp.c b/xc/lib/Xi/XGetProp.c index 051e1d92d..7a584d051 100644 --- a/xc/lib/Xi/XGetProp.c +++ b/xc/lib/Xi/XGetProp.c @@ -1,4 +1,4 @@ -/* $TOG: XGetProp.c /main/9 1998/02/06 15:03:26 kaleb $ */ +/* $Xorg: XGetProp.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetProp.c,v 3.1 1998/10/03 09:06:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetProp.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGetVers.c b/xc/lib/Xi/XGetVers.c index abaa5785c..b9180b128 100644 --- a/xc/lib/Xi/XGetVers.c +++ b/xc/lib/Xi/XGetVers.c @@ -1,4 +1,4 @@ -/* $TOG: XGetVers.c /main/8 1998/02/06 15:03:32 kaleb $ */ +/* $Xorg: XGetVers.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGetVers.c,v 3.1 1998/10/03 09:06:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGetVers.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGrDvBut.c b/xc/lib/Xi/XGrDvBut.c index fedeed09a..caa8cbb39 100644 --- a/xc/lib/Xi/XGrDvBut.c +++ b/xc/lib/Xi/XGrDvBut.c @@ -1,4 +1,4 @@ -/* $TOG: XGrDvBut.c /main/8 1998/02/06 15:03:55 kaleb $ */ +/* $Xorg: XGrDvBut.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGrDvBut.c,v 3.2 1998/10/03 09:06:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGrDvBut.c,v 3.3 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGrDvKey.c b/xc/lib/Xi/XGrDvKey.c index e24323fc7..cdd6f0240 100644 --- a/xc/lib/Xi/XGrDvKey.c +++ b/xc/lib/Xi/XGrDvKey.c @@ -1,4 +1,4 @@ -/* $TOG: XGrDvKey.c /main/9 1998/02/06 15:04:00 kaleb $ */ +/* $Xorg: XGrDvKey.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGrDvKey.c,v 3.1 1998/10/03 09:06:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGrDvKey.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGrabDev.c b/xc/lib/Xi/XGrabDev.c index beb363a6e..074827daf 100644 --- a/xc/lib/Xi/XGrabDev.c +++ b/xc/lib/Xi/XGrabDev.c @@ -1,4 +1,4 @@ -/* $TOG: XGrabDev.c /main/7 1998/02/06 15:03:50 kaleb $ */ +/* $Xorg: XGrabDev.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGrabDev.c,v 3.1 1998/10/03 09:06:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGrabDev.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGtFocus.c b/xc/lib/Xi/XGtFocus.c index 70d91854f..372fa6729 100644 --- a/xc/lib/Xi/XGtFocus.c +++ b/xc/lib/Xi/XGtFocus.c @@ -1,4 +1,4 @@ -/* $TOG: XGtFocus.c /main/6 1998/02/06 15:04:06 kaleb $ */ +/* $Xorg: XGtFocus.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGtFocus.c,v 3.1 1998/10/03 09:06:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGtFocus.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XGtSelect.c b/xc/lib/Xi/XGtSelect.c index 4ea0cf068..9d70323c7 100644 --- a/xc/lib/Xi/XGtSelect.c +++ b/xc/lib/Xi/XGtSelect.c @@ -1,4 +1,4 @@ -/* $TOG: XGtSelect.c /main/11 1998/02/06 15:04:11 kaleb $ */ +/* $Xorg: XGtSelect.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XGtSelect.c,v 3.1 1998/10/03 09:06:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XGtSelect.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XListDev.c b/xc/lib/Xi/XListDev.c index 545a38ef6..81030a848 100644 --- a/xc/lib/Xi/XListDev.c +++ b/xc/lib/Xi/XListDev.c @@ -1,4 +1,4 @@ -/* $TOG: XListDev.c /main/22 1998/04/30 15:52:28 kaleb $ */ +/* $Xorg: XListDev.c,v 1.4 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XListDev.c,v 3.1 1998/10/03 09:06:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XListDev.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * @@ -92,7 +92,7 @@ XDeviceInfo return (XDeviceInfo *) NULL; } - if (*ndevices = rep.ndevices) /* at least 1 input device */ + if ((*ndevices = rep.ndevices)) /* at least 1 input device */ { size = *ndevices * sizeof (XDeviceInfo); rlen = rep.length << 2; /* multiply length by 4 */ diff --git a/xc/lib/Xi/XOpenDev.c b/xc/lib/Xi/XOpenDev.c index 3d0bc0daa..fe49e2d11 100644 --- a/xc/lib/Xi/XOpenDev.c +++ b/xc/lib/Xi/XOpenDev.c @@ -1,4 +1,4 @@ -/* $TOG: XOpenDev.c /main/11 1998/02/06 15:04:22 kaleb $ */ +/* $Xorg: XOpenDev.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XOpenDev.c,v 3.1 1998/10/03 09:06:11 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XOpenDev.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XQueryDv.c b/xc/lib/Xi/XQueryDv.c index 30f955df3..f11f53db7 100644 --- a/xc/lib/Xi/XQueryDv.c +++ b/xc/lib/Xi/XQueryDv.c @@ -1,4 +1,4 @@ -/* $TOG: XQueryDv.c /main/13 1998/04/30 15:52:32 kaleb $ */ +/* $Xorg: XQueryDv.c,v 1.3 2000/08/17 19:45:56 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XQueryDv.c,v 3.1 1998/10/03 09:06:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XQueryDv.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XSelect.c b/xc/lib/Xi/XSelect.c index 8eed2c7cd..8342a8b1d 100644 --- a/xc/lib/Xi/XSelect.c +++ b/xc/lib/Xi/XSelect.c @@ -1,4 +1,4 @@ -/* $TOG: XSelect.c /main/6 1998/02/06 15:04:33 kaleb $ */ +/* $Xorg: XSelect.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XSelect.c,v 3.1 1998/10/03 09:06:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XSelect.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XSetBMap.c b/xc/lib/Xi/XSetBMap.c index c8f581950..5e873cc27 100644 --- a/xc/lib/Xi/XSetBMap.c +++ b/xc/lib/Xi/XSetBMap.c @@ -1,4 +1,4 @@ -/* $TOG: XSetBMap.c /main/5 1998/02/06 15:04:40 kaleb $ */ +/* $Xorg: XSetBMap.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XSetBMap.c,v 3.1 1998/10/03 09:06:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XSetBMap.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XSetDVal.c b/xc/lib/Xi/XSetDVal.c index 768636301..0293b5856 100644 --- a/xc/lib/Xi/XSetDVal.c +++ b/xc/lib/Xi/XSetDVal.c @@ -1,4 +1,4 @@ -/* $TOG: XSetDVal.c /main/4 1998/02/06 15:04:46 kaleb $ */ +/* $Xorg: XSetDVal.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XSetDVal.c,v 3.1 1998/10/03 09:06:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XSetDVal.c,v 3.2 2001/01/17 19:42:50 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XSetMMap.c b/xc/lib/Xi/XSetMMap.c index 192ad6392..789ac4c72 100644 --- a/xc/lib/Xi/XSetMMap.c +++ b/xc/lib/Xi/XSetMMap.c @@ -1,4 +1,4 @@ -/* $TOG: XSetMMap.c /main/7 1998/02/06 15:04:51 kaleb $ */ +/* $Xorg: XSetMMap.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XSetMMap.c,v 3.1 1998/10/03 09:06:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XSetMMap.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XSetMode.c b/xc/lib/Xi/XSetMode.c index 8cd484d24..65fe7820d 100644 --- a/xc/lib/Xi/XSetMode.c +++ b/xc/lib/Xi/XSetMode.c @@ -1,4 +1,4 @@ -/* $TOG: XSetMode.c /main/8 1998/02/06 15:04:57 kaleb $ */ +/* $Xorg: XSetMode.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XSetMode.c,v 3.1 1998/10/03 09:06:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XSetMode.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XSndExEv.c b/xc/lib/Xi/XSndExEv.c index a1ee390e2..ba1173cde 100644 --- a/xc/lib/Xi/XSndExEv.c +++ b/xc/lib/Xi/XSndExEv.c @@ -1,4 +1,4 @@ -/* $TOG: XSndExEv.c /main/8 1998/02/06 15:05:03 kaleb $ */ +/* $Xorg: XSndExEv.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XSndExEv.c,v 3.1 1998/10/03 09:06:14 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XSndExEv.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XStFocus.c b/xc/lib/Xi/XStFocus.c index 166df78bf..0ecdb3c71 100644 --- a/xc/lib/Xi/XStFocus.c +++ b/xc/lib/Xi/XStFocus.c @@ -1,4 +1,4 @@ -/* $TOG: XStFocus.c /main/4 1998/02/06 15:05:09 kaleb $ */ +/* $Xorg: XStFocus.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XStFocus.c,v 3.1 1998/10/03 09:06:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XStFocus.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XUngrDev.c b/xc/lib/Xi/XUngrDev.c index 4d39c3911..cb1c47daa 100644 --- a/xc/lib/Xi/XUngrDev.c +++ b/xc/lib/Xi/XUngrDev.c @@ -1,4 +1,4 @@ -/* $TOG: XUngrDev.c /main/5 1998/02/06 15:05:14 kaleb $ */ +/* $Xorg: XUngrDev.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XUngrDev.c,v 3.1 1998/10/03 09:06:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XUngrDev.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XUngrDvB.c b/xc/lib/Xi/XUngrDvB.c index a6536474d..aa469bf25 100644 --- a/xc/lib/Xi/XUngrDvB.c +++ b/xc/lib/Xi/XUngrDvB.c @@ -1,4 +1,4 @@ -/* $TOG: XUngrDvB.c /main/7 1998/02/06 15:05:19 kaleb $ */ +/* $Xorg: XUngrDvB.c,v 1.3 2000/08/17 19:45:57 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XUngrDvB.c,v 3.1 1998/10/03 09:06:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XUngrDvB.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/XUngrDvK.c b/xc/lib/Xi/XUngrDvK.c index 4ba0ee976..ac8b4fe9e 100644 --- a/xc/lib/Xi/XUngrDvK.c +++ b/xc/lib/Xi/XUngrDvK.c @@ -1,4 +1,4 @@ -/* $TOG: XUngrDvK.c /main/7 1998/02/06 15:05:24 kaleb $ */ +/* $Xorg: XUngrDvK.c,v 1.3 2000/08/17 19:45:58 cpqbld Exp $ */ /************************************************************ @@ -41,7 +41,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/Xi/XUngrDvK.c,v 3.1 1998/10/03 09:06:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xi/XUngrDvK.c,v 3.2 2001/01/17 19:42:51 dawes Exp $ */ /*********************************************************************** * diff --git a/xc/lib/Xi/Xi-def.cpp b/xc/lib/Xi/Xi-def.cpp index b9ef6ba73..62760066d 100644 --- a/xc/lib/Xi/Xi-def.cpp +++ b/xc/lib/Xi/Xi-def.cpp @@ -46,4 +46,4 @@ EXPORTS _xibadevent _xibadmode _xidevicebusy -/* $XConsortium: Xi-def.cpp /main/3 1996/05/07 13:15:35 kaleb $ */ +/* $Xorg: Xi-def.cpp,v 1.3 2000/08/17 19:45:58 cpqbld Exp $ */ diff --git a/xc/lib/Xmu/AllCmap.c b/xc/lib/Xmu/AllCmap.c index f0e3dad09..083fd572f 100644 --- a/xc/lib/Xmu/AllCmap.c +++ b/xc/lib/Xmu/AllCmap.c @@ -1,4 +1,4 @@ -/* $TOG: AllCmap.c /main/8 1998/02/06 15:40:57 kaleb $ */ +/* $Xorg: AllCmap.c,v 1.3 2000/08/17 19:45:58 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/AllCmap.c,v 1.6 1999/03/21 07:34:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/AllCmap.c,v 1.7 2001/01/17 19:42:53 dawes Exp $ */ #include <stdio.h> #include <X11/Xlib.h> diff --git a/xc/lib/Xmu/Atoms.c b/xc/lib/Xmu/Atoms.c index 476963c99..941bcefb8 100644 --- a/xc/lib/Xmu/Atoms.c +++ b/xc/lib/Xmu/Atoms.c @@ -1,4 +1,4 @@ -/* $TOG: Atoms.c /main/20 1998/02/06 15:41:04 kaleb $ */ +/* $Xorg: Atoms.c,v 1.3 2000/08/17 19:45:58 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Atoms.c,v 3.5 2000/11/28 18:50:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Atoms.c,v 3.6 2001/01/17 19:42:53 dawes Exp $ */ /* * This file contains routines to cache atoms, avoiding multiple diff --git a/xc/lib/Xmu/Atoms.h b/xc/lib/Xmu/Atoms.h index ad90d40cf..d27087058 100644 --- a/xc/lib/Xmu/Atoms.h +++ b/xc/lib/Xmu/Atoms.h @@ -1,4 +1,4 @@ -/* $TOG: Atoms.h /main/10 1998/02/06 15:41:11 kaleb $ */ +/* $Xorg: Atoms.h,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Atoms.h,v 1.5 2000/11/28 18:50:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Atoms.h,v 1.6 2001/01/17 19:42:53 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities diff --git a/xc/lib/Xmu/CharSet.h b/xc/lib/Xmu/CharSet.h index 732406a9f..8595a9bab 100644 --- a/xc/lib/Xmu/CharSet.h +++ b/xc/lib/Xmu/CharSet.h @@ -1,4 +1,4 @@ -/* $TOG: CharSet.h /main/6 1998/02/06 15:41:16 kaleb $ */ +/* $Xorg: CharSet.h,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CharSet.h,v 1.6 1998/10/03 09:06:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CharSet.h,v 1.7 2001/01/17 19:42:53 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities diff --git a/xc/lib/Xmu/ClientWin.c b/xc/lib/Xmu/ClientWin.c index 4741e224b..f3fb130f6 100644 --- a/xc/lib/Xmu/ClientWin.c +++ b/xc/lib/Xmu/ClientWin.c @@ -1,4 +1,4 @@ -/* $TOG: ClientWin.c /main/5 1998/02/06 15:41:21 kaleb $ */ +/* $Xorg: ClientWin.c,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/ClientWin.c,v 1.5 1999/03/21 07:34:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/ClientWin.c,v 1.6 2001/01/17 19:42:53 dawes Exp $ */ #include <X11/Xlib.h> #include <X11/Xatom.h> diff --git a/xc/lib/Xmu/CloseHook.c b/xc/lib/Xmu/CloseHook.c index 68aeb333c..d331b9e65 100644 --- a/xc/lib/Xmu/CloseHook.c +++ b/xc/lib/Xmu/CloseHook.c @@ -1,4 +1,4 @@ -/* $TOG: CloseHook.c /main/10 1998/02/06 15:41:26 kaleb $ */ +/* $Xorg: CloseHook.c,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CloseHook.c,v 3.3 1998/10/03 09:06:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CloseHook.c,v 3.4 2001/01/17 19:42:53 dawes Exp $ */ /* * CloseDisplayHook package - provide callback on XCloseDisplay diff --git a/xc/lib/Xmu/CloseHook.h b/xc/lib/Xmu/CloseHook.h index 7684e9918..acd5bd6f6 100644 --- a/xc/lib/Xmu/CloseHook.h +++ b/xc/lib/Xmu/CloseHook.h @@ -1,4 +1,4 @@ -/* $TOG: CloseHook.h /main/8 1998/02/06 15:41:32 kaleb $ */ +/* $Xorg: CloseHook.h,v 1.4 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CloseHook.h,v 1.5 1998/10/03 09:06:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CloseHook.h,v 1.6 2001/01/17 19:42:53 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities @@ -31,6 +31,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _XMU_CLOSEHOOK_H_ #define _XMU_CLOSEHOOK_H_ +#include <X11/Xlib.h> #include <X11/Xfuncproto.h> #include <X11/Xlibint.h> diff --git a/xc/lib/Xmu/CmapAlloc.c b/xc/lib/Xmu/CmapAlloc.c index dab0b770b..162314e6f 100644 --- a/xc/lib/Xmu/CmapAlloc.c +++ b/xc/lib/Xmu/CmapAlloc.c @@ -1,4 +1,4 @@ -/* $TOG: CmapAlloc.c /main/10 1998/02/06 15:41:38 kaleb $ */ +/* $Xorg: CmapAlloc.c,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CmapAlloc.c,v 1.5 1998/10/03 09:06:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CmapAlloc.c,v 1.6 2001/01/17 19:42:53 dawes Exp $ */ /* * Author: Donna Converse, MIT X Consortium diff --git a/xc/lib/Xmu/Converters.h b/xc/lib/Xmu/Converters.h index 3604ad3c6..9dcbcaa67 100644 --- a/xc/lib/Xmu/Converters.h +++ b/xc/lib/Xmu/Converters.h @@ -1,4 +1,4 @@ -/* $TOG: Converters.h /main/17 1998/02/06 15:41:45 kaleb $ */ +/* $Xorg: Converters.h,v 1.4 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Converters.h,v 1.4 1998/10/03 09:06:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Converters.h,v 1.5 2001/01/17 19:42:53 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities @@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _XMU_STRCONVERT_H_ #define _XMU_STRCONVERT_H_ +#include <X11/Intrinsic.h> #include <X11/Xfuncproto.h> _XFUNCPROTOBEGIN diff --git a/xc/lib/Xmu/CrCmap.c b/xc/lib/Xmu/CrCmap.c index bd571018a..82d70cb57 100644 --- a/xc/lib/Xmu/CrCmap.c +++ b/xc/lib/Xmu/CrCmap.c @@ -1,4 +1,4 @@ -/* $TOG: CrCmap.c /main/7 1998/02/06 15:41:49 kaleb $ */ +/* $Xorg: CrCmap.c,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CrCmap.c,v 3.5 1999/03/21 07:34:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CrCmap.c,v 3.6 2001/01/17 19:42:53 dawes Exp $ */ /* * Author: Donna Converse, MIT X Consortium diff --git a/xc/lib/Xmu/CrPixFBit.c b/xc/lib/Xmu/CrPixFBit.c index a5121f389..058f306ae 100644 --- a/xc/lib/Xmu/CrPixFBit.c +++ b/xc/lib/Xmu/CrPixFBit.c @@ -1,4 +1,4 @@ -/* $TOG: CrPixFBit.c /main/5 1998/02/06 15:41:55 kaleb $ */ +/* $Xorg: CrPixFBit.c,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CrPixFBit.c,v 1.5 1998/10/03 09:06:23 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CrPixFBit.c,v 1.6 2001/01/17 19:42:53 dawes Exp $ */ /* * This file contains miscellaneous utility routines and is not part of the diff --git a/xc/lib/Xmu/CurUtil.h b/xc/lib/Xmu/CurUtil.h index b8291ce18..3963222e4 100644 --- a/xc/lib/Xmu/CurUtil.h +++ b/xc/lib/Xmu/CurUtil.h @@ -1,4 +1,4 @@ -/* $TOG: CurUtil.h /main/5 1998/02/06 15:42:08 kaleb $ */ +/* $Xorg: CurUtil.h,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CurUtil.h,v 1.4 1998/10/03 09:06:23 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CurUtil.h,v 1.5 2001/01/17 19:42:54 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities diff --git a/xc/lib/Xmu/CursorName.c b/xc/lib/Xmu/CursorName.c index 3724b0f95..67494fd34 100644 --- a/xc/lib/Xmu/CursorName.c +++ b/xc/lib/Xmu/CursorName.c @@ -1,4 +1,4 @@ -/* $TOG: CursorName.c /main/10 1998/02/06 15:42:01 kaleb $ */ +/* $Xorg: CursorName.c,v 1.3 2000/08/17 19:45:59 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CursorName.c,v 3.4 1999/03/21 07:34:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CursorName.c,v 3.5 2001/01/17 19:42:54 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/Xmu/CharSet.h> diff --git a/xc/lib/Xmu/CvtCache.c b/xc/lib/Xmu/CvtCache.c index 15206230b..d363fedd9 100644 --- a/xc/lib/Xmu/CvtCache.c +++ b/xc/lib/Xmu/CvtCache.c @@ -1,4 +1,4 @@ -/* $TOG: CvtCache.c /main/9 1998/02/06 15:42:13 kaleb $ */ +/* $Xorg: CvtCache.c,v 1.4 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CvtCache.c,v 3.3 1998/10/03 09:06:24 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CvtCache.c,v 3.4 2001/01/17 19:42:54 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/CvtCache.h b/xc/lib/Xmu/CvtCache.h index e239beee2..7d3fa50e2 100644 --- a/xc/lib/Xmu/CvtCache.h +++ b/xc/lib/Xmu/CvtCache.h @@ -1,4 +1,4 @@ -/* $TOG: CvtCache.h /main/8 1998/02/06 15:42:17 kaleb $ */ +/* $Xorg: CvtCache.h,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CvtCache.h,v 1.5 1999/03/21 07:34:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CvtCache.h,v 1.6 2001/01/17 19:42:54 dawes Exp $ */ /* * Public Interfaces diff --git a/xc/lib/Xmu/CvtStdSel.c b/xc/lib/Xmu/CvtStdSel.c index 2b05340f2..d440464d4 100644 --- a/xc/lib/Xmu/CvtStdSel.c +++ b/xc/lib/Xmu/CvtStdSel.c @@ -1,4 +1,4 @@ -/* $TOG: CvtStdSel.c /main/43 1998/02/06 15:42:23 kaleb $ */ +/* $Xorg: CvtStdSel.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CvtStdSel.c,v 3.14 2000/11/06 19:24:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CvtStdSel.c,v 3.15 2001/01/17 19:42:54 dawes Exp $ */ /* * This file contains routines to handle common selection targets. diff --git a/xc/lib/Xmu/DefErrMsg.c b/xc/lib/Xmu/DefErrMsg.c index 1ff23ebdf..659a27c65 100644 --- a/xc/lib/Xmu/DefErrMsg.c +++ b/xc/lib/Xmu/DefErrMsg.c @@ -1,4 +1,4 @@ -/* $TOG: DefErrMsg.c /main/11 1998/02/06 15:42:28 kaleb $ */ +/* $Xorg: DefErrMsg.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/DefErrMsg.c,v 1.6 1998/10/03 09:06:25 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/DefErrMsg.c,v 1.7 2001/01/17 19:42:54 dawes Exp $ */ #include <stdio.h> #define NEED_EVENTS diff --git a/xc/lib/Xmu/DelCmap.c b/xc/lib/Xmu/DelCmap.c index f3432c056..d478f6551 100644 --- a/xc/lib/Xmu/DelCmap.c +++ b/xc/lib/Xmu/DelCmap.c @@ -1,4 +1,4 @@ -/* $TOG: DelCmap.c /main/3 1998/02/06 15:42:34 kaleb $ */ +/* $Xorg: DelCmap.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/DelCmap.c,v 1.5 1998/10/03 09:06:25 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/DelCmap.c,v 1.6 2001/01/17 19:42:54 dawes Exp $ */ /* * Author: Donna Converse, MIT X Consortium diff --git a/xc/lib/Xmu/DisplayQue.c b/xc/lib/Xmu/DisplayQue.c index 80bf56a10..5d8f13cad 100644 --- a/xc/lib/Xmu/DisplayQue.c +++ b/xc/lib/Xmu/DisplayQue.c @@ -1,4 +1,4 @@ -/* $TOG: DisplayQue.c /main/7 1998/02/06 15:42:40 kaleb $ */ +/* $Xorg: DisplayQue.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/DisplayQue.c,v 3.2 1998/10/03 09:06:25 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/DisplayQue.c,v 3.3 2001/01/17 19:42:54 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/DisplayQue.h b/xc/lib/Xmu/DisplayQue.h index 714e5392d..9760fe68d 100644 --- a/xc/lib/Xmu/DisplayQue.h +++ b/xc/lib/Xmu/DisplayQue.h @@ -1,4 +1,4 @@ -/* $TOG: DisplayQue.h /main/8 1998/02/06 15:42:45 kaleb $ */ +/* $Xorg: DisplayQue.h,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/DisplayQue.h,v 1.4 1998/10/03 09:06:26 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/DisplayQue.h,v 1.5 2001/01/17 19:42:54 dawes Exp $ */ #ifndef _XMU_DISPLAYQUE_H_ #define _XMU_DISPLAYQUE_H_ diff --git a/xc/lib/Xmu/Distinct.c b/xc/lib/Xmu/Distinct.c index 17544107e..800b708f2 100644 --- a/xc/lib/Xmu/Distinct.c +++ b/xc/lib/Xmu/Distinct.c @@ -1,4 +1,4 @@ -/* $TOG: Distinct.c /main/6 1998/02/06 15:42:50 kaleb $ */ +/* $Xorg: Distinct.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Distinct.c,v 3.3 1998/10/03 09:06:26 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Distinct.c,v 3.4 2001/01/17 19:42:54 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/Xmu/DrRndRect.c b/xc/lib/Xmu/DrRndRect.c index 8ac43337e..78c44864d 100644 --- a/xc/lib/Xmu/DrRndRect.c +++ b/xc/lib/Xmu/DrRndRect.c @@ -1,4 +1,4 @@ -/* $TOG: DrRndRect.c /main/5 1998/02/06 15:43:08 kaleb $ */ +/* $Xorg: DrRndRect.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/DrRndRect.c,v 1.5 1998/10/03 09:06:26 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/DrRndRect.c,v 1.6 2001/01/17 19:42:54 dawes Exp $ */ /* * XmuDrawRoundedRectangle, XmuFillRoundedRectangle diff --git a/xc/lib/Xmu/DrawLogo.c b/xc/lib/Xmu/DrawLogo.c index f99c0d258..68a8e3f5b 100644 --- a/xc/lib/Xmu/DrawLogo.c +++ b/xc/lib/Xmu/DrawLogo.c @@ -1,4 +1,4 @@ -/* $TOG: DrawLogo.c /main/6 1998/02/06 15:43:02 kaleb $ */ +/* $Xorg: DrawLogo.c,v 1.3 2000/08/17 19:46:00 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/DrawLogo.c,v 1.6 1998/10/03 09:06:27 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/DrawLogo.c,v 1.7 2001/01/17 19:42:54 dawes Exp $ */ #include <X11/Xlib.h> #include <X11/Xmu/Drawing.h> diff --git a/xc/lib/Xmu/Drawing.h b/xc/lib/Xmu/Drawing.h index 1e5b6837a..ddb00d2cd 100644 --- a/xc/lib/Xmu/Drawing.h +++ b/xc/lib/Xmu/Drawing.h @@ -1,4 +1,4 @@ -/* $TOG: Drawing.h /main/12 1998/02/06 15:42:56 kaleb $ */ +/* $Xorg: Drawing.h,v 1.4 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Drawing.h,v 1.4 1998/10/03 09:06:27 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Drawing.h,v 1.5 2001/01/17 19:42:54 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities @@ -31,6 +31,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _XMU_DRAWING_H_ #define _XMU_DRAWING_H_ +#include <X11/Xlib.h> #include <X11/Xfuncproto.h> #if NeedFunctionPrototypes diff --git a/xc/lib/Xmu/Editres.h b/xc/lib/Xmu/Editres.h index a28cfa013..98460cbf5 100644 --- a/xc/lib/Xmu/Editres.h +++ b/xc/lib/Xmu/Editres.h @@ -1,4 +1,4 @@ -/* $TOG: Editres.h /main/4 1998/02/06 15:43:27 kaleb $ */ +/* $Xorg: Editres.h,v 1.3 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Editres.h,v 1.4 1998/10/03 09:06:27 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Editres.h,v 1.5 2001/01/17 19:42:55 dawes Exp $ */ #include <X11/Xfuncproto.h> diff --git a/xc/lib/Xmu/EditresCom.c b/xc/lib/Xmu/EditresCom.c index 2c5d3d567..1bc025232 100644 --- a/xc/lib/Xmu/EditresCom.c +++ b/xc/lib/Xmu/EditresCom.c @@ -1,4 +1,4 @@ -/* $TOG: EditresCom.c /main/37 1998/06/23 11:50:49 kaleb $ */ +/* $Xorg: EditresCom.c,v 1.3 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/EditresCom.c,v 1.14 2000/10/02 02:32:13 tsi Exp $ */ +/* $XFree86: xc/lib/Xmu/EditresCom.c,v 1.15 2001/01/17 19:42:55 dawes Exp $ */ /* * Author: Chris D. Peterson, Dave Sternlicht, MIT X Consortium diff --git a/xc/lib/Xmu/EditresP.h b/xc/lib/Xmu/EditresP.h index b5c811d59..0f9cb7fad 100644 --- a/xc/lib/Xmu/EditresP.h +++ b/xc/lib/Xmu/EditresP.h @@ -1,4 +1,4 @@ -/* $TOG: EditresP.h /main/14 1998/02/06 15:43:22 kaleb $ */ +/* $Xorg: EditresP.h,v 1.3 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/EditresP.h,v 1.4 1998/10/03 09:06:28 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/EditresP.h,v 1.5 2001/01/17 19:42:55 dawes Exp $ */ /* * Author: Chris D. Peterson, MIT X Consortium diff --git a/xc/lib/Xmu/Error.h b/xc/lib/Xmu/Error.h index d857ad498..1ae219a02 100644 --- a/xc/lib/Xmu/Error.h +++ b/xc/lib/Xmu/Error.h @@ -1,4 +1,4 @@ -/* $TOG: Error.h /main/6 1998/02/06 15:43:33 kaleb $ */ +/* $Xorg: Error.h,v 1.4 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Error.h,v 1.4 1998/10/03 09:06:28 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Error.h,v 1.5 2001/01/17 19:42:55 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities @@ -31,6 +31,8 @@ in this Software without prior written authorization from The Open Group. #ifndef _XMU_ERROR_H_ #define _XMU_ERROR_H_ +#include <stdio.h> +#include <X11/Xlib.h> #include <X11/Xfuncproto.h> _XFUNCPROTOBEGIN diff --git a/xc/lib/Xmu/ExtAgent.c b/xc/lib/Xmu/ExtAgent.c index ce3f9568e..0af014ae6 100644 --- a/xc/lib/Xmu/ExtAgent.c +++ b/xc/lib/Xmu/ExtAgent.c @@ -1,4 +1,4 @@ -/* $TOG: ExtAgent.c /main/2 1998/02/06 15:43:39 kaleb $ */ +/* $Xorg: ExtAgent.c,v 1.3 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/ExtAgent.c,v 1.5 1998/10/03 09:06:29 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/ExtAgent.c,v 1.6 2001/01/17 19:42:55 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/Xmu/ExtAgent.h> diff --git a/xc/lib/Xmu/ExtAgent.h b/xc/lib/Xmu/ExtAgent.h index 3e7767581..28356b34a 100644 --- a/xc/lib/Xmu/ExtAgent.h +++ b/xc/lib/Xmu/ExtAgent.h @@ -1,4 +1,4 @@ -/* $TOG: ExtAgent.h /main/2 1998/02/06 15:43:44 kaleb $ */ +/* $Xorg: ExtAgent.h,v 1.4 2000/08/17 19:46:01 cpqbld Exp $ */ /* @@ -21,8 +21,9 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/ExtAgent.h,v 1.4 1998/10/03 09:06:29 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/ExtAgent.h,v 1.5 2001/01/17 19:42:55 dawes Exp $ */ +#include <X11/Intrinsic.h> #include <X11/Xfuncproto.h> _XFUNCPROTOBEGIN diff --git a/xc/lib/Xmu/FToCback.c b/xc/lib/Xmu/FToCback.c index 2db2db1b8..6d42bbd14 100644 --- a/xc/lib/Xmu/FToCback.c +++ b/xc/lib/Xmu/FToCback.c @@ -1,4 +1,4 @@ -/* $TOG: FToCback.c /main/6 1998/02/06 15:43:49 kaleb $ */ +/* $Xorg: FToCback.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/FToCback.c,v 1.5 1998/10/03 09:06:29 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/FToCback.c,v 1.6 2001/01/17 19:42:55 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/Xmu/Converters.h> diff --git a/xc/lib/Xmu/GetHost.c b/xc/lib/Xmu/GetHost.c index f129669fe..6bf7536f0 100644 --- a/xc/lib/Xmu/GetHost.c +++ b/xc/lib/Xmu/GetHost.c @@ -1,4 +1,4 @@ -/* $TOG: GetHost.c /main/9 1998/02/06 15:43:54 kaleb $ */ +/* $Xorg: GetHost.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/GetHost.c,v 3.5 1998/10/03 09:06:29 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/GetHost.c,v 3.6 2001/01/17 19:42:55 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/GrayPixmap.c b/xc/lib/Xmu/GrayPixmap.c index e6d0c081f..f404c629f 100644 --- a/xc/lib/Xmu/GrayPixmap.c +++ b/xc/lib/Xmu/GrayPixmap.c @@ -1,4 +1,4 @@ -/* $TOG: GrayPixmap.c /main/9 1998/02/06 15:43:59 kaleb $ */ +/* $Xorg: GrayPixmap.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xmu/GrayPixmap.c,v 1.4 1998/10/03 09:06:30 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/GrayPixmap.c,v 1.5 2001/01/17 19:42:55 dawes Exp $ */ #include <stdio.h> #include <X11/Intrinsic.h> diff --git a/xc/lib/Xmu/Imakefile b/xc/lib/Xmu/Imakefile index af1d83bb6..469eaa6ac 100644 --- a/xc/lib/Xmu/Imakefile +++ b/xc/lib/Xmu/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/82 1996/09/28 16:43:59 rws $ -XCOMM $XFree86: xc/lib/Xmu/Imakefile,v 1.7 1999/04/28 15:04:50 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xmu/Imakefile,v 1.8 2001/01/17 19:42:55 dawes Exp $ #define DoNormalLib NormalLibXmu #define DoSharedLib SharedLibXmu diff --git a/xc/lib/Xmu/Initer.c b/xc/lib/Xmu/Initer.c index c68070ab2..438c5e3c1 100644 --- a/xc/lib/Xmu/Initer.c +++ b/xc/lib/Xmu/Initer.c @@ -1,4 +1,4 @@ -/* $TOG: Initer.c /main/10 1998/02/06 15:44:04 kaleb $ */ +/* $Xorg: Initer.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Initer.c,v 1.5 1999/03/21 07:34:37 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Initer.c,v 1.6 2001/01/17 19:42:56 dawes Exp $ */ /* Created By: Chris D. Peterson * MIT X Consortium diff --git a/xc/lib/Xmu/Initer.h b/xc/lib/Xmu/Initer.h index a7d521228..35300e84c 100644 --- a/xc/lib/Xmu/Initer.h +++ b/xc/lib/Xmu/Initer.h @@ -1,4 +1,4 @@ -/* $TOG: Initer.h /main/7 1998/02/06 15:44:09 kaleb $ */ +/* $Xorg: Initer.h,v 1.4 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Initer.h,v 1.4 1998/10/03 09:06:30 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Initer.h,v 1.5 2001/01/17 19:42:56 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities @@ -31,6 +31,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _XMU_INITER_H_ #define _XMU_INITER_H_ +#include <X11/Intrinsic.h> #include <X11/Xfuncproto.h> typedef void (*XmuInitializerProc)(XtAppContext app_context, XPointer data); diff --git a/xc/lib/Xmu/LocBitmap.c b/xc/lib/Xmu/LocBitmap.c index ee040bb3d..273783775 100644 --- a/xc/lib/Xmu/LocBitmap.c +++ b/xc/lib/Xmu/LocBitmap.c @@ -1,4 +1,4 @@ -/* $TOG: LocBitmap.c /main/22 1998/06/24 10:18:20 kaleb $ */ +/* $Xorg: LocBitmap.c,v 1.6 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/LocBitmap.c,v 3.5 1998/10/03 09:06:31 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/LocBitmap.c,v 3.6 2001/01/17 19:42:56 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/Lookup.c b/xc/lib/Xmu/Lookup.c index a20e848d5..67c019664 100644 --- a/xc/lib/Xmu/Lookup.c +++ b/xc/lib/Xmu/Lookup.c @@ -1,4 +1,4 @@ -/* $TOG: Lookup.c /main/17 1998/02/06 15:44:26 kaleb $ */ +/* $Xorg: Lookup.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Lookup.c,v 3.6 1999/03/21 07:34:37 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Lookup.c,v 3.7 2001/01/17 19:42:56 dawes Exp $ */ #include <X11/Xmu/Lookup.h> diff --git a/xc/lib/Xmu/LookupCmap.c b/xc/lib/Xmu/LookupCmap.c index ccdfc3937..81e4ff5f9 100644 --- a/xc/lib/Xmu/LookupCmap.c +++ b/xc/lib/Xmu/LookupCmap.c @@ -1,4 +1,4 @@ -/* $TOG: LookupCmap.c /main/11 1998/02/06 15:44:20 kaleb $ */ +/* $Xorg: LookupCmap.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/LookupCmap.c,v 1.5 1998/10/03 09:06:31 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/LookupCmap.c,v 1.6 2001/01/17 19:42:56 dawes Exp $ */ /* * Author: Donna Converse, MIT X Consortium diff --git a/xc/lib/Xmu/Lower.c b/xc/lib/Xmu/Lower.c index 50cf73ef0..1ebe9da2e 100644 --- a/xc/lib/Xmu/Lower.c +++ b/xc/lib/Xmu/Lower.c @@ -1,4 +1,4 @@ -/* $TOG: Lower.c /main/9 1998/02/06 15:44:31 kaleb $ */ +/* $Xorg: Lower.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Lower.c,v 1.9 1999/07/11 08:49:17 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Lower.c,v 1.10 2001/01/17 19:42:56 dawes Exp $ */ #define XK_LATIN1 #include <X11/keysymdef.h> diff --git a/xc/lib/Xmu/Misc.h b/xc/lib/Xmu/Misc.h index 1a0ad5b6b..e77bcb528 100644 --- a/xc/lib/Xmu/Misc.h +++ b/xc/lib/Xmu/Misc.h @@ -1,4 +1,4 @@ -/* $TOG: Misc.h /main/3 1998/02/06 15:44:36 kaleb $ */ +/* $Xorg: Misc.h,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* diff --git a/xc/lib/Xmu/RdBitF.c b/xc/lib/Xmu/RdBitF.c index 9c969f0bc..5a9349845 100644 --- a/xc/lib/Xmu/RdBitF.c +++ b/xc/lib/Xmu/RdBitF.c @@ -1,4 +1,4 @@ -/* $TOG: RdBitF.c /main/13 1998/02/06 15:44:42 kaleb $ */ +/* $Xorg: RdBitF.c,v 1.3 2000/08/17 19:46:02 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/RdBitF.c,v 3.10 1999/01/31 12:21:20 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/RdBitF.c,v 3.11 2001/01/17 19:42:56 dawes Exp $ */ /* * This file contains miscellaneous utility routines and is not part of the diff --git a/xc/lib/Xmu/ScrOfWin.c b/xc/lib/Xmu/ScrOfWin.c index 3629d5555..8ab1f95cc 100644 --- a/xc/lib/Xmu/ScrOfWin.c +++ b/xc/lib/Xmu/ScrOfWin.c @@ -1,4 +1,4 @@ -/* $TOG: ScrOfWin.c /main/4 1998/02/06 15:44:48 kaleb $ */ +/* $Xorg: ScrOfWin.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/ScrOfWin.c,v 1.5 1998/10/03 09:06:32 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/ScrOfWin.c,v 1.6 2001/01/17 19:42:56 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/ShapeWidg.c b/xc/lib/Xmu/ShapeWidg.c index cd1a2aac7..45a9bea80 100644 --- a/xc/lib/Xmu/ShapeWidg.c +++ b/xc/lib/Xmu/ShapeWidg.c @@ -1,4 +1,4 @@ -/* $TOG: ShapeWidg.c /main/7 1998/02/06 15:44:53 kaleb $ */ +/* $Xorg: ShapeWidg.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/ShapeWidg.c,v 1.6 1998/10/03 09:06:32 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/ShapeWidg.c,v 1.7 2001/01/17 19:42:56 dawes Exp $ */ #include <X11/IntrinsicP.h> #include <X11/extensions/shape.h> diff --git a/xc/lib/Xmu/StdCmap.c b/xc/lib/Xmu/StdCmap.c index 6f232e663..93cd0a8a7 100644 --- a/xc/lib/Xmu/StdCmap.c +++ b/xc/lib/Xmu/StdCmap.c @@ -1,4 +1,4 @@ -/* $TOG: StdCmap.c /main/15 1998/02/06 15:45:04 kaleb $ */ +/* $Xorg: StdCmap.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StdCmap.c,v 1.4 1998/10/03 09:06:33 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StdCmap.c,v 1.5 2001/01/17 19:42:56 dawes Exp $ */ /* * Author: Donna Converse, MIT X Consortium diff --git a/xc/lib/Xmu/StdCmap.h b/xc/lib/Xmu/StdCmap.h index bc5825372..cc9506e79 100644 --- a/xc/lib/Xmu/StdCmap.h +++ b/xc/lib/Xmu/StdCmap.h @@ -1,4 +1,4 @@ -/* $TOG: StdCmap.h /main/5 1998/02/06 15:45:10 kaleb $ */ +/* $Xorg: StdCmap.h,v 1.4 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StdCmap.h,v 1.6 1999/03/21 07:34:38 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StdCmap.h,v 1.8 2001/01/23 17:38:14 keithp Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities diff --git a/xc/lib/Xmu/StdSel.h b/xc/lib/Xmu/StdSel.h index 42a7ac5bc..626fd09ef 100644 --- a/xc/lib/Xmu/StdSel.h +++ b/xc/lib/Xmu/StdSel.h @@ -1,4 +1,4 @@ -/* $TOG: StdSel.h /main/6 1998/02/06 15:45:15 kaleb $ */ +/* $Xorg: StdSel.h,v 1.4 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StdSel.h,v 1.6 1999/06/06 08:48:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StdSel.h,v 1.7 2001/01/17 19:42:56 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities @@ -31,6 +31,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _XMU_SELECTION_H_ #define _XMU_SELECTION_H_ +#include <X11/Intrinsic.h> #include <X11/Xfuncproto.h> _XFUNCPROTOBEGIN diff --git a/xc/lib/Xmu/StrToBS.c b/xc/lib/Xmu/StrToBS.c index 4d9c601d3..daf138f19 100644 --- a/xc/lib/Xmu/StrToBS.c +++ b/xc/lib/Xmu/StrToBS.c @@ -1,4 +1,4 @@ -/* $TOG: StrToBS.c /main/7 1998/05/14 14:56:19 kaleb $ */ +/* $Xorg: StrToBS.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToBS.c,v 1.5 1998/10/03 09:06:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToBS.c,v 1.6 2001/01/17 19:42:56 dawes Exp $ */ #include <X11/Intrinsic.h> #include "Converters.h" diff --git a/xc/lib/Xmu/StrToBmap.c b/xc/lib/Xmu/StrToBmap.c index 262c02b63..868e2b00d 100644 --- a/xc/lib/Xmu/StrToBmap.c +++ b/xc/lib/Xmu/StrToBmap.c @@ -1,4 +1,4 @@ -/* $TOG: StrToBmap.c /main/14 1998/02/06 15:45:20 kaleb $ */ +/* $Xorg: StrToBmap.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xmu/StrToBmap.c,v 1.4 1998/10/03 09:06:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToBmap.c,v 1.5 2001/01/17 19:42:57 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xmu/StrToCurs.c b/xc/lib/Xmu/StrToCurs.c index 4aa55c7d6..e876b1b5a 100644 --- a/xc/lib/Xmu/StrToCurs.c +++ b/xc/lib/Xmu/StrToCurs.c @@ -1,4 +1,4 @@ -/* $TOG: StrToCurs.c /main/23 1998/06/24 15:07:36 kaleb $ */ +/* $Xorg: StrToCurs.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -46,7 +46,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xmu/StrToCurs.c,v 1.6 1998/10/03 09:06:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToCurs.c,v 1.7 2001/01/17 19:42:57 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xmu/StrToGrav.c b/xc/lib/Xmu/StrToGrav.c index cc6ebd6f6..a1cef7aba 100644 --- a/xc/lib/Xmu/StrToGrav.c +++ b/xc/lib/Xmu/StrToGrav.c @@ -1,4 +1,4 @@ -/* $TOG: StrToGrav.c /main/7 1998/02/06 15:45:38 kaleb $ */ +/* $Xorg: StrToGrav.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToGrav.c,v 1.5 1998/10/03 09:06:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToGrav.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/Xmu/Converters.h> diff --git a/xc/lib/Xmu/StrToJust.c b/xc/lib/Xmu/StrToJust.c index c23d682ff..a645d9b7e 100644 --- a/xc/lib/Xmu/StrToJust.c +++ b/xc/lib/Xmu/StrToJust.c @@ -1,4 +1,4 @@ -/* $TOG: StrToJust.c /main/11 1998/05/14 14:56:23 kaleb $ */ +/* $Xorg: StrToJust.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToJust.c,v 1.5 1998/10/03 09:06:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToJust.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ #include <string.h> #include <X11/Intrinsic.h> diff --git a/xc/lib/Xmu/StrToLong.c b/xc/lib/Xmu/StrToLong.c index 9bf6fb17b..760b3bea8 100644 --- a/xc/lib/Xmu/StrToLong.c +++ b/xc/lib/Xmu/StrToLong.c @@ -1,4 +1,4 @@ -/* $TOG: StrToLong.c /main/6 1998/02/06 15:45:51 kaleb $ */ +/* $Xorg: StrToLong.c,v 1.3 2000/08/17 19:46:03 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToLong.c,v 1.6 1999/03/21 07:34:38 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToLong.c,v 1.7 2001/01/17 19:42:57 dawes Exp $ */ #include <stdio.h> #include <X11/Intrinsic.h> diff --git a/xc/lib/Xmu/StrToOrnt.c b/xc/lib/Xmu/StrToOrnt.c index ae01968b8..9842ad5bc 100644 --- a/xc/lib/Xmu/StrToOrnt.c +++ b/xc/lib/Xmu/StrToOrnt.c @@ -1,4 +1,4 @@ -/* $TOG: StrToOrnt.c /main/11 1998/05/14 14:56:27 kaleb $ */ +/* $Xorg: StrToOrnt.c,v 1.3 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToOrnt.c,v 1.5 1998/10/03 09:06:35 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToOrnt.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ #include <X11/Intrinsic.h> #include <X11/StringDefs.h> diff --git a/xc/lib/Xmu/StrToShap.c b/xc/lib/Xmu/StrToShap.c index 2accd46e7..ebec1ddab 100644 --- a/xc/lib/Xmu/StrToShap.c +++ b/xc/lib/Xmu/StrToShap.c @@ -1,4 +1,4 @@ -/* $TOG: StrToShap.c /main/6 1998/02/06 15:46:01 kaleb $ */ +/* $Xorg: StrToShap.c,v 1.4 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToShap.c,v 1.5 1998/10/03 09:06:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToShap.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ #include <string.h> #include <X11/Intrinsic.h> diff --git a/xc/lib/Xmu/StrToWidg.c b/xc/lib/Xmu/StrToWidg.c index b63736523..cf781ea31 100644 --- a/xc/lib/Xmu/StrToWidg.c +++ b/xc/lib/Xmu/StrToWidg.c @@ -1,4 +1,4 @@ -/* $TOG: StrToWidg.c /main/11 1998/02/06 15:46:07 kaleb $ */ +/* $Xorg: StrToWidg.c,v 1.3 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/StrToWidg.c,v 1.5 1998/10/03 09:06:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/StrToWidg.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ /* * XmuCvtStringToWidget diff --git a/xc/lib/Xmu/SysUtil.h b/xc/lib/Xmu/SysUtil.h index 85cacf287..463fe9622 100644 --- a/xc/lib/Xmu/SysUtil.h +++ b/xc/lib/Xmu/SysUtil.h @@ -1,4 +1,4 @@ -/* $TOG: SysUtil.h /main/5 1998/02/06 15:46:12 kaleb $ */ +/* $Xorg: SysUtil.h,v 1.3 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/SysUtil.h,v 1.6 1998/10/03 09:06:36 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/SysUtil.h,v 1.7 2001/01/17 19:42:57 dawes Exp $ */ #ifndef _SYSUTIL_H_ #define _SYSUTIL_H_ diff --git a/xc/lib/Xmu/UpdMapHint.c b/xc/lib/Xmu/UpdMapHint.c index dc2b0f7b8..e9abc28b0 100644 --- a/xc/lib/Xmu/UpdMapHint.c +++ b/xc/lib/Xmu/UpdMapHint.c @@ -1,4 +1,4 @@ -/* $TOG: UpdMapHint.c /main/3 1998/02/06 15:46:18 kaleb $ */ +/* $Xorg: UpdMapHint.c,v 1.3 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/UpdMapHint.c,v 1.5 1998/10/03 09:06:37 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/UpdMapHint.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/VisCmap.c b/xc/lib/Xmu/VisCmap.c index 5b1ddc5ca..481e44860 100644 --- a/xc/lib/Xmu/VisCmap.c +++ b/xc/lib/Xmu/VisCmap.c @@ -1,4 +1,4 @@ -/* $TOG: VisCmap.c /main/12 1998/02/06 15:46:23 kaleb $ */ +/* $Xorg: VisCmap.c,v 1.3 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/VisCmap.c,v 1.5 1998/10/03 09:06:37 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/VisCmap.c,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ /* * Author: Donna Converse, MIT X Consortium diff --git a/xc/lib/Xmu/WhitePoint.h b/xc/lib/Xmu/WhitePoint.h index 0e9764c26..1773c4dbc 100644 --- a/xc/lib/Xmu/WhitePoint.h +++ b/xc/lib/Xmu/WhitePoint.h @@ -1,4 +1,4 @@ -/* $TOG: WhitePoint.h /main/5 1998/02/06 15:46:29 kaleb $ */ +/* $Xorg: WhitePoint.h,v 1.3 2000/08/17 19:46:04 cpqbld Exp $ */ /* diff --git a/xc/lib/Xmu/WidgetNode.c b/xc/lib/Xmu/WidgetNode.c index f0ce194f4..6a91daf17 100644 --- a/xc/lib/Xmu/WidgetNode.c +++ b/xc/lib/Xmu/WidgetNode.c @@ -1,4 +1,4 @@ -/* $TOG: WidgetNode.c /main/7 1998/06/23 11:51:04 kaleb $ */ +/* $Xorg: WidgetNode.c,v 1.4 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/WidgetNode.c,v 1.7 1999/12/27 00:39:24 robin Exp $ */ +/* $XFree86: xc/lib/Xmu/WidgetNode.c,v 1.8 2001/01/17 19:42:57 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium diff --git a/xc/lib/Xmu/WidgetNode.h b/xc/lib/Xmu/WidgetNode.h index 232b2025b..3909f5c46 100644 --- a/xc/lib/Xmu/WidgetNode.h +++ b/xc/lib/Xmu/WidgetNode.h @@ -1,4 +1,4 @@ -/* $TOG: WidgetNode.h /main/9 1998/02/06 15:46:39 kaleb $ */ +/* $Xorg: WidgetNode.h,v 1.4 2000/08/17 19:46:04 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/WidgetNode.h,v 1.4 1998/10/03 09:06:37 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/WidgetNode.h,v 1.5 2001/01/17 19:42:57 dawes Exp $ */ /* * Author: Jim Fulton, MIT X Consortium @@ -30,6 +30,7 @@ in this Software without prior written authorization from The Open Group. #ifndef _XmuWidgetNode_h #define _XmuWidgetNode_h +#include <X11/Intrinsic.h> #include <X11/Xfuncproto.h> /* diff --git a/xc/lib/Xmu/WinUtil.h b/xc/lib/Xmu/WinUtil.h index 5ea10e66d..343345ecb 100644 --- a/xc/lib/Xmu/WinUtil.h +++ b/xc/lib/Xmu/WinUtil.h @@ -1,4 +1,4 @@ -/* $TOG: WinUtil.h /main/8 1998/02/06 15:46:44 kaleb $ */ +/* $Xorg: WinUtil.h,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/WinUtil.h,v 1.5 1998/10/03 09:06:38 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/WinUtil.h,v 1.6 2001/01/17 19:42:57 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities diff --git a/xc/lib/Xmu/Xct.c b/xc/lib/Xmu/Xct.c index 6cec0db2e..5a1483349 100644 --- a/xc/lib/Xmu/Xct.c +++ b/xc/lib/Xmu/Xct.c @@ -1,4 +1,4 @@ -/* $TOG: Xct.c /main/21 1998/02/06 15:46:50 kaleb $ */ +/* $Xorg: Xct.c,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Xct.c,v 1.6 1999/03/21 07:34:39 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Xct.c,v 1.7 2001/01/17 19:42:58 dawes Exp $ */ #include <X11/Xfuncs.h> #include "Xct.h" diff --git a/xc/lib/Xmu/Xct.h b/xc/lib/Xmu/Xct.h index 8e22db01e..9ac0f7e7e 100644 --- a/xc/lib/Xmu/Xct.h +++ b/xc/lib/Xmu/Xct.h @@ -1,4 +1,4 @@ -/* $TOG: Xct.h /main/9 1998/02/06 15:46:55 kaleb $ */ +/* $Xorg: Xct.h,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Xct.h,v 1.5 1999/03/21 07:34:39 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Xct.h,v 1.6 2001/01/17 19:42:58 dawes Exp $ */ #ifndef _Xct_h #define _Xct_h diff --git a/xc/lib/Xmu/Xmu.h b/xc/lib/Xmu/Xmu.h index 8fe0764df..4c7b26ecb 100644 --- a/xc/lib/Xmu/Xmu.h +++ b/xc/lib/Xmu/Xmu.h @@ -1,4 +1,4 @@ -/* $TOG: Xmu.h /main/28 1998/02/06 15:47:00 kaleb $ */ +/* $Xorg: Xmu.h,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/Xmu.h,v 1.5 1998/10/03 09:06:39 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/Xmu.h,v 1.6 2001/01/17 19:42:58 dawes Exp $ */ /* * The interfaces described by this header file are for miscellaneous utilities diff --git a/xc/lib/Xmu/sharedlib.c b/xc/lib/Xmu/sharedlib.c index 84a2c1c50..cb7450f4a 100644 --- a/xc/lib/Xmu/sharedlib.c +++ b/xc/lib/Xmu/sharedlib.c @@ -1,4 +1,4 @@ -/* $TOG: sharedlib.c /main/10 1998/02/06 15:44:59 kaleb $ */ +/* $Xorg: sharedlib.c,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/sharedlib.c,v 3.2 2000/11/28 18:50:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/sharedlib.c,v 3.3 2001/01/17 19:42:58 dawes Exp $ */ #if defined(SUNSHLIB) && !defined(SHAREDCODE) diff --git a/xc/lib/Xp/Imakefile b/xc/lib/Xp/Imakefile index d50466175..ec383ccd3 100644 --- a/xc/lib/Xp/Imakefile +++ b/xc/lib/Xp/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XConsortium: Imakefile /main/2 1996/11/16 15:20:42 rws $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ /****************************************************************************** ****************************************************************************** ** @@ -36,7 +36,7 @@ XCOMM $XConsortium: Imakefile /main/2 1996/11/16 15:20:42 rws $ ** ****************************************************************************** *****************************************************************************/ -XCOMM $XFree86: xc/lib/Xp/Imakefile,v 1.2 1998/12/20 11:57:06 dawes Exp $ +XCOMM $XFree86: xc/lib/Xp/Imakefile,v 1.3 2001/01/17 19:43:01 dawes Exp $ #define DoNormalLib NormalLibXp diff --git a/xc/lib/Xp/Xp-def.cpp b/xc/lib/Xp/Xp-def.cpp index c8d5050c9..f3bd5bf7f 100644 --- a/xc/lib/Xp/Xp-def.cpp +++ b/xc/lib/Xp/Xp-def.cpp @@ -38,5 +38,5 @@ EXPORTS XpStartDoc XpStartJob XpStartPage -/* $XConsortium: Xp-def.cpp /main/1 1996/11/13 14:44:46 lehors $ */ -/* $XFree86: xc/lib/Xp/Xp-def.cpp,v 1.2 2000/08/09 23:40:13 dawes Exp $ */ +/* $Xorg: Xp-def.cpp,v 1.3 2000/08/17 19:46:05 cpqbld Exp $ */ +/* $XFree86: xc/lib/Xp/Xp-def.cpp,v 1.3 2001/01/17 19:43:01 dawes Exp $ */ diff --git a/xc/lib/Xp/XpAttr.c b/xc/lib/Xp/XpAttr.c index 772a3f269..102fbe873 100644 --- a/xc/lib/Xp/XpAttr.c +++ b/xc/lib/Xp/XpAttr.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpAttr.c /main/3 1996/12/27 16:21:50 kaleb $ */ +/* $Xorg: XpAttr.c,v 1.4 2000/08/17 19:46:05 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpAttr.c,v 1.5 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpAttr.c,v 1.6 2001/01/17 19:43:01 dawes Exp $ */ #define NEED_REPLIES @@ -109,7 +109,6 @@ XpGetOneAttribute ( char *attribute_name ) { - int buflen = 0; char *buf; xPrintGetOneAttributeReq *req; @@ -173,8 +172,6 @@ XpSetAttributes ( XPAttrReplacement replacement_rule ) { - int i; - xPrintSetAttributesReq *req; XExtDisplayInfo *info = (XExtDisplayInfo *) xp_find_display (dpy); diff --git a/xc/lib/Xp/XpContext.c b/xc/lib/Xp/XpContext.c index dc95aebbb..dd8a230e8 100644 --- a/xc/lib/Xp/XpContext.c +++ b/xc/lib/Xp/XpContext.c @@ -1,4 +1,4 @@ -/* $TOG: XpContext.c /main/3 1997/05/28 11:41:13 kaleb $ */ +/* $Xorg: XpContext.c,v 1.4 2000/08/17 19:46:05 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpContext.c,v 1.4 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpContext.c,v 1.5 2001/01/17 19:43:01 dawes Exp $ */ #define NEED_REPLIES @@ -202,7 +202,6 @@ XpGetScreenOfContext ( int i; Screen *checkScr; - Screen *screen; int ok; diff --git a/xc/lib/Xp/XpDoc.c b/xc/lib/Xp/XpDoc.c index e685f504d..41aa26ebe 100644 --- a/xc/lib/Xp/XpDoc.c +++ b/xc/lib/Xp/XpDoc.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpDoc.c /main/2 1996/11/16 15:20:59 rws $ */ +/* $Xorg: XpDoc.c,v 1.3 2000/08/17 19:46:06 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpDoc.c,v 1.2 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpDoc.c,v 1.3 2001/01/17 19:43:01 dawes Exp $ */ #include "Printstr.h" #include "Xlibint.h" diff --git a/xc/lib/Xp/XpExtUtil.c b/xc/lib/Xp/XpExtUtil.c index 6fe8c0c34..ed19c2cba 100644 --- a/xc/lib/Xp/XpExtUtil.c +++ b/xc/lib/Xp/XpExtUtil.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpExtUtil.c /main/3 1996/11/16 15:21:05 rws $ */ +/* $Xorg: XpExtUtil.c,v 1.3 2000/08/17 19:46:06 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpExtUtil.c,v 1.3 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpExtUtil.c,v 1.4 2001/01/17 19:43:01 dawes Exp $ */ #define NEED_EVENTS #define NEED_REPLIES diff --git a/xc/lib/Xp/XpExtVer.c b/xc/lib/Xp/XpExtVer.c index 9980f4ba8..49ee53524 100644 --- a/xc/lib/Xp/XpExtVer.c +++ b/xc/lib/Xp/XpExtVer.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpExtVer.c /main/2 1996/11/16 15:21:11 rws $ */ +/* $Xorg: XpExtVer.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpExtVer.c,v 1.3 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpExtVer.c,v 1.4 2001/01/17 19:43:01 dawes Exp $ */ #define NEED_REPLIES diff --git a/xc/lib/Xp/XpGetData.c b/xc/lib/Xp/XpGetData.c index 4ce45f32a..fcbe293aa 100644 --- a/xc/lib/Xp/XpGetData.c +++ b/xc/lib/Xp/XpGetData.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpGetData.c /main/2 1996/11/16 15:21:15 rws $ */ +/* $Xorg: XpGetData.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpGetData.c,v 1.3 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpGetData.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #define NEED_REPLIES diff --git a/xc/lib/Xp/XpImageRes.c b/xc/lib/Xp/XpImageRes.c index 588b5bc91..5c2d2beff 100644 --- a/xc/lib/Xp/XpImageRes.c +++ b/xc/lib/Xp/XpImageRes.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpImageRes.c /main/1 1996/11/16 15:21:21 rws $ */ +/* $Xorg: XpImageRes.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpImageRes.c,v 1.3 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpImageRes.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #define NEED_REPLIES diff --git a/xc/lib/Xp/XpInput.c b/xc/lib/Xp/XpInput.c index a39eb2a52..4b869382c 100644 --- a/xc/lib/Xp/XpInput.c +++ b/xc/lib/Xp/XpInput.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpInput.c /main/2 1996/11/16 15:21:25 rws $ */ +/* $Xorg: XpInput.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpInput.c,v 1.3 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpInput.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #define NEED_REPLIES diff --git a/xc/lib/Xp/XpJob.c b/xc/lib/Xp/XpJob.c index 485e0b46b..d7688b5bf 100644 --- a/xc/lib/Xp/XpJob.c +++ b/xc/lib/Xp/XpJob.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpJob.c /main/4 1996/12/04 10:24:31 lehors $ */ +/* $Xorg: XpJob.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpJob.c,v 1.3 2000/09/26 15:56:57 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpJob.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #if defined(sun) && defined(i386) && defined(SVR4) #define __EXTENSIONS__ @@ -110,7 +110,7 @@ XpStartJob ( if ((PwName = getenv("USERNAME"))) { #endif joa = (char *) Xmalloc( strlen( PwName ) + 20 ); - sprintf( joa, "job-owner: %s", PwName ); + sprintf( joa, "*job-owner: %s", PwName ); context = XpGetContext( dpy ); XpSetAttributes( dpy, context, XPJobAttr, joa, XPAttrMerge ); diff --git a/xc/lib/Xp/XpLocale.c b/xc/lib/Xp/XpLocale.c index 0bdf61d98..fe1422a0b 100644 --- a/xc/lib/Xp/XpLocale.c +++ b/xc/lib/Xp/XpLocale.c @@ -1,4 +1,4 @@ -/* $TOG: XpLocale.c /main/3 1997/05/28 11:41:34 kaleb $ */ +/* $Xorg: XpLocale.c,v 1.3 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpLocale.c,v 1.3 2000/09/26 15:56:58 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpLocale.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #include "Printstr.h" #include "Xlibint.h" diff --git a/xc/lib/Xp/XpNotifyPdm.c b/xc/lib/Xp/XpNotifyPdm.c index aa9d28791..46c248a3e 100644 --- a/xc/lib/Xp/XpNotifyPdm.c +++ b/xc/lib/Xp/XpNotifyPdm.c @@ -1,4 +1,4 @@ -/* $TOG: XpNotifyPdm.c /main/5 1997/07/24 15:47:13 kaleb $ */ +/* $Xorg: XpNotifyPdm.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -131,16 +131,16 @@ _XpGetSelectionServer ( /* * remove ".scr" portion from "host:disp.scr" strings. */ - if ( tstrptr = strchr( tstr1, ':' ) ) - if ( tstrptr = strchr( tstrptr, '.' ) ) + if (( tstrptr = strchr( tstr1, ':' ) )) + if (( tstrptr = strchr( tstrptr, '.' ) )) *tstrptr = '\0'; - if ( tstrptr = strchr( tstr2, ':' ) ) - if ( tstrptr = strchr( tstrptr, '.' ) ) + if (( tstrptr = strchr( tstr2, ':' ) )) + if (( tstrptr = strchr( tstrptr, '.' ) )) *tstrptr = '\0'; - if ( tstrptr = strchr( tstr3, ':' ) ) - if ( tstrptr = strchr( tstrptr, '.' ) ) + if (( tstrptr = strchr( tstr3, ':' ) )) + if (( tstrptr = strchr( tstrptr, '.' ) )) *tstrptr = '\0'; if ( !strcmp( tstr1, tstr2 ) ) { diff --git a/xc/lib/Xp/XpPage.c b/xc/lib/Xp/XpPage.c index d1eb66c8c..b383a8fb1 100644 --- a/xc/lib/Xp/XpPage.c +++ b/xc/lib/Xp/XpPage.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpPage.c /main/2 1996/11/16 15:21:49 rws $ */ +/* $Xorg: XpPage.c,v 1.3 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpPage.c,v 1.2 2000/09/26 15:56:58 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpPage.c,v 1.3 2001/01/17 19:43:02 dawes Exp $ */ #include "Printstr.h" #include "Xlibint.h" diff --git a/xc/lib/Xp/XpPageDim.c b/xc/lib/Xp/XpPageDim.c index 0c88b9bea..4d7614312 100644 --- a/xc/lib/Xp/XpPageDim.c +++ b/xc/lib/Xp/XpPageDim.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpPageDim.c /main/2 1996/11/16 15:21:53 rws $ */ +/* $Xorg: XpPageDim.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpPageDim.c,v 1.3 2000/09/26 15:56:58 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpPageDim.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #define NEED_REPLIES diff --git a/xc/lib/Xp/XpPrinter.c b/xc/lib/Xp/XpPrinter.c index 10815ea52..5e3f8c71a 100644 --- a/xc/lib/Xp/XpPrinter.c +++ b/xc/lib/Xp/XpPrinter.c @@ -1,4 +1,4 @@ -/* $TOG: XpPrinter.c /main/4 1997/05/28 11:41:47 kaleb $ */ +/* $Xorg: XpPrinter.c,v 1.4 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpPrinter.c,v 1.6 2000/09/26 15:56:58 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpPrinter.c,v 1.7 2001/01/17 19:43:02 dawes Exp $ */ #define NEED_REPLIES @@ -66,8 +66,7 @@ XpGetPrinterList ( XExtDisplayInfo *info = (XExtDisplayInfo *) xp_find_display (dpy); /* For converting root winID to corresponding ScreenPtr */ - Screen *checkScr; - int i,j; + int i; if (XpCheckExtInit(dpy, XP_DONT_CHECK) == -1) diff --git a/xc/lib/Xp/XpPutData.c b/xc/lib/Xp/XpPutData.c index 80ee41be2..89fc871ca 100644 --- a/xc/lib/Xp/XpPutData.c +++ b/xc/lib/Xp/XpPutData.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpPutData.c /main/2 1996/11/16 15:22:03 rws $ */ +/* $Xorg: XpPutData.c,v 1.3 2000/08/17 19:46:07 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpPutData.c,v 1.2 2000/09/26 15:56:58 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpPutData.c,v 1.3 2001/01/17 19:43:02 dawes Exp $ */ #include "Printstr.h" #include "Xlibint.h" diff --git a/xc/lib/Xp/XpScreens.c b/xc/lib/Xp/XpScreens.c index 24bc5be37..c5227d3a3 100644 --- a/xc/lib/Xp/XpScreens.c +++ b/xc/lib/Xp/XpScreens.c @@ -1,4 +1,4 @@ -/* $XConsortium: XpScreens.c /main/2 1996/11/16 15:22:09 rws $ */ +/* $Xorg: XpScreens.c,v 1.5 2000/08/17 19:46:08 cpqbld Exp $ */ /****************************************************************************** ****************************************************************************** ** @@ -34,7 +34,7 @@ ** ****************************************************************************** *****************************************************************************/ -/* $XFree86: xc/lib/Xp/XpScreens.c,v 1.3 2000/09/26 15:56:58 tsi Exp $ */ +/* $XFree86: xc/lib/Xp/XpScreens.c,v 1.4 2001/01/17 19:43:02 dawes Exp $ */ #define NEED_REPLIES @@ -89,13 +89,13 @@ XpQueryScreens ( SyncHandle(); return ( (Screen **) NULL ); /* malloc error */ } - - for ( i = 0; i < *list_count; i++ ) { + i = 0; + while(i < *list_count){ /* * Pull printer length and then name. */ - _XRead32 (dpy, (long *) &rootWindow, (long) sizeof(rootWindow) ); - + _XRead32 (dpy, (char *) &rootWindow, (long) sizeof(rootWindow) ); + scr_list[i] = NULL; for ( j = 0; j < XScreenCount(dpy); j++ ) { checkScr = XScreenOfDisplay(dpy, j); if ( XRootWindowOfScreen(checkScr) == (Window) rootWindow ) { @@ -103,6 +103,14 @@ XpQueryScreens ( break; } } + if(scr_list[i] == NULL) + (*list_count)--; + else + i++; + } + if(!(*list_count)) { + Xfree(scr_list); + scr_list = (Screen **) NULL; } } else { diff --git a/xc/lib/Xrender/Xrender-def.cpp b/xc/lib/Xrender/Xrender-def.cpp index 34740970d..83cc4c689 100644 --- a/xc/lib/Xrender/Xrender-def.cpp +++ b/xc/lib/Xrender/Xrender-def.cpp @@ -15,14 +15,15 @@ EXPORTS XRenderChangePicture XRenderCreatePicture XRenderFreePicture - _XRenderProcessPictureAttributes +; _XRenderProcessPictureAttributes XRenderFindDisplay XRenderFindFormat XRenderFindVisualFormat XRenderQueryExtension XRenderQueryFormats XRenderQueryVersion - _XRenderFindFormat - _XRenderFindVisual +; _XRenderFindFormat +; _XRenderFindVisual + XRenderSetPictureClipRegion -/* $XFree86: xc/lib/Xrender/Xrender-def.cpp,v 1.2 2000/12/04 21:01:00 dawes Exp $ */ +/* $XFree86: xc/lib/Xrender/Xrender-def.cpp,v 1.3 2001/02/13 19:19:12 dawes Exp $ */ diff --git a/xc/lib/Xt/ActionHook.c b/xc/lib/Xt/ActionHook.c index 0b13213fe..e91557520 100644 --- a/xc/lib/Xt/ActionHook.c +++ b/xc/lib/Xt/ActionHook.c @@ -1,4 +1,4 @@ -/* $TOG: ActionHook.c /main/10 1998/02/06 13:19:33 kaleb $ */ +/* $Xorg: ActionHook.c,v 1.3 2000/08/17 19:46:08 cpqbld Exp $ */ /*LINTLIBRARY*/ diff --git a/xc/lib/Xt/Alloc.c b/xc/lib/Xt/Alloc.c index 01e4f945a..6c6ac493f 100644 --- a/xc/lib/Xt/Alloc.c +++ b/xc/lib/Xt/Alloc.c @@ -1,4 +1,4 @@ -/* $TOG: Alloc.c /main/48 1998/02/06 13:19:39 kaleb $ */ +/* $Xorg: Alloc.c,v 1.3 2000/08/17 19:46:08 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, diff --git a/xc/lib/Xt/ArgList.c b/xc/lib/Xt/ArgList.c index f984b3103..b916e47e8 100644 --- a/xc/lib/Xt/ArgList.c +++ b/xc/lib/Xt/ArgList.c @@ -1,4 +1,4 @@ -/* $TOG: ArgList.c /main/18 1998/02/06 13:19:45 kaleb $ */ +/* $Xorg: ArgList.c,v 1.3 2000/08/17 19:46:08 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Callback.c b/xc/lib/Xt/Callback.c index d0d0e8ba3..c666f38be 100644 --- a/xc/lib/Xt/Callback.c +++ b/xc/lib/Xt/Callback.c @@ -1,4 +1,4 @@ -/* $TOG: Callback.c /main/47 1998/02/06 13:19:54 kaleb $ */ +/* $Xorg: Callback.c,v 1.3 2000/08/17 19:46:08 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -54,7 +54,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/Callback.c,v 1.5 1998/12/20 22:18:57 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Callback.c,v 1.6 2001/01/17 19:43:03 dawes Exp $ */ #include "IntrinsicI.h" diff --git a/xc/lib/Xt/CallbackI.h b/xc/lib/Xt/CallbackI.h index 91a1b7198..69e5bf7cc 100644 --- a/xc/lib/Xt/CallbackI.h +++ b/xc/lib/Xt/CallbackI.h @@ -1,4 +1,4 @@ -/* $TOG: CallbackI.h /main/19 1998/02/06 13:19:49 kaleb $ */ +/* $Xorg: CallbackI.h,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988, 1998 The Open Group diff --git a/xc/lib/Xt/ClickTime.c b/xc/lib/Xt/ClickTime.c index 7a15c4462..b2a18f758 100644 --- a/xc/lib/Xt/ClickTime.c +++ b/xc/lib/Xt/ClickTime.c @@ -1,4 +1,4 @@ -/* $TOG: ClickTime.c /main/6 1998/02/06 13:19:59 kaleb $ */ +/* $Xorg: ClickTime.c,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/Composite.c b/xc/lib/Xt/Composite.c index 163281768..af1834cb6 100644 --- a/xc/lib/Xt/Composite.c +++ b/xc/lib/Xt/Composite.c @@ -1,4 +1,4 @@ -/* $TOG: Composite.c /main/25 1998/02/06 13:20:09 kaleb $ */ +/* $Xorg: Composite.c,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/Composite.h b/xc/lib/Xt/Composite.h index 331c0cd37..25f26c8e5 100644 --- a/xc/lib/Xt/Composite.h +++ b/xc/lib/Xt/Composite.h @@ -1,4 +1,4 @@ -/* $TOG: Composite.h /main/17 1998/02/06 13:20:14 kaleb $ */ +/* $Xorg: Composite.h,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/CompositeP.h b/xc/lib/Xt/CompositeP.h index df99322e0..60b27bec6 100644 --- a/xc/lib/Xt/CompositeP.h +++ b/xc/lib/Xt/CompositeP.h @@ -1,4 +1,4 @@ -/* $TOG: CompositeP.h /main/18 1998/02/06 13:20:04 kaleb $ */ +/* $Xorg: CompositeP.h,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/ConstrainP.h b/xc/lib/Xt/ConstrainP.h index 3d6927a49..daaf148ef 100644 --- a/xc/lib/Xt/ConstrainP.h +++ b/xc/lib/Xt/ConstrainP.h @@ -1,4 +1,4 @@ -/* $TOG: ConstrainP.h /main/16 1998/02/06 13:20:19 kaleb $ */ +/* $Xorg: ConstrainP.h,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /* $oHeader: ConstrainP.h,v 1.2 88/08/18 15:54:15 asente Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Constraint.c b/xc/lib/Xt/Constraint.c index e54a61f9a..4ea4f6476 100644 --- a/xc/lib/Xt/Constraint.c +++ b/xc/lib/Xt/Constraint.c @@ -1,4 +1,4 @@ -/* $TOG: Constraint.c /main/16 1998/02/06 13:20:24 kaleb $ */ +/* $Xorg: Constraint.c,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/Constraint.h b/xc/lib/Xt/Constraint.h index 10e926ca0..e1bd6e948 100644 --- a/xc/lib/Xt/Constraint.h +++ b/xc/lib/Xt/Constraint.h @@ -1,4 +1,4 @@ -/* $TOG: Constraint.h /main/11 1998/02/06 13:20:29 kaleb $ */ +/* $Xorg: Constraint.h,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /* $oHeader: Constraint.h,v 1.2 88/08/18 15:54:18 asente Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Convert.c b/xc/lib/Xt/Convert.c index b2c0cbc07..f94611219 100644 --- a/xc/lib/Xt/Convert.c +++ b/xc/lib/Xt/Convert.c @@ -1,4 +1,4 @@ -/* $TOG: Convert.c /main/77 1998/02/06 13:20:48 kaleb $ */ +/* $Xorg: Convert.c,v 1.4 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Convert.c,v 3.4 1998/12/20 11:57:07 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Convert.c,v 3.5 2001/01/17 19:43:03 dawes Exp $ */ /* @@ -499,7 +499,7 @@ static void FreeCacheRec(app, p, prev) register int i; if (!p->from_is_value) XtFree(p->from.addr); - if (i = p->num_args) { + if ((i = p->num_args)) { XrmValue *pargs = CARGS(p); while (i--) XtFree(pargs[i].addr); @@ -524,7 +524,7 @@ void _XtCacheFlushTag(app, tag) LOCK_PROCESS; for (i = CACHEHASHSIZE; --i >= 0;) { prev = &cacheHashTable[i]; - while (rec = *prev) { + while ((rec = *prev)) { if (rec->tag == tag) FreeCacheRec(app, rec, prev); else @@ -703,7 +703,7 @@ void XtDirectConvert(converter, args, num_args, from, to) XtMemcmp(&p->from.addr, from->addr, from->size) : memcmp((char *)p->from.addr, (char *)from->addr, from->size)) && (p->num_args == num_args)) { - if (i = num_args) { + if ((i = num_args)) { XrmValue *pargs = CARGS(p); /* Are all args the same data ? */ while (i) { @@ -802,7 +802,7 @@ CallConverter(dpy, converter, XtMemcmp(&p->from.addr, from->addr, from->size) : memcmp((char *)p->from.addr, (char *)from->addr, from->size)) && (p->num_args == num_args)) { - if (i = num_args) { + if ((i = num_args)) { XrmValue *pargs = CARGS(p); /* Are all args the same data ? */ while (i) { @@ -1133,7 +1133,7 @@ void XtAppReleaseCacheRefs(app, refs) LOCK_APP(app); LOCK_PROCESS; - for (r = (CachePtr*)refs; p = *r; r++) { + for (r = (CachePtr*)refs; (p = *r); r++) { if (p->is_refcounted && --(CEXT(p)->ref_count) == 0) { FreeCacheRec(app, p, NULL); } diff --git a/xc/lib/Xt/ConvertI.h b/xc/lib/Xt/ConvertI.h index 2a6ddb2a5..56b77bcfb 100644 --- a/xc/lib/Xt/ConvertI.h +++ b/xc/lib/Xt/ConvertI.h @@ -1,4 +1,4 @@ -/* $TOG: ConvertI.h /main/18 1998/02/06 13:20:44 kaleb $ */ +/* $Xorg: ConvertI.h,v 1.3 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Converters.c b/xc/lib/Xt/Converters.c index b4c70233d..91b08bace 100644 --- a/xc/lib/Xt/Converters.c +++ b/xc/lib/Xt/Converters.c @@ -1,4 +1,4 @@ -/* $TOG: Converters.c /main/107 1998/02/06 13:20:35 kaleb $ */ +/* $Xorg: Converters.c,v 1.4 2000/08/17 19:46:09 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Converters.c,v 3.7 1999/03/28 15:31:34 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Converters.c,v 3.8 2001/01/17 19:43:04 dawes Exp $ */ /* @@ -281,7 +281,7 @@ static Boolean IsInteger(string, value) #else while ((ch = *string) == ' ' || ch == '\t' || ch == '\r') string++; #endif - while (ch = *string++) { + while ((ch = *string++)) { if (ch >= '0' && ch <= '9') { val *= 10; val += ch - '0'; @@ -291,7 +291,7 @@ static Boolean IsInteger(string, value) if (IsWhitespace(ch)) { if (!foundDigit) return False; /* make sure only trailing whitespace */ - while (ch = *string++) { + while ((ch = *string++)) { if (!IsWhitespace(ch)) return False; } @@ -1015,6 +1015,7 @@ Boolean XtCvtStringToFontSet(dpy, args, num_args, fromVal, toVal, closure_ret) if (XrmQGetResource(XtDatabase(display), xrm_name, xrm_class, &rep_type, &value)) { if (rep_type == _XtQString) { + f = XCreateFontSet(display, (char *)value.addr, &missing_charset_list, &missing_charset_count, &def_string); @@ -1042,6 +1043,7 @@ Boolean XtCvtStringToFontSet(dpy, args, num_args, fromVal, toVal, closure_ret) /* Should really do XListFonts, but most servers support this */ f = XCreateFontSet(display, "-*-*-*-R-*-*-*-120-*-*-*-*", &missing_charset_list, &missing_charset_count, &def_string); + /* Free any returned missing charset list */ if (missing_charset_count) { XtAppWarningMsg(XtDisplayToApplicationContext(dpy), diff --git a/xc/lib/Xt/Core.c b/xc/lib/Xt/Core.c index b094927ea..1d4f25d7c 100644 --- a/xc/lib/Xt/Core.c +++ b/xc/lib/Xt/Core.c @@ -1,4 +1,4 @@ -/* $TOG: Core.c /main/63 1998/02/06 13:21:00 kaleb $ */ +/* $Xorg: Core.c,v 1.3 2000/08/17 19:46:10 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, diff --git a/xc/lib/Xt/Core.h b/xc/lib/Xt/Core.h index 16a041e9c..79195e3a3 100644 --- a/xc/lib/Xt/Core.h +++ b/xc/lib/Xt/Core.h @@ -1,5 +1,5 @@ /* -* $TOG: Core.h /main/12 1998/02/06 13:21:07 kaleb $ +* $Xorg: Core.h,v 1.3 2000/08/17 19:46:10 cpqbld Exp $ * $oHeader: Core.h,v 1.2 88/08/18 15:54:32 asente Exp $ */ diff --git a/xc/lib/Xt/CoreP.h b/xc/lib/Xt/CoreP.h index 0773a9650..8fb2fdbda 100644 --- a/xc/lib/Xt/CoreP.h +++ b/xc/lib/Xt/CoreP.h @@ -1,5 +1,5 @@ /* -* $TOG: CoreP.h /main/18 1998/02/06 13:20:55 kaleb $ +* $Xorg: CoreP.h,v 1.3 2000/08/17 19:46:10 cpqbld Exp $ * $oHeader: CoreP.h,v 1.2 88/08/18 15:54:37 asente Exp $ */ diff --git a/xc/lib/Xt/Create.c b/xc/lib/Xt/Create.c index 3885d8df0..08ffaa564 100644 --- a/xc/lib/Xt/Create.c +++ b/xc/lib/Xt/Create.c @@ -1,4 +1,4 @@ -/* $TOG: Create.c /main/83 1998/02/06 13:21:11 kaleb $ */ +/* $Xorg: Create.c,v 1.3 2000/08/17 19:46:10 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Create.c,v 3.6 1998/12/20 11:57:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Create.c,v 3.7 2001/01/17 19:43:04 dawes Exp $ */ /* diff --git a/xc/lib/Xt/Destroy.c b/xc/lib/Xt/Destroy.c index a7633600f..142b730ac 100644 --- a/xc/lib/Xt/Destroy.c +++ b/xc/lib/Xt/Destroy.c @@ -1,4 +1,4 @@ -/* $TOG: Destroy.c /main/49 1998/02/06 13:21:18 kaleb $ */ +/* $Xorg: Destroy.c,v 1.3 2000/08/17 19:46:10 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/Display.c b/xc/lib/Xt/Display.c index 3647fb492..8c2359954 100644 --- a/xc/lib/Xt/Display.c +++ b/xc/lib/Xt/Display.c @@ -1,4 +1,4 @@ -/* $TOG: Display.c /main/116 1998/02/06 13:21:23 kaleb $ */ +/* $Xorg: Display.c,v 1.4 2000/08/17 19:46:10 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Display.c,v 3.9 2000/11/02 02:51:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Display.c,v 3.10 2001/01/17 19:43:04 dawes Exp $ */ /* @@ -694,7 +694,7 @@ static void CloseDisplay(dpy) XrmDestroyDatabase(db); } XtFree((char *)xtpd->per_screen_db); - if (db = XrmGetDatabase(dpy)) + if ((db = XrmGetDatabase(dpy))) XrmDestroyDatabase(db); if (xtpd->cmd_db) XrmDestroyDatabase(xtpd->cmd_db); diff --git a/xc/lib/Xt/Error.c b/xc/lib/Xt/Error.c index 93796f486..ac95e7785 100644 --- a/xc/lib/Xt/Error.c +++ b/xc/lib/Xt/Error.c @@ -1,4 +1,4 @@ -/* $TOG: Error.c /main/43 1998/02/06 13:21:30 kaleb $ */ +/* $Xorg: Error.c,v 1.4 2000/08/17 19:46:11 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Error.c,v 3.9 1998/10/03 09:06:51 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Error.c,v 3.10 2001/01/17 19:43:04 dawes Exp $ */ /* diff --git a/xc/lib/Xt/Event.c b/xc/lib/Xt/Event.c index e0210f487..6059685d2 100644 --- a/xc/lib/Xt/Event.c +++ b/xc/lib/Xt/Event.c @@ -1,4 +1,4 @@ -/* $TOG: Event.c /main/153 1998/02/06 13:21:46 kaleb $ */ +/* $Xorg: Event.c,v 1.4 2000/08/17 19:46:11 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -663,7 +663,7 @@ void XtUnregisterDrawable(display, drawable) return; } idx = WWHASH(tab, window); - if (entry = tab->entries[idx]) { + if ((entry = tab->entries[idx])) { if (entry != widget) { rehash = WWREHASHVAL(tab, window); do { @@ -1435,7 +1435,7 @@ Boolean _XtDefaultDispatcher(event) if ((grabList == NULL ||_XtOnGrabList(dspWidget, grabList)) && XtIsSensitive(dspWidget)) { - if (was_filtered = XFilterEvent(event, XtWindow(dspWidget))) { + if ((was_filtered = XFilterEvent(event, XtWindow(dspWidget)))) { /* If this event activated a device grab, release it. */ _XtUngrabBadGrabs(event, widget, mask, pdi); was_dispatched = True; diff --git a/xc/lib/Xt/EventI.h b/xc/lib/Xt/EventI.h index 5e2debfc0..1acf252b0 100644 --- a/xc/lib/Xt/EventI.h +++ b/xc/lib/Xt/EventI.h @@ -1,4 +1,4 @@ -/* $TOG: EventI.h /main/23 1998/02/06 13:21:35 kaleb $ */ +/* $Xorg: EventI.h,v 1.3 2000/08/17 19:46:11 cpqbld Exp $ */ /* $oHeader: EventI.h,v 1.3 88/08/24 09:21:11 asente Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/EventUtil.c b/xc/lib/Xt/EventUtil.c index 7e6122298..959856009 100644 --- a/xc/lib/Xt/EventUtil.c +++ b/xc/lib/Xt/EventUtil.c @@ -1,4 +1,4 @@ -/* $TOG: EventUtil.c /main/14 1998/02/06 13:21:41 kaleb $ */ +/* $Xorg: EventUtil.c,v 1.3 2000/08/17 19:46:11 cpqbld Exp $ */ /******************************************************** diff --git a/xc/lib/Xt/Functions.c b/xc/lib/Xt/Functions.c index 423cb4d2a..9890662ce 100644 --- a/xc/lib/Xt/Functions.c +++ b/xc/lib/Xt/Functions.c @@ -1,4 +1,4 @@ -/* $TOG: Functions.c /main/14 1998/02/06 13:21:55 kaleb $ */ +/* $Xorg: Functions.c,v 1.3 2000/08/17 19:46:11 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/GCManager.c b/xc/lib/Xt/GCManager.c index 16511618b..df8b60acf 100644 --- a/xc/lib/Xt/GCManager.c +++ b/xc/lib/Xt/GCManager.c @@ -1,4 +1,4 @@ -/* $TOG: GCManager.c /main/40 1998/02/06 13:22:01 kaleb $ */ +/* $Xorg: GCManager.c,v 1.4 2000/08/17 19:46:11 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988, 1990 by Digital Equipment Corporation, Maynard, Massachusetts @@ -201,7 +201,7 @@ GC XtAllocateGC(widget, depth, valueMask, values, dynamicMask, unusedMask) readOnlyMask = ~(dynamicMask | unusedMask); /* Search for existing GC that matches exactly */ - for (prev = &pd->GClist; cur = *prev; prev = &cur->next) { + for (prev = &pd->GClist; (cur = *prev); prev = &cur->next) { if (cur->depth == depth && ScreenOfDisplay(dpy, cur->screen) == screen && Matches(dpy, cur, valueMask, values, readOnlyMask, dynamicMask)) { @@ -295,7 +295,7 @@ void XtReleaseGC(widget, gc) dpy = XtDisplayOfObject(widget); pd = _XtGetPerDisplay(dpy); - for (prev = &pd->GClist; cur = *prev; prev = &cur->next) { + for (prev = &pd->GClist; (cur = *prev); prev = &cur->next) { if (cur->gc == gc) { if (--(cur->ref_count) == 0) { *prev = cur->next; @@ -329,7 +329,7 @@ void XtDestroyGC(gc) for (i = app->count; i ;) { Display *dpy = app->list[--i]; XtPerDisplay pd = _XtGetPerDisplay(dpy); - for (prev = &pd->GClist; cur = *prev; prev = &cur->next) { + for (prev = &pd->GClist; (cur = *prev); prev = &cur->next) { if (cur->gc == gc) { if (--(cur->ref_count) == 0) { *prev = cur->next; diff --git a/xc/lib/Xt/Geometry.c b/xc/lib/Xt/Geometry.c index cb804bb33..fa3cc822f 100644 --- a/xc/lib/Xt/Geometry.c +++ b/xc/lib/Xt/Geometry.c @@ -1,4 +1,4 @@ -/* $TOG: Geometry.c /main/69 1998/02/06 13:22:07 kaleb $ CHECKEDOUT */ +/* $Xorg: Geometry.c,v 1.4 2000/08/17 19:46:11 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts @@ -54,7 +54,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/Geometry.c,v 1.8 2000/10/21 03:16:16 keithp Exp $ */ +/* $XFree86: xc/lib/Xt/Geometry.c,v 1.9 2001/01/17 19:43:04 dawes Exp $ */ #include "IntrinsicI.h" #include "ShellP.h" @@ -554,7 +554,6 @@ void XtResizeWindow(w) LOCK_APP(app); if (XtIsRealized(w)) { - XWindowChanges changes; req.changes.width = w->core.width; req.changes.height = w->core.height; req.changes.border_width = w->core.border_width; diff --git a/xc/lib/Xt/GetActKey.c b/xc/lib/Xt/GetActKey.c index 77cf68d47..971d67781 100644 --- a/xc/lib/Xt/GetActKey.c +++ b/xc/lib/Xt/GetActKey.c @@ -1,4 +1,4 @@ -/* $TOG: GetActKey.c /main/8 1998/02/06 13:22:14 kaleb $ */ +/* $Xorg: GetActKey.c,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /*LINTLIBRARY*/ diff --git a/xc/lib/Xt/GetResList.c b/xc/lib/Xt/GetResList.c index c31263e29..e0b8518d4 100644 --- a/xc/lib/Xt/GetResList.c +++ b/xc/lib/Xt/GetResList.c @@ -1,4 +1,4 @@ -/* $TOG: GetResList.c /main/9 1998/02/06 13:22:18 kaleb $ */ +/* $Xorg: GetResList.c,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/GetResList.c,v 3.3 1998/12/20 11:57:08 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/GetResList.c,v 3.4 2001/01/17 19:43:05 dawes Exp $ */ /* diff --git a/xc/lib/Xt/GetValues.c b/xc/lib/Xt/GetValues.c index 6717a6ed5..1190eca0a 100644 --- a/xc/lib/Xt/GetValues.c +++ b/xc/lib/Xt/GetValues.c @@ -1,4 +1,4 @@ -/* $TOG: GetValues.c /main/15 1998/02/06 13:22:23 kaleb $ */ +/* $Xorg: GetValues.c,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /*LINTLIBRARY*/ /*********************************************************** diff --git a/xc/lib/Xt/HookObj.c b/xc/lib/Xt/HookObj.c index 50673920f..b31718196 100644 --- a/xc/lib/Xt/HookObj.c +++ b/xc/lib/Xt/HookObj.c @@ -1,4 +1,4 @@ -/* $TOG: HookObj.c /main/4 1998/02/06 13:22:33 kaleb $ */ +/* $Xorg: HookObj.c,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/HookObjI.h b/xc/lib/Xt/HookObjI.h index 8d1e38b33..eddcd32fe 100644 --- a/xc/lib/Xt/HookObjI.h +++ b/xc/lib/Xt/HookObjI.h @@ -1,4 +1,4 @@ -/* $TOG: HookObjI.h /main/3 1998/02/06 13:22:28 kaleb $ */ +/* $Xorg: HookObjI.h,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/Hooks.c b/xc/lib/Xt/Hooks.c index 934bef4f3..f0e49c934 100644 --- a/xc/lib/Xt/Hooks.c +++ b/xc/lib/Xt/Hooks.c @@ -1,4 +1,4 @@ -/* $TOG: Hooks.c /main/9 1998/02/06 13:22:38 kaleb $ */ +/* $Xorg: Hooks.c,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/Imakefile b/xc/lib/Xt/Imakefile index f2837fc1b..41d0bfc60 100644 --- a/xc/lib/Xt/Imakefile +++ b/xc/lib/Xt/Imakefile @@ -1,9 +1,10 @@ -XCOMM $TOG: Imakefile /main/121 1998/05/11 14:35:32 barstow $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ -XCOMM $XFree86: xc/lib/Xt/Imakefile,v 3.14 1999/12/30 03:56:17 robin Exp $ +XCOMM $XFree86: xc/lib/Xt/Imakefile,v 3.15 2001/01/17 19:43:05 dawes Exp $ + #define DoNormalLib NormalLibXt #define DoSharedLib SharedLibXt #define DoExtraLib SharedLibXt diff --git a/xc/lib/Xt/InitialI.h b/xc/lib/Xt/InitialI.h index f704c44f9..da3a427e7 100644 --- a/xc/lib/Xt/InitialI.h +++ b/xc/lib/Xt/InitialI.h @@ -1,4 +1,4 @@ -/* $TOG: InitialI.h /main/87 1998/02/06 13:22:56 kaleb $ */ +/* $Xorg: InitialI.h,v 1.3 2000/08/17 19:46:12 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Initialize.c b/xc/lib/Xt/Initialize.c index e95d308b7..c644d2985 100644 --- a/xc/lib/Xt/Initialize.c +++ b/xc/lib/Xt/Initialize.c @@ -1,4 +1,4 @@ -/* $TOG: Initialize.c /main/214 1998/06/19 14:27:36 kaleb $ */ +/* $Xorg: Initialize.c,v 1.7 2000/08/17 19:46:12 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Initialize.c,v 3.15 1998/10/03 09:06:54 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Initialize.c,v 3.16 2001/01/17 19:43:05 dawes Exp $ */ /* @@ -204,6 +204,7 @@ void _XtInherit() void XtToolkitInitialize() { extern void _XtResourceListInitialize(); + extern Boolean XtAppPeekEvent_SkipTimer; static Boolean initialized = False; LOCK_PROCESS; @@ -221,6 +222,12 @@ void XtToolkitInitialize() _XtConvertInitialize(); _XtEventInitialize(); _XtTranslateInitialize(); + + /* Some apps rely on old (broken) XtAppPeekEvent behavior */ + if(getenv("XTAPPPEEKEVENT_SKIPTIMER")) + XtAppPeekEvent_SkipTimer = True; + else + XtAppPeekEvent_SkipTimer = False; } @@ -290,7 +297,7 @@ static String GetRootDirName(dest, len) (void) strncpy (dest, ptr, len-1); dest[len-1] = '\0'; } else { - if (ptr = getenv("USER")) + if ((ptr = getenv("USER"))) pw = _XGetpwnam(ptr,pwparams); else pw = _XGetpwuid(getuid(),pwparams); @@ -476,7 +483,7 @@ XrmDatabase XtScreenDatabase(screen) doing_def = False; } pd = _XtGetPerDisplay(dpy); - if (db = pd->per_screen_db[scrno]) { + if ((db = pd->per_screen_db[scrno])) { UNLOCK_PROCESS; UNLOCK_APP(app); return (doing_def ? XrmGetDatabase(dpy) : db); @@ -529,8 +536,8 @@ XrmDatabase XtScreenDatabase(screen) { /* System app-defaults */ char *filename; - if (filename = XtResolvePathname(dpy, "app-defaults", - NULL, NULL, NULL, NULL, 0, NULL)) { + if ((filename = XtResolvePathname(dpy, "app-defaults", + NULL, NULL, NULL, NULL, 0, NULL))) { do_fallback = !XrmCombineFileDatabase(filename, &db, False); XtFree(filename); } diff --git a/xc/lib/Xt/Intrinsic.c b/xc/lib/Xt/Intrinsic.c index f4e5ea059..7611b7ca4 100644 --- a/xc/lib/Xt/Intrinsic.c +++ b/xc/lib/Xt/Intrinsic.c @@ -1,4 +1,4 @@ -/* $TOG: Intrinsic.c /main/158 1998/06/17 13:26:39 kaleb $ */ +/* $Xorg: Intrinsic.c,v 1.3 2000/08/17 19:46:13 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Intrinsic.c,v 3.16 2000/09/27 18:49:59 keithp Exp $ */ +/* $XFree86: xc/lib/Xt/Intrinsic.c,v 3.17 2001/01/17 19:43:05 dawes Exp $ */ /* diff --git a/xc/lib/Xt/Intrinsic.h b/xc/lib/Xt/Intrinsic.h index 1fcf3e746..8f20a47d7 100644 --- a/xc/lib/Xt/Intrinsic.h +++ b/xc/lib/Xt/Intrinsic.h @@ -1,4 +1,4 @@ -/* $TOG: Intrinsic.h /main/178 1998/02/06 13:23:20 kaleb $ */ +/* $Xorg: Intrinsic.h,v 1.3 2000/08/17 19:46:13 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -44,7 +44,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/Intrinsic.h,v 3.5 2000/12/15 22:48:39 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Intrinsic.h,v 3.6 2001/01/17 19:43:05 dawes Exp $ */ #ifndef _XtIntrinsic_h #define _XtIntrinsic_h diff --git a/xc/lib/Xt/IntrinsicI.h b/xc/lib/Xt/IntrinsicI.h index 71d3e9f42..e6d61c70f 100644 --- a/xc/lib/Xt/IntrinsicI.h +++ b/xc/lib/Xt/IntrinsicI.h @@ -1,4 +1,4 @@ -/* $TOG: IntrinsicI.h /main/48 1998/02/06 13:23:00 kaleb $ */ +/* $Xorg: IntrinsicI.h,v 1.3 2000/08/17 19:46:13 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/IntrinsicI.h,v 3.4 1998/10/03 09:06:55 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/IntrinsicI.h,v 3.5 2001/01/17 19:43:05 dawes Exp $ */ #ifndef _XtintrinsicI_h #define _XtintrinsicI_h diff --git a/xc/lib/Xt/IntrinsicP.h b/xc/lib/Xt/IntrinsicP.h index 06b42dab0..0e0baa641 100644 --- a/xc/lib/Xt/IntrinsicP.h +++ b/xc/lib/Xt/IntrinsicP.h @@ -1,4 +1,4 @@ -/* $TOG: IntrinsicP.h /main/52 1998/02/06 13:23:06 kaleb $ */ +/* $Xorg: IntrinsicP.h,v 1.3 2000/08/17 19:46:13 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Keyboard.c b/xc/lib/Xt/Keyboard.c index f57204d65..8e6bf855c 100644 --- a/xc/lib/Xt/Keyboard.c +++ b/xc/lib/Xt/Keyboard.c @@ -1,4 +1,4 @@ -/* $TOG: Keyboard.c /main/37 1998/02/06 13:23:52 kaleb $ */ +/* $Xorg: Keyboard.c,v 1.4 2000/08/17 19:46:13 cpqbld Exp $ */ /******************************************************** @@ -92,7 +92,7 @@ static XtServerGrabPtr CheckServerGrabs(event, trace, traceDepth) for (i = traceDepth; i > 0; i--) { - if (grab = _XtCheckServerGrabsOnWidget(event, trace[i-1], KEYBOARD)) + if ((grab = _XtCheckServerGrabsOnWidget(event, trace[i-1], KEYBOARD))) return (grab); } return (XtServerGrabPtr)0; @@ -159,7 +159,7 @@ static Widget _FindFocusWidget(widget, trace, traceDepth, activeCheck, isTarget) /* first check the trace list till done or we go to branch */ for (src = traceDepth-1, dst = widget; src > 0;) { - if (pwi = _XtGetPerWidgetInput(trace[src], FALSE)) + if ((pwi = _XtGetPerWidgetInput(trace[src], FALSE))) { if (pwi->focusKid) { @@ -352,9 +352,9 @@ static Widget FindKeyDestination(widget, event, /* ignore lca */ pseudoTraceDepth--; } - if (grab = CheckServerGrabs((XEvent*)event, + if ((grab = CheckServerGrabs((XEvent*)event, pseudoTrace, - pseudoTraceDepth)) + pseudoTraceDepth))) { XtDevice device = &pdi->keyboard; diff --git a/xc/lib/Xt/Manage.c b/xc/lib/Xt/Manage.c index 9ef494482..42efce7ff 100644 --- a/xc/lib/Xt/Manage.c +++ b/xc/lib/Xt/Manage.c @@ -1,4 +1,4 @@ -/* $TOG: Manage.c /main/37 1998/02/06 13:24:03 kaleb $ */ +/* $Xorg: Manage.c,v 1.3 2000/08/17 19:46:13 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Manage.c,v 3.5 1998/10/03 09:06:56 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Manage.c,v 3.6 2001/01/17 19:43:05 dawes Exp $ */ /* diff --git a/xc/lib/Xt/NextEvent.c b/xc/lib/Xt/NextEvent.c index f7abccb07..0dce4bf54 100644 --- a/xc/lib/Xt/NextEvent.c +++ b/xc/lib/Xt/NextEvent.c @@ -1,4 +1,4 @@ -/* $TOG: NextEvent.c /main/138 1998/04/30 11:52:29 barstow $ */ +/* $Xorg: NextEvent.c,v 1.6 2000/08/17 19:46:14 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -54,7 +54,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/NextEvent.c,v 3.15 1999/03/14 03:21:15 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/NextEvent.c,v 3.18 2001/02/11 04:41:28 keithp Exp $ */ #include "IntrinsicI.h" #include <stdio.h> @@ -479,8 +479,16 @@ static void FindInputs (app, wf, nfds, ignoreEvents, ignoreInputs, dpy_no, found if (condition) { for (ep = app->input_list[ii]; ep; ep = ep->ie_next) if (condition & ep->ie_condition) { - ep->ie_oq = app->outstandingQueue; - app->outstandingQueue = ep; + /* make sure this input isn't already marked outstanding */ + InputEvent *oq; + for (oq = app->outstandingQueue; oq; oq = oq->ie_oq) + if (oq == ep) + break; + if (!oq) + { + ep->ie_oq = app->outstandingQueue; + app->outstandingQueue = ep; + } } *found_input = True; } @@ -526,8 +534,16 @@ ENDILOOP: ; *found_input = True; for (ep = app->input_list[fdlp->fd]; ep; ep = ep->ie_next) if (condition & ep->ie_condition) { - ep->ie_oq = app->outstandingQueue; - app->outstandingQueue = ep; + InputEvent *oq; + /* make sure this input isn't already marked outstanding */ + for (oq = app->outstandingQueue; oq; oq = oq->ie_oq) + if (oq == ep) + break; + if (!oq) + { + ep->ie_oq = app->outstandingQueue; + app->outstandingQueue = ep; + } } } } @@ -1597,6 +1613,8 @@ Boolean XtPeekEvent(event) return XtAppPeekEvent(_XtDefaultAppContext(), event); } +Boolean XtAppPeekEvent_SkipTimer; + Boolean XtAppPeekEvent(app, event) XtAppContext app; XEvent *event; @@ -1624,25 +1642,80 @@ Boolean XtAppPeekEvent(app, event) UNLOCK_APP(app); return FALSE; } - - d = _XtWaitForSomething (app, - FALSE, FALSE, FALSE, FALSE, - TRUE, + + while (1) { + d = _XtWaitForSomething (app, + FALSE, FALSE, FALSE, FALSE, + TRUE, #ifdef XTHREADS - TRUE, + TRUE, #endif - (unsigned long *) NULL); - - if (d != -1) { - GotEvent: - XPeekEvent(app->list[d], event); - app->last = (d == 0 ? app->count : d) - 1; - UNLOCK_APP(app); - return TRUE; - } - event->xany.type = 0; /* Something else must be ready */ - event->xany.display = NULL; - event->xany.window = 0; - UNLOCK_APP(app); - return FALSE; + (unsigned long *) NULL); + + if (d != -1) { /* event */ + GotEvent: + XPeekEvent(app->list[d], event); + app->last = (d == 0 ? app->count : d) - 1; + UNLOCK_APP(app); + return TRUE; + } + else { /* input or timer or signal */ + /* + * Check to see why a -1 was returned, if a timer expired, + * call it and block some more + */ + if ((app->timerQueue != NULL) && ! XtAppPeekEvent_SkipTimer) { /* timer */ + struct timeval cur_time; + Bool did_timer = False; + + X_GETTIMEOFDAY (&cur_time); + FIXUP_TIMEVAL(cur_time); + while (IS_AT_OR_AFTER(app->timerQueue->te_timer_value, cur_time)) { + TimerEventRec *te_ptr = app->timerQueue; + app->timerQueue = app->timerQueue->te_next; + te_ptr->te_next = NULL; + if (te_ptr->te_proc != NULL) + TeCallProc(te_ptr); + LOCK_PROCESS; + did_timer = True; + te_ptr->te_next = freeTimerRecs; + freeTimerRecs = te_ptr; + UNLOCK_PROCESS; + if (app->timerQueue == NULL) break; + } + if (did_timer) + { + for (d = 0; d < app->count; d++) + /* the timer's procedure may have caused an event */ + if (XEventsQueued(app->list[d], QueuedAfterFlush)) { + goto GotEvent; + } + continue; /* keep blocking */ + } + } + /* + * spec is vague here; we'll assume signals also return FALSE, + * of course to determine whether a signal is pending requires + * walking the signalQueue looking for se_notice flags which + * this code doesn't do. + */ +#if 0 + if (app->signalQueue != NULL) { /* signal */ + event->xany.type = 0; + event->xany.display = NULL; + event->xany.window = 0; + UNLOCK_APP(app); + return FALSE; + } + else +#endif + { /* input */ + event->xany.type = 0; + event->xany.display = NULL; + event->xany.window = 0; + UNLOCK_APP(app); + return FALSE; + } + } + } /* end while */ } diff --git a/xc/lib/Xt/Object.c b/xc/lib/Xt/Object.c index 6048a3085..e57045a15 100644 --- a/xc/lib/Xt/Object.c +++ b/xc/lib/Xt/Object.c @@ -1,4 +1,4 @@ -/* $TOG: Object.c /main/27 1998/02/06 13:24:22 kaleb $ */ +/* $Xorg: Object.c,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -54,7 +54,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/Object.c,v 1.4 1998/12/20 11:57:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Object.c,v 1.5 2001/01/17 19:43:06 dawes Exp $ */ #define OBJECT #include "IntrinsicI.h" diff --git a/xc/lib/Xt/Object.h b/xc/lib/Xt/Object.h index 44c5d73fd..a72012db4 100644 --- a/xc/lib/Xt/Object.h +++ b/xc/lib/Xt/Object.h @@ -1,4 +1,4 @@ -/* $TOG: Object.h /main/10 1998/02/06 13:24:28 kaleb $ */ +/* $Xorg: Object.h,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /* $oHeader: Object.h,v 1.2 88/08/18 15:55:32 asente Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/ObjectP.h b/xc/lib/Xt/ObjectP.h index d580f9d45..d012314d1 100644 --- a/xc/lib/Xt/ObjectP.h +++ b/xc/lib/Xt/ObjectP.h @@ -1,4 +1,4 @@ -/* $TOG: ObjectP.h /main/15 1998/02/06 13:24:17 kaleb $ */ +/* $Xorg: ObjectP.h,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/PassivGraI.h b/xc/lib/Xt/PassivGraI.h index b2071509b..54519fe4b 100644 --- a/xc/lib/Xt/PassivGraI.h +++ b/xc/lib/Xt/PassivGraI.h @@ -1,5 +1,5 @@ /* -* $TOG: PassivGraI.h /main/13 1998/02/06 13:24:39 kaleb $ +* $Xorg: PassivGraI.h,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /******************************************************** diff --git a/xc/lib/Xt/PassivGrab.c b/xc/lib/Xt/PassivGrab.c index 1391e5533..753c75ebf 100644 --- a/xc/lib/Xt/PassivGrab.c +++ b/xc/lib/Xt/PassivGrab.c @@ -1,4 +1,4 @@ -/* $TOG: PassivGrab.c /main/31 1998/02/06 13:24:33 kaleb $ */ +/* $Xorg: PassivGrab.c,v 1.4 2000/08/17 19:46:15 cpqbld Exp $ */ /******************************************************** @@ -365,7 +365,7 @@ static void DeleteServerGrabFromList(passiveListPtr, pMinuendGrab) register XtServerGrabPtr grab; register XtServerGrabExtPtr ext; - for (next = passiveListPtr; grab = *next; ) + for (next = passiveListPtr; (grab = *next); ) { if (GrabMatchesSecond(grab, pMinuendGrab) && (pDisplay(grab) == pDisplay(pMinuendGrab))) diff --git a/xc/lib/Xt/Pointer.c b/xc/lib/Xt/Pointer.c index 7ba9a30bb..695186d56 100644 --- a/xc/lib/Xt/Pointer.c +++ b/xc/lib/Xt/Pointer.c @@ -1,4 +1,4 @@ -/* $TOG: Pointer.c /main/6 1998/02/06 13:24:44 kaleb $ */ +/* $Xorg: Pointer.c,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /******************************************************** diff --git a/xc/lib/Xt/Popup.c b/xc/lib/Xt/Popup.c index 896db6702..c0ded4f7a 100644 --- a/xc/lib/Xt/Popup.c +++ b/xc/lib/Xt/Popup.c @@ -1,4 +1,4 @@ -/* $TOG: Popup.c /main/29 1998/05/11 14:35:39 barstow $ */ +/* $Xorg: Popup.c,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/PopupCB.c b/xc/lib/Xt/PopupCB.c index cc3b527d8..407abd160 100644 --- a/xc/lib/Xt/PopupCB.c +++ b/xc/lib/Xt/PopupCB.c @@ -1,4 +1,4 @@ -/* $TOG: PopupCB.c /main/4 1998/02/06 13:24:49 kaleb $ */ +/* $Xorg: PopupCB.c,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/RectObj.c b/xc/lib/Xt/RectObj.c index dcb8b0dea..7c5c1f6b7 100644 --- a/xc/lib/Xt/RectObj.c +++ b/xc/lib/Xt/RectObj.c @@ -1,4 +1,4 @@ -/* $TOG: RectObj.c /main/16 1998/02/06 13:25:04 kaleb $ */ +/* $Xorg: RectObj.c,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/RectObj.h b/xc/lib/Xt/RectObj.h index af2bc631e..fba2bdf0a 100644 --- a/xc/lib/Xt/RectObj.h +++ b/xc/lib/Xt/RectObj.h @@ -1,4 +1,4 @@ -/* $TOG: RectObj.h /main/10 1998/02/06 13:25:09 kaleb $ */ +/* $Xorg: RectObj.h,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /* $oHeader: RectObj.h,v 1.2 88/08/18 17:39:17 asente Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/RectObjP.h b/xc/lib/Xt/RectObjP.h index 9a944dbfa..55abb77ef 100644 --- a/xc/lib/Xt/RectObjP.h +++ b/xc/lib/Xt/RectObjP.h @@ -1,4 +1,4 @@ -/* $TOG: RectObjP.h /main/14 1998/02/06 13:24:59 kaleb $ */ +/* $Xorg: RectObjP.h,v 1.3 2000/08/17 19:46:15 cpqbld Exp $ */ /* $oHeader: RectObjP.h,v 1.2 88/08/18 15:55:52 asente Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/ResConfig.c b/xc/lib/Xt/ResConfig.c index 0d10439f6..9aadb1567 100644 --- a/xc/lib/Xt/ResConfig.c +++ b/xc/lib/Xt/ResConfig.c @@ -1,4 +1,4 @@ -/* $TOG: ResConfig.c /main/5 1998/02/06 13:25:19 kaleb $ */ +/* $Xorg: ResConfig.c,v 1.4 2000/08/17 19:46:16 cpqbld Exp $ */ /* Copyright 1987, 1988, 1998 The Open Group @@ -20,28 +20,34 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* - * 1.1 src/gos/2d/XTOP/lib/Xt/custom_proto.c, xtoolkit, gos42G 6/2/92 11:17:42 - * - * COMPONENT_NAME: XTOOLKIT - * - * FUNCTIONS: - * _XtResourceConfiguationEH - * _search_widget_tree, _search_child, _locate_children, - * _get_part, _get_last_part, _match_resource_to_widget, - * _set_and_search, _apply_values_to_children, _set_resource_values, - * - * ORIGINS: 27 - * - * IBM CONFIDENTIAL -- (IBM Confidential Restricted when - * combined with the aggregated modules for this product) - * OBJECT CODE ONLY SOURCE MATERIALS - * (C) COPYRIGHT International Business Machines Corp. 1992 - * All Rights Reserved - * - * US Government Users Restricted Rights - Use, duplication or - * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. - */ +/***************************************************************** + +(C) COPYRIGHT International Business Machines Corp. 1992,1997 + All Rights Reserved + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE IBM CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, +BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the IBM Corporation shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from the IBM +Corporation. + +******************************************************************/ #include "Intrinsic.h" #include "IntrinsicI.h" diff --git a/xc/lib/Xt/ResConfigP.h b/xc/lib/Xt/ResConfigP.h index c46db1559..448041bb6 100644 --- a/xc/lib/Xt/ResConfigP.h +++ b/xc/lib/Xt/ResConfigP.h @@ -1,4 +1,4 @@ -/* $TOG: ResConfigP.h /main/2 1998/02/06 13:25:14 kaleb $ */ +/* $Xorg: ResConfigP.h,v 1.4 2000/08/17 19:46:16 cpqbld Exp $ */ /* Copyright 1987, 1988, 1998 The Open Group @@ -20,24 +20,34 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* - * 1.2 src/gos/2d/XTOP/lib/Xt/custom_proto.h, xtoolkit, gos42G 8/12/93 10:35:50 - * - * COMPONENT_NAME: XTOOLKIT - * - * FUNCTIONS: - * - * ORIGINS: 27 - * - * IBM CONFIDENTIAL -- (IBM Confidential Restricted when - * combined with the aggregated modules for this product) - * OBJECT CODE ONLY SOURCE MATERIALS - * (C) COPYRIGHT International Business Machines Corp. 1992 - * All Rights Reserved - * - * US Government Users Restricted Rights - Use, duplication or - * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. - */ +/***************************************************************** + +(C) COPYRIGHT International Business Machines Corp. 1992,1997 + All Rights Reserved + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE IBM CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, +BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the IBM Corporation shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from the IBM +Corporation. + +******************************************************************/ #ifndef _RESCONFIGP_H #define _RESCONFIGP_H diff --git a/xc/lib/Xt/ResourceI.h b/xc/lib/Xt/ResourceI.h index 001fcb7ef..6dd0ddda7 100644 --- a/xc/lib/Xt/ResourceI.h +++ b/xc/lib/Xt/ResourceI.h @@ -1,4 +1,4 @@ -/* $TOG: ResourceI.h /main/11 1998/02/06 13:25:25 kaleb $ */ +/* $Xorg: ResourceI.h,v 1.3 2000/08/17 19:46:16 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/Resources.c b/xc/lib/Xt/Resources.c index d10879d23..7cd8f5c19 100644 --- a/xc/lib/Xt/Resources.c +++ b/xc/lib/Xt/Resources.c @@ -1,4 +1,4 @@ -/* $TOG: Resources.c /main/115 1998/06/19 11:08:11 kaleb $ */ +/* $Xorg: Resources.c,v 1.3 2000/08/17 19:46:16 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -55,7 +55,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/Resources.c,v 1.6 1998/12/20 11:57:09 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Resources.c,v 1.7 2001/01/17 19:43:07 dawes Exp $ */ /*LINTLIBRARY*/ #include "IntrinsicI.h" diff --git a/xc/lib/Xt/Selection.c b/xc/lib/Xt/Selection.c index 5a329ef44..ce0e1ae46 100644 --- a/xc/lib/Xt/Selection.c +++ b/xc/lib/Xt/Selection.c @@ -1,4 +1,4 @@ -/* $TOG: Selection.c /main/99 1998/02/06 13:25:43 kaleb $ */ +/* $Xorg: Selection.c,v 1.3 2000/08/17 19:46:16 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, diff --git a/xc/lib/Xt/SelectionI.h b/xc/lib/Xt/SelectionI.h index 5d8cff96b..fd10f049c 100644 --- a/xc/lib/Xt/SelectionI.h +++ b/xc/lib/Xt/SelectionI.h @@ -1,4 +1,4 @@ -/* $TOG: SelectionI.h /main/38 1998/02/06 13:25:38 kaleb $ */ +/* $Xorg: SelectionI.h,v 1.3 2000/08/17 19:46:17 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/SetSens.c b/xc/lib/Xt/SetSens.c index 433119a85..081b568d9 100644 --- a/xc/lib/Xt/SetSens.c +++ b/xc/lib/Xt/SetSens.c @@ -1,4 +1,4 @@ -/* $TOG: SetSens.c /main/7 1998/02/06 13:25:53 kaleb $ */ +/* $Xorg: SetSens.c,v 1.3 2000/08/17 19:46:17 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/SetValues.c b/xc/lib/Xt/SetValues.c index 67c7f2966..9dbe89dee 100644 --- a/xc/lib/Xt/SetValues.c +++ b/xc/lib/Xt/SetValues.c @@ -1,4 +1,4 @@ -/* $TOG: SetValues.c /main/24 1998/02/06 13:25:58 kaleb $ */ +/* $Xorg: SetValues.c,v 1.3 2000/08/17 19:46:17 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/SetWMCW.c b/xc/lib/Xt/SetWMCW.c index d0b6bd841..379d928a8 100644 --- a/xc/lib/Xt/SetWMCW.c +++ b/xc/lib/Xt/SetWMCW.c @@ -1,4 +1,4 @@ -/* $TOG: SetWMCW.c /main/11 1998/02/06 13:26:04 kaleb $ */ +/* $Xorg: SetWMCW.c,v 1.3 2000/08/17 19:46:17 cpqbld Exp $ */ /* * Copyright 1993 by Sun Microsystems, Inc. Mountain View, CA. diff --git a/xc/lib/Xt/Shell.c b/xc/lib/Xt/Shell.c index dfc0b1bea..1591d162e 100644 --- a/xc/lib/Xt/Shell.c +++ b/xc/lib/Xt/Shell.c @@ -1,4 +1,4 @@ -/* $TOG: Shell.c /main/178 1998/02/06 13:26:20 kaleb $ */ +/* $Xorg: Shell.c,v 1.3 2000/08/17 19:46:17 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Shell.c,v 3.8 1998/10/03 09:06:58 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Shell.c,v 3.9 2001/01/17 19:43:09 dawes Exp $ */ /* diff --git a/xc/lib/Xt/ShellP.h b/xc/lib/Xt/ShellP.h index fccd15b7d..6723595e7 100644 --- a/xc/lib/Xt/ShellP.h +++ b/xc/lib/Xt/ShellP.h @@ -1,4 +1,4 @@ -/* $TOG: ShellP.h /main/34 1998/02/06 13:26:15 kaleb $ */ +/* $Xorg: ShellP.h,v 1.3 2000/08/17 19:46:18 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/TMaction.c b/xc/lib/Xt/TMaction.c index 915eb8821..2da566695 100644 --- a/xc/lib/Xt/TMaction.c +++ b/xc/lib/Xt/TMaction.c @@ -1,4 +1,4 @@ -/* $TOG: TMaction.c /main/30 1998/05/12 11:19:24 kaleb $ */ +/* $Xorg: TMaction.c,v 1.4 2000/08/17 19:46:18 cpqbld Exp $ */ /*LINTLIBRARY*/ /*********************************************************** @@ -151,7 +151,6 @@ static void ReportUnboundActions(xlations, bindData) register Cardinal num_chars = 0; register Cardinal i, j; XtActionProc *procs; - char* msg_prefix = "Actions not found: "; for (i=0; i < xlations->numStateTrees; i++) { if (bindData->simple.isComplex) diff --git a/xc/lib/Xt/TMgrab.c b/xc/lib/Xt/TMgrab.c index db918627b..973a82029 100644 --- a/xc/lib/Xt/TMgrab.c +++ b/xc/lib/Xt/TMgrab.c @@ -1,4 +1,4 @@ -/* $TOG: TMgrab.c /main/13 1998/02/06 13:26:51 kaleb $ */ +/* $Xorg: TMgrab.c,v 1.3 2000/08/17 19:46:18 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/TMkey.c b/xc/lib/Xt/TMkey.c index 80f7c3064..aa80f24d8 100644 --- a/xc/lib/Xt/TMkey.c +++ b/xc/lib/Xt/TMkey.c @@ -1,4 +1,4 @@ -/* $TOG: TMkey.c /main/34 1998/02/06 13:26:56 kaleb $ */ +/* $Xorg: TMkey.c,v 1.3 2000/08/17 19:46:18 cpqbld Exp $ */ /*LINTLIBRARY*/ /*********************************************************** diff --git a/xc/lib/Xt/TMparse.c b/xc/lib/Xt/TMparse.c index bc30803e4..16c14ad3b 100644 --- a/xc/lib/Xt/TMparse.c +++ b/xc/lib/Xt/TMparse.c @@ -1,4 +1,4 @@ -/* $TOG: TMparse.c /main/123 1998/05/12 11:19:31 kaleb $ */ +/* $Xorg: TMparse.c,v 1.5 2000/08/17 19:46:18 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/TMparse.c,v 3.4 1998/10/03 09:07:00 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/TMparse.c,v 3.5 2001/01/17 19:43:10 dawes Exp $ */ /* @@ -474,7 +474,6 @@ static String PanicModeRecovery(str) static void Syntax(str0,str1) String str0,str1; { - Cardinal numChars; Cardinal num_params = 2; String params[2]; @@ -781,7 +780,7 @@ static unsigned long StrToHex(str) register char c; register unsigned long val = 0; - while (c = *str) { + while ((c = *str)) { if ('0' <= c && c <= '9') val = val*16+c-'0'; else if ('a' <= c && c <= 'z') val = val*16+c-'a'+10; else if ('A' <= c && c <= 'Z') val = val*16+c-'A'+10; @@ -798,7 +797,7 @@ static unsigned long StrToOct(str) register char c; register unsigned long val = 0; - while (c = *str) { + while ((c = *str)) { if ('0' <= c && c <= '7') val = val*8+c-'0'; else return 0; str++; } @@ -818,7 +817,7 @@ static unsigned long StrToNum(str) else return StrToOct(str); } - while (c = *str) { + while ((c = *str)) { if ('0' <= c && c <= '9') val = val*10+c-'0'; else return 0; str++; diff --git a/xc/lib/Xt/TMprint.c b/xc/lib/Xt/TMprint.c index 279282df0..46ee61a85 100644 --- a/xc/lib/Xt/TMprint.c +++ b/xc/lib/Xt/TMprint.c @@ -1,4 +1,4 @@ -/* $TOG: TMprint.c /main/16 1998/02/06 13:27:12 kaleb $ */ +/* $Xorg: TMprint.c,v 1.3 2000/08/17 19:46:19 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts diff --git a/xc/lib/Xt/TMstate.c b/xc/lib/Xt/TMstate.c index 9bb41830d..20b0c5d60 100644 --- a/xc/lib/Xt/TMstate.c +++ b/xc/lib/Xt/TMstate.c @@ -1,4 +1,4 @@ -/* $TOG: TMstate.c /main/155 1998/04/23 10:49:36 barstow $ */ +/* $Xorg: TMstate.c,v 1.4 2000/08/17 19:46:19 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts, @@ -32,7 +32,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/TMstate.c,v 1.4 1998/12/20 11:57:10 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/TMstate.c,v 1.5 2001/01/17 19:43:11 dawes Exp $ */ /* @@ -1348,7 +1348,7 @@ void _XtDestroyTMData(widget) _XtUninstallTranslations(widget); - if (cBindData = (TMComplexBindData)widget->core.tm.proc_table) { + if ((cBindData = (TMComplexBindData)widget->core.tm.proc_table)) { if (cBindData->isComplex) { ATranslations aXlations, nXlations; diff --git a/xc/lib/Xt/Threads.c b/xc/lib/Xt/Threads.c index daf8b7e91..225704924 100644 --- a/xc/lib/Xt/Threads.c +++ b/xc/lib/Xt/Threads.c @@ -1,4 +1,4 @@ -/* $TOG: Threads.c /main/19 1998/02/06 13:26:39 kaleb $ */ +/* $Xorg: Threads.c,v 1.3 2000/08/17 19:46:19 cpqbld Exp $ */ /************************************************************ Copyright 1993 by Sun Microsystems, Inc. Mountain View, CA. diff --git a/xc/lib/Xt/ThreadsI.h b/xc/lib/Xt/ThreadsI.h index 38f11ae1e..05764c7ea 100644 --- a/xc/lib/Xt/ThreadsI.h +++ b/xc/lib/Xt/ThreadsI.h @@ -1,4 +1,4 @@ -/* $TOG: ThreadsI.h /main/11 1998/02/06 13:26:34 kaleb $ */ +/* $Xorg: ThreadsI.h,v 1.3 2000/08/17 19:46:19 cpqbld Exp $ */ /************************************************************ Copyright 1993 by Sun Microsystems, Inc. Mountain View, CA. diff --git a/xc/lib/Xt/TranslateI.h b/xc/lib/Xt/TranslateI.h index 6756b75d7..c9163899b 100644 --- a/xc/lib/Xt/TranslateI.h +++ b/xc/lib/Xt/TranslateI.h @@ -1,4 +1,4 @@ -/* $TOG: TranslateI.h /main/49 1998/02/06 13:27:28 kaleb $ */ +/* $Xorg: TranslateI.h,v 1.3 2000/08/17 19:46:19 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/VarCreate.c b/xc/lib/Xt/VarCreate.c index dfff7047f..2d29ba5e3 100644 --- a/xc/lib/Xt/VarCreate.c +++ b/xc/lib/Xt/VarCreate.c @@ -1,4 +1,4 @@ -/* $TOG: VarCreate.c /main/34 1998/02/06 13:27:44 kaleb $ */ +/* $Xorg: VarCreate.c,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/VarGet.c b/xc/lib/Xt/VarGet.c index 0b95935ba..69a9700aa 100644 --- a/xc/lib/Xt/VarGet.c +++ b/xc/lib/Xt/VarGet.c @@ -1,4 +1,4 @@ -/* $TOG: VarGet.c /main/23 1998/02/06 13:27:49 kaleb $ */ +/* $Xorg: VarGet.c,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ /* Copyright 1993 by Sun Microsystems, Inc. Mountain View, CA. diff --git a/xc/lib/Xt/Varargs.c b/xc/lib/Xt/Varargs.c index bfe6b0d50..78bc46094 100644 --- a/xc/lib/Xt/Varargs.c +++ b/xc/lib/Xt/Varargs.c @@ -1,4 +1,4 @@ -/* $TOG: Varargs.c /main/35 1998/02/06 13:27:38 kaleb $ */ +/* $Xorg: Varargs.c,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/VarargsI.h b/xc/lib/Xt/VarargsI.h index 079ae5b1b..0c6eb1677 100644 --- a/xc/lib/Xt/VarargsI.h +++ b/xc/lib/Xt/VarargsI.h @@ -1,4 +1,4 @@ -/* $TOG: VarargsI.h /main/19 1998/02/06 13:27:34 kaleb $ */ +/* $Xorg: VarargsI.h,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ /* diff --git a/xc/lib/Xt/Vendor.c b/xc/lib/Xt/Vendor.c index 960a1c3dc..8ac8f7661 100644 --- a/xc/lib/Xt/Vendor.c +++ b/xc/lib/Xt/Vendor.c @@ -1,4 +1,4 @@ -/* $TOG: Vendor.c /main/21 1998/02/06 13:28:00 kaleb $ */ +/* $Xorg: Vendor.c,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ /*********************************************************** @@ -42,7 +42,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Vendor.c,v 1.4 1998/10/03 09:07:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Vendor.c,v 1.5 2001/01/17 19:43:13 dawes Exp $ */ /* Make sure all wm properties can make it out of the resource manager */ diff --git a/xc/lib/Xt/Vendor.h b/xc/lib/Xt/Vendor.h index 53b3a7f3c..41406af46 100644 --- a/xc/lib/Xt/Vendor.h +++ b/xc/lib/Xt/Vendor.h @@ -1,5 +1,5 @@ /* -* $TOG: Vendor.h /main/9 1998/02/06 13:28:06 kaleb $ +* $Xorg: Vendor.h,v 1.4 2000/08/17 19:46:20 cpqbld Exp $ * $oHeader: Vendor.h,v 1.2 88/08/18 15:56:44 asente Exp $ */ @@ -49,6 +49,8 @@ SOFTWARE. #ifndef _XtVendor_h #define _XtVendor_h +#include <X11/Intrinsic.h> + /*********************************************************************** * * VendorShell Widget diff --git a/xc/lib/Xt/VendorP.h b/xc/lib/Xt/VendorP.h index 7b80ed995..c426d1417 100644 --- a/xc/lib/Xt/VendorP.h +++ b/xc/lib/Xt/VendorP.h @@ -1,5 +1,5 @@ /* -* $TOG: VendorP.h /main/12 1998/02/06 13:27:55 kaleb $ +* $Xorg: VendorP.h,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ * $oHeader: VendorP.h,v 1.2 88/08/18 15:56:48 asente Exp $ */ diff --git a/xc/lib/Xt/Xt-def.cpp b/xc/lib/Xt/Xt-def.cpp index 8ea16d0fd..0f35dcd6c 100644 --- a/xc/lib/Xt/Xt-def.cpp +++ b/xc/lib/Xt/Xt-def.cpp @@ -338,4 +338,4 @@ EXPORTS XtWindow XtWindowOfObject XtWindowToWidget -/* $TOG: Xt-def.cpp /main/1 1997/09/16 10:02:29 kaleb $ */ +/* $Xorg: Xt-def.cpp,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ diff --git a/xc/lib/Xt/Xtos.h b/xc/lib/Xt/Xtos.h index 7422dd6ae..d08d1f647 100644 --- a/xc/lib/Xt/Xtos.h +++ b/xc/lib/Xt/Xtos.h @@ -1,5 +1,5 @@ /* -* $TOG: Xtos.h /main/20 1998/02/06 13:28:11 kaleb $ +* $Xorg: Xtos.h,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ */ /*********************************************************** @@ -44,7 +44,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Xtos.h,v 3.4 2000/08/23 22:10:03 tsi Exp $ */ +/* $XFree86: xc/lib/Xt/Xtos.h,v 3.5 2001/01/17 19:43:13 dawes Exp $ */ #ifndef _Xtos_h #define _Xtos_h diff --git a/xc/lib/Xt/jump_funcs b/xc/lib/Xt/jump_funcs index 44d91a7c4..5b97da7b9 100644 --- a/xc/lib/Xt/jump_funcs +++ b/xc/lib/Xt/jump_funcs @@ -1,5 +1,9 @@ -# $XConsortium: jump_funcs,v 1.4 95/06/30 18:48:53 kaleb Exp $ -# $XFree86: xc/lib/Xt/jump_funcs,v 3.5 1996/12/30 13:58:31 dawes Exp $ +# $Xorg: jump_funcs,v 1.3 2000/08/17 19:46:20 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/Xt/jump_funcs,v 3.6 2001/01/17 19:43:13 dawes Exp $ # 00000000 T _XtAppAddActionHook libXt ActionHook 00000000 T _XtRemoveActionHook libXt ActionHook diff --git a/xc/lib/Xt/jump_ignore b/xc/lib/Xt/jump_ignore index 881952a89..cb454cb0a 100644 --- a/xc/lib/Xt/jump_ignore +++ b/xc/lib/Xt/jump_ignore @@ -1,5 +1,9 @@ -# $XConsortium: jump_ignore,v 1.3 95/06/30 18:48:53 kaleb Exp $ -# $XFree86: xc/lib/Xt/jump_ignore,v 3.7 1996/12/30 13:58:32 dawes Exp $ +# $Xorg: jump_ignore,v 1.3 2000/08/17 19:46:21 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/Xt/jump_ignore,v 3.8 2001/01/17 19:43:13 dawes Exp $ # jump_ignore 00000000 T __XtFreeArgList libXt Varargs 00000000 T __XtClearAncestorCache libXt Keyboard diff --git a/xc/lib/Xt/jump_vars b/xc/lib/Xt/jump_vars index c3eb91170..64ce002c3 100644 --- a/xc/lib/Xt/jump_vars +++ b/xc/lib/Xt/jump_vars @@ -1,5 +1,9 @@ -# $XConsortium: jump_vars,v 1.2 94/12/07 10:45:51 kaleb Exp $ -# $XFree86: xc/lib/Xt/jump_vars,v 3.2 1995/01/28 15:44:05 dawes Exp $ +# $Xorg: jump_vars,v 1.3 2000/08/17 19:46:21 cpqbld Exp $ +# +# +# +# +# $XFree86: xc/lib/Xt/jump_vars,v 3.3 2001/01/17 19:43:13 dawes Exp $ # 00000100 D _compositeClassRec libXt Composite 00000004 D _compositeWidgetClass libXt Composite diff --git a/xc/lib/Xt/libXt.elist b/xc/lib/Xt/libXt.elist index aef351cac..8f9fc8695 100644 --- a/xc/lib/Xt/libXt.elist +++ b/xc/lib/Xt/libXt.elist @@ -1,4 +1,4 @@ -/* $XConsortium: libXt.elist /main/1 1996/09/28 16:47:19 rws $ */ +/* $Xorg: libXt.elist,v 1.3 2000/08/17 19:46:21 cpqbld Exp $ */ /************************************************************************* * Export list for libXt diff --git a/xc/lib/Xt/sharedlib.c b/xc/lib/Xt/sharedlib.c index 64c19f993..2f3396d3a 100644 --- a/xc/lib/Xt/sharedlib.c +++ b/xc/lib/Xt/sharedlib.c @@ -1,4 +1,4 @@ -/* $TOG: sharedlib.c /main/19 1998/02/06 13:26:09 kaleb $ */ +/* $Xorg: sharedlib.c,v 1.3 2000/08/17 19:46:21 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/sharedlib.c,v 3.2 1998/10/03 09:07:03 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/sharedlib.c,v 3.3 2001/01/17 19:43:13 dawes Exp $ */ #if (defined(SUNSHLIB) || defined(AIXSHLIB)) && !defined(SHAREDCODE) #include "IntrinsicI.h" diff --git a/xc/lib/Xt/util/Shell.ht b/xc/lib/Xt/util/Shell.ht index c736fc087..304e1dd11 100644 --- a/xc/lib/Xt/util/Shell.ht +++ b/xc/lib/Xt/util/Shell.ht @@ -1,4 +1,4 @@ -/* $TOG: Shell.ht /main/27 1998/02/06 13:33:40 kaleb $ */ +/* $Xorg: Shell.ht,v 1.4 2000/08/17 19:46:22 cpqbld Exp $ */ /*********************************************************** @@ -47,6 +47,7 @@ SOFTWARE. #define _XtShell_h #include <X11/SM/SMlib.h> +#include <X11/Intrinsic.h> /*********************************************************************** * diff --git a/xc/lib/Xt/util/StrDefs.ct b/xc/lib/Xt/util/StrDefs.ct index 2c3ebb67e..b2244363c 100644 --- a/xc/lib/Xt/util/StrDefs.ct +++ b/xc/lib/Xt/util/StrDefs.ct @@ -1,4 +1,4 @@ -/* $TOG: StrDefs.ct /main/3 1998/02/06 13:33:46 kaleb $ */ +/* $Xorg: StrDefs.ct,v 1.3 2000/08/17 19:46:22 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/util/StrDefs.ht b/xc/lib/Xt/util/StrDefs.ht index edcf2a04e..5c24108db 100644 --- a/xc/lib/Xt/util/StrDefs.ht +++ b/xc/lib/Xt/util/StrDefs.ht @@ -1,4 +1,4 @@ -/* $TOG: StrDefs.ht /main/4 1998/02/06 13:33:51 kaleb $ */ +/* $Xorg: StrDefs.ht,v 1.3 2000/08/17 19:46:22 cpqbld Exp $ */ /*********************************************************** diff --git a/xc/lib/Xt/util/string.list b/xc/lib/Xt/util/string.list index ba363cac0..bef098c2f 100644 --- a/xc/lib/Xt/util/string.list +++ b/xc/lib/Xt/util/string.list @@ -1,4 +1,4 @@ -! $XConsortium: string.list,v 1.12 95/05/11 22:32:57 kaleb Exp $ +! $Xorg: string.list,v 1.3 2000/08/17 19:46:22 cpqbld Exp $ ! NOTE: To maintain binary compatibility, you can only APPEND items within ! a given list!!!! ! diff --git a/xc/lib/Xtst/Imakefile b/xc/lib/Xtst/Imakefile index 4d8f58262..53f2131b5 100644 --- a/xc/lib/Xtst/Imakefile +++ b/xc/lib/Xtst/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/11 1995/12/08 11:56:32 dpw $ -XCOMM $XFree86: xc/lib/Xtst/Imakefile,v 1.2 1998/12/20 11:57:12 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:23 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/Xtst/Imakefile,v 1.3 2001/01/17 19:43:16 dawes Exp $ + #define DoNormalLib NormalLibXtst #define DoSharedLib SharedLibXtst #define DoExtraLib SharedLibXtst diff --git a/xc/lib/Xtst/XRecord.c b/xc/lib/Xtst/XRecord.c index f544b60a2..ce1d8d520 100644 --- a/xc/lib/Xtst/XRecord.c +++ b/xc/lib/Xtst/XRecord.c @@ -1,5 +1,5 @@ /* -$TOG: XRecord.c /main/7 1998/05/01 10:37:53 kaleb $ +$Xorg: XRecord.c,v 1.3 2000/08/17 19:46:23 cpqbld Exp $ XRecord.c - client-side library for RECORD extension diff --git a/xc/lib/Xtst/XTest.c b/xc/lib/Xtst/XTest.c index 2cb880444..78ea26dba 100644 --- a/xc/lib/Xtst/XTest.c +++ b/xc/lib/Xtst/XTest.c @@ -1,4 +1,4 @@ -/* $TOG: XTest.c /main/16 1998/02/06 15:58:41 kaleb $ */ +/* $Xorg: XTest.c,v 1.4 2000/08/17 19:46:23 cpqbld Exp $ */ /* Copyright 1990, 1991 by UniSoft Group Limited */ @@ -26,7 +26,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xtst/XTest.c,v 1.2 1998/12/20 11:57:12 dawes Exp $ */ +/* $XFree86: xc/lib/Xtst/XTest.c,v 1.3 2001/01/17 19:43:16 dawes Exp $ */ #define NEED_REPLIES #include "Xlibint.h" @@ -471,7 +471,7 @@ XTestDiscard(dpy) register char *ptr; LockDisplay(dpy); - if (something = (dpy->bufptr != dpy->buffer)) { + if ((something = (dpy->bufptr != dpy->buffer))) { for (ptr = dpy->buffer; ptr < dpy->bufptr; ptr += (((xReq *)ptr)->length << 2)) diff --git a/xc/lib/Xtst/Xtst-def.cpp b/xc/lib/Xtst/Xtst-def.cpp index 518895aef..a103ad497 100644 --- a/xc/lib/Xtst/Xtst-def.cpp +++ b/xc/lib/Xtst/Xtst-def.cpp @@ -29,4 +29,4 @@ EXPORTS XRecordFreeData XRecordDisableContext XRecordFreeContext -/* $XConsortium: Xtst-def.cpp /main/4 1996/05/07 13:15:38 kaleb $ */ +/* $Xorg: Xtst-def.cpp,v 1.3 2000/08/17 19:46:23 cpqbld Exp $ */ diff --git a/xc/lib/Xxf86dga/XF86DGA2.c b/xc/lib/Xxf86dga/XF86DGA2.c index fc83d73d9..ca77baac6 100644 --- a/xc/lib/Xxf86dga/XF86DGA2.c +++ b/xc/lib/Xxf86dga/XF86DGA2.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/Xxf86dga/XF86DGA2.c,v 1.16 2000/09/29 00:53:57 keithp Exp $ */ +/* $XFree86: xc/lib/Xxf86dga/XF86DGA2.c,v 1.17 2001/01/13 00:04:18 mvojkovi Exp $ */ /* Copyright (c) 1995 Jon Tombs @@ -864,6 +864,8 @@ DGAMapPhysical( ULONG action; HFILE hfd; #endif + + base += offset; pMap->screen = screen; pMap->physical = base; diff --git a/xc/lib/font/FreeType/ftfuncs.c b/xc/lib/font/FreeType/ftfuncs.c index 880211069..10e320b38 100644 --- a/xc/lib/font/FreeType/ftfuncs.c +++ b/xc/lib/font/FreeType/ftfuncs.c @@ -1,6 +1,6 @@ /* Copyright (c) 1997 by Mark Leisher -Copyright (c) 1998-2000 by Juliusz Chroboczek +Copyright (c) 1998-2001 by Juliusz Chroboczek Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -21,7 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $XFree86: xc/lib/font/FreeType/ftfuncs.c,v 1.16 2000/11/14 16:54:42 dawes Exp $ */ +/* $XFree86: xc/lib/font/FreeType/ftfuncs.c,v 1.17 2001/02/13 21:15:15 dawes Exp $ */ #ifndef FONT_MODULE #include <string.h> @@ -1004,8 +1004,9 @@ FreeTypeFontGetGlyph(unsigned code, CharInfoPtr *g, TTFFont *font) /* Only pass the default glyph if there is no first index */ if(idx==0 && (code != 0 || - (font->mapping.encoding->first != 0 || - font->mapping.encoding->first_col != 0))) { + (font->mapping.encoding && + (font->mapping.encoding->first != 0 || + font->mapping.encoding->first_col != 0)))) { *g=0; return Successful; } else { @@ -1039,7 +1040,11 @@ FreeTypeFontGetGlyphMetrics(unsigned code, xCharInfo **metrics, TTFFont *font) idx=ttf_remap(code, &font->mapping); - if(idx==0 && code!=0) { + if(idx==0 && + (code!=0 || + (font->mapping.encoding && + (font->mapping.encoding->first != 0 || + font->mapping.encoding->first_col != 0)))) { *metrics=0; return Successful; } else { diff --git a/xc/lib/font/FreeType/module/ftmodule.c b/xc/lib/font/FreeType/module/ftmodule.c index 5e42d1e0d..633445c57 100644 --- a/xc/lib/font/FreeType/module/ftmodule.c +++ b/xc/lib/font/FreeType/module/ftmodule.c @@ -23,7 +23,7 @@ * dealings in this Software without prior written authorization from the * XFree86 Project. */ -/* $XFree86: xc/lib/font/FreeType/module/ftmodule.c,v 1.8 2000/11/14 16:54:44 dawes Exp $ */ +/* $XFree86: xc/lib/font/FreeType/module/ftmodule.c,v 1.9 2001/02/13 21:15:15 dawes Exp $ */ #include "misc.h" @@ -44,7 +44,7 @@ static XF86ModuleVersionInfo VersRec = MODINFOSTRING1, MODINFOSTRING2, XF86_VERSION_CURRENT, - 1, 1, 8, + 1, 1, 9, ABI_CLASS_FONT, /* Font module */ ABI_FONT_VERSION, MOD_CLASS_FONT, diff --git a/xc/lib/font/Imakefile b/xc/lib/font/Imakefile index 2e9d9fd6b..4167fc181 100644 --- a/xc/lib/font/Imakefile +++ b/xc/lib/font/Imakefile @@ -1,5 +1,10 @@ -XCOMM $TOG: Imakefile /main/14 1998/06/16 15:23:15 msr $ -XCOMM $XFree86: xc/lib/font/Imakefile,v 3.30 2000/09/19 12:46:06 eich Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:24 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/font/Imakefile,v 3.32 2001/01/17 19:43:16 dawes Exp $ + #include <Server.tmpl> #define IHaveSubdirs @@ -129,12 +134,12 @@ InstallSharedLibrary($(LIBNAME),$(SOREV),$(SHLIBDIR)) #endif /* SharedLibFont */ #if DebugLibFont -DebuggedDepLibraryTarget(Xfont,$(SUBDIRS) $(DONES),$(DEBUG_OBJS)) +DebuggedDepLibraryTarget($(LIBNAME),$(SUBDIRS) $(DONES),$(DEBUG_OBJS)) InstallLibrary($(LIBNAME)_d,$(USRLIBDIR)) #endif /* DebugLibFont */ #if ProfileLibFont -ProfiledDepLibraryTarget(Xfont,$(SUBDIRS) $(DONES),$(PROFILE_OBJS)) +ProfiledDepLibraryTarget($(LIBNAME),$(SUBDIRS) $(DONES),$(PROFILE_OBJS)) InstallLibrary($(LIBNAME)_p,$(USRLIBDIR)) #endif /* ProfileLibFont */ diff --git a/xc/lib/font/Speedo/Imakefile b/xc/lib/font/Speedo/Imakefile index 414955a30..d22e372ab 100644 --- a/xc/lib/font/Speedo/Imakefile +++ b/xc/lib/font/Speedo/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile,v 1.10 93/09/04 16:42:59 rws Exp $ -XCOMM $XFree86: xc/lib/font/Speedo/Imakefile,v 1.8 2000/09/19 12:46:07 eich Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:24 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/font/Speedo/Imakefile,v 1.10 2001/01/19 08:13:29 dawes Exp $ #if BuildServer && DoLoadableServer #define IHaveSubdirs diff --git a/xc/lib/font/Speedo/adobe-iso.h b/xc/lib/font/Speedo/adobe-iso.h index 23fc24fb4..e1eeef1c5 100644 --- a/xc/lib/font/Speedo/adobe-iso.h +++ b/xc/lib/font/Speedo/adobe-iso.h @@ -1,4 +1,4 @@ -/* $XConsortium: adobe-iso.h,v 1.2 91/05/11 09:39:04 rws Exp $ */ +/* $Xorg: adobe-iso.h,v 1.3 2000/08/17 19:46:24 cpqbld Exp $ */ /* * Latin 1 format from masterset format 11 (ps) diff --git a/xc/lib/font/Speedo/bics-iso.h b/xc/lib/font/Speedo/bics-iso.h index 09c1d883a..986471b69 100644 --- a/xc/lib/font/Speedo/bics-iso.h +++ b/xc/lib/font/Speedo/bics-iso.h @@ -1,4 +1,4 @@ -/* $TOG: bics-iso.h /main/6 1998/02/09 10:49:34 kaleb $ */ +/* $Xorg: bics-iso.h,v 1.3 2000/08/17 19:46:24 cpqbld Exp $ */ /* Copyright 1993, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/bics-iso.h,v 1.5 1999/01/31 04:59:25 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/bics-iso.h,v 1.6 2001/01/17 19:43:17 dawes Exp $ */ int sp_bics_map[] = { 32, 0, diff --git a/xc/lib/font/Speedo/do_char.c b/xc/lib/font/Speedo/do_char.c index ef7d61b1a..ab993be1f 100644 --- a/xc/lib/font/Speedo/do_char.c +++ b/xc/lib/font/Speedo/do_char.c @@ -1,4 +1,4 @@ -/* $TOG: do_char.c /main/7 1998/05/07 14:44:22 kaleb $ */ +/* $Xorg: do_char.c,v 1.3 2000/08/17 19:46:24 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/do_char.c,v 1.2 1999/02/07 06:18:14 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/do_char.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ /***************************** D O - C H A R . C ***************************** * * diff --git a/xc/lib/font/Speedo/do_trns.c b/xc/lib/font/Speedo/do_trns.c index 00b36585b..bfc6b6d68 100644 --- a/xc/lib/font/Speedo/do_trns.c +++ b/xc/lib/font/Speedo/do_trns.c @@ -1,4 +1,4 @@ -/* $XConsortium: do_trns.c,v 1.4 94/04/17 20:17:43 gildea Exp $ */ +/* $Xorg: do_trns.c,v 1.3 2000/08/17 19:46:25 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/do_trns.c,v 1.2 1999/02/07 06:18:15 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/do_trns.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ /**************************** D O _ T R N S . C ****************************** * * diff --git a/xc/lib/font/Speedo/htest.c b/xc/lib/font/Speedo/htest.c index a5366a2b4..235b76560 100644 --- a/xc/lib/font/Speedo/htest.c +++ b/xc/lib/font/Speedo/htest.c @@ -1,4 +1,4 @@ -/* $XConsortium: htest.c,v 1.2 91/05/11 09:48:58 rws Exp $ */ +/* $Xorg: htest.c,v 1.3 2000/08/17 19:46:25 cpqbld Exp $ */ /* diff --git a/xc/lib/font/Speedo/iface.c b/xc/lib/font/Speedo/iface.c index cbcc6fa12..fd8e2d3a5 100644 --- a/xc/lib/font/Speedo/iface.c +++ b/xc/lib/font/Speedo/iface.c @@ -1,4 +1,4 @@ -/* $XConsortium: iface.c,v 1.3 94/04/17 20:17:44 rws Exp $ */ +/* $Xorg: iface.c,v 1.3 2000/08/17 19:46:25 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/iface.c,v 1.2 1998/07/25 06:56:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/iface.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ /***************************** I F A C E . C ********************************* * * diff --git a/xc/lib/font/Speedo/keys.h b/xc/lib/font/Speedo/keys.h index c373491a5..dd9d0bff7 100644 --- a/xc/lib/font/Speedo/keys.h +++ b/xc/lib/font/Speedo/keys.h @@ -1,4 +1,4 @@ -/* $XConsortium: keys.h,v 1.3 93/10/28 15:27:11 gildea Exp $ */ +/* $Xorg: keys.h,v 1.3 2000/08/17 19:46:25 cpqbld Exp $ */ /* diff --git a/xc/lib/font/Speedo/nsample.c b/xc/lib/font/Speedo/nsample.c index 489dbed49..a90367f0a 100644 --- a/xc/lib/font/Speedo/nsample.c +++ b/xc/lib/font/Speedo/nsample.c @@ -1,4 +1,4 @@ -/* $XConsortium: nsample.c,v 1.3 93/10/28 15:27:12 gildea Exp $ */ +/* $Xorg: nsample.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* diff --git a/xc/lib/font/Speedo/out_bl2d.c b/xc/lib/font/Speedo/out_bl2d.c index 2bd20874e..74a7310ed 100644 --- a/xc/lib/font/Speedo/out_bl2d.c +++ b/xc/lib/font/Speedo/out_bl2d.c @@ -1,4 +1,4 @@ -/* $TOG: out_bl2d.c /main/7 1998/05/07 14:43:36 kaleb $ */ +/* $Xorg: out_bl2d.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_bl2d.c,v 1.3 1999/02/07 11:47:14 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_bl2d.c,v 1.4 2001/01/17 19:43:17 dawes Exp $ */ /*************************** O U T _ B L 2 D . C ***************************** * * diff --git a/xc/lib/font/Speedo/out_blk.c b/xc/lib/font/Speedo/out_blk.c index 29269e11b..e56eb1b62 100644 --- a/xc/lib/font/Speedo/out_blk.c +++ b/xc/lib/font/Speedo/out_blk.c @@ -1,4 +1,4 @@ -/* $TOG: out_blk.c /main/6 1998/05/07 14:42:10 kaleb $ */ +/* $Xorg: out_blk.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_blk.c,v 1.2 1999/02/07 06:18:16 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_blk.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ /*************************** O U T _ B L K . C ********************************* diff --git a/xc/lib/font/Speedo/out_outl.c b/xc/lib/font/Speedo/out_outl.c index e9ff194cc..bebc6844d 100644 --- a/xc/lib/font/Speedo/out_outl.c +++ b/xc/lib/font/Speedo/out_outl.c @@ -1,4 +1,4 @@ -/* $XConsortium: out_outl.c,v 1.2 91/05/11 09:52:48 rws Exp $ */ +/* $Xorg: out_outl.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* diff --git a/xc/lib/font/Speedo/out_scrn.c b/xc/lib/font/Speedo/out_scrn.c index bd40a9714..e17f7f648 100644 --- a/xc/lib/font/Speedo/out_scrn.c +++ b/xc/lib/font/Speedo/out_scrn.c @@ -1,4 +1,4 @@ -/* $TOG: out_scrn.c /main/7 1998/05/07 14:40:50 kaleb $ */ +/* $Xorg: out_scrn.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_scrn.c,v 1.4 1999/12/27 00:39:25 robin Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_scrn.c,v 1.5 2001/01/17 19:43:17 dawes Exp $ */ /*************************** O U T _ S C R N . C ***************************** diff --git a/xc/lib/font/Speedo/out_util.c b/xc/lib/font/Speedo/out_util.c index fc2c1c603..357763f71 100644 --- a/xc/lib/font/Speedo/out_util.c +++ b/xc/lib/font/Speedo/out_util.c @@ -1,4 +1,4 @@ -/* $XConsortium: out_util.c,v 1.2 91/05/11 09:53:35 rws Exp $ */ +/* $Xorg: out_util.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_util.c,v 1.2 1999/02/07 06:18:17 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_util.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ #define DEBUG 0 diff --git a/xc/lib/font/Speedo/reset.c b/xc/lib/font/Speedo/reset.c index b610d699f..771195174 100644 --- a/xc/lib/font/Speedo/reset.c +++ b/xc/lib/font/Speedo/reset.c @@ -1,4 +1,4 @@ -/* $XConsortium: reset.c,v 1.2 91/05/11 09:53:59 rws Exp $ */ +/* $Xorg: reset.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/reset.c,v 1.2 1999/02/07 06:18:17 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/reset.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ diff --git a/xc/lib/font/Speedo/set_spcs.c b/xc/lib/font/Speedo/set_spcs.c index ad2f50302..1c9947f99 100644 --- a/xc/lib/font/Speedo/set_spcs.c +++ b/xc/lib/font/Speedo/set_spcs.c @@ -1,4 +1,4 @@ -/* $TOG: set_spcs.c /main/8 1998/05/07 15:14:25 kaleb $ */ +/* $Xorg: set_spcs.c,v 1.3 2000/08/17 19:46:26 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/set_spcs.c,v 1.2 1999/02/07 06:18:18 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/set_spcs.c,v 1.3 2001/01/17 19:43:17 dawes Exp $ */ /*************************** S E T _ S P C S . C ***************************** diff --git a/xc/lib/font/Speedo/set_trns.c b/xc/lib/font/Speedo/set_trns.c index fff65dc91..ef074f53a 100644 --- a/xc/lib/font/Speedo/set_trns.c +++ b/xc/lib/font/Speedo/set_trns.c @@ -1,4 +1,4 @@ -/* $TOG: set_trns.c /main/8 1998/05/07 15:13:53 kaleb $ */ +/* $Xorg: set_trns.c,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/set_trns.c,v 1.2 1999/02/07 06:18:18 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/set_trns.c,v 1.3 2001/01/17 19:43:18 dawes Exp $ */ diff --git a/xc/lib/font/Speedo/spdo_prv.h b/xc/lib/font/Speedo/spdo_prv.h index 8fd022ef1..272ffbf07 100644 --- a/xc/lib/font/Speedo/spdo_prv.h +++ b/xc/lib/font/Speedo/spdo_prv.h @@ -1,4 +1,4 @@ -/* $XConsortium: spdo_prv.h,v 1.4 94/02/10 11:06:01 gildea Exp $ */ +/* $Xorg: spdo_prv.h,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/spdo_prv.h,v 1.4 1999/03/14 03:21:17 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spdo_prv.h,v 1.5 2001/01/17 19:43:18 dawes Exp $ */ diff --git a/xc/lib/font/Speedo/speedo.h b/xc/lib/font/Speedo/speedo.h index 5998878c9..7fba1bfe5 100644 --- a/xc/lib/font/Speedo/speedo.h +++ b/xc/lib/font/Speedo/speedo.h @@ -1,4 +1,4 @@ -/* $XConsortium: speedo.h,v 1.7 95/06/08 23:20:39 gildea Exp $ */ +/* $Xorg: speedo.h,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ INCIDENTAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/speedo.h,v 3.4 1999/03/14 03:21:17 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/speedo.h,v 3.5 2001/01/17 19:43:18 dawes Exp $ */ #ifndef _SPEEDO_H_ #define _SPEEDO_H_ diff --git a/xc/lib/font/Speedo/spencode.c b/xc/lib/font/Speedo/spencode.c index 62309c51b..36b33f242 100644 --- a/xc/lib/font/Speedo/spencode.c +++ b/xc/lib/font/Speedo/spencode.c @@ -1,4 +1,4 @@ -/* $TOG: spencode.c /main/7 1998/02/09 10:50:54 kaleb $ */ +/* $Xorg: spencode.c,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -43,7 +43,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/spencode.c,v 1.5 1999/01/31 04:59:26 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spencode.c,v 1.6 2001/01/17 19:43:18 dawes Exp $ */ #include "spint.h" diff --git a/xc/lib/font/Speedo/sperr.c b/xc/lib/font/Speedo/sperr.c index 1dbbd2878..bd0d6f6c4 100644 --- a/xc/lib/font/Speedo/sperr.c +++ b/xc/lib/font/Speedo/sperr.c @@ -1,4 +1,4 @@ -/* $TOG: sperr.c /main/7 1998/02/09 10:50:58 kaleb $ */ +/* $Xorg: sperr.c,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -48,7 +48,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/sperr.c,v 1.3 2000/04/05 18:13:24 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/sperr.c,v 1.4 2001/01/17 19:43:20 dawes Exp $ */ #include "spint.h" diff --git a/xc/lib/font/Speedo/spfile.c b/xc/lib/font/Speedo/spfile.c index 45f2f3c56..bbfc1b489 100644 --- a/xc/lib/font/Speedo/spfile.c +++ b/xc/lib/font/Speedo/spfile.c @@ -1,4 +1,4 @@ -/* $TOG: spfile.c /main/14 1998/02/09 10:51:02 kaleb $ */ +/* $Xorg: spfile.c,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/spfile.c,v 1.11 1999/04/25 10:01:40 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spfile.c,v 1.12 2001/01/17 19:43:20 dawes Exp $ */ #include "fntfilst.h" #include "fontenc.h" diff --git a/xc/lib/font/Speedo/spfont.c b/xc/lib/font/Speedo/spfont.c index 0cb4f2f65..afb5d081c 100644 --- a/xc/lib/font/Speedo/spfont.c +++ b/xc/lib/font/Speedo/spfont.c @@ -1,4 +1,4 @@ -/* $TOG: spfont.c /main/26 1998/05/07 14:45:21 kaleb $ */ +/* $Xorg: spfont.c,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -21,7 +21,7 @@ * * Author: Dave Lemke, Network Computing Devices Inc */ -/* $XFree86: xc/lib/font/Speedo/spfont.c,v 3.9 1999/06/13 13:47:29 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spfont.c,v 3.10 2001/01/17 19:43:20 dawes Exp $ */ /* diff --git a/xc/lib/font/Speedo/spfuncs.c b/xc/lib/font/Speedo/spfuncs.c index 6ed69c771..327f30d9f 100644 --- a/xc/lib/font/Speedo/spfuncs.c +++ b/xc/lib/font/Speedo/spfuncs.c @@ -1,4 +1,4 @@ -/* $TOG: spfuncs.c /main/15 1998/05/07 14:48:01 kaleb $ */ +/* $Xorg: spfuncs.c,v 1.3 2000/08/17 19:46:27 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/spfuncs.c,v 1.5 1999/03/14 11:17:43 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spfuncs.c,v 1.6 2001/01/17 19:43:20 dawes Exp $ */ #ifndef FONTMODULE #include <X11/Xos.h> diff --git a/xc/lib/font/Speedo/spglyph.c b/xc/lib/font/Speedo/spglyph.c index e3812d55d..e4be17a8d 100644 --- a/xc/lib/font/Speedo/spglyph.c +++ b/xc/lib/font/Speedo/spglyph.c @@ -1,4 +1,4 @@ -/* $TOG: spglyph.c /main/18 1998/02/09 10:51:16 kaleb $ */ +/* $Xorg: spglyph.c,v 1.3 2000/08/17 19:46:28 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/spglyph.c,v 1.5 1999/03/14 11:17:43 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spglyph.c,v 1.6 2001/01/17 19:43:20 dawes Exp $ */ #include <X11/X.h> /* for bit order #defines */ #include "spint.h" diff --git a/xc/lib/font/Speedo/spinfo.c b/xc/lib/font/Speedo/spinfo.c index e816f30ec..83b526146 100644 --- a/xc/lib/font/Speedo/spinfo.c +++ b/xc/lib/font/Speedo/spinfo.c @@ -1,4 +1,4 @@ -/* $TOG: spinfo.c /main/20 1998/05/07 14:46:42 kaleb $ */ +/* $Xorg: spinfo.c,v 1.3 2000/08/17 19:46:28 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/spinfo.c,v 1.9 2000/02/25 18:28:00 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spinfo.c,v 1.10 2001/01/17 19:43:20 dawes Exp $ */ #include "fntfilst.h" #include "fontutil.h" diff --git a/xc/lib/font/Speedo/spint.h b/xc/lib/font/Speedo/spint.h index 453025e75..263484942 100644 --- a/xc/lib/font/Speedo/spint.h +++ b/xc/lib/font/Speedo/spint.h @@ -1,4 +1,4 @@ -/* $TOG: spint.h /main/13 1998/02/09 10:51:26 kaleb $ */ +/* $Xorg: spint.h,v 1.3 2000/08/17 19:46:28 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -43,7 +43,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/Speedo/spint.h,v 1.8 1999/02/07 06:18:21 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/spint.h,v 1.9 2001/01/17 19:43:20 dawes Exp $ */ #ifndef _SPINT_H_ #define _SPINT_H_ diff --git a/xc/lib/font/Speedo/sptobdf.c b/xc/lib/font/Speedo/sptobdf.c index 6ef33912e..15bb25675 100644 --- a/xc/lib/font/Speedo/sptobdf.c +++ b/xc/lib/font/Speedo/sptobdf.c @@ -1,4 +1,4 @@ -/* $TOG: sptobdf.c /main/6 1998/02/09 10:51:30 kaleb $ */ +/* $Xorg: sptobdf.c,v 1.3 2000/08/17 19:46:28 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation diff --git a/xc/lib/font/Speedo/useropt.h b/xc/lib/font/Speedo/useropt.h index c10151442..50f1bdca7 100644 --- a/xc/lib/font/Speedo/useropt.h +++ b/xc/lib/font/Speedo/useropt.h @@ -1,4 +1,4 @@ -/* $TOG: useropt.h /main/5 1998/02/09 10:51:35 kaleb $ */ +/* $Xorg: useropt.h,v 1.3 2000/08/17 19:46:28 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group diff --git a/xc/lib/font/Type1/Imakefile b/xc/lib/font/Type1/Imakefile index 080292b5e..9e61e3512 100644 --- a/xc/lib/font/Type1/Imakefile +++ b/xc/lib/font/Type1/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile,v 1.5 93/09/04 16:43:32 rws Exp $ -XCOMM $XFree86: xc/lib/font/Type1/Imakefile,v 1.9 2000/09/19 12:46:07 eich Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:28 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/font/Type1/Imakefile,v 1.10 2001/01/17 19:43:21 dawes Exp $ #if BuildServer && DoLoadableServer #define IHaveSubdirs diff --git a/xc/lib/font/Type1/arith.c b/xc/lib/font/Type1/arith.c index 05f0b6545..fc46d4597 100644 --- a/xc/lib/font/Type1/arith.c +++ b/xc/lib/font/Type1/arith.c @@ -1,4 +1,4 @@ -/* $XConsortium: arith.c,v 1.4 94/03/22 19:08:54 gildea Exp $ */ +/* $Xorg: arith.c,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/arith.c,v 1.4 1999/08/22 08:58:49 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/arith.c,v 1.5 2001/01/17 19:43:21 dawes Exp $ */ /* ARITH CWEB V0006 ******** */ /* diff --git a/xc/lib/font/Type1/arith.h b/xc/lib/font/Type1/arith.h index a7d1ab3de..0eae659da 100644 --- a/xc/lib/font/Type1/arith.h +++ b/xc/lib/font/Type1/arith.h @@ -1,4 +1,4 @@ -/* $XConsortium: arith.h,v 1.3 94/03/22 19:08:56 gildea Exp $ */ +/* $Xorg: arith.h,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/arith.h,v 1.4 1999/08/21 13:47:39 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/arith.h,v 1.5 2001/01/17 19:43:22 dawes Exp $ */ /*SHARED*/ diff --git a/xc/lib/font/Type1/blues.h b/xc/lib/font/Type1/blues.h index 62229b1c3..c3943ec93 100644 --- a/xc/lib/font/Type1/blues.h +++ b/xc/lib/font/Type1/blues.h @@ -1,4 +1,4 @@ -/* $XConsortium: blues.h,v 1.2 91/10/10 11:17:52 rws Exp $ */ +/* $Xorg: blues.h,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -28,7 +28,7 @@ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/blues.h,v 1.3 1999/08/22 08:58:49 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/blues.h,v 1.4 2001/01/17 19:43:22 dawes Exp $ */ extern psobj *GetType1CharString ( psfont *fontP, unsigned char code ); diff --git a/xc/lib/font/Type1/cluts.h b/xc/lib/font/Type1/cluts.h index fe51e02f9..67d930324 100644 --- a/xc/lib/font/Type1/cluts.h +++ b/xc/lib/font/Type1/cluts.h @@ -1,4 +1,4 @@ -/* $XConsortium: cluts.h,v 1.2 91/10/10 11:17:54 rws Exp $ */ +/* $Xorg: cluts.h,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/curves.c b/xc/lib/font/Type1/curves.c index 063eefb1c..9239c5f73 100644 --- a/xc/lib/font/Type1/curves.c +++ b/xc/lib/font/Type1/curves.c @@ -1,4 +1,4 @@ -/* $XConsortium: curves.c,v 1.4 92/07/07 17:14:55 gildea Exp $ */ +/* $Xorg: curves.c,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 */ /* All Rights Reserved */ @@ -29,7 +29,7 @@ /* CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT */ /* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS */ /* SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/curves.c,v 1.5 1999/09/04 09:14:10 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/curves.c,v 1.6 2001/01/17 19:43:22 dawes Exp $ */ /* :h1.CURVES Module - Stepping Beziers diff --git a/xc/lib/font/Type1/curves.h b/xc/lib/font/Type1/curves.h index 6f8d86716..ff2bf48fc 100644 --- a/xc/lib/font/Type1/curves.h +++ b/xc/lib/font/Type1/curves.h @@ -1,4 +1,4 @@ -/* $XConsortium: curves.h,v 1.2 91/10/10 11:17:59 rws Exp $ */ +/* $Xorg: curves.h,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/curves.h,v 1.3 1999/08/22 08:58:50 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/curves.h,v 1.4 2001/01/17 19:43:22 dawes Exp $ */ /*SHARED*/ diff --git a/xc/lib/font/Type1/digit.h b/xc/lib/font/Type1/digit.h index 4ed89c765..c69380954 100644 --- a/xc/lib/font/Type1/digit.h +++ b/xc/lib/font/Type1/digit.h @@ -1,4 +1,4 @@ -/* $XConsortium: digit.h,v 1.2 91/10/10 11:18:01 rws Exp $ */ +/* $Xorg: digit.h,v 1.3 2000/08/17 19:46:29 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/fontfcn.c b/xc/lib/font/Type1/fontfcn.c index f6cb8e970..75fde2267 100644 --- a/xc/lib/font/Type1/fontfcn.c +++ b/xc/lib/font/Type1/fontfcn.c @@ -1,4 +1,4 @@ -/* $XConsortium: fontfcn.c,v 1.10 94/02/06 16:07:23 gildea Exp $ */ +/* $Xorg: fontfcn.c,v 1.4 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -45,7 +45,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/fontfcn.c,v 1.8 1999/08/21 13:47:41 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/fontfcn.c,v 1.9 2001/01/17 19:43:22 dawes Exp $ */ #ifndef FONTMODULE #include <stdio.h> diff --git a/xc/lib/font/Type1/fontfcn.h b/xc/lib/font/Type1/fontfcn.h index 3f8adbbec..9383e42a6 100644 --- a/xc/lib/font/Type1/fontfcn.h +++ b/xc/lib/font/Type1/fontfcn.h @@ -1,4 +1,4 @@ -/* $XConsortium: fontfcn.h,v 1.3 92/03/26 16:42:23 eswu Exp $ */ +/* $Xorg: fontfcn.h,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -44,7 +44,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/fontfcn.h,v 1.4 1999/08/22 08:58:50 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/fontfcn.h,v 1.5 2001/01/17 19:43:22 dawes Exp $ */ #ifdef BUILDCID diff --git a/xc/lib/font/Type1/fonts.h b/xc/lib/font/Type1/fonts.h index 619b5fd07..7215e0f7a 100644 --- a/xc/lib/font/Type1/fonts.h +++ b/xc/lib/font/Type1/fonts.h @@ -1,4 +1,4 @@ -/* $XConsortium: fonts.h,v 1.3 94/04/17 20:17:19 rws Exp $ */ +/* $Xorg: fonts.h,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/hdigit.h b/xc/lib/font/Type1/hdigit.h index adee64dd0..fbaa9c1db 100644 --- a/xc/lib/font/Type1/hdigit.h +++ b/xc/lib/font/Type1/hdigit.h @@ -1,4 +1,4 @@ -/* $XConsortium: hdigit.h,v 1.2 91/10/10 11:18:11 rws Exp $ */ +/* $Xorg: hdigit.h,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/hints.c b/xc/lib/font/Type1/hints.c index 957d28c76..109b482c4 100644 --- a/xc/lib/font/Type1/hints.c +++ b/xc/lib/font/Type1/hints.c @@ -1,4 +1,4 @@ -/* $XConsortium: hints.c,v 1.4 91/10/10 11:18:13 rws Exp $ */ +/* $Xorg: hints.c,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/hints.c,v 1.4 1999/08/22 08:58:51 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/hints.c,v 1.5 2001/01/17 19:43:22 dawes Exp $ */ /* HINTS CWEB V0006 ******** */ /* diff --git a/xc/lib/font/Type1/hints.h b/xc/lib/font/Type1/hints.h index 7b814d12a..d5bb829d2 100644 --- a/xc/lib/font/Type1/hints.h +++ b/xc/lib/font/Type1/hints.h @@ -1,4 +1,4 @@ -/* $XConsortium: hints.h,v 1.2 91/10/10 11:18:19 rws Exp $ */ +/* $Xorg: hints.h,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/hints.h,v 1.3 1999/08/22 08:58:51 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/hints.h,v 1.4 2001/01/17 19:43:22 dawes Exp $ */ /*SHARED*/ diff --git a/xc/lib/font/Type1/lines.c b/xc/lib/font/Type1/lines.c index fbe863b73..dec3f08f5 100644 --- a/xc/lib/font/Type1/lines.c +++ b/xc/lib/font/Type1/lines.c @@ -1,4 +1,4 @@ -/* $XConsortium: lines.c,v 1.2 91/10/10 11:18:21 rws Exp $ */ +/* $Xorg: lines.c,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/lines.c,v 1.3 1999/08/22 08:58:51 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/lines.c,v 1.4 2001/01/17 19:43:22 dawes Exp $ */ /* LINES CWEB V0003 ******** */ /* diff --git a/xc/lib/font/Type1/lines.h b/xc/lib/font/Type1/lines.h index 600f4915e..c0d739207 100644 --- a/xc/lib/font/Type1/lines.h +++ b/xc/lib/font/Type1/lines.h @@ -1,4 +1,4 @@ -/* $XConsortium: lines.h,v 1.2 91/10/10 11:18:23 rws Exp $ */ +/* $Xorg: lines.h,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/lines.h,v 1.3 1999/08/22 08:58:52 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/lines.h,v 1.4 2001/01/17 19:43:22 dawes Exp $ */ /*SHARED*/ diff --git a/xc/lib/font/Type1/minimain.c b/xc/lib/font/Type1/minimain.c index 5b4d3191e..9ee6a0594 100644 --- a/xc/lib/font/Type1/minimain.c +++ b/xc/lib/font/Type1/minimain.c @@ -1,4 +1,4 @@ -/* $TOG: minimain.c /main/5 1998/02/09 10:52:44 kaleb $ */ +/* $Xorg: minimain.c,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* diff --git a/xc/lib/font/Type1/objects.c b/xc/lib/font/Type1/objects.c index a548ac79a..be46f8865 100644 --- a/xc/lib/font/Type1/objects.c +++ b/xc/lib/font/Type1/objects.c @@ -1,4 +1,4 @@ -/* $TOG: objects.c /main/14 1998/06/16 13:50:14 barstow $ */ +/* $Xorg: objects.c,v 1.3 2000/08/17 19:46:30 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/objects.c,v 1.8 1999/09/25 14:36:38 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/objects.c,v 1.9 2001/01/17 19:43:22 dawes Exp $ */ /* OBJECTS CWEB V0025 ******** */ /* :h1.OBJECTS Module - TYPE1IMAGER Objects Common Routines diff --git a/xc/lib/font/Type1/objects.h b/xc/lib/font/Type1/objects.h index 9e281033f..4f595e909 100644 --- a/xc/lib/font/Type1/objects.h +++ b/xc/lib/font/Type1/objects.h @@ -1,4 +1,4 @@ -/* $XConsortium: objects.h,v 1.8 94/03/22 19:08:58 gildea Exp $ */ +/* $Xorg: objects.h,v 1.3 2000/08/17 19:46:31 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -43,7 +43,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/objects.h,v 1.7 1999/08/22 05:35:42 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/objects.h,v 1.8 2001/01/17 19:43:22 dawes Exp $ */ /*SHARED*/ /*END SHARED*/ diff --git a/xc/lib/font/Type1/paths.c b/xc/lib/font/Type1/paths.c index 17a4f5172..929e3a7f9 100644 --- a/xc/lib/font/Type1/paths.c +++ b/xc/lib/font/Type1/paths.c @@ -1,4 +1,4 @@ -/* $TOG: paths.c /main/6 1998/05/01 16:41:54 kaleb $ */ +/* $Xorg: paths.c,v 1.3 2000/08/17 19:46:31 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/paths.c,v 1.4 1999/08/22 08:58:52 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/paths.c,v 1.5 2001/01/17 19:43:22 dawes Exp $ */ /* PATHS CWEB V0021 ******** */ /* diff --git a/xc/lib/font/Type1/paths.h b/xc/lib/font/Type1/paths.h index 9bf8b93d1..3f1b389dd 100644 --- a/xc/lib/font/Type1/paths.h +++ b/xc/lib/font/Type1/paths.h @@ -1,4 +1,4 @@ -/* $XConsortium: paths.h,v 1.2 91/10/10 11:18:50 rws Exp $ */ +/* $Xorg: paths.h,v 1.3 2000/08/17 19:46:31 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/paths.h,v 1.3 1999/08/22 08:58:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/paths.h,v 1.4 2001/01/17 19:43:22 dawes Exp $ */ /*SHARED*/ diff --git a/xc/lib/font/Type1/pictures.h b/xc/lib/font/Type1/pictures.h index 673bab680..aa02ce564 100644 --- a/xc/lib/font/Type1/pictures.h +++ b/xc/lib/font/Type1/pictures.h @@ -1,4 +1,4 @@ -/* $XConsortium: pictures.h,v 1.2 91/10/10 11:18:53 rws Exp $ */ +/* $Xorg: pictures.h,v 1.3 2000/08/17 19:46:31 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/pictures.h,v 1.3 1999/08/22 08:58:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/pictures.h,v 1.4 2001/01/17 19:43:23 dawes Exp $ */ /* STUB */ diff --git a/xc/lib/font/Type1/regions.c b/xc/lib/font/Type1/regions.c index 78b86862b..93a2e69cc 100644 --- a/xc/lib/font/Type1/regions.c +++ b/xc/lib/font/Type1/regions.c @@ -1,4 +1,4 @@ -/* $TOG: regions.c /main/8 1998/05/01 16:41:57 kaleb $ */ +/* $Xorg: regions.c,v 1.3 2000/08/17 19:46:31 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/regions.c,v 3.4 2000/04/28 18:19:20 eich Exp $ */ +/* $XFree86: xc/lib/font/Type1/regions.c,v 3.5 2001/01/17 19:43:23 dawes Exp $ */ /* REGIONS CWEB V0023 LOTS */ /* :h1 id=regions.REGIONS Module - Regions Operator Handler diff --git a/xc/lib/font/Type1/regions.h b/xc/lib/font/Type1/regions.h index 1aece83d3..a8af3234b 100644 --- a/xc/lib/font/Type1/regions.h +++ b/xc/lib/font/Type1/regions.h @@ -1,4 +1,4 @@ -/* $XConsortium: regions.h,v 1.6 94/04/02 15:49:51 rws Exp $ */ +/* $Xorg: regions.h,v 1.3 2000/08/17 19:46:32 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/regions.h,v 1.6 2000/08/09 23:40:15 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/regions.h,v 1.7 2001/01/17 19:43:23 dawes Exp $ */ /*SHARED*/ #define Interior(p,rule) t1_Interior(p,rule) diff --git a/xc/lib/font/Type1/scanfont.c b/xc/lib/font/Type1/scanfont.c index 9de13970f..7681db8dd 100644 --- a/xc/lib/font/Type1/scanfont.c +++ b/xc/lib/font/Type1/scanfont.c @@ -1,4 +1,4 @@ -/* $TOG: scanfont.c /main/12 1998/05/08 08:45:46 kaleb $ */ +/* $Xorg: scanfont.c,v 1.3 2000/08/17 19:46:32 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -45,7 +45,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/scanfont.c,v 1.13 1999/08/21 13:47:46 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/scanfont.c,v 1.14 2001/01/17 19:43:23 dawes Exp $ */ #ifndef FONTMODULE #include <string.h> diff --git a/xc/lib/font/Type1/spaces.c b/xc/lib/font/Type1/spaces.c index 903b60f97..51b41b231 100644 --- a/xc/lib/font/Type1/spaces.c +++ b/xc/lib/font/Type1/spaces.c @@ -1,4 +1,4 @@ -/* $XConsortium: spaces.c,v 1.8 95/06/08 23:20:39 gildea Exp $ */ +/* $Xorg: spaces.c,v 1.4 2000/08/17 19:46:32 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/spaces.c,v 3.7 1999/09/25 14:36:38 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/spaces.c,v 3.8 2001/01/17 19:43:23 dawes Exp $ */ /* SPACES CWEB V0021 ******** */ /* :h1 id=spaces.SPACES Module - Handles Coordinate Spaces diff --git a/xc/lib/font/Type1/spaces.h b/xc/lib/font/Type1/spaces.h index 4c6a5c14b..efbcecb42 100644 --- a/xc/lib/font/Type1/spaces.h +++ b/xc/lib/font/Type1/spaces.h @@ -1,4 +1,4 @@ -/* $XConsortium: spaces.h,v 1.4 94/02/06 16:27:06 gildea Exp $ */ +/* $Xorg: spaces.h,v 1.3 2000/08/17 19:46:32 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/spaces.h,v 3.3 1999/08/22 08:58:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/spaces.h,v 3.4 2001/01/17 19:43:23 dawes Exp $ */ /*SHARED*/ diff --git a/xc/lib/font/Type1/strokes.h b/xc/lib/font/Type1/strokes.h index 590763298..c374e16db 100644 --- a/xc/lib/font/Type1/strokes.h +++ b/xc/lib/font/Type1/strokes.h @@ -1,4 +1,4 @@ -/* $XConsortium: strokes.h,v 1.2 91/10/10 11:19:25 rws Exp $ */ +/* $Xorg: strokes.h,v 1.3 2000/08/17 19:46:32 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/t1funcs.c b/xc/lib/font/Type1/t1funcs.c index f393d83a2..16580497c 100644 --- a/xc/lib/font/Type1/t1funcs.c +++ b/xc/lib/font/Type1/t1funcs.c @@ -1,4 +1,4 @@ -/* $TOG: t1funcs.c /main/25 1998/05/01 16:42:00 kaleb $ */ +/* $Xorg: t1funcs.c,v 1.4 2000/08/17 19:46:33 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -71,7 +71,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/t1funcs.c,v 3.22 2000/09/26 15:57:00 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1funcs.c,v 3.23 2001/01/17 19:43:23 dawes Exp $ */ /* diff --git a/xc/lib/font/Type1/t1hdigit.h b/xc/lib/font/Type1/t1hdigit.h index 9979ef55c..e05f0de5d 100644 --- a/xc/lib/font/Type1/t1hdigit.h +++ b/xc/lib/font/Type1/t1hdigit.h @@ -1,4 +1,4 @@ -/* $XConsortium: t1hdigit.h,v 1.2 91/10/10 11:19:31 rws Exp $ */ +/* $Xorg: t1hdigit.h,v 1.3 2000/08/17 19:46:33 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/t1imager.h b/xc/lib/font/Type1/t1imager.h index e7576e48b..6c28f1f19 100644 --- a/xc/lib/font/Type1/t1imager.h +++ b/xc/lib/font/Type1/t1imager.h @@ -1,4 +1,4 @@ -/* $XConsortium: t1imager.h,v 1.5 92/03/20 14:36:05 keith Exp $ */ +/* $Xorg: t1imager.h,v 1.3 2000/08/17 19:46:33 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/t1imager.h,v 1.3 1999/08/22 08:58:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1imager.h,v 1.4 2001/01/17 19:43:23 dawes Exp $ */ #include "objects.h" diff --git a/xc/lib/font/Type1/t1info.c b/xc/lib/font/Type1/t1info.c index 57d671999..6d9f02609 100644 --- a/xc/lib/font/Type1/t1info.c +++ b/xc/lib/font/Type1/t1info.c @@ -1,4 +1,4 @@ -/* $TOG: t1info.c /main/22 1998/05/01 16:42:02 kaleb $ */ +/* $Xorg: t1info.c,v 1.3 2000/08/17 19:46:33 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -95,7 +95,7 @@ from The Open Group. * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/t1info.c,v 1.14 2000/02/25 18:28:00 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1info.c,v 1.15 2001/01/17 19:43:23 dawes Exp $ */ #include "fntfilst.h" #include "fontutil.h" diff --git a/xc/lib/font/Type1/t1intf.h b/xc/lib/font/Type1/t1intf.h index c008ab9ac..bca85ca9f 100644 --- a/xc/lib/font/Type1/t1intf.h +++ b/xc/lib/font/Type1/t1intf.h @@ -1,4 +1,4 @@ -/* $XConsortium: t1intf.h,v 1.2 91/10/10 11:19:39 rws Exp $ */ +/* $Xorg: t1intf.h,v 1.3 2000/08/17 19:46:33 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -44,7 +44,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/t1intf.h,v 1.5 1999/08/21 13:47:49 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1intf.h,v 1.6 2001/01/17 19:43:23 dawes Exp $ */ #ifdef BUILDCID #include "AFM.h" diff --git a/xc/lib/font/Type1/t1io.c b/xc/lib/font/Type1/t1io.c index e6c03675b..13329e2c6 100644 --- a/xc/lib/font/Type1/t1io.c +++ b/xc/lib/font/Type1/t1io.c @@ -1,4 +1,4 @@ -/* $TOG: t1io.c /main/12 1998/05/08 08:45:53 kaleb $ */ +/* $Xorg: t1io.c,v 1.3 2000/08/17 19:46:33 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -45,7 +45,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/t1io.c,v 3.7 1999/08/21 13:47:49 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1io.c,v 3.8 2001/01/17 19:43:23 dawes Exp $ */ /******************************************************************* * I/O package for Type 1 font reading ********************************************************************/ diff --git a/xc/lib/font/Type1/t1malloc.c b/xc/lib/font/Type1/t1malloc.c index 63ca3657e..274c55192 100644 --- a/xc/lib/font/Type1/t1malloc.c +++ b/xc/lib/font/Type1/t1malloc.c @@ -1,4 +1,4 @@ -/* $TOG: t1malloc.c /main/8 1998/05/07 15:31:25 kaleb $ */ +/* $Xorg: t1malloc.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -26,7 +26,7 @@ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF * THIS SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/t1malloc.c,v 1.8 1999/09/25 14:36:39 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1malloc.c,v 1.9 2001/01/17 19:43:24 dawes Exp $ */ /* MALLOC CWEB V0004 LOTS */ /* :h1.MALLOC - Fast Memory Allocation diff --git a/xc/lib/font/Type1/t1snap.c b/xc/lib/font/Type1/t1snap.c index 0a6d20843..90c396b46 100644 --- a/xc/lib/font/Type1/t1snap.c +++ b/xc/lib/font/Type1/t1snap.c @@ -1,4 +1,4 @@ -/* $XConsortium: t1snap.c,v 1.3 91/10/10 11:19:47 rws Exp $ */ +/* $Xorg: t1snap.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/t1snap.c,v 1.3 1999/08/22 08:58:54 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1snap.c,v 1.4 2001/01/17 19:43:24 dawes Exp $ */ #include "objects.h" diff --git a/xc/lib/font/Type1/t1stdio.h b/xc/lib/font/Type1/t1stdio.h index 39d093e7a..34c63c4a6 100644 --- a/xc/lib/font/Type1/t1stdio.h +++ b/xc/lib/font/Type1/t1stdio.h @@ -1,4 +1,4 @@ -/* $TOG: t1stdio.h /main/6 1998/05/08 08:45:57 kaleb $ */ +/* $Xorg: t1stdio.h,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/t1stdio.h,v 1.8 1999/08/21 13:47:50 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1stdio.h,v 1.9 2001/01/17 19:43:24 dawes Exp $ */ /* T1IO FILE structure and related stuff */ #ifdef XFree86LOADER #undef FILE diff --git a/xc/lib/font/Type1/t1stub.c b/xc/lib/font/Type1/t1stub.c index 9ec81826b..39008d03f 100644 --- a/xc/lib/font/Type1/t1stub.c +++ b/xc/lib/font/Type1/t1stub.c @@ -1,4 +1,4 @@ -/* $XConsortium: t1stub.c,v 1.3 92/03/20 15:58:40 eswu Exp $ */ +/* $Xorg: t1stub.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/t1stub.c,v 1.7 1999/09/25 14:36:40 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1stub.c,v 1.8 2001/01/17 19:43:24 dawes Exp $ */ #ifdef FONTMODULE #include "Xdefs.h" /* Bool declaration */ diff --git a/xc/lib/font/Type1/t1test.c b/xc/lib/font/Type1/t1test.c index 672da509a..ad0cf1d6c 100644 --- a/xc/lib/font/Type1/t1test.c +++ b/xc/lib/font/Type1/t1test.c @@ -1,4 +1,4 @@ -/* $XConsortium: t1test.c /main/4 1996/09/28 16:47:53 rws $ */ +/* $Xorg: t1test.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * diff --git a/xc/lib/font/Type1/token.c b/xc/lib/font/Type1/token.c index 99895625c..ef2899054 100644 --- a/xc/lib/font/Type1/token.c +++ b/xc/lib/font/Type1/token.c @@ -1,4 +1,4 @@ -/* $TOG: token.c /main/5 1998/05/08 08:46:01 kaleb $ */ +/* $Xorg: token.c,v 1.4 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/token.c,v 1.4 1999/08/21 13:47:51 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/token.c,v 1.5 2001/01/17 19:43:24 dawes Exp $ */ /* Authors: Sig Nin & Carol Thompson IBM Almaden Research Laboratory */ #include "t1stdio.h" #include "util.h" @@ -106,7 +106,8 @@ P10(long exponent) if (exponent < 0) { power = 0.1; value = (exponent & 1 ? power : 1.0); - exponent = -((exponent + 1) >> 1); + exponent++; + exponent = -(exponent >> 1); /* portable C for -(exponent/2) */ } else { power = 10.0; diff --git a/xc/lib/font/Type1/token.h b/xc/lib/font/Type1/token.h index 620eafb1c..caa2ca25d 100644 --- a/xc/lib/font/Type1/token.h +++ b/xc/lib/font/Type1/token.h @@ -1,4 +1,4 @@ -/* $XConsortium: token.h,v 1.2 91/10/10 11:19:58 rws Exp $ */ +/* $Xorg: token.h,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/token.h,v 1.3 1999/08/22 08:58:54 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/token.h,v 1.4 2001/01/17 19:43:24 dawes Exp $ */ #ifndef TOKEN_H #define TOKEN_H diff --git a/xc/lib/font/Type1/tokst.h b/xc/lib/font/Type1/tokst.h index e757f6a65..61f1ff9a0 100644 --- a/xc/lib/font/Type1/tokst.h +++ b/xc/lib/font/Type1/tokst.h @@ -1,4 +1,4 @@ -/* $XConsortium: tokst.h,v 1.2 91/10/10 11:20:00 rws Exp $ */ +/* $Xorg: tokst.h,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -27,7 +27,7 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/lib/font/Type1/tokst.h,v 1.3 1999/08/22 08:58:54 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/tokst.h,v 1.4 2001/01/17 19:43:24 dawes Exp $ */ /* -------------------------------------- */ /* --- MACHINE GENERATED, DO NOT EDIT --- */ diff --git a/xc/lib/font/Type1/trig.h b/xc/lib/font/Type1/trig.h index 8434caea1..f442a61f3 100644 --- a/xc/lib/font/Type1/trig.h +++ b/xc/lib/font/Type1/trig.h @@ -1,4 +1,4 @@ -/* $XConsortium: trig.h,v 1.2 91/10/10 11:20:04 rws Exp $ */ +/* $Xorg: trig.h,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -29,7 +29,7 @@ */ /*SHARED*/ -/* $XFree86: xc/lib/font/Type1/trig.h,v 1.2 1998/07/25 06:57:00 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/trig.h,v 1.3 2001/01/17 19:43:24 dawes Exp $ */ #undef DegreeCos #undef DegreeSin diff --git a/xc/lib/font/Type1/type1.c b/xc/lib/font/Type1/type1.c index 46092b89e..5b83dd010 100644 --- a/xc/lib/font/Type1/type1.c +++ b/xc/lib/font/Type1/type1.c @@ -1,4 +1,4 @@ -/* $TOG: type1.c /main/9 1998/05/01 16:42:05 kaleb $ */ +/* $Xorg: type1.c,v 1.4 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -45,7 +45,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/type1.c,v 1.8 1999/08/21 13:47:52 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/type1.c,v 1.9 2001/01/17 19:43:24 dawes Exp $ */ /*********************************************************************/ /* */ @@ -1620,7 +1620,8 @@ FlxProc(double c1x2, double c1y2, double c3x0, double c3y0, if (erode) cy -= 0.5; ey = cy + dY; - ey = CEIL(ey) - ey + FLOOR(ey); + ey = CEIL(ey) - ey; + ey = ey + FLOOR(cy + dY); if (erode) ey += 0.5; @@ -1670,7 +1671,8 @@ FlxProc(double c1x2, double c1y2, double c3x0, double c3y0, if (erode) cx -= 0.5; ex = cx + dX; - ex = CEIL(ex) - ex + FLOOR(ex); + ex = CEIL(ex) - ex; + ex = ex + FLOOR(cx + dX); if (erode) ex += 0.5; diff --git a/xc/lib/font/Type1/util.c b/xc/lib/font/Type1/util.c index d1786d497..9bd8a83d2 100644 --- a/xc/lib/font/Type1/util.c +++ b/xc/lib/font/Type1/util.c @@ -1,4 +1,4 @@ -/* $XConsortium: util.c,v 1.7 94/01/27 15:21:15 gildea Exp $ */ +/* $Xorg: util.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -44,7 +44,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/util.c,v 1.5 1999/08/21 13:47:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/util.c,v 1.6 2001/01/17 19:43:24 dawes Exp $ */ /* Author: Katherine A. Hitchcock IBM Almaden Research Laboratory */ #ifndef FONTMODULE diff --git a/xc/lib/font/Type1/util.h b/xc/lib/font/Type1/util.h index 1f8191e69..7abc289ec 100644 --- a/xc/lib/font/Type1/util.h +++ b/xc/lib/font/Type1/util.h @@ -1,4 +1,4 @@ -/* $XConsortium: util.h,v 1.3 92/03/26 16:42:29 eswu Exp $ */ +/* $Xorg: util.h,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -44,7 +44,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/util.h,v 1.4 1999/08/22 08:58:55 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/util.h,v 1.5 2001/01/17 19:43:24 dawes Exp $ */ #ifndef UTIL_H #define UTIL_H diff --git a/xc/lib/font/bitmap/Imakefile b/xc/lib/font/bitmap/Imakefile index 5e58222f6..12deda3f2 100644 --- a/xc/lib/font/bitmap/Imakefile +++ b/xc/lib/font/bitmap/Imakefile @@ -1,5 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/9 1996/11/03 19:31:58 kaleb $ -XCOMM $XFree86: xc/lib/font/bitmap/Imakefile,v 1.9 2000/09/19 12:46:07 eich Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/font/bitmap/Imakefile,v 1.10 2001/01/17 19:43:26 dawes Exp $ #if BuildServer && DoLoadableServer #define IHaveSubdirs diff --git a/xc/lib/font/bitmap/bdfint.h b/xc/lib/font/bitmap/bdfint.h index 62e8d880a..a0422334a 100644 --- a/xc/lib/font/bitmap/bdfint.h +++ b/xc/lib/font/bitmap/bdfint.h @@ -1,4 +1,4 @@ -/* $TOG: bdfint.h /main/5 1998/05/01 16:42:08 kaleb $ */ +/* $Xorg: bdfint.h,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bdfint.h,v 1.3 1999/07/17 08:55:10 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bdfint.h,v 1.4 2001/01/17 19:43:26 dawes Exp $ */ #ifndef BDFINT_H #define BDFINT_H diff --git a/xc/lib/font/bitmap/bdfread.c b/xc/lib/font/bitmap/bdfread.c index 588ac9857..6c17e7c43 100644 --- a/xc/lib/font/bitmap/bdfread.c +++ b/xc/lib/font/bitmap/bdfread.c @@ -1,4 +1,4 @@ -/* $TOG: bdfread.c /main/26 1998/05/01 16:46:08 kaleb $ */ +/* $Xorg: bdfread.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /************************************************************************ Copyright 1989 by Digital Equipment Corporation, Maynard, Massachusetts. @@ -46,7 +46,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bdfread.c,v 1.8 1999/08/01 07:56:53 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bdfread.c,v 1.9 2001/01/17 19:43:26 dawes Exp $ */ #ifndef FONTMODULE #include <ctype.h> diff --git a/xc/lib/font/bitmap/bdfutils.c b/xc/lib/font/bitmap/bdfutils.c index 39020b8aa..8c99efaf1 100644 --- a/xc/lib/font/bitmap/bdfutils.c +++ b/xc/lib/font/bitmap/bdfutils.c @@ -1,4 +1,4 @@ -/* $TOG: bdfutils.c /main/14 1998/05/01 17:52:09 kaleb $ */ +/* $Xorg: bdfutils.c,v 1.3 2000/08/17 19:46:34 cpqbld Exp $ */ /************************************************************************ Copyright 1989 by Digital Equipment Corporation, Maynard, Massachusetts. @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bdfutils.c,v 1.6 2000/04/05 18:13:25 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bdfutils.c,v 1.7 2001/01/17 19:43:27 dawes Exp $ */ #ifndef FONTMODULE #include <ctype.h> diff --git a/xc/lib/font/bitmap/bitmap.c b/xc/lib/font/bitmap/bitmap.c index 745e0f16b..c0a191dbd 100644 --- a/xc/lib/font/bitmap/bitmap.c +++ b/xc/lib/font/bitmap/bitmap.c @@ -1,4 +1,4 @@ -/* $TOG: bitmap.c /main/6 1998/02/09 10:46:40 kaleb $ */ +/* $Xorg: bitmap.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bitmap.c,v 1.5 1999/08/01 07:56:54 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bitmap.c,v 1.6 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/bitmapfunc.c b/xc/lib/font/bitmap/bitmapfunc.c index 5dea5cf7d..fbdfc0705 100644 --- a/xc/lib/font/bitmap/bitmapfunc.c +++ b/xc/lib/font/bitmap/bitmapfunc.c @@ -1,4 +1,4 @@ -/* $TOG: bitmapfunc.c /main/14 1998/05/07 15:23:26 kaleb $ */ +/* $Xorg: bitmapfunc.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -22,7 +22,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bitmapfunc.c,v 3.9 1999/11/19 13:53:28 hohndel Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bitmapfunc.c,v 3.10 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/bitmaputil.c b/xc/lib/font/bitmap/bitmaputil.c index 803e269a1..7cc80a101 100644 --- a/xc/lib/font/bitmap/bitmaputil.c +++ b/xc/lib/font/bitmap/bitmaputil.c @@ -1,4 +1,4 @@ -/* $TOG: bitmaputil.c /main/7 1998/02/09 10:46:36 kaleb $ */ +/* $Xorg: bitmaputil.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bitmaputil.c,v 1.4 1999/08/21 13:47:59 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bitmaputil.c,v 1.5 2001/01/17 19:43:27 dawes Exp $ */ #include "fntfilst.h" #include "bitmap.h" diff --git a/xc/lib/font/bitmap/bitscale.c b/xc/lib/font/bitmap/bitscale.c index 456e1ec0b..8b6fb53ba 100644 --- a/xc/lib/font/bitmap/bitscale.c +++ b/xc/lib/font/bitmap/bitscale.c @@ -1,4 +1,4 @@ -/* $TOG: bitscale.c /main/36 1998/05/07 15:27:04 kaleb $ */ +/* $Xorg: bitscale.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bitscale.c,v 3.16 1999/11/19 13:53:28 hohndel Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bitscale.c,v 3.17 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/fontink.c b/xc/lib/font/bitmap/fontink.c index 6766424f1..3a7f6f7d1 100644 --- a/xc/lib/font/bitmap/fontink.c +++ b/xc/lib/font/bitmap/fontink.c @@ -1,4 +1,4 @@ -/* $TOG: fontink.c /main/6 1998/05/01 16:42:21 kaleb $ */ +/* $Xorg: fontink.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/fontink.c,v 1.5 1999/11/19 13:53:29 hohndel Exp $ */ +/* $XFree86: xc/lib/font/bitmap/fontink.c,v 1.6 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/pcf.h b/xc/lib/font/bitmap/pcf.h index 89d62ba10..50b54d5b5 100644 --- a/xc/lib/font/bitmap/pcf.h +++ b/xc/lib/font/bitmap/pcf.h @@ -1,4 +1,4 @@ -/* $TOG: pcf.h /main/3 1998/02/09 10:47:04 kaleb $ */ +/* $Xorg: pcf.h,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/pcf.h,v 1.2 1999/07/17 05:30:32 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/pcf.h,v 1.3 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/pcfread.c b/xc/lib/font/bitmap/pcfread.c index aa53d8e28..8fbf08945 100644 --- a/xc/lib/font/bitmap/pcfread.c +++ b/xc/lib/font/bitmap/pcfread.c @@ -1,4 +1,4 @@ -/* $TOG: pcfread.c /main/21 1998/05/07 15:20:43 kaleb $ */ +/* $Xorg: pcfread.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/pcfread.c,v 1.13 2000/09/19 12:46:07 eich Exp $ */ +/* $XFree86: xc/lib/font/bitmap/pcfread.c,v 1.14 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/pcfwrite.c b/xc/lib/font/bitmap/pcfwrite.c index cb08cee73..d975febd4 100644 --- a/xc/lib/font/bitmap/pcfwrite.c +++ b/xc/lib/font/bitmap/pcfwrite.c @@ -1,4 +1,4 @@ -/* $TOG: pcfwrite.c /main/8 1998/05/01 16:42:26 kaleb $ */ +/* $Xorg: pcfwrite.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/pcfwrite.c,v 1.4 1999/11/19 13:53:29 hohndel Exp $ */ +/* $XFree86: xc/lib/font/bitmap/pcfwrite.c,v 1.5 2001/01/17 19:43:27 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/bitmap/snfread.c b/xc/lib/font/bitmap/snfread.c index 7f826e709..51f454524 100644 --- a/xc/lib/font/bitmap/snfread.c +++ b/xc/lib/font/bitmap/snfread.c @@ -1,4 +1,4 @@ -/* $TOG: snfread.c /main/19 1998/05/01 16:42:29 kaleb $ */ +/* $Xorg: snfread.c,v 1.3 2000/08/17 19:46:35 cpqbld Exp $ */ /************************************************************************ Copyright 1989 by Digital Equipment Corporation, Maynard, Massachusetts. @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/snfread.c,v 1.7 1999/08/01 07:56:56 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/snfread.c,v 1.8 2001/01/17 19:43:27 dawes Exp $ */ #ifndef FONTMODULE #include <ctype.h> diff --git a/xc/lib/font/bitmap/snfstr.h b/xc/lib/font/bitmap/snfstr.h index 412b135d8..3d32ff8ce 100644 --- a/xc/lib/font/bitmap/snfstr.h +++ b/xc/lib/font/bitmap/snfstr.h @@ -1,4 +1,4 @@ -/* $TOG: snfstr.h /main/6 1998/02/09 10:47:12 kaleb $ */ +/* $Xorg: snfstr.h,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /*********************************************************** Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. @@ -45,7 +45,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/snfstr.h,v 1.2 1999/07/17 05:30:33 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/snfstr.h,v 1.3 2001/01/17 19:43:27 dawes Exp $ */ #ifndef SNFSTR_H #define SNFSTR_H 1 diff --git a/xc/lib/font/fc/Imakefile b/xc/lib/font/fc/Imakefile index 9bd586324..c914fcc46 100644 --- a/xc/lib/font/fc/Imakefile +++ b/xc/lib/font/fc/Imakefile @@ -1,8 +1,8 @@ -XCOMM $XConsortium: Imakefile /main/20 1995/12/13 18:07:57 kaleb $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ XCOMM XCOMM Make file for font handling routines XCOMM -XCOMM $XFree86: xc/lib/font/fc/Imakefile,v 1.4 1999/12/13 02:52:50 robin Exp $ +XCOMM $XFree86: xc/lib/font/fc/Imakefile,v 1.5 2001/01/17 19:43:28 dawes Exp $ #include <Server.tmpl> INCLUDES = -I$(FONTINCSRC) -I../include $(TRANS_INCLUDES) diff --git a/xc/lib/font/fc/fsconvert.c b/xc/lib/font/fc/fsconvert.c index 8259332a2..d7aabd396 100644 --- a/xc/lib/font/fc/fsconvert.c +++ b/xc/lib/font/fc/fsconvert.c @@ -1,4 +1,4 @@ -/* $TOG: fsconvert.c /main/20 1998/05/07 14:52:42 kaleb $ */ +/* $Xorg: fsconvert.c,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices * @@ -22,7 +22,7 @@ * * Author: Dave Lemke, Network Computing Devices, Inc */ -/* $XFree86: xc/lib/font/fc/fsconvert.c,v 1.9 1999/12/27 01:14:09 robin Exp $ */ +/* $XFree86: xc/lib/font/fc/fsconvert.c,v 1.10 2001/01/17 19:43:28 dawes Exp $ */ /* * FS data conversion */ diff --git a/xc/lib/font/fc/fserve.c b/xc/lib/font/fc/fserve.c index 17c556c7f..630f67cb3 100644 --- a/xc/lib/font/fc/fserve.c +++ b/xc/lib/font/fc/fserve.c @@ -1,4 +1,4 @@ -/* $TOG: fserve.c /main/52 1998/05/01 16:42:36 kaleb $ */ +/* $Xorg: fserve.c,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* Copyright 1990, 1998 The Open Group @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fc/fserve.c,v 3.17 2000/01/21 01:11:52 dawes Exp $ */ +/* $XFree86: xc/lib/font/fc/fserve.c,v 3.18 2001/01/17 19:43:28 dawes Exp $ */ /* * Copyright 1990 Network Computing Devices diff --git a/xc/lib/font/fc/fserve.h b/xc/lib/font/fc/fserve.h index 3b761996b..c6cf6f91c 100644 --- a/xc/lib/font/fc/fserve.h +++ b/xc/lib/font/fc/fserve.h @@ -1,4 +1,4 @@ -/* $XConsortium: fserve.h,v 1.7 93/08/24 18:49:12 gildea Exp $ */ +/* $Xorg: fserve.h,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices * @@ -24,7 +24,7 @@ * Author: Dave Lemke, Network Computing Devices, Inc * */ -/* $XFree86: xc/lib/font/fc/fserve.h,v 1.3 1999/12/13 02:52:52 robin Exp $ */ +/* $XFree86: xc/lib/font/fc/fserve.h,v 1.4 2001/01/17 19:43:29 dawes Exp $ */ #ifndef _FSERVE_H_ #define _FSERVE_H_ diff --git a/xc/lib/font/fc/fservestr.h b/xc/lib/font/fc/fservestr.h index 4d9a990ac..d20b09ad7 100644 --- a/xc/lib/font/fc/fservestr.h +++ b/xc/lib/font/fc/fservestr.h @@ -1,4 +1,4 @@ -/* $XConsortium: fservestr.h,v 1.13 95/06/09 22:16:29 gildea Exp $ */ +/* $Xorg: fservestr.h,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices * @@ -23,7 +23,7 @@ * * Author: Dave Lemke, Network Computing Devices, Inc */ -/* $XFree86: xc/lib/font/fc/fservestr.h,v 3.2 1999/12/13 02:52:52 robin Exp $ */ +/* $XFree86: xc/lib/font/fc/fservestr.h,v 3.3 2001/01/17 19:43:29 dawes Exp $ */ #ifndef _FSERVESTR_H_ #define _FSERVESTR_H_ diff --git a/xc/lib/font/fc/fsio.c b/xc/lib/font/fc/fsio.c index ef83b1abb..41e3ddf43 100644 --- a/xc/lib/font/fc/fsio.c +++ b/xc/lib/font/fc/fsio.c @@ -1,4 +1,4 @@ -/* $TOG: fsio.c /main/41 1998/05/07 15:15:52 kaleb $ */ +/* $Xorg: fsio.c,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices * @@ -23,7 +23,7 @@ * * Author: Dave Lemke, Network Computing Devices, Inc */ -/* $XFree86: xc/lib/font/fc/fsio.c,v 3.12 2000/11/28 17:25:09 dawes Exp $ */ +/* $XFree86: xc/lib/font/fc/fsio.c,v 3.13 2001/01/17 19:43:29 dawes Exp $ */ /* * font server i/o routines */ diff --git a/xc/lib/font/fc/fsio.h b/xc/lib/font/fc/fsio.h index 282c3732f..974ef4a91 100644 --- a/xc/lib/font/fc/fsio.h +++ b/xc/lib/font/fc/fsio.h @@ -1,4 +1,4 @@ -/* $XConsortium: fsio.h,v 1.12 94/01/31 12:02:17 mor Exp $ */ +/* $Xorg: fsio.h,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices * @@ -23,7 +23,7 @@ * * Author: Dave Lemke, Network Computing Devices, Inc */ -/* $XFree86: xc/lib/font/fc/fsio.h,v 1.5 1999/12/30 02:39:06 robin Exp $ */ +/* $XFree86: xc/lib/font/fc/fsio.h,v 1.6 2001/01/17 19:43:29 dawes Exp $ */ #ifndef _FSIO_H_ #define _FSIO_H_ diff --git a/xc/lib/font/fc/fslibos.h b/xc/lib/font/fc/fslibos.h index b5537e028..6090ad806 100644 --- a/xc/lib/font/fc/fslibos.h +++ b/xc/lib/font/fc/fslibos.h @@ -1,4 +1,4 @@ -/* $TOG: fslibos.h /main/17 1998/02/09 10:47:46 kaleb $ */ +/* $Xorg: fslibos.h,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* * Copyright 1990 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -27,7 +27,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fc/fslibos.h,v 3.4 1998/10/03 09:07:25 dawes Exp $ */ +/* $XFree86: xc/lib/font/fc/fslibos.h,v 3.5 2001/01/17 19:43:29 dawes Exp $ */ /* * FSlib networking & os include file diff --git a/xc/lib/font/fontfile/Imakefile b/xc/lib/font/fontfile/Imakefile index dac01e237..a8684af81 100644 --- a/xc/lib/font/fontfile/Imakefile +++ b/xc/lib/font/fontfile/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/14 1996/11/03 19:58:41 kaleb $ -XCOMM $XFree86: xc/lib/font/fontfile/Imakefile,v 3.17 2000/09/19 12:46:08 eich Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/font/fontfile/Imakefile,v 3.18 2001/01/17 19:43:29 dawes Exp $ + #include <Server.tmpl> #if BuildServer && DoLoadableServer diff --git a/xc/lib/font/fontfile/bitsource.c b/xc/lib/font/fontfile/bitsource.c index 8b694af6e..231d69814 100644 --- a/xc/lib/font/fontfile/bitsource.c +++ b/xc/lib/font/fontfile/bitsource.c @@ -1,4 +1,4 @@ -/* $TOG: bitsource.c /main/11 1998/05/07 15:00:06 kaleb $ */ +/* $Xorg: bitsource.c,v 1.3 2000/08/17 19:46:36 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/bitsource.c,v 1.2 1999/07/17 05:30:39 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/bitsource.c,v 1.3 2001/01/17 19:43:29 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/bufio.c b/xc/lib/font/fontfile/bufio.c index 8eec5b47e..17144bb49 100644 --- a/xc/lib/font/fontfile/bufio.c +++ b/xc/lib/font/fontfile/bufio.c @@ -1,4 +1,4 @@ -/* $TOG: bufio.c /main/12 1998/05/07 13:44:12 kaleb $ */ +/* $Xorg: bufio.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/bufio.c,v 3.6 2000/09/19 12:46:08 eich Exp $ */ +/* $XFree86: xc/lib/font/fontfile/bufio.c,v 3.7 2001/01/17 19:43:29 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/decompress.c b/xc/lib/font/fontfile/decompress.c index 2238fe642..6718e59ff 100644 --- a/xc/lib/font/fontfile/decompress.c +++ b/xc/lib/font/fontfile/decompress.c @@ -1,4 +1,4 @@ -/* $TOG: decompress.c /main/9 1998/04/24 09:26:33 barstow $ */ +/* $Xorg: decompress.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* * Copyright 1985, 1986 The Regents of the University of California. * All rights reserved. @@ -41,7 +41,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/decompress.c,v 1.3 2000/09/19 12:46:08 eich Exp $ */ +/* $XFree86: xc/lib/font/fontfile/decompress.c,v 1.4 2001/01/17 19:43:29 dawes Exp $ */ /* * decompress - cat a compressed file */ diff --git a/xc/lib/font/fontfile/defaults.c b/xc/lib/font/fontfile/defaults.c index 01b0564d4..97f7e36a5 100644 --- a/xc/lib/font/fontfile/defaults.c +++ b/xc/lib/font/fontfile/defaults.c @@ -1,4 +1,4 @@ -/* $TOG: defaults.c /main/4 1998/02/09 10:48:02 kaleb $ */ +/* $Xorg: defaults.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/defaults.c,v 1.6 1999/08/21 13:48:02 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/defaults.c,v 1.7 2001/01/17 19:43:29 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/dirfile.c b/xc/lib/font/fontfile/dirfile.c index 0883b2c5a..dacba85b7 100644 --- a/xc/lib/font/fontfile/dirfile.c +++ b/xc/lib/font/fontfile/dirfile.c @@ -1,4 +1,4 @@ -/* $TOG: dirfile.c /main/15 1998/06/25 16:57:32 kaleb $ */ +/* $Xorg: dirfile.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/dirfile.c,v 3.10 1999/09/04 09:14:11 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/dirfile.c,v 3.11 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/ffcheck.c b/xc/lib/font/fontfile/ffcheck.c index f49e9c144..3a4fc3101 100644 --- a/xc/lib/font/fontfile/ffcheck.c +++ b/xc/lib/font/fontfile/ffcheck.c @@ -1,4 +1,4 @@ -/* $TOG: ffcheck.c /main/7 1998/05/07 14:59:15 kaleb $ */ +/* $Xorg: ffcheck.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,12 +21,12 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/ffcheck.c,v 1.13 2000/02/13 06:15:28 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/ffcheck.c,v 1.14 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium */ -/* $NCDId: @(#)fontfile.c,v 1.6 1991/07/02 17:00:46 lemke Exp $ */ +/* $NCDXorg: @(#)fontfile.c,v 1.6 1991/07/02 17:00:46 lemke Exp $ */ #include "fntfilst.h" #include "bitmap.h" diff --git a/xc/lib/font/fontfile/fileio.c b/xc/lib/font/fontfile/fileio.c index 3d5dc8aba..1b2fde2e2 100644 --- a/xc/lib/font/fontfile/fileio.c +++ b/xc/lib/font/fontfile/fileio.c @@ -1,4 +1,4 @@ -/* $TOG: fileio.c /main/7 1998/05/01 16:42:56 kaleb $ */ +/* $Xorg: fileio.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/fileio.c,v 3.7 1999/08/21 13:48:02 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/fileio.c,v 3.8 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/filewr.c b/xc/lib/font/fontfile/filewr.c index 72adbd10c..b81483de1 100644 --- a/xc/lib/font/fontfile/filewr.c +++ b/xc/lib/font/fontfile/filewr.c @@ -1,4 +1,4 @@ -/* $TOG: filewr.c /main/5 1998/02/09 10:48:21 kaleb $ */ +/* $Xorg: filewr.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/filewr.c,v 3.4 2000/08/09 23:40:15 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/filewr.c,v 3.5 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/fontdir.c b/xc/lib/font/fontfile/fontdir.c index 8c5a7e919..faad6e110 100644 --- a/xc/lib/font/fontfile/fontdir.c +++ b/xc/lib/font/fontfile/fontdir.c @@ -1,4 +1,4 @@ -/* $TOG: fontdir.c /main/29 1998/06/25 16:53:52 kaleb $ */ +/* $Xorg: fontdir.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/fontdir.c,v 3.12 1999/07/17 05:30:41 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/fontdir.c,v 3.14 2001/02/16 13:24:05 eich Exp $ */ /* * Author: Keith Packard, MIT X Consortium @@ -55,6 +55,7 @@ FontFileFreeEntry (FontEntryPtr entry) if (entry->name.name) xfree(entry->name.name); + entry->name.name = NULL; switch (entry->type) { @@ -69,9 +70,11 @@ FontFileFreeEntry (FontEntryPtr entry) break; case FONT_ENTRY_BITMAP: xfree (entry->u.bitmap.fileName); + entry->u.bitmap.fileName = NULL; break; case FONT_ENTRY_ALIAS: xfree (entry->u.alias.resolved); + entry->u.alias.resolved = NULL; break; #ifdef NOTYET case FONT_ENTRY_BC: diff --git a/xc/lib/font/fontfile/fontfile.c b/xc/lib/font/fontfile/fontfile.c index 84f6bcbcb..b9d29562c 100644 --- a/xc/lib/font/fontfile/fontfile.c +++ b/xc/lib/font/fontfile/fontfile.c @@ -1,4 +1,4 @@ -/* $TOG: fontfile.c /main/33 1998/05/07 15:04:47 kaleb $ */ +/* $Xorg: fontfile.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,12 +21,12 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/fontfile.c,v 3.13 1999/08/21 13:48:03 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/fontfile.c,v 3.14 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium */ -/* $NCDId: @(#)fontfile.c,v 1.6 1991/07/02 17:00:46 lemke Exp $ */ +/* $NCDXorg: @(#)fontfile.c,v 1.6 1991/07/02 17:00:46 lemke Exp $ */ #include "fntfilst.h" diff --git a/xc/lib/font/fontfile/fontscale.c b/xc/lib/font/fontfile/fontscale.c index 88bf29835..f4610a34f 100644 --- a/xc/lib/font/fontfile/fontscale.c +++ b/xc/lib/font/fontfile/fontscale.c @@ -1,4 +1,4 @@ -/* $TOG: fontscale.c /main/17 1998/05/07 15:01:58 kaleb $ */ +/* $Xorg: fontscale.c,v 1.4 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/fontscale.c,v 3.7 1999/12/13 03:00:51 robin Exp $ */ +/* $XFree86: xc/lib/font/fontfile/fontscale.c,v 3.8 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/fontfile/gunzip.c b/xc/lib/font/fontfile/gunzip.c index 81020ecf7..21894d039 100644 --- a/xc/lib/font/fontfile/gunzip.c +++ b/xc/lib/font/fontfile/gunzip.c @@ -1,8 +1,8 @@ -/* $XConsortium: gunzip.c /main/1 1996/11/03 19:33:23 kaleb $ */ +/* $Xorg: gunzip.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* lib/font/fontfile/gunzip.c written by Mark Eichin <eichin@kitten.gen.ma.us> September 1996. intended for inclusion in X11 public releases. */ -/* $XFree86: xc/lib/font/fontfile/gunzip.c,v 1.4 2000/09/19 12:46:08 eich Exp $ */ +/* $XFree86: xc/lib/font/fontfile/gunzip.c,v 1.5 2001/01/17 19:43:30 dawes Exp $ */ #include "fontmisc.h" #include <bufio.h> diff --git a/xc/lib/font/fontfile/printerfont.c b/xc/lib/font/fontfile/printerfont.c index ff961099f..9d457cce2 100644 --- a/xc/lib/font/fontfile/printerfont.c +++ b/xc/lib/font/fontfile/printerfont.c @@ -1,4 +1,4 @@ -/* $TOG: printerfont.c /main/4 1998/05/07 15:16:56 kaleb $ */ +/* $Xorg: printerfont.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,12 +21,12 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/printerfont.c,v 1.3 1999/08/21 13:48:04 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/printerfont.c,v 1.4 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium */ -/* $NCDId: @(#)fontfile.c,v 1.6 1991/07/02 17:00:46 lemke Exp $ */ +/* $NCDXorg: @(#)fontfile.c,v 1.6 1991/07/02 17:00:46 lemke Exp $ */ #include "fntfilst.h" diff --git a/xc/lib/font/fontfile/register.c b/xc/lib/font/fontfile/register.c index 4e85dae17..2a617b6bc 100644 --- a/xc/lib/font/fontfile/register.c +++ b/xc/lib/font/fontfile/register.c @@ -1,4 +1,4 @@ -/* $TOG: register.c /main/6 1998/05/01 16:43:32 kaleb $ */ +/* $Xorg: register.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/register.c,v 1.13 2000/02/13 06:15:28 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/register.c,v 1.14 2001/01/17 19:43:30 dawes Exp $ */ /* * This is in a separate source file so that small programs diff --git a/xc/lib/font/fontfile/renderers.c b/xc/lib/font/fontfile/renderers.c index 38c8fad8d..3ac3ae94f 100644 --- a/xc/lib/font/fontfile/renderers.c +++ b/xc/lib/font/fontfile/renderers.c @@ -1,4 +1,4 @@ -/* $TOG: renderers.c /main/6 1998/02/09 10:48:53 kaleb $ */ +/* $Xorg: renderers.c,v 1.3 2000/08/17 19:46:37 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/renderers.c,v 1.2 1999/07/17 05:30:43 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/renderers.c,v 1.3 2001/01/17 19:43:30 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/include/bitmap.h b/xc/lib/font/include/bitmap.h index 213649c42..6c2f05db7 100644 --- a/xc/lib/font/include/bitmap.h +++ b/xc/lib/font/include/bitmap.h @@ -1,4 +1,4 @@ -/* $TOG: bitmap.h /main/6 1998/02/09 10:48:57 kaleb $ */ +/* $Xorg: bitmap.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/bitmap.h,v 1.8 2000/10/24 22:45:02 dawes Exp $ */ +/* $XFree86: xc/lib/font/include/bitmap.h,v 1.9 2001/01/17 19:43:31 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/include/bufio.h b/xc/lib/font/include/bufio.h index 3338cf7c1..4a8417b81 100644 --- a/xc/lib/font/include/bufio.h +++ b/xc/lib/font/include/bufio.h @@ -1,4 +1,4 @@ -/* $TOG: bufio.h /main/8 1998/05/07 13:44:07 kaleb $ */ +/* $Xorg: bufio.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/bufio.h,v 1.4 2000/09/19 12:46:08 eich Exp $ */ +/* $XFree86: xc/lib/font/include/bufio.h,v 1.5 2001/01/17 19:43:31 dawes Exp $ */ #ifndef ___BUFIO_H___ #define ___BUFIO_H___ 1 diff --git a/xc/lib/font/include/fntfil.h b/xc/lib/font/include/fntfil.h index 390eb6fce..6413436de 100644 --- a/xc/lib/font/include/fntfil.h +++ b/xc/lib/font/include/fntfil.h @@ -1,4 +1,4 @@ -/* $TOG: fntfil.h /main/6 1998/02/09 10:49:13 kaleb $ */ +/* $Xorg: fntfil.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/fntfil.h,v 1.5 1999/08/21 13:48:06 dawes Exp $ */ +/* $XFree86: xc/lib/font/include/fntfil.h,v 1.6 2001/01/17 19:43:32 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/include/fntfilio.h b/xc/lib/font/include/fntfilio.h index a7d96ebb2..4f9632ff1 100644 --- a/xc/lib/font/include/fntfilio.h +++ b/xc/lib/font/include/fntfilio.h @@ -1,4 +1,4 @@ -/* $TOG: fntfilio.h /main/4 1998/02/09 10:49:05 kaleb $ */ +/* $Xorg: fntfilio.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/fntfilio.h,v 1.3 1999/08/21 13:48:06 dawes Exp $ */ +/* $XFree86: xc/lib/font/include/fntfilio.h,v 1.4 2001/01/17 19:43:32 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/include/fntfilst.h b/xc/lib/font/include/fntfilst.h index bd8bccb3f..b47cf4040 100644 --- a/xc/lib/font/include/fntfilst.h +++ b/xc/lib/font/include/fntfilst.h @@ -1,4 +1,4 @@ -/* $TOG: fntfilst.h /main/9 1998/02/09 10:49:09 kaleb $ */ +/* $Xorg: fntfilst.h,v 1.4 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/fntfilst.h,v 3.5 1999/07/17 05:30:47 dawes Exp $ */ +/* $XFree86: xc/lib/font/include/fntfilst.h,v 3.6 2001/01/17 19:43:32 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium @@ -33,7 +33,9 @@ in this Software without prior written authorization from The Open Group. #ifndef FONTMODULE #include <X11/Xos.h> #endif +#ifndef XP_PSTEXT #include "fontmisc.h" +#endif #include "fontstruct.h" #include "fontxlfd.h" #include "fntfil.h" diff --git a/xc/lib/font/include/fontmisc.h b/xc/lib/font/include/fontmisc.h index 6abbc05d1..9faa2768c 100644 --- a/xc/lib/font/include/fontmisc.h +++ b/xc/lib/font/include/fontmisc.h @@ -1,4 +1,4 @@ -/* $TOG: fontmisc.h /main/11 1998/05/07 14:12:58 kaleb $ */ +/* $Xorg: fontmisc.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/fontmisc.h,v 3.12 1999/09/04 09:14:12 dawes Exp $ */ +/* $XFree86: xc/lib/font/include/fontmisc.h,v 3.13 2001/01/17 19:43:32 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/include/fontshow.h b/xc/lib/font/include/fontshow.h index e7f83eb5f..021ea3d63 100644 --- a/xc/lib/font/include/fontshow.h +++ b/xc/lib/font/include/fontshow.h @@ -1,4 +1,4 @@ -/* $TOG: fontshow.h /main/3 1998/02/09 10:49:22 kaleb $ */ +/* $Xorg: fontshow.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* diff --git a/xc/lib/font/include/fontxlfd.h b/xc/lib/font/include/fontxlfd.h index 0643e372f..0436521b5 100644 --- a/xc/lib/font/include/fontxlfd.h +++ b/xc/lib/font/include/fontxlfd.h @@ -1,4 +1,4 @@ -/* $TOG: fontxlfd.h /main/7 1998/02/09 10:49:25 kaleb $ */ +/* $Xorg: fontxlfd.h,v 1.3 2000/08/17 19:46:38 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/include/fontxlfd.h,v 1.4 1999/07/17 05:30:48 dawes Exp $ */ +/* $XFree86: xc/lib/font/include/fontxlfd.h,v 1.5 2001/01/17 19:43:32 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/Imakefile b/xc/lib/font/util/Imakefile index db05d9240..a8e91c878 100644 --- a/xc/lib/font/util/Imakefile +++ b/xc/lib/font/util/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile,v 1.11 94/02/07 16:07:31 gildea Exp $ -XCOMM $XFree86: xc/lib/font/util/Imakefile,v 1.6 2000/12/07 16:40:30 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/font/util/Imakefile,v 1.7 2001/01/17 19:43:32 dawes Exp $ + #include <Server.tmpl> INCLUDES = -I$(FONTINCSRC) -I../include diff --git a/xc/lib/font/util/atom.c b/xc/lib/font/util/atom.c index 973d768c6..e54686c6e 100644 --- a/xc/lib/font/util/atom.c +++ b/xc/lib/font/util/atom.c @@ -1,4 +1,4 @@ -/* $TOG: atom.c /main/8 1998/05/11 12:24:07 kaleb $ */ +/* $Xorg: atom.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/atom.c,v 1.3 1999/08/22 08:58:57 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/atom.c,v 1.4 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/fontaccel.c b/xc/lib/font/util/fontaccel.c index 40b4ff86f..951db3dfb 100644 --- a/xc/lib/font/util/fontaccel.c +++ b/xc/lib/font/util/fontaccel.c @@ -1,4 +1,4 @@ -/* $TOG: fontaccel.c /main/6 1998/05/07 13:57:34 kaleb $ */ +/* $Xorg: fontaccel.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/fontaccel.c,v 1.5 1999/08/22 08:58:58 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/fontaccel.c,v 1.6 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/fontnames.c b/xc/lib/font/util/fontnames.c index 95a5b1118..978e6e1b1 100644 --- a/xc/lib/font/util/fontnames.c +++ b/xc/lib/font/util/fontnames.c @@ -1,4 +1,4 @@ -/* $TOG: fontnames.c /main/3 1998/02/09 10:55:16 kaleb $ */ +/* $Xorg: fontnames.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/fontnames.c,v 1.3 1999/08/22 08:58:58 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/fontnames.c,v 1.4 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/fontutil.c b/xc/lib/font/util/fontutil.c index 79badfdad..b248e3670 100644 --- a/xc/lib/font/util/fontutil.c +++ b/xc/lib/font/util/fontutil.c @@ -1,4 +1,4 @@ -/* $TOG: fontutil.c /main/14 1998/05/07 14:27:41 kaleb $ */ +/* $Xorg: fontutil.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/fontutil.c,v 3.4 1999/08/21 13:48:09 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/fontutil.c,v 3.5 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/fontxlfd.c b/xc/lib/font/util/fontxlfd.c index 7f83528e1..d9c4c57e8 100644 --- a/xc/lib/font/util/fontxlfd.c +++ b/xc/lib/font/util/fontxlfd.c @@ -1,4 +1,4 @@ -/* $TOG: fontxlfd.c /main/22 1998/05/07 14:25:20 kaleb $ */ +/* $Xorg: fontxlfd.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/fontxlfd.c,v 3.9 2000/08/31 19:03:55 tsi Exp $ */ +/* $XFree86: xc/lib/font/util/fontxlfd.c,v 3.10 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/format.c b/xc/lib/font/util/format.c index e596ad904..7c2e97033 100644 --- a/xc/lib/font/util/format.c +++ b/xc/lib/font/util/format.c @@ -1,4 +1,4 @@ -/* $TOG: format.c /main/6 1998/02/09 10:55:29 kaleb $ */ +/* $Xorg: format.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation @@ -46,7 +46,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/format.c,v 1.3 1999/08/22 08:58:58 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/format.c,v 1.4 2001/01/17 19:43:33 dawes Exp $ */ #include "FSproto.h" #include "font.h" diff --git a/xc/lib/font/util/miscutil.c b/xc/lib/font/util/miscutil.c index 47e7665e3..76359427c 100644 --- a/xc/lib/font/util/miscutil.c +++ b/xc/lib/font/util/miscutil.c @@ -1,4 +1,4 @@ -/* $TOG: miscutil.c /main/6 1998/05/01 16:43:52 kaleb $ */ +/* $Xorg: miscutil.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/miscutil.c,v 1.5 1999/09/04 09:14:12 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/miscutil.c,v 1.6 2001/01/17 19:43:33 dawes Exp $ */ #include <X11/Xosdefs.h> #ifndef X_NOT_STDC_ENV diff --git a/xc/lib/font/util/patcache.c b/xc/lib/font/util/patcache.c index 4462e5ed9..6be30c649 100644 --- a/xc/lib/font/util/patcache.c +++ b/xc/lib/font/util/patcache.c @@ -1,4 +1,4 @@ -/* $TOG: patcache.c /main/11 1998/05/07 13:54:55 kaleb $ */ +/* $Xorg: patcache.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/patcache.c,v 3.3 1999/08/21 13:48:10 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/patcache.c,v 3.4 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/private.c b/xc/lib/font/util/private.c index 8ad25cf5a..c6005c2cf 100644 --- a/xc/lib/font/util/private.c +++ b/xc/lib/font/util/private.c @@ -1,4 +1,4 @@ -/* $TOG: private.c /main/5 1998/02/09 10:55:41 kaleb $ */ +/* $Xorg: private.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/private.c,v 1.6 1999/10/13 05:27:10 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/private.c,v 1.7 2001/01/17 19:43:33 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/font/util/utilbitmap.c b/xc/lib/font/util/utilbitmap.c index f4ba4663f..d79258286 100644 --- a/xc/lib/font/util/utilbitmap.c +++ b/xc/lib/font/util/utilbitmap.c @@ -1,4 +1,4 @@ -/* $TOG: utilbitmap.c /main/4 1998/02/09 10:55:46 kaleb $ */ +/* $Xorg: utilbitmap.c,v 1.3 2000/08/17 19:46:39 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/util/utilbitmap.c,v 1.3 1999/08/22 08:58:58 dawes Exp $ */ +/* $XFree86: xc/lib/font/util/utilbitmap.c,v 1.4 2001/01/17 19:43:34 dawes Exp $ */ /* * Author: Keith Packard, MIT X Consortium diff --git a/xc/lib/freetype2/Imakefile b/xc/lib/freetype2/Imakefile new file mode 100644 index 000000000..a015d09fd --- /dev/null +++ b/xc/lib/freetype2/Imakefile @@ -0,0 +1,105 @@ +XCOMM $XFree86: xc/lib/freetype2/Imakefile,v 1.2 2001/02/08 00:55:40 keithp Exp $ + +#define IHaveSubdirs +#define PassCDebugFlags + +#define DoNormalLib NormalLibFreetype2 +#define DoSharedLib SharedLibFreetype2 +#define DoExtraLib SharedLibFreetype2 +#define DoDebugLib DebugLibFreetype2 +#define DoProfileLib ProfileLibFreetype2 +#define HasSharedData YES +#define LibName freetype +#define SoRev SOFREETYPE2REV +#define LibHeaders NO + +#include <Threads.tmpl> + +FREETYPETOP = $(TOP)/extras/freetype2 +FREETYPESRC = $(FREETYPETOP)/src +FREETYPEINC = $(FREETYPETOP)/include/freetype + +INCLUDES = $(FREETYPE2INCLUDES) -I$(FREETYPETOP)/src + +SUBDIRS=freetype + + + +SRCS_BASE = ftsystem.c ftinit.c ftdebug.c ftbase.c ftglyph.c ftbbox.c ftmm.c +OBJS_BASE = ftsystem.o ftinit.o ftdebug.o ftbase.o ftglyph.o ftbbox.o ftmm.o + +SRCS_AUTOHINT = autohint.c +OBJS_AUTOHINT = autohint.o + +SRCS_SFNT = sfnt.c +OBJS_SFNT = sfnt.o + +SRCS_CFF = cff.c +OBJS_CFF = cff.o + +SRCS_PSNAMES = psnames.c +OBJS_PSNAMES = psnames.o + +SRCS_PSAUX = psaux.c +OBJS_PSAUX = psaux.o + +SRCS_TRUETYPE = truetype.c +OBJS_TRUETYPE = truetype.o + +SRCS_TYPE1 = type1.c +OBJS_TYPE1 = type1.o + +SRCS_CID = type1cid.c +OBJS_CID = type1cid.o + +SRCS_RASTER = raster.c +OBJS_RASTER = raster.o + +SRCS_SMOOTH = smooth.c +OBJS_SMOOTH = smooth.o + +SRCS_WINFONTS = winfnt.c +OBJS_WINFONTS = winfnt.o + + +SRCS = $(SRCS_BASE) $(SRCS_AUTOHINT) $(SRCS_SFNT) $(SRCS_CFF) \ + $(SRCS_PSNAMES) $(SRCS_PSAUX) $(SRCS_TRUETYPE) $(SRCS_TYPE1) \ + $(SRCS_CID) $(SRCS_RASTER) $(SRCS_SMOOTH) $(SRCS_WINFONTS) + +OBJS = $(OBJS_BASE) $(OBJS_AUTOHINT) $(OBJS_SFNT) $(OBJS_CFF) \ + $(OBJS_PSNAMES) $(OBJS_PSAUX) $(OBJS_TRUETYPE) $(OBJS_TYPE1) \ + $(OBJS_CID) $(OBJS_RASTER) $(OBJS_SMOOTH) $(OBJS_WINFONTS) + +#include <Library.tmpl> + +#if DoSharedLib && SharedDataSeparation +SpecialCObjectRule(sharedlib,NullParameter,$(SHLIBDEF)) +#endif + +#if 0 +MANSUFFIX = $(LIBMANSUFFIX) +InstallManPage(Freetype,$(LIBMANDIR)) +#endif + + +LinkSourceFile(ftsystem.c,$(FREETYPESRC)/base) +LinkSourceFile(ftinit.c,$(FREETYPESRC)/base) +LinkSourceFile(ftdebug.c,$(FREETYPESRC)/base) +LinkSourceFile(ftbase.c,$(FREETYPESRC)/base) +LinkSourceFile(ftglyph.c,$(FREETYPESRC)/base) +LinkSourceFile(ftbbox.c,$(FREETYPESRC)/base) +LinkSourceFile(ftmm.c,$(FREETYPESRC)/base) +LinkSourceFile(autohint.c,$(FREETYPESRC)/autohint) +LinkSourceFile(sfnt.c,$(FREETYPESRC)/sfnt) +LinkSourceFile(cff.c,$(FREETYPESRC)/cff) +LinkSourceFile(psnames.c,$(FREETYPESRC)/psnames) +LinkSourceFile(psaux.c,$(FREETYPESRC)/psaux) +LinkSourceFile(truetype.c,$(FREETYPESRC)/truetype) +LinkSourceFile(type1.c,$(FREETYPESRC)/type1) +LinkSourceFile(type1cid.c,$(FREETYPESRC)/cid) +LinkSourceFile(raster.c,$(FREETYPESRC)/raster) +LinkSourceFile(smooth.c,$(FREETYPESRC)/smooth) +LinkSourceFile(winfnt.c,$(FREETYPESRC)/winfonts) + + +DependTarget() diff --git a/xc/lib/freetype2/freetype/Imakefile b/xc/lib/freetype2/freetype/Imakefile new file mode 100644 index 000000000..beb44b31e --- /dev/null +++ b/xc/lib/freetype2/freetype/Imakefile @@ -0,0 +1,56 @@ +XCOMM $XFree86: xc/lib/freetype2/freetype/Imakefile,v 1.2 2001/02/09 00:35:03 keithp Exp $ + +#define IHaveSubdirs +#define PassCDebugFlags + +SUBDIRS=config cache internal + +FREETYPETOP = $(TOP)/extras/freetype2 +FREETYPESRC = $(FREETYPETOP)/src +FREETYPEINC = $(FREETYPETOP)/include/freetype + +HEADERS= \ + freetype.h \ + ftbbox.h \ + ftcache.h \ + fterrors.h \ + ftglyph.h \ + ftimage.h \ + ftlist.h \ + ftmac.h \ + ftmm.h \ + ftmodule.h \ + ftnames.h \ + ftoutln.h \ + ftrender.h \ + ftsynth.h \ + ftsystem.h \ + fttypes.h \ + t1tables.h \ + ttnameid.h \ + tttables.h \ + tttags.h + +BuildIncludes($(HEADERS),freetype2/freetype,../..) +InstallMultipleFlags($(HEADERS),$(INCDIR)/freetype2/freetype,$(INSTINCFLAGS)) + +LinkSourceFile(freetype.h,$(FREETYPEINC)) +LinkSourceFile(ftbbox.h,$(FREETYPEINC)) +LinkSourceFile(ftcache.h,$(FREETYPEINC)) +LinkSourceFile(fterrors.h,$(FREETYPEINC)) +LinkSourceFile(ftglyph.h,$(FREETYPEINC)) +LinkSourceFile(ftimage.h,$(FREETYPEINC)) +LinkSourceFile(ftlist.h,$(FREETYPEINC)) +LinkSourceFile(ftmac.h,$(FREETYPEINC)) +LinkSourceFile(ftmm.h,$(FREETYPEINC)) +LinkSourceFile(ftmodule.h,$(FREETYPEINC)) +LinkSourceFile(ftnames.h,$(FREETYPEINC)) +LinkSourceFile(ftoutln.h,$(FREETYPEINC)) +LinkSourceFile(ftrender.h,$(FREETYPEINC)) +LinkSourceFile(ftsynth.h,$(FREETYPEINC)) +LinkSourceFile(ftsystem.h,$(FREETYPEINC)) +LinkSourceFile(fttypes.h,$(FREETYPEINC)) +LinkSourceFile(t1tables.h,$(FREETYPEINC)) +LinkSourceFile(ttnameid.h,$(FREETYPEINC)) +LinkSourceFile(tttables.h,$(FREETYPEINC)) +LinkSourceFile(tttags.h,$(FREETYPEINC)) diff --git a/xc/lib/freetype2/freetype/cache/Imakefile b/xc/lib/freetype2/freetype/cache/Imakefile new file mode 100644 index 000000000..8b2de539a --- /dev/null +++ b/xc/lib/freetype2/freetype/cache/Imakefile @@ -0,0 +1,23 @@ +XCOMM $XFree86: xc/lib/freetype2/freetype/cache/Imakefile,v 1.1 2001/02/08 00:55:41 keithp Exp $ + +FREETYPETOP = $(TOP)/extras/freetype2 +FREETYPESRC = $(FREETYPETOP)/src +FREETYPEINC = $(FREETYPETOP)/include/freetype + +HEADERS= \ + ftcchunk.h \ + ftcglyph.h \ + ftcimage.h \ + ftcmanag.h \ + ftcsbits.h \ + ftlru.h + +BuildIncludes($(HEADERS),freetype2/freetype/cache,../../..) +InstallMultipleFlags($(HEADERS),$(INCDIR)/freetype2/freetype/cache,$(INSTINCFLAGS)) + +LinkSourceFile(ftcchunk.h,$(FREETYPEINC)/cache) +LinkSourceFile(ftcglyph.h,$(FREETYPEINC)/cache) +LinkSourceFile(ftcimage.h,$(FREETYPEINC)/cache) +LinkSourceFile(ftcmanag.h,$(FREETYPEINC)/cache) +LinkSourceFile(ftcsbits.h,$(FREETYPEINC)/cache) +LinkSourceFile(ftlru.h,$(FREETYPEINC)/cache) diff --git a/xc/lib/freetype2/freetype/config/Imakefile b/xc/lib/freetype2/freetype/config/Imakefile new file mode 100644 index 000000000..2e0a7583e --- /dev/null +++ b/xc/lib/freetype2/freetype/config/Imakefile @@ -0,0 +1,19 @@ +XCOMM $XFree86: xc/lib/freetype2/freetype/config/Imakefile,v 1.1 2001/02/08 00:55:41 keithp Exp $ + +FREETYPETOP = $(TOP)/extras/freetype2 +FREETYPESRC = $(FREETYPETOP)/src +FREETYPEINC = $(FREETYPETOP)/include/freetype + +HEADERS= \ + ftbuild.h \ + ftconfig.h \ + ftmodule.h \ + ftoption.h + +BuildIncludes($(HEADERS),freetype2/freetype/config,../../..) +InstallMultipleFlags($(HEADERS),$(INCDIR)/freetype2/freetype/config,$(INSTINCFLAGS)) + +LinkSourceFile(ftbuild.h,$(FREETYPEINC)/config) +LinkSourceFile(ftconfig.h,$(FREETYPEINC)/config) +LinkSourceFile(ftmodule.h,$(FREETYPEINC)/config) +LinkSourceFile(ftoption.h,$(FREETYPEINC)/config) diff --git a/xc/lib/freetype2/freetype/internal/Imakefile b/xc/lib/freetype2/freetype/internal/Imakefile new file mode 100644 index 000000000..7814a43de --- /dev/null +++ b/xc/lib/freetype2/freetype/internal/Imakefile @@ -0,0 +1,49 @@ +XCOMM $XFree86: xc/lib/freetype2/freetype/internal/Imakefile,v 1.1 2001/02/09 00:35:03 keithp Exp $ + +FREETYPETOP = $(TOP)/extras/freetype2 +FREETYPESRC = $(FREETYPETOP)/src +FREETYPEINC = $(FREETYPETOP)/include/freetype + +HEADERS= \ + autohint.h \ + fnttypes.h \ + ftcalc.h \ + ftdebug.h \ + ftdriver.h \ + ftextend.h \ + ftmemory.h \ + ftobjs.h \ + ftstream.h \ + internal.h \ + psaux.h \ + psnames.h \ + sfnt.h \ + t1errors.h \ + t1types.h \ + t2errors.h \ + t2types.h \ + tterrors.h \ + tttypes.h + +BuildIncludes($(HEADERS),freetype2/freetype/internal,../../..) +InstallMultipleFlags($(HEADERS),$(INCDIR)/freetype2/freetype/internal,$(INSTINCFLAGS)) + +LinkSourceFile(autohint.h,$(FREETYPEINC)/internal) +LinkSourceFile(fnttypes.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftcalc.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftdebug.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftdriver.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftextend.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftmemory.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftobjs.h,$(FREETYPEINC)/internal) +LinkSourceFile(ftstream.h,$(FREETYPEINC)/internal) +LinkSourceFile(internal.h,$(FREETYPEINC)/internal) +LinkSourceFile(psaux.h,$(FREETYPEINC)/internal) +LinkSourceFile(psnames.h,$(FREETYPEINC)/internal) +LinkSourceFile(sfnt.h,$(FREETYPEINC)/internal) +LinkSourceFile(t1errors.h,$(FREETYPEINC)/internal) +LinkSourceFile(t1types.h,$(FREETYPEINC)/internal) +LinkSourceFile(t2errors.h,$(FREETYPEINC)/internal) +LinkSourceFile(t2types.h,$(FREETYPEINC)/internal) +LinkSourceFile(tterrors.h,$(FREETYPEINC)/internal) +LinkSourceFile(tttypes.h,$(FREETYPEINC)/internal) diff --git a/xc/lib/lbxutil/Imakefile b/xc/lib/lbxutil/Imakefile index ee511f8ed..108c8aa61 100644 --- a/xc/lib/lbxutil/Imakefile +++ b/xc/lib/lbxutil/Imakefile @@ -1,10 +1,11 @@ -XCOMM $XConsortium: Imakefile /main/8 1996/11/03 19:32:12 kaleb $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:40 cpqbld Exp $ -XCOMM $XFree86: xc/lib/lbxutil/Imakefile,v 1.7 1999/04/17 09:08:13 dawes Exp $ +XCOMM $XFree86: xc/lib/lbxutil/Imakefile,v 1.8 2001/01/17 19:43:34 dawes Exp $ + #include <Server.tmpl> #define IHaveSubdirs diff --git a/xc/lib/lbxutil/delta/Imakefile b/xc/lib/lbxutil/delta/Imakefile index 69a6b6abb..cb94c8906 100644 --- a/xc/lib/lbxutil/delta/Imakefile +++ b/xc/lib/lbxutil/delta/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XConsortium: Imakefile /main/4 1996/12/04 10:23:49 lehors $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:40 cpqbld Exp $ #define IncSubdir X11 #include <Library.tmpl> diff --git a/xc/lib/lbxutil/delta/lbxdelta.c b/xc/lib/lbxutil/delta/lbxdelta.c index f2cc77cdd..793052e3f 100644 --- a/xc/lib/lbxutil/delta/lbxdelta.c +++ b/xc/lib/lbxutil/delta/lbxdelta.c @@ -1,6 +1,6 @@ /* - * $NCDId: @(#)lbxdelta.c,v 1.2 1994/01/22 02:23:40 dct Exp $ - * $XConsortium: lbxdelta.c /main/7 1996/02/27 14:49:46 mor $ + * $NCDXorg: @(#)lbxdelta.c,v 1.2 1994/01/22 02:23:40 dct Exp $ + * $Xorg: lbxdelta.c,v 1.5 2000/08/17 19:46:40 cpqbld Exp $ * Copyright 1993 Network Computing Devices * * Permission to use, copy, modify, distribute, and sell this software and its @@ -22,7 +22,7 @@ * * Author: Dale Tonogai, Network Computing Devices */ -/* $XFree86: xc/lib/lbxutil/delta/lbxdelta.c,v 1.5 2000/06/07 22:03:02 tsi Exp $ */ +/* $XFree86: xc/lib/lbxutil/delta/lbxdelta.c,v 1.6 2001/01/17 19:43:34 dawes Exp $ */ #include "X.h" #include "Xproto.h" diff --git a/xc/lib/lbxutil/image/Imakefile b/xc/lib/lbxutil/image/Imakefile index 77bff9cff..37302b94a 100644 --- a/xc/lib/lbxutil/image/Imakefile +++ b/xc/lib/lbxutil/image/Imakefile @@ -1,9 +1,9 @@ -XCOMM $XConsortium: Imakefile /main/5 1996/12/04 10:23:58 lehors $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:40 cpqbld Exp $ -XCOMM $XFree86: xc/lib/lbxutil/image/Imakefile,v 1.2 1997/01/05 11:52:20 dawes Exp $ +XCOMM $XFree86: xc/lib/lbxutil/image/Imakefile,v 1.3 2001/01/17 19:43:35 dawes Exp $ #define IncSubdir X11 #include <Library.tmpl> diff --git a/xc/lib/lbxutil/image/dfaxg42d.c b/xc/lib/lbxutil/image/dfaxg42d.c index 8dff1670f..ca735365f 100644 --- a/xc/lib/lbxutil/image/dfaxg42d.c +++ b/xc/lib/lbxutil/image/dfaxg42d.c @@ -1,4 +1,4 @@ -/* $XConsortium: dfaxg42d.c /main/6 1996/11/04 16:50:55 rws $ */ +/* $Xorg: dfaxg42d.c,v 1.3 2000/08/17 19:46:40 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. @@ -22,7 +22,7 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/lbxutil/image/dfaxg42d.c,v 1.4 2000/05/18 23:46:16 dawes Exp $ */ +/* $XFree86: xc/lib/lbxutil/image/dfaxg42d.c,v 1.5 2001/01/17 19:43:35 dawes Exp $ */ #include <X11/Xos.h> #include <X11/Xfuncproto.h> diff --git a/xc/lib/lbxutil/image/dpackbits.c b/xc/lib/lbxutil/image/dpackbits.c index ee8b2e742..e070dd029 100644 --- a/xc/lib/lbxutil/image/dpackbits.c +++ b/xc/lib/lbxutil/image/dpackbits.c @@ -1,4 +1,4 @@ -/* $XConsortium: dpackbits.c /main/2 1995/10/18 16:45:17 mor $ */ +/* $Xorg: dpackbits.c,v 1.4 2000/08/17 19:46:40 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. @@ -22,7 +22,7 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/lbxutil/image/dpackbits.c,v 1.3 2000/05/18 23:46:16 dawes Exp $ */ +/* $XFree86: xc/lib/lbxutil/image/dpackbits.c,v 1.4 2001/01/17 19:43:35 dawes Exp $ */ #include <X11/Xos.h> #include <X11/Xfuncproto.h> diff --git a/xc/lib/lbxutil/image/efaxg42d.c b/xc/lib/lbxutil/image/efaxg42d.c index 9aa8a5dc9..9809f66cf 100644 --- a/xc/lib/lbxutil/image/efaxg42d.c +++ b/xc/lib/lbxutil/image/efaxg42d.c @@ -1,4 +1,4 @@ -/* $XConsortium: efaxg42d.c /main/6 1996/11/04 16:50:00 rws $ */ +/* $Xorg: efaxg42d.c,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. @@ -22,7 +22,7 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/lbxutil/image/efaxg42d.c,v 1.3 2000/05/18 23:46:16 dawes Exp $ */ +/* $XFree86: xc/lib/lbxutil/image/efaxg42d.c,v 1.4 2001/01/17 19:43:35 dawes Exp $ */ #include <X11/Xos.h> #include <X11/Xfuncproto.h> diff --git a/xc/lib/lbxutil/image/epackbits.c b/xc/lib/lbxutil/image/epackbits.c index 79a48d937..7e15c2b83 100644 --- a/xc/lib/lbxutil/image/epackbits.c +++ b/xc/lib/lbxutil/image/epackbits.c @@ -1,4 +1,4 @@ -/* $XConsortium: epackbits.c /main/2 1995/10/18 16:46:01 mor $ */ +/* $Xorg: epackbits.c,v 1.4 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. diff --git a/xc/lib/lbxutil/image/lbxbwcodes.h b/xc/lib/lbxutil/image/lbxbwcodes.h index c241eeb8a..6e8418f89 100644 --- a/xc/lib/lbxutil/image/lbxbwcodes.h +++ b/xc/lib/lbxutil/image/lbxbwcodes.h @@ -1,4 +1,4 @@ -/* $XConsortium: lbxbwcodes.h,v 1.1 95/01/17 18:17:40 mor Exp $ */ +/* $Xorg: lbxbwcodes.h,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler diff --git a/xc/lib/lbxutil/image/lbxfax.h b/xc/lib/lbxutil/image/lbxfax.h index f2778e303..6b0222743 100644 --- a/xc/lib/lbxutil/image/lbxfax.h +++ b/xc/lib/lbxutil/image/lbxfax.h @@ -1,4 +1,4 @@ -/* $XConsortium: lbxfax.h /main/3 1996/11/04 16:49:07 rws $ */ +/* $Xorg: lbxfax.h,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. diff --git a/xc/lib/lbxutil/image/misc.c b/xc/lib/lbxutil/image/misc.c index 8a23b962b..fd228624e 100644 --- a/xc/lib/lbxutil/image/misc.c +++ b/xc/lib/lbxutil/image/misc.c @@ -1,4 +1,4 @@ -/* $XConsortium: misc.c,v 1.2 94/11/22 22:24:46 mor Exp $ */ +/* $Xorg: misc.c,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. diff --git a/xc/lib/lbxutil/image/mkg3states.c b/xc/lib/lbxutil/image/mkg3states.c index 39d8abae0..c9c4b7fc7 100644 --- a/xc/lib/lbxutil/image/mkg3states.c +++ b/xc/lib/lbxutil/image/mkg3states.c @@ -1,4 +1,4 @@ -/* $XConsortium: mkg3states.c,v 1.2 95/01/17 20:29:41 mor Exp $ */ +/* $Xorg: mkg3states.c,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright (c) 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. @@ -22,7 +22,7 @@ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ -/* $XFree86: xc/lib/lbxutil/image/mkg3states.c,v 1.3 1999/02/01 11:55:49 dawes Exp $ */ +/* $XFree86: xc/lib/lbxutil/image/mkg3states.c,v 1.4 2001/01/17 19:43:35 dawes Exp $ */ /* * Program to construct Group 3 & Group 4 decoding tables. diff --git a/xc/lib/lbxutil/lbx_zlib/Imakefile b/xc/lib/lbxutil/lbx_zlib/Imakefile index f232a5a52..d48b6e899 100644 --- a/xc/lib/lbxutil/lbx_zlib/Imakefile +++ b/xc/lib/lbxutil/lbx_zlib/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XConsortium: Imakefile /main/4 1996/11/03 19:32:10 kaleb $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ #include <Library.tmpl> diff --git a/xc/lib/lbxutil/lbx_zlib/lbx_zlib.c b/xc/lib/lbxutil/lbx_zlib/lbx_zlib.c index a76ec7619..52ebb5aef 100644 --- a/xc/lib/lbxutil/lbx_zlib/lbx_zlib.c +++ b/xc/lib/lbxutil/lbx_zlib/lbx_zlib.c @@ -1,4 +1,4 @@ -/* $TOG: lbx_zlib.c /main/9 1998/02/09 10:23:12 kaleb $ */ +/* $Xorg: lbx_zlib.c,v 1.5 2000/08/17 19:46:41 cpqbld Exp $ */ /* @@ -46,7 +46,7 @@ from The Open Group. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ -/* $XFree86: xc/lib/lbxutil/lbx_zlib/lbx_zlib.c,v 1.6 2000/05/18 23:46:17 dawes Exp $ */ +/* $XFree86: xc/lib/lbxutil/lbx_zlib/lbx_zlib.c,v 1.7 2001/01/17 19:43:36 dawes Exp $ */ #ifdef WIN32 #define _WILLWINSOCK_ diff --git a/xc/lib/lbxutil/lbx_zlib/lbx_zlib.h b/xc/lib/lbxutil/lbx_zlib/lbx_zlib.h index c42329466..31f7df237 100644 --- a/xc/lib/lbxutil/lbx_zlib/lbx_zlib.h +++ b/xc/lib/lbxutil/lbx_zlib/lbx_zlib.h @@ -1,4 +1,4 @@ -/* $TOG: lbx_zlib.h /main/4 1998/02/09 10:23:18 kaleb $ */ +/* $Xorg: lbx_zlib.h,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* @@ -46,7 +46,7 @@ from The Open Group. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ -/* $XFree86: xc/lib/lbxutil/lbx_zlib/lbx_zlib.h,v 1.7 2000/06/07 22:03:02 tsi Exp $ */ +/* $XFree86: xc/lib/lbxutil/lbx_zlib/lbx_zlib.h,v 1.8 2001/01/17 19:43:36 dawes Exp $ */ #include "zlib.h" #include "Xfuncproto.h" diff --git a/xc/lib/lbxutil/lbx_zlib/lbx_zlib_io.c b/xc/lib/lbxutil/lbx_zlib/lbx_zlib_io.c index 6b30eb258..79c7a5b32 100644 --- a/xc/lib/lbxutil/lbx_zlib/lbx_zlib_io.c +++ b/xc/lib/lbxutil/lbx_zlib/lbx_zlib_io.c @@ -1,4 +1,4 @@ -/* $TOG: lbx_zlib_io.c /main/5 1997/08/17 23:00:20 kaleb $ */ +/* $Xorg: lbx_zlib_io.c,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* * Copyright 1993 Network Computing Devices @@ -22,7 +22,7 @@ * * Author: Dale Tonogai, Network Computing Devices */ -/* $XFree86: xc/lib/lbxutil/lbx_zlib/lbx_zlib_io.c,v 1.10 2000/06/07 22:03:02 tsi Exp $ */ +/* $XFree86: xc/lib/lbxutil/lbx_zlib/lbx_zlib_io.c,v 1.11 2001/01/17 19:43:36 dawes Exp $ */ #ifdef WIN32 #define _WILLWINSOCK_ diff --git a/xc/lib/lbxutil/lbx_zlib/reqstats.c b/xc/lib/lbxutil/lbx_zlib/reqstats.c index 7400ae81a..b37eb54f4 100644 --- a/xc/lib/lbxutil/lbx_zlib/reqstats.c +++ b/xc/lib/lbxutil/lbx_zlib/reqstats.c @@ -1,4 +1,4 @@ -/* $TOG: reqstats.c /main/11 1998/02/09 10:23:25 kaleb $ */ +/* $Xorg: reqstats.c,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* @@ -23,7 +23,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/lbxutil/lbx_zlib/reqstats.c,v 1.3 2000/06/27 21:26:33 tsi Exp $ */ +/* $XFree86: xc/lib/lbxutil/lbx_zlib/reqstats.c,v 1.4 2001/01/17 19:43:36 dawes Exp $ */ #ifdef LBXREQSTATS diff --git a/xc/lib/lbxutil/lbx_zlib/reqstats.h b/xc/lib/lbxutil/lbx_zlib/reqstats.h index 0b1334522..d25b9d68f 100644 --- a/xc/lib/lbxutil/lbx_zlib/reqstats.h +++ b/xc/lib/lbxutil/lbx_zlib/reqstats.h @@ -1,4 +1,4 @@ -/* $TOG: reqstats.h /main/2 1998/02/09 10:23:30 kaleb $ */ +/* $Xorg: reqstats.h,v 1.3 2000/08/17 19:46:41 cpqbld Exp $ */ /* diff --git a/xc/lib/oldX/Imakefile b/xc/lib/oldX/Imakefile index 9ca0955fa..8b63d4887 100644 --- a/xc/lib/oldX/Imakefile +++ b/xc/lib/oldX/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/28 1996/09/28 16:49:50 rws $ -XCOMM $XFree86: xc/lib/oldX/Imakefile,v 1.2 1998/12/20 11:57:19 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/oldX/Imakefile,v 1.3 2001/01/17 19:43:37 dawes Exp $ + #define DoNormalLib NormalOldX #define DoSharedLib SharedOldX #define DoExtraLib SharedOldX diff --git a/xc/lib/oldX/X10.h b/xc/lib/oldX/X10.h index 80a928795..691c1ae11 100644 --- a/xc/lib/oldX/X10.h +++ b/xc/lib/oldX/X10.h @@ -1,4 +1,4 @@ -/* $TOG: X10.h /main/6 1998/02/06 16:14:20 kaleb $ */ +/* $Xorg: X10.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* * Copyright 1985, 1986, 1987, 1998 The Open Group diff --git a/xc/lib/oldX/XCrAssoc.c b/xc/lib/oldX/XCrAssoc.c index 15472e643..40af326ae 100644 --- a/xc/lib/oldX/XCrAssoc.c +++ b/xc/lib/oldX/XCrAssoc.c @@ -1,4 +1,4 @@ -/* $TOG: XCrAssoc.c /main/6 1998/02/06 16:14:26 kaleb $ */ +/* $Xorg: XCrAssoc.c,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group. diff --git a/xc/lib/oldX/XDelAssoc.c b/xc/lib/oldX/XDelAssoc.c index c1ad4928a..ab6fde969 100644 --- a/xc/lib/oldX/XDelAssoc.c +++ b/xc/lib/oldX/XDelAssoc.c @@ -1,4 +1,4 @@ -/* $TOG: XDelAssoc.c /main/7 1998/02/06 16:14:31 kaleb $ */ +/* $Xorg: XDelAssoc.c,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group. @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/oldX/XDelAssoc.c,v 1.2 1999/05/23 06:33:34 dawes Exp $ */ +/* $XFree86: xc/lib/oldX/XDelAssoc.c,v 1.3 2001/01/17 19:43:37 dawes Exp $ */ #include "Xlibint.h" #include "X10.h" diff --git a/xc/lib/oldX/XDestAssoc.c b/xc/lib/oldX/XDestAssoc.c index 1dc066683..17094a405 100644 --- a/xc/lib/oldX/XDestAssoc.c +++ b/xc/lib/oldX/XDestAssoc.c @@ -1,4 +1,4 @@ -/* $TOG: XDestAssoc.c /main/6 1998/02/06 16:14:37 kaleb $ */ +/* $Xorg: XDestAssoc.c,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group. @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/oldX/XDestAssoc.c,v 1.2 1999/05/23 06:33:34 dawes Exp $ */ +/* $XFree86: xc/lib/oldX/XDestAssoc.c,v 1.3 2001/01/17 19:43:38 dawes Exp $ */ #include "Xlibint.h" #include "X10.h" diff --git a/xc/lib/oldX/XDraw.c b/xc/lib/oldX/XDraw.c index 9fd20bfb1..6540a1a42 100644 --- a/xc/lib/oldX/XDraw.c +++ b/xc/lib/oldX/XDraw.c @@ -1,4 +1,4 @@ -/* $TOG: XDraw.c /main/13 1998/02/06 16:14:41 kaleb $ */ +/* $Xorg: XDraw.c,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* @@ -26,7 +26,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/oldX/XDraw.c,v 1.2 1999/05/23 06:33:35 dawes Exp $ */ +/* $XFree86: xc/lib/oldX/XDraw.c,v 1.3 2001/01/17 19:43:38 dawes Exp $ */ #include "Xlibint.h" #include "Xlib.h" diff --git a/xc/lib/oldX/XLookAssoc.c b/xc/lib/oldX/XLookAssoc.c index afae44287..dcb535f1b 100644 --- a/xc/lib/oldX/XLookAssoc.c +++ b/xc/lib/oldX/XLookAssoc.c @@ -1,4 +1,4 @@ -/* $TOG: XLookAssoc.c /main/7 1998/02/06 16:14:47 kaleb $ */ +/* $Xorg: XLookAssoc.c,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group diff --git a/xc/lib/oldX/XMakeAssoc.c b/xc/lib/oldX/XMakeAssoc.c index d4e32778f..e1169208d 100644 --- a/xc/lib/oldX/XMakeAssoc.c +++ b/xc/lib/oldX/XMakeAssoc.c @@ -1,4 +1,4 @@ -/* $TOG: XMakeAssoc.c /main/9 1998/02/06 16:14:52 kaleb $ */ +/* $Xorg: XMakeAssoc.c,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /* Copyright 1985, 1998 The Open Group. @@ -20,7 +20,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/oldX/XMakeAssoc.c,v 1.2 1999/05/23 06:33:35 dawes Exp $ */ +/* $XFree86: xc/lib/oldX/XMakeAssoc.c,v 1.3 2001/01/17 19:43:38 dawes Exp $ */ #include "Xlibint.h" #include "X10.h" diff --git a/xc/lib/oldX/oldX-def.cpp b/xc/lib/oldX/oldX-def.cpp index c793c23c2..a975984e4 100644 --- a/xc/lib/oldX/oldX-def.cpp +++ b/xc/lib/oldX/oldX-def.cpp @@ -8,4 +8,4 @@ EXPORTS XDestroyAssocTable XLookUpAssoc XMakeAssoc -/* $XConsortium: oldX-def.cpp /main/2 1996/05/07 13:15:41 kaleb $ */ +/* $Xorg: oldX-def.cpp,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ diff --git a/xc/lib/xkbfile/Imakefile b/xc/lib/xkbfile/Imakefile index 3c800a57f..c455bd839 100644 --- a/xc/lib/xkbfile/Imakefile +++ b/xc/lib/xkbfile/Imakefile @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/5 1996/09/28 16:49:56 rws $ -XCOMM $XFree86: xc/lib/xkbfile/Imakefile,v 3.2 1998/12/20 11:57:20 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/lib/xkbfile/Imakefile,v 3.3 2001/01/17 19:43:39 dawes Exp $ + #define DoNormalLib YES #define DoSharedLib NO #define DoExtraLib NO diff --git a/xc/lib/xkbfile/XKBbells.h b/xc/lib/xkbfile/XKBbells.h index c2ddfb640..2b6865f7a 100644 --- a/xc/lib/xkbfile/XKBbells.h +++ b/xc/lib/xkbfile/XKBbells.h @@ -1,7 +1,7 @@ #ifndef _XKBBELLS_H_ #define _XKBBELLS_H_ 1 -/* $XConsortium: XKBbells.h /main/4 1996/08/31 12:44:47 kaleb $ */ +/* $Xorg: XKBbells.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/XKBconfig.h b/xc/lib/xkbfile/XKBconfig.h index 97a4cfb4a..f1391251a 100644 --- a/xc/lib/xkbfile/XKBconfig.h +++ b/xc/lib/xkbfile/XKBconfig.h @@ -1,7 +1,7 @@ #ifndef _XKBCONFIG_H_ #define _XKBCONFIG_H_ 1 -/* $XConsortium: XKBconfig.h /main/4 1996/08/31 12:44:53 kaleb $ */ +/* $Xorg: XKBconfig.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. @@ -27,7 +27,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/XKBconfig.h,v 3.4 2000/06/19 15:00:44 tsi Exp $ */ +/* $XFree86: xc/lib/xkbfile/XKBconfig.h,v 3.5 2001/01/17 19:43:39 dawes Exp $ */ typedef struct _XkbConfigRtrn *XkbConfigRtrnPtr; diff --git a/xc/lib/xkbfile/XKBfile.h b/xc/lib/xkbfile/XKBfile.h index 6c4315378..2c7de2d34 100644 --- a/xc/lib/xkbfile/XKBfile.h +++ b/xc/lib/xkbfile/XKBfile.h @@ -1,7 +1,7 @@ #ifndef _XKBFILE_H_ #define _XKBFILE_H_ 1 -/* $XConsortium: XKBfile.h /main/6 1996/08/31 12:44:58 kaleb $ */ +/* $Xorg: XKBfile.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/XKBfileInt.h b/xc/lib/xkbfile/XKBfileInt.h index 5692ea3b3..67ef31951 100644 --- a/xc/lib/xkbfile/XKBfileInt.h +++ b/xc/lib/xkbfile/XKBfileInt.h @@ -1,7 +1,7 @@ #ifndef _XKBFILEINT_H_ #define _XKBFILEINT_H_ 1 -/* $XConsortium: XKBfileInt.h /main/3 1996/08/31 12:45:04 kaleb $ */ +/* $Xorg: XKBfileInt.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/XKBrules.h b/xc/lib/xkbfile/XKBrules.h index af1283e9f..ffc5138b8 100644 --- a/xc/lib/xkbfile/XKBrules.h +++ b/xc/lib/xkbfile/XKBrules.h @@ -1,7 +1,7 @@ #ifndef _XKBRULES_H_ #define _XKBRULES_H_ 1 -/* $XConsortium: XKBrules.h /main/1 1996/08/31 12:45:06 kaleb $ */ +/* $Xorg: XKBrules.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/XKM.h b/xc/lib/xkbfile/XKM.h index 5fedcc604..c6c9f5195 100644 --- a/xc/lib/xkbfile/XKM.h +++ b/xc/lib/xkbfile/XKM.h @@ -1,4 +1,4 @@ -/* $XConsortium: XKM.h /main/2 1995/12/07 21:18:26 kaleb $ */ +/* $Xorg: XKM.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/XKMformat.h b/xc/lib/xkbfile/XKMformat.h index 146180c98..9e70845fd 100644 --- a/xc/lib/xkbfile/XKMformat.h +++ b/xc/lib/xkbfile/XKMformat.h @@ -1,4 +1,4 @@ -/* $XConsortium: XKMformat.h /main/2 1995/12/07 21:18:30 kaleb $ */ +/* $Xorg: XKMformat.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/cout.c b/xc/lib/xkbfile/cout.c index 6d8677bb7..60925d4e6 100644 --- a/xc/lib/xkbfile/cout.c +++ b/xc/lib/xkbfile/cout.c @@ -1,4 +1,4 @@ -/* $TOG: cout.c /main/6 1997/08/17 23:01:29 kaleb $ */ +/* $Xorg: cout.c,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/cout.c,v 3.4 1997/10/26 13:24:56 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/cout.c,v 3.5 2001/01/17 19:43:40 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/xkbfile/magic b/xc/lib/xkbfile/magic index 96d54a704..9c433ad02 100644 --- a/xc/lib/xkbfile/magic +++ b/xc/lib/xkbfile/magic @@ -1,4 +1,4 @@ -# $TOG: magic /main/3 1998/02/06 15:24:51 kaleb $ +# $Xorg: magic,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ # Here are some lines you can add to /etc/magic # to identify XKM (compiled X keymap) files # and determine their version and the byte ordering diff --git a/xc/lib/xkbfile/maprules.c b/xc/lib/xkbfile/maprules.c index e4fcac0a5..2dd014570 100644 --- a/xc/lib/xkbfile/maprules.c +++ b/xc/lib/xkbfile/maprules.c @@ -1,4 +1,4 @@ -/* $TOG: maprules.c /main/13 1997/08/17 23:06:24 kaleb $ */ +/* $Xorg: maprules.c,v 1.4 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/maprules.c,v 3.11 1997/10/26 13:24:56 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/maprules.c,v 3.12 2001/01/17 19:43:41 dawes Exp $ */ #include <stdio.h> #include <ctype.h> @@ -1251,7 +1251,7 @@ XkbRF_GetNamesProp(dpy,rf_rtrn,vd_rtrn) #endif { Atom rules_atom,actual_type; -int fmt,len; +int fmt; unsigned long nitems,bytes_after; char *data,*out; Status rtrn; diff --git a/xc/lib/xkbfile/srvmisc.c b/xc/lib/xkbfile/srvmisc.c index 571c711ee..8dfde7492 100644 --- a/xc/lib/xkbfile/srvmisc.c +++ b/xc/lib/xkbfile/srvmisc.c @@ -1,4 +1,4 @@ -/* $XConsortium: srvmisc.c /main/4 1996/03/01 14:30:31 kaleb $ */ +/* $Xorg: srvmisc.c,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/xkbatom.c b/xc/lib/xkbfile/xkbatom.c index 92cf7f2a7..b0cfbb94a 100644 --- a/xc/lib/xkbfile/xkbatom.c +++ b/xc/lib/xkbfile/xkbatom.c @@ -1,4 +1,4 @@ -/* $TOG: xkbatom.c /main/5 1998/02/06 15:21:40 kaleb $ */ +/* $Xorg: xkbatom.c,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -67,7 +67,7 @@ SOFTWARE. THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/xkbatom.c,v 3.5 1998/10/03 09:07:33 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/xkbatom.c,v 3.6 2001/01/17 19:43:42 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/xkbfile/xkbbells.c b/xc/lib/xkbfile/xkbbells.c index 0bb7911bb..8214eede2 100644 --- a/xc/lib/xkbfile/xkbbells.c +++ b/xc/lib/xkbfile/xkbbells.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkbbells.c /main/3 1996/01/14 16:44:18 kaleb $ */ +/* $Xorg: xkbbells.c,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/xkbconfig.c b/xc/lib/xkbfile/xkbconfig.c index 58a0d2519..b0c87ab5c 100644 --- a/xc/lib/xkbfile/xkbconfig.c +++ b/xc/lib/xkbfile/xkbconfig.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkbconfig.c /main/5 1996/12/27 20:52:56 kaleb $ */ +/* $Xorg: xkbconfig.c,v 1.4 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/xkbconfig.c,v 3.4 2000/06/14 18:20:33 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/xkbconfig.c,v 3.5 2001/01/17 19:43:42 dawes Exp $ */ #include <stdio.h> #include <ctype.h> @@ -354,7 +354,7 @@ AddAXTimeoutOptByName(rtrn,name,opts_rtrn) else if (_XkbStrCaseCmp(name,"slowkeysreject")==0) *opts_rtrn= XkbAX_SKRejectFBMask; else if (_XkbStrCaseCmp(name,"bouncekeysreject")==0) - *opts_rtrn= XkbAX_SKRejectFBMask; + *opts_rtrn= XkbAX_BKRejectFBMask; else if (_XkbStrCaseCmp(name,"dumbbell")==0) *opts_rtrn= XkbAX_DumbBellFBMask; else { diff --git a/xc/lib/xkbfile/xkbdraw.c b/xc/lib/xkbfile/xkbdraw.c index fb94983c3..fffc832b6 100644 --- a/xc/lib/xkbfile/xkbdraw.c +++ b/xc/lib/xkbfile/xkbdraw.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkbdraw.c /main/1 1996/02/02 14:13:11 kaleb $ */ +/* $Xorg: xkbdraw.c,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/xkberrs.c b/xc/lib/xkbfile/xkberrs.c index 32126e979..41df420b8 100644 --- a/xc/lib/xkbfile/xkberrs.c +++ b/xc/lib/xkbfile/xkberrs.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkberrs.c /main/2 1996/08/31 12:45:31 kaleb $ */ +/* $Xorg: xkberrs.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. diff --git a/xc/lib/xkbfile/xkbmisc.c b/xc/lib/xkbfile/xkbmisc.c index 8f54cc4fa..d07a704c3 100644 --- a/xc/lib/xkbfile/xkbmisc.c +++ b/xc/lib/xkbfile/xkbmisc.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkbmisc.c /main/7 1996/12/27 20:53:10 kaleb $ */ +/* $Xorg: xkbmisc.c,v 1.4 2000/08/17 19:46:44 cpqbld Exp $ */ /************************************************************ Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. @@ -105,7 +105,7 @@ _XkbStrCaseCmp(str1,str2) char c, *s; register int n; - for (n=0, s = buf1; c = *str1++; n++) { + for (n=0, s = buf1; (c = *str1++); n++) { if (isupper(c)) c = tolower(c); if (n>510) @@ -113,7 +113,7 @@ _XkbStrCaseCmp(str1,str2) *s++ = c; } *s = '\0'; - for (n=0, s = buf2; c = *str2++; n++) { + for (n=0, s = buf2; (c = *str2++); n++) { if (isupper(c)) c = tolower(c); if (n>510) diff --git a/xc/lib/xkbfile/xkbout.c b/xc/lib/xkbfile/xkbout.c index 7bb6b5496..fab58c482 100644 --- a/xc/lib/xkbfile/xkbout.c +++ b/xc/lib/xkbfile/xkbout.c @@ -1,4 +1,4 @@ -/* $TOG: xkbout.c /main/8 1997/06/13 05:59:04 kaleb $ */ +/* $Xorg: xkbout.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/xkbout.c,v 3.6 2000/10/24 22:45:02 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/xkbout.c,v 3.7 2001/01/17 19:43:42 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/xkbfile/xkbtext.c b/xc/lib/xkbfile/xkbtext.c index e9f534b05..135fadc40 100644 --- a/xc/lib/xkbfile/xkbtext.c +++ b/xc/lib/xkbfile/xkbtext.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkbtext.c /main/7 1996/12/28 05:39:31 kaleb $ */ +/* $Xorg: xkbtext.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/xkbtext.c,v 3.7 2000/10/24 22:45:02 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/xkbtext.c,v 3.8 2001/01/17 19:43:43 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/xkbfile/xkmout.c b/xc/lib/xkbfile/xkmout.c index ec561cdb0..171781a4d 100644 --- a/xc/lib/xkbfile/xkmout.c +++ b/xc/lib/xkbfile/xkmout.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkmout.c /main/5 1996/01/23 10:11:10 kaleb $ */ +/* $Xorg: xkmout.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/xkmout.c,v 1.3 2000/10/28 00:34:01 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/xkmout.c,v 1.4 2001/01/17 19:43:43 dawes Exp $ */ #include <stdio.h> #include <ctype.h> diff --git a/xc/lib/xkbfile/xkmread.c b/xc/lib/xkbfile/xkmread.c index 781fd2181..761e036c4 100644 --- a/xc/lib/xkbfile/xkmread.c +++ b/xc/lib/xkbfile/xkmread.c @@ -1,4 +1,4 @@ -/* $XConsortium: xkmread.c /main/4 1996/01/14 16:44:36 kaleb $ */ +/* $Xorg: xkmread.c,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ */ /************************************************************ Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. @@ -24,7 +24,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbfile/xkmread.c,v 1.3 2000/10/28 00:34:02 dawes Exp $ */ +/* $XFree86: xc/lib/xkbfile/xkmread.c,v 1.4 2001/01/17 19:43:43 dawes Exp $ */ #include <stdio.h> diff --git a/xc/lib/xtrans/Imakefile b/xc/lib/xtrans/Imakefile index 4fd61787d..8dbd3f08a 100644 --- a/xc/lib/xtrans/Imakefile +++ b/xc/lib/xtrans/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XConsortium: Imakefile /main/12 1996/09/28 16:50:08 rws $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:44 cpqbld Exp $ #define IncSubdir X11 diff --git a/xc/lib/xtrans/Xtrans.c b/xc/lib/xtrans/Xtrans.c index 4246e28af..b79dada04 100644 --- a/xc/lib/xtrans/Xtrans.c +++ b/xc/lib/xtrans/Xtrans.c @@ -1,4 +1,4 @@ -/* $TOG: Xtrans.c /main/34 1998/02/06 15:55:15 kaleb $ */ +/* $Xorg: Xtrans.c,v 1.3 2000/08/17 19:46:45 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtrans.c,v 3.23 2000/10/24 22:45:02 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtrans.c,v 3.24 2001/01/17 19:43:45 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/Xtrans.h b/xc/lib/xtrans/Xtrans.h index 646689c64..8e92a587e 100644 --- a/xc/lib/xtrans/Xtrans.h +++ b/xc/lib/xtrans/Xtrans.h @@ -1,4 +1,4 @@ -/* $TOG: Xtrans.h /main/31 1998/02/06 15:55:22 kaleb $ */ +/* $Xorg: Xtrans.h,v 1.3 2000/08/17 19:46:45 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtrans.h,v 3.14 1999/12/13 02:52:54 robin Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtrans.h,v 3.15 2001/01/17 19:43:45 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/Xtransam.c b/xc/lib/xtrans/Xtransam.c index fe9f2bccf..7f798bb05 100644 --- a/xc/lib/xtrans/Xtransam.c +++ b/xc/lib/xtrans/Xtransam.c @@ -1,4 +1,4 @@ -/* $TOG: Xtransam.c /main/5 1998/02/06 15:54:26 kaleb $ */ +/* $Xorg: Xtransam.c,v 1.3 2000/08/17 19:46:45 cpqbld Exp $ */ /* Copyright 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtransam.c,v 3.2 1998/10/03 09:07:34 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtransam.c,v 3.3 2001/01/17 19:43:46 dawes Exp $ */ /* Copyright 1994 Vrije Universiteit Amsterdam, Netherlands * diff --git a/xc/lib/xtrans/Xtransdnet.c b/xc/lib/xtrans/Xtransdnet.c index ebaadaa2e..691b2e522 100644 --- a/xc/lib/xtrans/Xtransdnet.c +++ b/xc/lib/xtrans/Xtransdnet.c @@ -1,4 +1,4 @@ -/* $TOG: Xtransdnet.c /main/17 1998/02/06 15:54:33 kaleb $ */ +/* $Xorg: Xtransdnet.c,v 1.3 2000/08/17 19:46:45 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtransdnet.c,v 3.4 1999/06/20 08:41:21 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtransdnet.c,v 3.5 2001/01/17 19:43:46 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/Xtransint.h b/xc/lib/xtrans/Xtransint.h index 88455590e..c4d80ddbd 100644 --- a/xc/lib/xtrans/Xtransint.h +++ b/xc/lib/xtrans/Xtransint.h @@ -1,4 +1,4 @@ -/* $TOG: Xtransint.h /main/27 1998/02/06 15:54:39 kaleb $ */ +/* $Xorg: Xtransint.h,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtransint.h,v 3.27 1999/12/27 00:39:28 robin Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtransint.h,v 3.28 2001/01/17 19:43:46 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/Xtranslcl.c b/xc/lib/xtrans/Xtranslcl.c index 485994d5f..3cf6a4862 100644 --- a/xc/lib/xtrans/Xtranslcl.c +++ b/xc/lib/xtrans/Xtranslcl.c @@ -1,4 +1,4 @@ -/* $TOG: Xtranslcl.c /main/37 1998/04/29 07:18:40 barstow $ */ +/* $Xorg: Xtranslcl.c,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtranslcl.c,v 3.33 1999/06/20 08:41:22 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtranslcl.c,v 3.34 2001/01/17 19:43:47 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/Xtranssock.c b/xc/lib/xtrans/Xtranssock.c index c38ead27d..efc183e2e 100644 --- a/xc/lib/xtrans/Xtranssock.c +++ b/xc/lib/xtrans/Xtranssock.c @@ -1,4 +1,4 @@ -/* $TOG: Xtranssock.c /main/61 1998/02/06 15:54:53 kaleb $ */ +/* $Xorg: Xtranssock.c,v 1.8 2000/08/17 19:46:46 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtranssock.c,v 3.47 2000/05/11 18:14:10 tsi Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtranssock.c,v 3.49 2001/01/19 06:41:02 keithp Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * @@ -51,6 +51,7 @@ from The Open Group. #ifdef XTHREADS #include <X11/Xthreads.h> #endif + #ifndef WIN32 #if defined(TCPCONN) || defined(UNIXCONN) @@ -60,6 +61,7 @@ from The Open Group. #include <lan/in.h> #endif #endif + #if defined(TCPCONN) || defined(UNIXCONN) #define X_INCLUDE_NETDB_H #define XOS_USE_NO_LOCKING @@ -77,14 +79,10 @@ from The Open Group. #include <sys/stat.h> #endif -#if defined(hpux) || defined(__EMX__) -#define NO_TCP_H -#endif /* hpux */ -#ifdef MOTOROLA -#ifdef SYSV +#if defined(hpux) || defined(__EMX__) || (defined(MOTOROLA) && defined(SYSV)) #define NO_TCP_H -#endif /* SYSV */ -#endif /* MOTOROLA */ +#endif + #ifndef NO_TCP_H #ifdef __osf__ #include <sys/param.h> @@ -94,18 +92,19 @@ from The Open Group. #endif /* __NetBSD__ || __OpenBSD__ || __FreeBSD__ */ #include <netinet/tcp.h> #endif /* !NO_TCP_H */ + #include <sys/ioctl.h> -#if defined(SVR4) && !defined(SCO325) && !defined(DGUX) +#if defined(SVR4) && !defined(SCO325) && !defined(DGUX) && !defined(_SEQUENT_) #include <sys/filio.h> #endif -#if (defined(i386) && defined(SYSV)) || defined(_SEQUENT_) -#if !defined(_SEQUENT_) && !defined(ESIX) && !defined(sco) + +#if (defined(i386) && defined(SYSV)) && !defined(ESIX) && !defined(sco) #include <net/errno.h> -#endif /* _SEQUENT_ || ESIX || SCO */ -#if !defined(ISC) || !defined(I_NREAD) || defined(SCO325) +#endif + +#if (defined(i386) && defined(SYSV)) && (!defined(ISC) || !defined(I_NREAD) || defined(SCO325)) || defined(_SEQUENT_) #include <sys/stropts.h> -#endif -#endif /* i386 && SYSV || _SEQUENT_ */ +#endif #else /* !WIN32 */ @@ -1374,6 +1373,23 @@ else ntohs(sockname.sin_port), 0, 0); /* + * Turn on socket keepalive so the client process will eventually + * be notified with a SIGPIPE signal if the display server fails + * to respond to a periodic transmission of messages + * on the connected socket. + * This is useful to avoid hung application processes when the + * processes are not spawned from the xdm session and + * the display server terminates abnormally. + * (Someone turned off the power switch.) + */ + + { + int tmp = 1; + setsockopt (ciptr->fd, SOL_SOCKET, SO_KEEPALIVE, + (char *) &tmp, sizeof (int)); + } + + /* * Do the connect() */ @@ -1695,7 +1711,7 @@ TRANS(SocketBytesReadable) (XtransConnInfo ciptr, BytesReadable_t *pend) #ifdef WIN32 return ioctlsocket ((SOCKET) ciptr->fd, FIONREAD, (u_long *) pend); #else -#if (defined(i386) && defined(SYSV)) || defined(_SEQUENT_) +#if (defined(i386) && defined(SYSV) && !defined(sco)) || (defined(_SEQUENT_) && _SOCKET_VERSION == 1) return ioctl (ciptr->fd, I_NREAD, (char *) pend); #else #if defined(__EMX__) @@ -1703,7 +1719,7 @@ TRANS(SocketBytesReadable) (XtransConnInfo ciptr, BytesReadable_t *pend) #else return ioctl (ciptr->fd, FIONREAD, (char *) pend); #endif /* __EMX__ */ -#endif /* i386 && SYSV && !SCO || _SEQUENT_ */ +#endif /* i386 && SYSV || _SEQUENT_ && _SOCKET_VERSION == 1 */ #endif /* WIN32 */ } diff --git a/xc/lib/xtrans/Xtranstli.c b/xc/lib/xtrans/Xtranstli.c index 17edadd2c..5d86f8b86 100644 --- a/xc/lib/xtrans/Xtranstli.c +++ b/xc/lib/xtrans/Xtranstli.c @@ -1,4 +1,4 @@ -/* $TOG: Xtranstli.c /main/29 1998/04/22 16:31:16 barstow $ */ +/* $Xorg: Xtranstli.c,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtranstli.c,v 3.8 1999/06/20 08:41:23 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtranstli.c,v 3.9 2001/01/17 19:43:48 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/Xtransutil.c b/xc/lib/xtrans/Xtransutil.c index 54746223b..bfc261fe0 100644 --- a/xc/lib/xtrans/Xtransutil.c +++ b/xc/lib/xtrans/Xtransutil.c @@ -1,4 +1,4 @@ -/* $TOG: Xtransutil.c /main/33 1998/02/06 15:55:10 kaleb $ */ +/* $Xorg: Xtransutil.c,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtransutil.c,v 3.16 2000/08/09 23:40:15 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtransutil.c,v 3.17 2001/01/17 19:43:49 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/xtrans/transport.c b/xc/lib/xtrans/transport.c index 7aeadfc0f..2eb23d4e6 100644 --- a/xc/lib/xtrans/transport.c +++ b/xc/lib/xtrans/transport.c @@ -1,4 +1,4 @@ -/* $TOG: transport.c /main/7 1998/02/06 15:54:19 kaleb $ */ +/* $Xorg: transport.c,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ */ /* Copyright 1993, 1994, 1998 The Open Group @@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/xtrans/transport.c,v 3.4 1998/10/03 09:07:37 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/transport.c,v 3.5 2001/01/17 19:43:49 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * diff --git a/xc/lib/zlib/Imakefile b/xc/lib/zlib/Imakefile index a710cbcbf..4e0ece373 100644 --- a/xc/lib/zlib/Imakefile +++ b/xc/lib/zlib/Imakefile @@ -1,10 +1,10 @@ -XCOMM $TOG: Imakefile /main/4 1998/02/04 14:32:56 kaleb $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ -XCOMM $XFree86: xc/lib/zlib/Imakefile,v 1.7 2000/08/09 23:40:16 dawes Exp $ +XCOMM $XFree86: xc/lib/zlib/Imakefile,v 1.8 2001/01/17 19:43:50 dawes Exp $ #ifndef cygwinArchitecture #define DoNormalLib YES diff --git a/xc/lib/zlib/README b/xc/lib/zlib/README index 40de93d4e..94481b59f 100644 --- a/xc/lib/zlib/README +++ b/xc/lib/zlib/README @@ -1,4 +1,4 @@ -/* $TOG: README /main/4 1998/02/04 14:33:02 kaleb $ */ +/* $Xorg: README,v 1.3 2000/08/17 19:46:46 cpqbld Exp $ */ zlib 1.0.8 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library diff --git a/xc/lib/zlib/adler32.c b/xc/lib/zlib/adler32.c index d64336b44..df1958429 100644 --- a/xc/lib/zlib/adler32.c +++ b/xc/lib/zlib/adler32.c @@ -1,4 +1,4 @@ -/* $TOG: adler32.c /main/4 1998/02/04 14:33:06 kaleb $ */ +/* $Xorg: adler32.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* adler32.c -- compute the Adler-32 checksum of a data stream * Copyright (C) 1995-1996 Mark Adler diff --git a/xc/lib/zlib/compress.c b/xc/lib/zlib/compress.c index 3ac5e71f2..99e22cd26 100644 --- a/xc/lib/zlib/compress.c +++ b/xc/lib/zlib/compress.c @@ -1,4 +1,4 @@ -/* $TOG: compress.c /main/1 1998/02/04 14:33:10 kaleb $ */ +/* $Xorg: compress.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* compress.c -- compress a memory buffer * Copyright (C) 1995-1998 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h diff --git a/xc/lib/zlib/crc32.c b/xc/lib/zlib/crc32.c index c6355439a..4eba3e120 100644 --- a/xc/lib/zlib/crc32.c +++ b/xc/lib/zlib/crc32.c @@ -1,4 +1,4 @@ -/* $TOG: crc32.c /main/3 1998/02/04 14:33:14 kaleb $ */ +/* $Xorg: crc32.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* crc32.c -- compute the CRC-32 of a data stream * Copyright (C) 1995-1996 Mark Adler diff --git a/xc/lib/zlib/deflate.c b/xc/lib/zlib/deflate.c index 19ce033a0..9c4763ba5 100644 --- a/xc/lib/zlib/deflate.c +++ b/xc/lib/zlib/deflate.c @@ -1,4 +1,4 @@ -/* $TOG: deflate.c /main/4 1998/02/04 14:33:18 kaleb $ */ +/* $Xorg: deflate.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* deflate.c -- compress data using the deflation algorithm * Copyright (C) 1995-1998 Jean-loup Gailly. diff --git a/xc/lib/zlib/deflate.h b/xc/lib/zlib/deflate.h index 57d4f5890..4ee3bddab 100644 --- a/xc/lib/zlib/deflate.h +++ b/xc/lib/zlib/deflate.h @@ -1,4 +1,4 @@ -/* $TOG: deflate.h /main/4 1998/02/04 14:33:24 kaleb $ */ +/* $Xorg: deflate.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* deflate.h -- internal compression state * Copyright (C) 1995-1998 Jean-loup Gailly diff --git a/xc/lib/zlib/gzio.c b/xc/lib/zlib/gzio.c index 7936ad796..bbbf40615 100644 --- a/xc/lib/zlib/gzio.c +++ b/xc/lib/zlib/gzio.c @@ -1,4 +1,4 @@ -/* $TOG: gzio.c /main/1 1998/02/04 14:33:29 kaleb $ */ +/* $Xorg: gzio.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* gzio.c -- IO on .gz files * Copyright (C) 1995-1998 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h diff --git a/xc/lib/zlib/infblock.c b/xc/lib/zlib/infblock.c index 9020cc655..86784ff05 100644 --- a/xc/lib/zlib/infblock.c +++ b/xc/lib/zlib/infblock.c @@ -1,4 +1,4 @@ -/* $TOG: infblock.c /main/4 1998/02/04 14:33:33 kaleb $ */ +/* $Xorg: infblock.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* infblock.c -- interpret and process block types to last block * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/infblock.h b/xc/lib/zlib/infblock.h index 91a0df499..5668bab15 100644 --- a/xc/lib/zlib/infblock.h +++ b/xc/lib/zlib/infblock.h @@ -1,4 +1,4 @@ -/* $TOG: infblock.h /main/4 1998/02/04 14:33:37 kaleb $ */ +/* $Xorg: infblock.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* infblock.h -- header to use infblock.c * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/infcodes.c b/xc/lib/zlib/infcodes.c index 1ecdf272c..d533ba880 100644 --- a/xc/lib/zlib/infcodes.c +++ b/xc/lib/zlib/infcodes.c @@ -1,4 +1,4 @@ -/* $TOG: infcodes.c /main/4 1998/02/04 14:33:41 kaleb $ */ +/* $Xorg: infcodes.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* infcodes.c -- process literals and length/distance pairs * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/infcodes.h b/xc/lib/zlib/infcodes.h index e2e874a46..ca1461734 100644 --- a/xc/lib/zlib/infcodes.h +++ b/xc/lib/zlib/infcodes.h @@ -1,4 +1,4 @@ -/* $TOG: infcodes.h /main/4 1998/02/04 14:33:46 kaleb $ */ +/* $Xorg: infcodes.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* infcodes.h -- header to use infcodes.c * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/inffast.c b/xc/lib/zlib/inffast.c index 85826f38b..45eda1b0e 100644 --- a/xc/lib/zlib/inffast.c +++ b/xc/lib/zlib/inffast.c @@ -1,4 +1,4 @@ -/* $TOG: inffast.c /main/4 1998/02/04 14:33:49 kaleb $ */ +/* $Xorg: inffast.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* inffast.c -- process literals and length/distance pairs fast * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/inffast.h b/xc/lib/zlib/inffast.h index 5f5c32cfa..a4cc75ae6 100644 --- a/xc/lib/zlib/inffast.h +++ b/xc/lib/zlib/inffast.h @@ -1,4 +1,4 @@ -/* $TOG: inffast.h /main/4 1998/02/04 14:33:53 kaleb $ */ +/* $Xorg: inffast.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* inffast.h -- header to use inffast.c * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/inflate.c b/xc/lib/zlib/inflate.c index faa43190f..aadb41b0e 100644 --- a/xc/lib/zlib/inflate.c +++ b/xc/lib/zlib/inflate.c @@ -1,4 +1,4 @@ -/* $TOG: inflate.c /main/4 1998/02/04 14:33:57 kaleb $ */ +/* $Xorg: inflate.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* inflate.c -- zlib interface to inflate modules * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/inftrees.c b/xc/lib/zlib/inftrees.c index bf3d5d227..64006a139 100644 --- a/xc/lib/zlib/inftrees.c +++ b/xc/lib/zlib/inftrees.c @@ -1,4 +1,4 @@ -/* $TOG: inftrees.c /main/4 1998/02/04 14:34:01 kaleb $ */ +/* $Xorg: inftrees.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* inftrees.c -- generate Huffman trees for efficient decoding * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/inftrees.h b/xc/lib/zlib/inftrees.h index efd5a20b6..bbde2fc24 100644 --- a/xc/lib/zlib/inftrees.h +++ b/xc/lib/zlib/inftrees.h @@ -1,4 +1,4 @@ -/* $TOG: inftrees.h /main/5 1998/02/04 14:34:06 kaleb $ */ +/* $Xorg: inftrees.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* inftrees.h -- header to use inftrees.c * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/infutil.c b/xc/lib/zlib/infutil.c index 4666f48de..a45dbaa82 100644 --- a/xc/lib/zlib/infutil.c +++ b/xc/lib/zlib/infutil.c @@ -1,4 +1,4 @@ -/* $TOG: infutil.c /main/4 1998/02/04 14:34:09 kaleb $ */ +/* $Xorg: infutil.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* inflate_util.c -- data and routines common to blocks and codes * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/infutil.h b/xc/lib/zlib/infutil.h index 9a8f94e45..cf189fa25 100644 --- a/xc/lib/zlib/infutil.h +++ b/xc/lib/zlib/infutil.h @@ -1,4 +1,4 @@ -/* $TOG: infutil.h /main/4 1998/02/04 14:34:13 kaleb $ */ +/* $Xorg: infutil.h,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* infutil.h -- types and macros common to blocks and codes * Copyright (C) 1995-1998 Mark Adler diff --git a/xc/lib/zlib/trees.c b/xc/lib/zlib/trees.c index 8ffaefd4b..3df647ea0 100644 --- a/xc/lib/zlib/trees.c +++ b/xc/lib/zlib/trees.c @@ -1,4 +1,4 @@ -/* $TOG: trees.c /main/4 1998/02/04 14:34:17 kaleb $ */ +/* $Xorg: trees.c,v 1.3 2000/08/17 19:46:47 cpqbld Exp $ */ /* trees.c -- output deflated data using Huffman coding * Copyright (C) 1995-1998 Jean-loup Gailly diff --git a/xc/lib/zlib/trees.h b/xc/lib/zlib/trees.h index 5dbf3d402..7c9c8577f 100644 --- a/xc/lib/zlib/trees.h +++ b/xc/lib/zlib/trees.h @@ -1,4 +1,4 @@ -/* $TOG: trees.h /main/1 1998/02/04 14:34:22 kaleb $ */ +/* $Xorg: trees.h,v 1.3 2000/08/17 19:46:48 cpqbld Exp $ */ /* header created automatically with -DGEN_TREES_H */ local const ct_data static_ltree[L_CODES+2] = { diff --git a/xc/lib/zlib/uncompr.c b/xc/lib/zlib/uncompr.c index 9f68ad13b..958f23120 100644 --- a/xc/lib/zlib/uncompr.c +++ b/xc/lib/zlib/uncompr.c @@ -1,4 +1,4 @@ -/* $TOG: uncompr.c /main/1 1998/02/04 14:34:26 kaleb $ */ +/* $Xorg: uncompr.c,v 1.3 2000/08/17 19:46:48 cpqbld Exp $ */ /* uncompr.c -- decompress a memory buffer * Copyright (C) 1995-1998 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h diff --git a/xc/lib/zlib/zconf.h b/xc/lib/zlib/zconf.h index 1b2a54fc3..e33714686 100644 --- a/xc/lib/zlib/zconf.h +++ b/xc/lib/zlib/zconf.h @@ -1,11 +1,11 @@ -/* $TOG: zconf.h /main/5 1998/02/04 14:51:21 kaleb $ */ +/* $Xorg: zconf.h,v 1.3 2000/08/17 19:46:48 cpqbld Exp $ */ /* zconf.h -- configuration of the zlib compression library * Copyright (C) 1995-1996 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ -/* $XFree86: xc/lib/zlib/zconf.h,v 1.6 2000/08/09 23:40:16 dawes Exp $ */ +/* $XFree86: xc/lib/zlib/zconf.h,v 1.7 2001/01/17 19:43:55 dawes Exp $ */ #ifndef _ZCONF_H #define _ZCONF_H diff --git a/xc/lib/zlib/zlib.h b/xc/lib/zlib/zlib.h index 7d5497cb2..78114028a 100644 --- a/xc/lib/zlib/zlib.h +++ b/xc/lib/zlib/zlib.h @@ -1,4 +1,4 @@ -/* $TOG: zlib.h /main/4 1998/02/04 14:34:35 kaleb $ */ +/* $Xorg: zlib.h,v 1.3 2000/08/17 19:46:48 cpqbld Exp $ */ /* zlib.h -- interface of the 'zlib' general purpose compression library version 1.0.8, Jan 27th, 1998 diff --git a/xc/lib/zlib/zutil.c b/xc/lib/zlib/zutil.c index cecf6b864..c2bd02bda 100644 --- a/xc/lib/zlib/zutil.c +++ b/xc/lib/zlib/zutil.c @@ -1,4 +1,4 @@ -/* $TOG: zutil.c /main/4 1998/02/04 14:34:40 kaleb $ */ +/* $Xorg: zutil.c,v 1.3 2000/08/17 19:46:48 cpqbld Exp $ */ /* zutil.c -- target dependent utility functions for the compression library * Copyright (C) 1995-1998 Jean-loup Gailly. diff --git a/xc/lib/zlib/zutil.h b/xc/lib/zlib/zutil.h index 070b39605..eeab64a0f 100644 --- a/xc/lib/zlib/zutil.h +++ b/xc/lib/zlib/zutil.h @@ -1,4 +1,4 @@ -/* $TOG: zutil.h /main/4 1998/02/04 14:34:44 kaleb $ */ +/* $Xorg: zutil.h,v 1.4 2000/08/17 19:46:48 cpqbld Exp $ */ /* zutil.h -- internal interface and configuration of the compression library * Copyright (C) 1995-1998 Jean-loup Gailly. @@ -15,16 +15,16 @@ #include "zlib.h" +#if defined(MSDOS)||defined(VMS)||defined(CRAY)||defined(WIN32)||defined(RISCOS)||defined(__EMX__)||defined(STDC) +# include <stddef.h> +# include <errno.h> +#else + extern int errno; +#endif #ifdef STDC -# include <stddef.h> # include <string.h> # include <stdlib.h> #endif -#ifdef NO_ERRNO_H - extern int errno; -#else -# include <errno.h> -#endif #ifndef local # define local static |